--- projects/Rigid/CMakeLists.txt.orig 2024-09-30 13:46:54 UTC +++ projects/Rigid/CMakeLists.txt @@ -1,11 +1,20 @@ add_definitions(-DBT_THREAD_SAFE) add_compile_options(-w) -if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/bullet3/CMakeLists.txt) +# FreeBSD: use system bullet (devel/bullet) instead of the bundled copy +find_package(PkgConfig REQUIRED) +pkg_check_modules(BULLET REQUIRED bullet) + +# Parts of zenustech/bullet3 fork which are not provided by devel/bullet +if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/bullet3/src/URDFImporter/CMakeLists.txt) message(FATAL_ERROR "bullet3 submodule not found! Please run: git submodule update --init --recursive") endif() -add_subdirectory(bullet3) -add_subdirectory(bullet3/HACD) +file (GLOB ZEN_BULLET_EXTRAS_SOURCE + bullet3/src/BulletInverseDynamics/*.cpp + bullet3/src/BulletInverseDynamics/details/*.cpp + bullet3/src/BussIK/*.cpp + bullet3/src/VHACD/src/*.cpp + bullet3/src/URDFImporter/*.cpp) file (GLOB ZEN_RIGID_SOURCE *.cpp *.h) @@ -14,18 +23,15 @@ list (APPEND ZEN_RIGID_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/RigidFracture.cpp) endif(ZENO_WITH_CUDA) -target_sources(zeno PRIVATE ${ZEN_RIGID_SOURCE}) -zeno_disable_warning(${ZEN_RIGID_SOURCE}) +target_sources(zeno PRIVATE ${ZEN_RIGID_SOURCE} ${ZEN_BULLET_EXTRAS_SOURCE}) +zeno_disable_warning(${ZEN_RIGID_SOURCE} ${ZEN_BULLET_EXTRAS_SOURCE}) target_include_directories(zeno PRIVATE .) -target_include_directories(zeno PRIVATE bullet3/src) +target_include_directories(zeno PRIVATE bullet3/src bullet3/src/VHACD) +target_include_directories(zeno PRIVATE ${BULLET_INCLUDE_DIRS} ${BULLET_INCLUDEDIR}/HACD) +target_compile_options(zeno PRIVATE ${BULLET_CFLAGS_OTHER}) -target_link_libraries(zeno PRIVATE LinearMath) -target_link_libraries(zeno PRIVATE Bullet3Common) -target_link_libraries(zeno PRIVATE BulletInverseDynamics) -target_link_libraries(zeno PRIVATE BulletCollision) -target_link_libraries(zeno PRIVATE BulletDynamics) -target_link_libraries(zeno PRIVATE BulletSoftBody) -target_link_libraries(zeno PRIVATE HACD) -target_link_libraries(zeno PRIVATE VHACD) -target_link_libraries(zeno PRIVATE BussIK) -target_link_libraries(zeno PRIVATE URDFImporter) +foreach (lib IN ITEMS BulletSoftBody BulletDynamics BulletCollision + Bullet3Common LinearMath HACD) + find_library(BULLET_${lib}_LIBRARY NAMES ${lib} HINTS ${BULLET_LIBRARY_DIRS} REQUIRED) + target_link_libraries(zeno PRIVATE ${BULLET_${lib}_LIBRARY}) +endforeach()