diff --git a/.gitmodules b/.gitmodules index 2efa950..4429e91 100644 --- a/.gitmodules +++ b/.gitmodules @@ -142,3 +142,19 @@ path = bullet3 url = https://github.com/bulletphysics/bullet3 branch = master +[submodule "sol2"] + path = sol2 + url = https://github.com/ThePhD/sol2 + branch = develop +[submodule "jolt"] + path = jolt + url = https://github.com/jrouwe/JoltPhysics + branch = master +[submodule "json"] + path = json + url = https://github.com/nlohmann/json + branch = develop +[submodule "freetype"] + path = freetype + url = https://github.com/freetype/freetype + branch = master diff --git a/CMakeLists.txt b/CMakeLists.txt index 69d854b..ad69bf8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,14 +82,36 @@ ExternalProject_Add(libpng-static DEPENDS zlib-static ) +ExternalProject_Add(freetype + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/freetype + CMAKE_ARGS ${CUSTOM_OPTS} + -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE -DBUILD_SHARED_LIBS=FALSE -DFT_DISABLE_ZLIB=TRUE + -DFT_DISABLE_BZIP2=TRUE -DFT_DISABLE_PNG=TRUE -DFT_DISABLE_HARFBUZZ=TRUE -DFT_DISABLE_BROTLI=TRUE + -DCMAKE_DISABLE_FIND_PACKAGE_PNG=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE + -DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec=TRUE + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 + DEPENDS zlib libpng jpeg-turbo +) + +ExternalProject_Add(freetype-static + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/freetype + CMAKE_ARGS ${CUSTOM_OPTS_STATIC} + -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE -DBUILD_SHARED_LIBS=FALSE -DFT_DISABLE_ZLIB=TRUE + -DFT_DISABLE_BZIP2=TRUE -DFT_DISABLE_PNG=TRUE -DFT_DISABLE_HARFBUZZ=TRUE -DFT_DISABLE_BROTLI=TRUE + -DCMAKE_DISABLE_FIND_PACKAGE_PNG=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE + -DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec=TRUE + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 + DEPENDS zlib-static libpng-static jpeg-turbo-static +) + ExternalProject_Add(pugixml SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/pugixml - CMAKE_ARGS ${CUSTOM_OPTS} + CMAKE_ARGS ${CUSTOM_OPTS} -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE -DBUILD_SHARED_LIBS=FALSE ) ExternalProject_Add(pugixml-static SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/pugixml - CMAKE_ARGS ${CUSTOM_OPTS_STATIC} + CMAKE_ARGS ${CUSTOM_OPTS_STATIC} -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE -DBUILD_SHARED_LIBS=FALSE ) set(FFMPEG_CONFIG_OPTS @@ -212,14 +234,59 @@ set(OGRE_COMMON_OPTIONS # -DOGRE_CONFIG_THREADS=3 # -DOGRE_CONFIG_THREAD_PROVIDER="std" ) +ExternalProject_Add(bullet3 + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/bullet3 + CMAKE_ARGS + ${CUSTOM_OPTS} + -DBUILD_SHARED_LIBS=OFF + -DINSTALL_LIBS=ON + -DCMAKE_POSITION_INDEPENDENT_CODE=ON + -DUSE_MSVC_RUNTIME_LIBRARY_DLL=ON + -DBUILD_PYBULLET=OFF + -DUSE_DOUBLE_PRECISION=OFF + -DBUILD_CPU_DEMOS=OFF + -DBUILD_BULLET2_DEMOS=OFF + -DBUILD_EXTRAS=OFF + -DBUILD_EGL=OFF + -DBUILD_ENET=OFF + -DBUILD_UNIT_TESTS=OFF + -DCMAKE_RELWITHDEBINFO_POSTFIX= # fixes FindBullet on MSVC + -DBUILD_CLSOCKET=OFF + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 +) + +ExternalProject_Add(bullet3-static + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/bullet3 + CMAKE_ARGS + ${CUSTOM_OPTS_STATIC} + -DBUILD_SHARED_LIBS=OFF + -DINSTALL_LIBS=ON + -DCMAKE_POSITION_INDEPENDENT_CODE=ON + -DUSE_MSVC_RUNTIME_LIBRARY_DLL=ON + -DBUILD_PYBULLET=OFF + -DUSE_DOUBLE_PRECISION=OFF + -DBUILD_CPU_DEMOS=OFF + -DBUILD_BULLET2_DEMOS=OFF + -DBUILD_EXTRAS=OFF + -DBUILD_EGL=OFF + -DBUILD_ENET=OFF + -DBUILD_UNIT_TESTS=OFF + -DCMAKE_RELWITHDEBINFO_POSTFIX= # fixes FindBullet on MSVC + -DBUILD_CLSOCKET=OFF + -DCMAKE_POLICY_VERSION_MINIMUM=3.5 +) + +add_custom_target(core-deps DEPENDS zlib SDL jpeg-turbo libpng ffmpeg pugixml bullet3 freetype) +add_custom_target(core-deps-static DEPENDS zlib-static SDL-static jpeg-turbo-static libpng-static ffmpeg-static pugixml bullet3-static freetype-static) + ExternalProject_Add(ogre SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ogre CMAKE_ARGS ${OGRE_COMMON_OPTIONS} -DASSIMP_BUILD_ASSIMP_TOOLS=ON -DOGRE_STATIC=FALSE - ${CUSTOM_OPTS} - DEPENDS ffmpeg jpeg-turbo libpng SDL assimp glslang + ${CUSTOM_OPTS} -DCMAKE_BUILD_TYPE=Debug + DEPENDS core-deps freetype assimp glslang ) ExternalProject_Add(ogre-static @@ -228,8 +295,8 @@ ExternalProject_Add(ogre-static ${OGRE_COMMON_OPTIONS} -DASSIMP_BUILD_ASSIMP_TOOLS=ON -DOGRE_STATIC=TRUE - ${CUSTOM_OPTS_STATIC} - DEPENDS ffmpeg-static jpeg-turbo-static libpng-static SDL-static assimp-static glslang-static + ${CUSTOM_OPTS_STATIC} -DCMAKE_BUILD_TYPE=Debug + DEPENDS core-deps-static freetype-static assimp-static glslang-static zlib-static ) ExternalProject_Add(ogre-procedural @@ -267,7 +334,7 @@ ExternalProject_Add(ogrewater CMAKE_ARGS ${CUSTOM_OPTS} INSTALL_COMMAND "" - DEPENDS SDL zlib ogre + DEPENDS core-deps ogre ) ExternalProject_Add(ogrewater-static @@ -275,7 +342,7 @@ ExternalProject_Add(ogrewater-static CMAKE_ARGS ${CUSTOM_OPTS_STATIC} INSTALL_COMMAND "" - DEPENDS SDL-static zlib-static ogre-static + DEPENDS core-deps-static ogre-static ) ExternalProject_Add(flecs @@ -290,15 +357,46 @@ ExternalProject_Add(flecs-static ${CUSTOM_OPTS_STATIC} ) +ExternalProject_Add(jolt + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/jolt/Build + CMAKE_ARGS + ${CUSTOM_OPTS} -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=OFF -DCPP_RTTI_ENABLED=ON -DDEBUG_RENDERER_IN_DISTRIBUTION=ON +) + +ExternalProject_Add(jolt-static + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/jolt/Build + CMAKE_ARGS + ${CUSTOM_OPTS_STATIC} -DCMAKE_BUILD_TYPE=Debug -DCPP_RTTI_ENABLED=ON -DDEBUG_RENDERER_IN_DISTRIBUTION=ON +) + +ExternalProject_Add(json + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/json + CMAKE_ARGS + ${CUSTOM_OPTS} -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=OFF +) + +ExternalProject_Add(json-static + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/json + CMAKE_ARGS + ${CUSTOM_OPTS_STATIC} -DCMAKE_BUILD_TYPE=Debug +) + ExternalProject_Add(world2 SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ogre-projects/world2 CMAKE_ARGS ${CUSTOM_OPTS} -DBLENDER=${CMAKE_CURRENT_BINARY_DIR}/blender-bin/bin/blender - DEPENDS ogre ogre-procedural ogre-pagedgeometry flecs SDL blender + DEPENDS ogre ogre-procedural ogre-pagedgeometry flecs blender json ) ExternalProject_Add(world2-static SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ogre-projects/world2 CMAKE_ARGS ${CUSTOM_OPTS_STATIC} -DBLENDER=${CMAKE_CURRENT_BINARY_DIR}/blender-bin/bin/blender - DEPENDS ogre-static ogre-procedural-static ogre-pagedgeometry-static flecs-static SDL-static blender + DEPENDS ogre-static ogre-procedural-static ogre-pagedgeometry-static flecs-static json-static blender ) +ExternalProject_Add(jolt-demo + SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ogre-projects/jolt-physics + CMAKE_ARGS ${CUSTOM_OPTS_STATIC} -DBLENDER=${CMAKE_CURRENT_BINARY_DIR}/blender-bin/bin/blender -DCMAKE_BUILD_TYPE=Debug + DEPENDS jolt-static ogre-static ogre-procedural-static ogre-pagedgeometry-static flecs-static blender +) + + diff --git a/freetype b/freetype new file mode 160000 index 0000000..23b6cd2 --- /dev/null +++ b/freetype @@ -0,0 +1 @@ +Subproject commit 23b6cd27ff19b70cbf98e058cd2cf0647d5284ff diff --git a/jolt b/jolt new file mode 160000 index 0000000..6a12a14 --- /dev/null +++ b/jolt @@ -0,0 +1 @@ +Subproject commit 6a12a1412ce39479b5a6d18727a7fa16ccbab86f diff --git a/json b/json new file mode 160000 index 0000000..02ac0d6 --- /dev/null +++ b/json @@ -0,0 +1 @@ +Subproject commit 02ac0d6525f2e046f136ca69b5105b4e4f315b2f