diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2022-02-19 17:23:21 +0100 |
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-02-19 17:23:21 +0100 |
| commit | ef7d3528ef51f02307717a5ec65b49c913d677a6 (patch) | |
| tree | 31791a5e2977ea9516d4beb79037b622969fd57e | |
| parent | 3e588414970c69985cf5197e10d4996af29bd7a6 (diff) | |
add support for building Magnum as subproject
This makes Magnum's `.cpp` files available for clangd.
| -rw-r--r-- | .gitmodules | 15 | ||||
| -rw-r--r-- | CMakeLists.txt | 54 | ||||
| m--------- | corrade | 0 | ||||
| m--------- | magnum | 0 | ||||
| m--------- | magnum-integration | 0 | ||||
| m--------- | magnum-plugins | 0 |
6 files changed, 43 insertions, 26 deletions
diff --git a/.gitmodules b/.gitmodules index 86f6dea8..fd506584 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,12 @@ -[submodule "glm"] - path = glm - url = https://github.com/g-truc/glm.git +[submodule "magnum"] + path = magnum + url = https://github.com/mosra/magnum +[submodule "magnum-plugins"] + path = magnum-plugins + url = https://github.com/mosra/magnum-plugins +[submodule "magnum-integration"] + path = magnum-integration + url = https://github.com/mosra/magnum-integration +[submodule "corrade"] + path = corrade + url = https://github.com/mosra/corrade diff --git a/CMakeLists.txt b/CMakeLists.txt index db5ac019..2a918b30 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,13 +24,6 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR CMAKE_INSTALL_PREFIX STREQUAL set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "" FORCE) endif() -set(_userconfig "userconfig-${CMAKE_CXX_COMPILER_ID}.cmake") -if(EXISTS "${CMAKE_SOURCE_DIR}/${_userconfig}") - include("${CMAKE_SOURCE_DIR}/${_userconfig}") -else() - message(STATUS "user config '${_userconfig}' not found") -endif() - if(MSVC) add_compile_options(-EHsc) endif() @@ -39,25 +32,40 @@ if(WIN32) add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES=1 -DNOMINMAX -DWIN32_LEAN_AND_MEAN) endif() -include_directories("glm") - -find_package(SDL2 QUIET) -find_package(Corrade REQUIRED) -find_package(Magnum REQUIRED GL Shaders WglContext Sdl2Application Trade) - set_directory_properties(PROPERTIES CORRADE_USE_PEDANTIC_FLAGS OFF) set_directory_properties(PROPERTIES CORRADE_CXX_STANDARD 20) set_directory_properties(PROPERTIES INTERFACE_CORRADE_CXX_STANDARD 20) -corrade_add_resource(TexturedQuad_RESOURCES resources.conf) +set(_userconfig "userconfig-${CMAKE_CXX_COMPILER_ID}.cmake") +if(EXISTS "${CMAKE_SOURCE_DIR}/${_userconfig}") + include("${CMAKE_SOURCE_DIR}/${_userconfig}") +else() + message(STATUS "user config '${_userconfig}' not found") +endif() -file(GLOB sources "*.cpp" CONFIGURE_ARGS) -add_executable(magnum-triangle WIN32 "${sources}" "${TexturedQuad_RESOURCES}") -target_link_libraries(magnum-triangle PRIVATE - Magnum::Application - Magnum::GL - Magnum::Magnum - Magnum::Shaders - Magnum::Trade) +if(NOT DEFINED BOOTSTRAP_DEPENDS) + set(BOOTSTRAP_DEPENDS "$ENV{BOOTSTRAP_DEPENDS}") +endif() + +if(NOT BOOTSTRAP_DEPENDS) + find_package(Corrade QUIET REQUIRED) + find_package(Magnum COMPONENTS GL Shaders Trade Sdl2Application QUIET REQUIRED) + find_package(MagnumPlugins QUIET REQUIRED) + find_package(MagnumIntegration COMPONENTS Glm QUIET REQUIRED) -install(TARGETS DESTINATION .) + corrade_add_resource(TexturedQuad_RESOURCES resources.conf) + file(GLOB sources "*.cpp" CONFIGURE_ARGS) + + add_executable(${PROJECT_NAME} WIN32 "${sources}" "${TexturedQuad_RESOURCES}") + target_link_libraries(${PROJECT_NAME} PRIVATE + Magnum::Application + Magnum::GL + Magnum::Magnum + Magnum::Shaders + Magnum::Trade + MagnumIntegration::Glm) + target_include_directories(${PROJECT_NAME} PRIVATE ${GLM_INCLUDE_DIRS}) + target_include_directories(${PROJECT_NAME} PRIVATE magnum-integration/src) + install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin) + install(DIRECTORY images DESTINATION "share/${PROJECT_NAME}") +endif() diff --git a/corrade b/corrade new file mode 160000 +Subproject f2d56f700ac1d1d0d0b665fba4a7846ce4c168f diff --git a/magnum b/magnum new file mode 160000 +Subproject aef0ee4bfba8dd0e6b23bee4e170faf66c3e0e9 diff --git a/magnum-integration b/magnum-integration new file mode 160000 +Subproject f29c091b0b699cdd092c9b80b4cb5535cf48175 diff --git a/magnum-plugins b/magnum-plugins new file mode 160000 +Subproject 0e11d4110eebe8a5a23a206fd6183b6a4b34330 |
