diff --git a/.gitmodules b/.gitmodules index 61254c051d8768022c987c93ab363fd561b386b6..0f59df115d3205bafe74abe4b67a7fef1cb22ee3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,18 @@ [submodule "extern/glm"] path = extern/glm url = https://github.com/g-truc/glm.git +[submodule "extern/glfw"] + path = extern/glfw + url = https://github.com/glfw/glfw.git +[submodule "extern/glow"] + path = extern/glow + url = https://www.graphics.rwth-aachen.de:9000/Glow/glow.git +[submodule "extern/glow-extras"] + path = extern/glow-extras + url = https://www.graphics.rwth-aachen.de:9000/Glow/glow-extras.git +[submodule "extern/imgui-lean"] + path = extern/imgui-lean + url = https://www.graphics.rwth-aachen.de:9000/ptrettner/imgui-lean.git +[submodule "extern/ctracer"] + path = extern/ctracer + url = https://www.graphics.rwth-aachen.de:9000/ptrettner/ctracer.git diff --git a/CMakeLists.txt b/CMakeLists.txt index fc6cabbbb9a0dd00119f909396f8e34c7e907113..b0f97b62601aa4646e3e7ec41f8ba5417ee57d09 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,11 +12,6 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON) option(PM_BUILD_TESTS "Build polymesh tests" OFF) -option(PM_FORCE_CPP14 "Build samples and tests with C++14" OFF) - -if (PM_FORCE_CPP14) - set(CMAKE_CXX_STANDARD 14) -endif() # ============================================================================== # Set bin dir @@ -34,6 +29,9 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${BIN_DIR}) # =============================================== # Dependencies +# profiling library +add_subdirectory(extern/ctracer) + # glm add_library(glm INTERFACE) target_include_directories(glm INTERFACE extern/glm) @@ -43,22 +41,38 @@ target_compile_definitions(glm INTERFACE GLM_FORCE_CTOR_INIT # 0.9.9 breaks a lot otherwise ) +# Add GLFW lib (with disabled spam) +option(GLFW_BUILD_EXAMPLES "" OFF) +option(GLFW_BUILD_TESTS "" OFF) +option(GLFW_BUILD_DOCS "" OFF) +option(GLFW_INSTALL "" OFF) +add_subdirectory(extern/glfw) + # math library add_subdirectory(extern/typed-geometry) # mesh library add_subdirectory(extern/polymesh) +# opengl library +add_subdirectory(extern/glow) + +# UI library +add_subdirectory(extern/imgui-lean) + +# glow extras +add_subdirectory(extern/glow-extras) + # =============================================== # Compile flags if (MSVC) - set(SAMPLE_FLAGS + set(SAMPLE_FLAGS /MP ) else() - set(SAMPLE_FLAGS + set(SAMPLE_FLAGS -Wall -Wno-unused-variable ) @@ -113,6 +127,11 @@ if (PM_BUILD_TESTS) target_link_libraries(pm-tests PUBLIC typed-geometry polymesh + ctracer + glfw + imgui + glow + glow-extras ) target_include_directories(pm-tests PUBLIC "tests") @@ -129,7 +148,7 @@ foreach(TARGET_NAME polymesh typed-geometry-src ) - if (TARGET ${TARGET_NAME}) - set_property(TARGET ${TARGET_NAME} PROPERTY FOLDER "Extern") + if (TARGET ${TARGET_NAME}) + set_property(TARGET ${TARGET_NAME} PROPERTY FOLDER "Extern") endif() endforeach() diff --git a/extern/ctracer b/extern/ctracer new file mode 160000 index 0000000000000000000000000000000000000000..56d33f9b69854c7339e8ddd71fe81095ddd5cc41 --- /dev/null +++ b/extern/ctracer @@ -0,0 +1 @@ +Subproject commit 56d33f9b69854c7339e8ddd71fe81095ddd5cc41 diff --git a/extern/glfw b/extern/glfw new file mode 160000 index 0000000000000000000000000000000000000000..7f02898264d6077738f0e8032f027eb7e252c90e --- /dev/null +++ b/extern/glfw @@ -0,0 +1 @@ +Subproject commit 7f02898264d6077738f0e8032f027eb7e252c90e diff --git a/extern/glow b/extern/glow new file mode 160000 index 0000000000000000000000000000000000000000..af31c1cccb3fcdac0ed05517654b122b138de73a --- /dev/null +++ b/extern/glow @@ -0,0 +1 @@ +Subproject commit af31c1cccb3fcdac0ed05517654b122b138de73a diff --git a/extern/glow-extras b/extern/glow-extras new file mode 160000 index 0000000000000000000000000000000000000000..0b6506e3f67f3ea84ec8e54560ede9abc10051d2 --- /dev/null +++ b/extern/glow-extras @@ -0,0 +1 @@ +Subproject commit 0b6506e3f67f3ea84ec8e54560ede9abc10051d2 diff --git a/extern/imgui-lean b/extern/imgui-lean new file mode 160000 index 0000000000000000000000000000000000000000..11db8750f990c6ae1a09fb21f7031d7d177fe4c1 --- /dev/null +++ b/extern/imgui-lean @@ -0,0 +1 @@ +Subproject commit 11db8750f990c6ae1a09fb21f7031d7d177fe4c1 diff --git a/extern/polymesh b/extern/polymesh index 384f659443ccd40c3bc355d79fd7333d6cf399db..f1ec496eb60b71f4bbc4f53ebb9b646b5c08a63f 160000 --- a/extern/polymesh +++ b/extern/polymesh @@ -1 +1 @@ -Subproject commit 384f659443ccd40c3bc355d79fd7333d6cf399db +Subproject commit f1ec496eb60b71f4bbc4f53ebb9b646b5c08a63f diff --git a/extern/typed-geometry b/extern/typed-geometry index d00bebc1b4e0428a22c89c9c73403e29ed687ae7..650e30988351cf11f15141347c867a223d80f728 160000 --- a/extern/typed-geometry +++ b/extern/typed-geometry @@ -1 +1 @@ -Subproject commit d00bebc1b4e0428a22c89c9c73403e29ed687ae7 +Subproject commit 650e30988351cf11f15141347c867a223d80f728