diff --git a/CMakeLists.txt b/CMakeLists.txt index 8bd43fe..b320a6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,12 +5,14 @@ include(GNUInstallDirs) set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) -include_directories(external/stb external/lz4) +include_directories(external/stb) set(MW_INSTALL_HEADERS OFF) -add_subdirectory(external/milsko) + +add_subdirectory(submodule/milsko) add_subdirectory(external/lz4) +add_subdirectory(external/ode) add_subdirectory(engine) diff --git a/engine/CMakeLists.txt b/engine/CMakeLists.txt index 641203f..9a6773e 100644 --- a/engine/CMakeLists.txt +++ b/engine/CMakeLists.txt @@ -5,8 +5,6 @@ include(GNUInstallDirs) set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) -add_subdirectory(ode) - macro(install_target name) install( TARGETS ${name} @@ -20,7 +18,6 @@ file(GLOB GearSrc_SRC src/*.c) add_library(GearSrc SHARED ${GearSrc_SRC}) target_include_directories(GearSrc PUBLIC include) -target_include_directories(GearSrc PRIVATE lz4) target_compile_definitions(GearSrc PRIVATE _GEARSRC) target_link_libraries(GearSrc PRIVATE ode lz4) target_link_options(GearSrc PRIVATE -static-libgcc -static-libstdc++) diff --git a/engine/ode/CMakeLists.txt b/engine/ode/CMakeLists.txt deleted file mode 100644 index efc77c1..0000000 --- a/engine/ode/CMakeLists.txt +++ /dev/null @@ -1,53 +0,0 @@ -cmake_minimum_required(VERSION 3.11) -project(ode) - -file(GLOB ODE_SRC - ../../external/ode/ode/src/*.c - ../../external/ode/ode/src/*.cpp - ../../external/ode/ode/src/joints/*.cpp - ../../external/ode/ou/src/ou/*.cpp - ../../external/ode/GIMPACT/src/*.cpp - ../../external/ode/libccd/src/*.c -) -add_library(ode ${ODE_SRC}) -target_include_directories(ode PRIVATE - ../../external/ode/include - ../../external/ode/ode/src - ../../external/ode/ode/src/joints - ../../external/ode/OPCODE - ../../external/ode/ou/include - ../../external/ode/GIMPACT/include - ../../external/ode/libccd/src/custom - ../../external/ode/libccd/src - ${CMAKE_CURRENT_BINARY_DIR} -) - -list(REMOVE_ITEM ODE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../external/ode/ode/src/collision_trimesh_trimesh_old.cpp) -list(REMOVE_ITEM ODE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../external/ode/ode/src/collision_trimesh_opcode.cpp) -list(REMOVE_ITEM ODE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../external/ode/ode/src/collision_trimesh_disabled.cpp) - -target_compile_definitions(ode PRIVATE - _OU_NAMESPACE=odeou - _OU_FEATURE_SET=_OU_FEATURE_SET_TLS - dLIBCCD_ENABLED - dLIBCCD_INTERNAL - dLIBCCD_BOX_CYL - dLIBCCD_CYL_CYL - dLIBCCD_CAP_CYL - dLIBCCD_CONVEX_BOX - dLIBCCD_CONVEX_CAP - dLIBCCD_CONVEX_CYL - dLIBCCD_CONVEX_SPHERE - dLIBCCD_CONVEX_CONVEX -) - -set_property(TARGET ode PROPERTY POSITION_INDEPENDENT_CODE ON) - -set(ODE_PRECISION "dDOUBLE") -set(CCD_PRECISION "CCD_DOUBLE") -set(ODE_VERSION "Custom-ODE") - -configure_file(../../external/ode/include/ode/version.h.in ode/version.h) -configure_file(../../external/ode/include/ode/precision.h.in ode/precision.h) -configure_file(../../external/ode/libccd/src/ccd/precision.h.in ccd/precision.h) -configure_file(config.h.in config.h) diff --git a/external/ode/CMakeLists.txt b/external/ode/CMakeLists.txt new file mode 100644 index 0000000..6afe042 --- /dev/null +++ b/external/ode/CMakeLists.txt @@ -0,0 +1,53 @@ +cmake_minimum_required(VERSION 3.11) +project(ode) + +file(GLOB ODE_SRC + ../../submodule/ode/ode/src/*.c + ../../submodule/ode/ode/src/*.cpp + ../../submodule/ode/ode/src/joints/*.cpp + ../../submodule/ode/ou/src/ou/*.cpp + ../../submodule/ode/GIMPACT/src/*.cpp + ../../submodule/ode/libccd/src/*.c +) +add_library(ode ${ODE_SRC}) +target_include_directories(ode PRIVATE + ../../submodule/ode/include + ../../submodule/ode/ode/src + ../../submodule/ode/ode/src/joints + ../../submodule/ode/OPCODE + ../../submodule/ode/ou/include + ../../submodule/ode/GIMPACT/include + ../../submodule/ode/libccd/src/custom + ../../submodule/ode/libccd/src + ${CMAKE_CURRENT_BINARY_DIR} +) + +list(REMOVE_ITEM ODE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../submodule/ode/ode/src/collision_trimesh_trimesh_old.cpp) +list(REMOVE_ITEM ODE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../submodule/ode/ode/src/collision_trimesh_opcode.cpp) +list(REMOVE_ITEM ODE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../submodule/ode/ode/src/collision_trimesh_disabled.cpp) + +target_compile_definitions(ode PRIVATE + _OU_NAMESPACE=odeou + _OU_FEATURE_SET=_OU_FEATURE_SET_TLS + dLIBCCD_ENABLED + dLIBCCD_INTERNAL + dLIBCCD_BOX_CYL + dLIBCCD_CYL_CYL + dLIBCCD_CAP_CYL + dLIBCCD_CONVEX_BOX + dLIBCCD_CONVEX_CAP + dLIBCCD_CONVEX_CYL + dLIBCCD_CONVEX_SPHERE + dLIBCCD_CONVEX_CONVEX +) + +set_property(TARGET ode PROPERTY POSITION_INDEPENDENT_CODE ON) + +set(ODE_PRECISION "dDOUBLE") +set(CCD_PRECISION "CCD_DOUBLE") +set(ODE_VERSION "Custom-ODE") + +configure_file(../../submodule/ode/include/ode/version.h.in ode/version.h) +configure_file(../../submodule/ode/include/ode/precision.h.in ode/precision.h) +configure_file(../../submodule/ode/libccd/src/ccd/precision.h.in ccd/precision.h) +configure_file(config.h.in config.h) diff --git a/engine/ode/config.h.in b/external/ode/config.h.in similarity index 100% rename from engine/ode/config.h.in rename to external/ode/config.h.in