86 lines
2.8 KiB
CMake
86 lines
2.8 KiB
CMake
# libcBox2D: build system
|
|
cmake_minimum_required(VERSION 3.16)
|
|
project(cBox2D VERSION 2.4.1 LANGUAGES CXX)
|
|
find_package(Gint 2.9.0 REQUIRED)
|
|
|
|
set(SOURCES
|
|
src/collision/b2_broad_phase.cpp
|
|
src/collision/b2_chain_shape.cpp
|
|
src/collision/b2_circle_shape.cpp
|
|
src/collision/b2_collide_circle.cpp
|
|
src/collision/b2_collide_edge.cpp
|
|
src/collision/b2_collide_polygon.cpp
|
|
src/collision/b2_collision.cpp
|
|
src/collision/b2_distance.cpp
|
|
src/collision/b2_dynamic_tree.cpp
|
|
src/collision/b2_edge_shape.cpp
|
|
src/collision/b2_polygon_shape.cpp
|
|
src/collision/b2_time_of_impact.cpp
|
|
src/common/b2_block_allocator.cpp
|
|
src/common/b2_draw.cpp
|
|
src/common/b2_math.cpp
|
|
src/common/b2_settings.cpp
|
|
src/common/b2_stack_allocator.cpp
|
|
src/common/b2_timer.cpp
|
|
src/dynamics/b2_body.cpp
|
|
src/dynamics/b2_chain_circle_contact.cpp
|
|
src/dynamics/b2_chain_circle_contact.h
|
|
src/dynamics/b2_chain_polygon_contact.cpp
|
|
src/dynamics/b2_chain_polygon_contact.h
|
|
src/dynamics/b2_circle_contact.cpp
|
|
src/dynamics/b2_circle_contact.h
|
|
src/dynamics/b2_contact.cpp
|
|
src/dynamics/b2_contact_manager.cpp
|
|
src/dynamics/b2_contact_solver.cpp
|
|
src/dynamics/b2_contact_solver.h
|
|
src/dynamics/b2_distance_joint.cpp
|
|
src/dynamics/b2_edge_circle_contact.cpp
|
|
src/dynamics/b2_edge_circle_contact.h
|
|
src/dynamics/b2_edge_polygon_contact.cpp
|
|
src/dynamics/b2_edge_polygon_contact.h
|
|
src/dynamics/b2_fixture.cpp
|
|
src/dynamics/b2_friction_joint.cpp
|
|
src/dynamics/b2_gear_joint.cpp
|
|
src/dynamics/b2_island.cpp
|
|
src/dynamics/b2_island.h
|
|
src/dynamics/b2_joint.cpp
|
|
src/dynamics/b2_motor_joint.cpp
|
|
src/dynamics/b2_mouse_joint.cpp
|
|
src/dynamics/b2_polygon_circle_contact.cpp
|
|
src/dynamics/b2_polygon_circle_contact.h
|
|
src/dynamics/b2_polygon_contact.cpp
|
|
src/dynamics/b2_polygon_contact.h
|
|
src/dynamics/b2_prismatic_joint.cpp
|
|
src/dynamics/b2_pulley_joint.cpp
|
|
src/dynamics/b2_revolute_joint.cpp
|
|
src/dynamics/b2_weld_joint.cpp
|
|
src/dynamics/b2_wheel_joint.cpp
|
|
src/dynamics/b2_world.cpp
|
|
src/dynamics/b2_world_callbacks.cpp
|
|
src/rope/b2_rope.cpp
|
|
)
|
|
|
|
include_directories(
|
|
"${PROJECT_SOURCE_DIR}/include"
|
|
"${PROJECT_SOURCE_DIR}/include/box2d")
|
|
|
|
# Target name is "cBox2D", output file is "libcBox2D.a" (by default)
|
|
add_library(cBox2D STATIC ${SOURCES})
|
|
target_compile_options(cBox2D PRIVATE -Os -std=c++20)
|
|
|
|
# After building, install the target (that is, libcBox2D.a) in the compiler
|
|
install(TARGETS cBox2D
|
|
DESTINATION "${FXSDK_LIB}")
|
|
|
|
# Also install the headers (our include folder gets merged with the existing
|
|
# one in the compiler's install folder). Only install files matching *.h to
|
|
# exclude config.h.in.
|
|
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/box2d"
|
|
DESTINATION "${FXSDK_INCLUDE}"
|
|
FILES_MATCHING PATTERN "*.h")
|
|
|
|
# Install FindcBox2D.cmake so that users can do find_package(LibcBox2D)
|
|
install(FILES cmake/FindcBox2D.cmake
|
|
DESTINATION "${FXSDK_CMAKE_MODULE_PATH}")
|
|
|