diff --git a/.gitmodules b/.gitmodules index 0ff41c15..7a552430 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,12 +7,6 @@ [submodule "modules/utfcpp"] path = modules/utfcpp url = https://github.com/nemtrif/utfcpp -[submodule "modules/glfw"] - path = modules/glfw - url = https://github.com/glfw/glfw -[submodule "modules/glew"] - path = modules/glew - url = https://github.com/Perlmint/glew-cmake [submodule "modules/variant"] path = modules/variant url = https://github.com/mpark/variant diff --git a/CMakeLists.txt b/CMakeLists.txt index f80f2b96..edfb1ff2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -91,15 +91,50 @@ if(APPLE) find_library(Foundation Foundation) endif(APPLE) -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) +# +# 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( + assimp + GIT_REPOSITORY https://github.com/assimp/assimp) +FetchContent_Declare( + glew + GIT_REPOSITORY https://github.com/Perlmint/glew-cmake) +FetchContent_Declare( + glfw + GIT_REPOSITORY https://github.com/glfw/glfw) + +FetchContent_GetProperties(assimp) +FetchContent_GetProperties(glew) +FetchContent_GetProperties(glfw) + +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() + +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() # # e2d library target @@ -118,9 +153,10 @@ source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES target_include_directories(${PROJECT_NAME} PRIVATE headers PRIVATE sources - PRIVATE modules/glew/include - PRIVATE modules/glfw/include - PRIVATE ${OPENGL_INCLUDE_DIR}) + PRIVATE ${assimp_SOURCE_DIR}/include + PRIVATE ${assimp_BINARY_DIR}/include + PRIVATE ${glew_SOURCE_DIR}/include + PRIVATE ${glfw_SOURCE_DIR}/include) set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 14 diff --git a/modules/glew b/modules/glew deleted file mode 160000 index 6dbc9407..00000000 --- a/modules/glew +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6dbc9407729d653e4d254b772c66af138b00617c diff --git a/modules/glfw b/modules/glfw deleted file mode 160000 index 53c8c72c..00000000 --- a/modules/glfw +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 53c8c72c676ca97c10aedfe3d0eb4271c5b23dba