Urho3D/Source/ThirdParty/Box2D/CMakeLists.txt
2021-07-17 16:43:46 +00:00

190 lines
6.5 KiB
CMake

#
# Copyright (c) 2008-2021 the Urho3D project.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
# Define target name
set (TARGET_NAME Box2D)
set(BOX2D_Collision_SRCS
Box2D/Collision/b2BroadPhase.cpp
Box2D/Collision/b2CollideCircle.cpp
Box2D/Collision/b2CollideEdge.cpp
Box2D/Collision/b2CollidePolygon.cpp
Box2D/Collision/b2Collision.cpp
Box2D/Collision/b2Distance.cpp
Box2D/Collision/b2DynamicTree.cpp
Box2D/Collision/b2TimeOfImpact.cpp
)
set(BOX2D_Collision_HDRS
Box2D/Collision/b2BroadPhase.h
Box2D/Collision/b2Collision.h
Box2D/Collision/b2Distance.h
Box2D/Collision/b2DynamicTree.h
Box2D/Collision/b2TimeOfImpact.h
)
set(BOX2D_Shapes_SRCS
Box2D/Collision/Shapes/b2CircleShape.cpp
Box2D/Collision/Shapes/b2EdgeShape.cpp
Box2D/Collision/Shapes/b2ChainShape.cpp
Box2D/Collision/Shapes/b2PolygonShape.cpp
)
set(BOX2D_Shapes_HDRS
Box2D/Collision/Shapes/b2CircleShape.h
Box2D/Collision/Shapes/b2EdgeShape.h
Box2D/Collision/Shapes/b2ChainShape.h
Box2D/Collision/Shapes/b2PolygonShape.h
Box2D/Collision/Shapes/b2Shape.h
)
set(BOX2D_Common_SRCS
Box2D/Common/b2BlockAllocator.cpp
Box2D/Common/b2Draw.cpp
Box2D/Common/b2Math.cpp
Box2D/Common/b2Settings.cpp
Box2D/Common/b2StackAllocator.cpp
Box2D/Common/b2Timer.cpp
)
set(BOX2D_Common_HDRS
Box2D/Common/b2BlockAllocator.h
Box2D/Common/b2Draw.h
Box2D/Common/b2GrowableStack.h
Box2D/Common/b2Math.h
Box2D/Common/b2Settings.h
Box2D/Common/b2StackAllocator.h
Box2D/Common/b2Timer.h
)
set(BOX2D_Dynamics_SRCS
Box2D/Dynamics/b2Body.cpp
Box2D/Dynamics/b2ContactManager.cpp
Box2D/Dynamics/b2Fixture.cpp
Box2D/Dynamics/b2Island.cpp
Box2D/Dynamics/b2World.cpp
Box2D/Dynamics/b2WorldCallbacks.cpp
)
set(BOX2D_Dynamics_HDRS
Box2D/Dynamics/b2Body.h
Box2D/Dynamics/b2ContactManager.h
Box2D/Dynamics/b2Fixture.h
Box2D/Dynamics/b2Island.h
Box2D/Dynamics/b2TimeStep.h
Box2D/Dynamics/b2World.h
Box2D/Dynamics/b2WorldCallbacks.h
)
set(BOX2D_Contacts_SRCS
Box2D/Dynamics/Contacts/b2CircleContact.cpp
Box2D/Dynamics/Contacts/b2Contact.cpp
Box2D/Dynamics/Contacts/b2ContactSolver.cpp
Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.cpp
Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.cpp
Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.cpp
Box2D/Dynamics/Contacts/b2ChainAndCircleContact.cpp
Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.cpp
Box2D/Dynamics/Contacts/b2PolygonContact.cpp
)
set(BOX2D_Contacts_HDRS
Box2D/Dynamics/Contacts/b2CircleContact.h
Box2D/Dynamics/Contacts/b2Contact.h
Box2D/Dynamics/Contacts/b2ContactSolver.h
Box2D/Dynamics/Contacts/b2PolygonAndCircleContact.h
Box2D/Dynamics/Contacts/b2EdgeAndCircleContact.h
Box2D/Dynamics/Contacts/b2EdgeAndPolygonContact.h
Box2D/Dynamics/Contacts/b2ChainAndCircleContact.h
Box2D/Dynamics/Contacts/b2ChainAndPolygonContact.h
Box2D/Dynamics/Contacts/b2PolygonContact.h
)
set(BOX2D_Joints_SRCS
Box2D/Dynamics/Joints/b2DistanceJoint.cpp
Box2D/Dynamics/Joints/b2FrictionJoint.cpp
Box2D/Dynamics/Joints/b2GearJoint.cpp
Box2D/Dynamics/Joints/b2Joint.cpp
Box2D/Dynamics/Joints/b2MotorJoint.cpp
Box2D/Dynamics/Joints/b2MouseJoint.cpp
Box2D/Dynamics/Joints/b2PrismaticJoint.cpp
Box2D/Dynamics/Joints/b2PulleyJoint.cpp
Box2D/Dynamics/Joints/b2RevoluteJoint.cpp
Box2D/Dynamics/Joints/b2RopeJoint.cpp
Box2D/Dynamics/Joints/b2WeldJoint.cpp
Box2D/Dynamics/Joints/b2WheelJoint.cpp
)
set(BOX2D_Joints_HDRS
Box2D/Dynamics/Joints/b2DistanceJoint.h
Box2D/Dynamics/Joints/b2FrictionJoint.h
Box2D/Dynamics/Joints/b2GearJoint.h
Box2D/Dynamics/Joints/b2Joint.h
Box2D/Dynamics/Joints/b2MotorJoint.h
Box2D/Dynamics/Joints/b2MouseJoint.h
Box2D/Dynamics/Joints/b2PrismaticJoint.h
Box2D/Dynamics/Joints/b2PulleyJoint.h
Box2D/Dynamics/Joints/b2RevoluteJoint.h
Box2D/Dynamics/Joints/b2RopeJoint.h
Box2D/Dynamics/Joints/b2WeldJoint.h
Box2D/Dynamics/Joints/b2WheelJoint.h
)
set(BOX2D_Rope_SRCS
Box2D/Rope/b2Rope.cpp
)
set(BOX2D_Rope_HDRS
Box2D/Rope/b2Rope.h
)
set(BOX2D_General_HDRS
Box2D/Box2D.h
)
# Define source files
file (GLOB CPP_FILES
${BOX2D_Collision_SRCS}
${BOX2D_Shapes_SRCS}
${BOX2D_Common_SRCS}
${BOX2D_Dynamics_SRCS}
${BOX2D_Contacts_SRCS}
${BOX2D_Joints_SRCS}
${BOX2D_Rope_SRCS})
file (GLOB H_FILES
${BOX2D_Collision_HDRS}
${BOX2D_Shapes_HDRS}
${BOX2D_Common_HDRS}
${BOX2D_Dynamics_HDRS}
${BOX2D_Contacts_HDRS}
${BOX2D_Joints_HDRS}
${BOX2D_Rope_HDRS}
${BOX2D_General_HDRS})
set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
# These are used to create visual studio folders.
source_group(Collision FILES ${BOX2D_Collision_SRCS} ${BOX2D_Collision_HDRS})
source_group(Collision\\Shapes FILES ${BOX2D_Shapes_SRCS} ${BOX2D_Shapes_HDRS})
source_group(Common FILES ${BOX2D_Common_SRCS} ${BOX2D_Common_HDRS})
source_group(Dynamics FILES ${BOX2D_Dynamics_SRCS} ${BOX2D_Dynamics_HDRS})
source_group(Dynamics\\Contacts FILES ${BOX2D_Contacts_SRCS} ${BOX2D_Contacts_HDRS})
source_group(Dynamics\\Joints FILES ${BOX2D_Joints_SRCS} ${BOX2D_Joints_HDRS})
source_group(Include FILES ${BOX2D_General_HDRS})
source_group(Rope FILES ${BOX2D_Rope_SRCS} ${BOX2D_Rope_HDRS})
# Define dependency libs
set (INCLUDE_DIRS .)
# Setup target
setup_library ()
# Install headers for building and using the Urho3D library (install dependency for Urho3D/Urho2D/PhysicsWorld2D.h and Urho3D/Urho2D/RigidBody2D.h)
install_header_files (DIRECTORY Box2D DESTINATION ${DEST_INCLUDE_DIR}/ThirdParty FILES_MATCHING PATTERN *.h)