diff --git a/.gitmodules b/.gitmodules index 7a552430..c345e54a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,12 @@ [submodule "modules/rapidjson"] path = modules/rapidjson url = https://github.com/Tencent/rapidjson +[submodule "modules/glew"] + path = modules/glew + url = https://github.com/Perlmint/glew-cmake +[submodule "modules/glfw"] + path = modules/glfw + url = https://github.com/glfw/glfw +[submodule "toolset/model_converter/modules/assimp"] + path = toolset/model_converter/modules/assimp + url = https://github.com/assimp/assimp diff --git a/CMakeLists.txt b/CMakeLists.txt index d0991d1a..978f6a4c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -91,37 +91,15 @@ if(APPLE) find_library(Foundation Foundation) endif(APPLE) -# -# fetch 3rd party -# +set(glew-cmake_BUILD_SHARED OFF CACHE BOOL "" FORCE) +set(glew-cmake_BUILD_MULTI_CONTEXT OFF CACHE BOOL "" FORCE) +add_subdirectory(modules/glew) -include(FetchContent) - -FetchContent_Declare( - glew - GIT_REPOSITORY https://github.com/Perlmint/glew-cmake) -FetchContent_Declare( - glfw - GIT_REPOSITORY https://github.com/glfw/glfw) - -FetchContent_GetProperties(glew) -FetchContent_GetProperties(glfw) - -if(NOT glew_POPULATED) - FetchContent_Populate(glew) - set(glew-cmake_BUILD_SHARED OFF CACHE BOOL "" FORCE) - set(glew-cmake_BUILD_MULTI_CONTEXT OFF CACHE BOOL "" FORCE) - add_subdirectory(${glew_SOURCE_DIR} ${glew_BINARY_DIR}) -endif() - -if(NOT glfw_POPULATED) - FetchContent_Populate(glfw) - set(GLFW_INSTALL OFF CACHE BOOL "" FORCE) - set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE) - set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) - set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) - add_subdirectory(${glfw_SOURCE_DIR} ${glfw_BINARY_DIR}) -endif() +set(GLFW_INSTALL OFF CACHE BOOL "" FORCE) +set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE) +set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) +set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) +add_subdirectory(modules/glfw) # # e2d library target @@ -140,8 +118,8 @@ source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES target_include_directories(${PROJECT_NAME} PRIVATE headers PRIVATE sources - PRIVATE ${glew_SOURCE_DIR}/include - PRIVATE ${glfw_SOURCE_DIR}/include) + PRIVATE modules/glew/include + PRIVATE modules/glfw/include) set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 14 diff --git a/modules/glew b/modules/glew new file mode 160000 index 00000000..6dbc9407 --- /dev/null +++ b/modules/glew @@ -0,0 +1 @@ +Subproject commit 6dbc9407729d653e4d254b772c66af138b00617c diff --git a/modules/glfw b/modules/glfw new file mode 160000 index 00000000..f9923e90 --- /dev/null +++ b/modules/glfw @@ -0,0 +1 @@ +Subproject commit f9923e90958e726aaabc86d83fb3681216d76067 diff --git a/toolset/model_converter/CMakeLists.txt b/toolset/model_converter/CMakeLists.txt index 86daea83..bf5d0aef 100644 --- a/toolset/model_converter/CMakeLists.txt +++ b/toolset/model_converter/CMakeLists.txt @@ -1,23 +1,11 @@ # -# fetch 3rd party +# external 3rd party # -include(FetchContent) - -FetchContent_Declare( - assimp - GIT_REPOSITORY https://github.com/assimp/assimp) - -FetchContent_GetProperties(assimp) - -if(NOT assimp_POPULATED) - FetchContent_Populate(assimp) - set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) - set(ASSIMP_NO_EXPORT ON CACHE BOOL "" FORCE) - set(ASSIMP_BUILD_TESTS OFF CACHE BOOL "" FORCE) - set(ASSIMP_BUILD_ASSIMP_TOOLS OFF CACHE BOOL "" FORCE) - add_subdirectory(${assimp_SOURCE_DIR} ${assimp_BINARY_DIR}) -endif() +set(ASSIMP_NO_EXPORT ON CACHE BOOL "" FORCE) +set(ASSIMP_BUILD_TESTS OFF CACHE BOOL "" FORCE) +set(ASSIMP_BUILD_ASSIMP_TOOLS OFF CACHE BOOL "" FORCE) +add_subdirectory(modules/assimp) # # model converter executable @@ -35,10 +23,6 @@ add_executable(model_converter target_link_libraries(model_converter assimp) -target_include_directories(model_converter - PRIVATE ${assimp_SOURCE_DIR}/include - PRIVATE ${assimp_BINARY_DIR}/include) - set_target_properties(model_converter PROPERTIES CXX_STANDARD 14 CXX_STANDARD_REQUIRED YES diff --git a/toolset/model_converter/modules/assimp b/toolset/model_converter/modules/assimp new file mode 160000 index 00000000..d7eae5bb --- /dev/null +++ b/toolset/model_converter/modules/assimp @@ -0,0 +1 @@ +Subproject commit d7eae5bb1384025b3e7e7812fd45195970d79917