summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2022-02-19 17:23:21 +0100
committerStanislaw Halik <sthalik@misaki.pl>2022-02-19 17:23:21 +0100
commitef7d3528ef51f02307717a5ec65b49c913d677a6 (patch)
tree31791a5e2977ea9516d4beb79037b622969fd57e
parent3e588414970c69985cf5197e10d4996af29bd7a6 (diff)
add support for building Magnum as subproject
This makes Magnum's `.cpp` files available for clangd.
-rw-r--r--.gitmodules15
-rw-r--r--CMakeLists.txt54
m---------corrade0
m---------magnum0
m---------magnum-integration0
m---------magnum-plugins0
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