From 640ca59dcd244e85a890734b7536acc55efe3254 Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Wed, 22 May 2024 13:54:22 +0200 Subject: [PATCH] CMake changes --- 3rdParty/glfw/CMakeLists.txt | 3 ++- 3rdParty/glm/CMakeLists.txt | 21 +++++++++++++-------- 3rdParty/imgui/CMakeLists.txt | 25 ++----------------------- CMakeLists.txt | 22 ++++++---------------- openVulkanoCpp/Math/Math.hpp | 1 + 5 files changed, 24 insertions(+), 48 deletions(-) diff --git a/3rdParty/glfw/CMakeLists.txt b/3rdParty/glfw/CMakeLists.txt index 15ccd6c..0ff8d20 100644 --- a/3rdParty/glfw/CMakeLists.txt +++ b/3rdParty/glfw/CMakeLists.txt @@ -13,4 +13,5 @@ FetchContent_Declare( ) set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) -FetchContent_MakeAvailable(glfw) \ No newline at end of file +FetchContent_MakeAvailable(glfw) +set(glfw_FOUND ON PARENT_SCOPE) \ No newline at end of file diff --git a/3rdParty/glm/CMakeLists.txt b/3rdParty/glm/CMakeLists.txt index 6886ec0..bab40a1 100644 --- a/3rdParty/glm/CMakeLists.txt +++ b/3rdParty/glm/CMakeLists.txt @@ -8,16 +8,21 @@ FetchContent_Declare( glm EXCLUDE_FROM_ALL GIT_REPOSITORY ${GLM_REPO} - GIT_TAG 0.9.9.8 + GIT_TAG 1.0.1 GIT_SHALLOW TRUE ) set(GLM_TEST_ENABLE OFF CACHE BOOL "" FORCE) FetchContent_MakeAvailable(glm) -add_compile_definitions(GLM_FORCE_SILENT_WARNINGS) -if (NOT ANDROID AND NOT IOS) - # TODO check target architecture first - add_compile_definitions(GLM_FORCE_AVX2) -else () - add_compile_definitions(GLM_FORCE_INTRINSICS) -endif () \ No newline at end of file +function(SetGlmDefines TARGET) + target_compile_definitions(${TARGET} PUBLIC GLM_FORCE_SILENT_WARNINGS) + target_compile_definitions(${TARGET} PUBLIC GLM_ENABLE_EXPERIMENTAL) + target_compile_definitions(${TARGET} PUBLIC GLM_FORCE_ALIGNED_GENTYPES) + + if (NOT ANDROID AND NOT IOS) + # TODO check target architecture first + target_compile_definitions(${TARGET} PUBLIC GLM_FORCE_AVX2) + else () + target_compile_definitions(${TARGET} PUBLIC GLM_FORCE_INTRINSICS) + endif () +endfunction() \ No newline at end of file diff --git a/3rdParty/imgui/CMakeLists.txt b/3rdParty/imgui/CMakeLists.txt index 1682ca7..5f0ae37 100644 --- a/3rdParty/imgui/CMakeLists.txt +++ b/3rdParty/imgui/CMakeLists.txt @@ -24,33 +24,12 @@ add_library(imgui_internal STATIC ${IMGUI_SRC_DIR}/backends/imgui_impl_vulkan.cpp ) -find_package(glfw3) -if (glfw3_FOUND) +if (glfw_FOUND) target_sources(imgui_internal PRIVATE ${IMGUI_SRC_DIR}/backends/imgui_impl_glfw.cpp) target_link_libraries(imgui_internal PUBLIC glfw) endif () -if (APPLE) - # Try to find xcframework of MoltenVK - cmake_path(SET MoltenVK_path NORMALIZE "$ENV{VULKAN_SDK}/../MoltenVK/") - cmake_path(SET MoltenVK_XC_path NORMALIZE "$ENV{VULKAN_SDK}/../MoltenVK/MoltenVK.xcframework") - if (EXISTS "${MoltenVK_path}" AND EXISTS "${MoltenVK_XC_path}") - if (EXISTS "${MoltenVK_path}/include") - set(Vulkan_INCLUDE_DIR "${MoltenVK_path}/include") - endif() - - target_link_libraries(imgui_internal PRIVATE "${MoltenVK_XC_path}/ios-arm64/libMoltenVK.a") - message("Found MoltenVK xcframework: ${MoltenVK_XC_path}") - endif() - - if (NOT ${Vulkan_INCLUDE_DIR}) - #find_package(Vulkan REQUIRED COMPONENTS MoltenVK) - #target_link_libraries(imgui_internal PRIVATE Vulkan::MoltenVK) - endif() -else () - find_package(Vulkan REQUIRED) - target_link_libraries(imgui_internal PRIVATE Vulkan::Vulkan) -endif() +SetupVulkan(imgui_internal) target_include_directories(imgui_internal PUBLIC ${Vulkan_INCLUDE_DIR}) target_include_directories(imgui_internal diff --git a/CMakeLists.txt b/CMakeLists.txt index e555ef4..62d4b29 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 3.28 FATAL_ERROR) +include(cmake/VarsFromFile.cmake) include(cmake/SetCompilerSettings.cmake) include(cmake/SetupVulkan.cmake) include(cmake/Filter.cmake) @@ -32,6 +33,7 @@ else() endif() FilterPlatformPaths(sources) SetWarningSettings(openVulkanoCpp) +set_property(TARGET openVulkanoCpp PROPERTY CXX_STANDARD 17) target_sources(openVulkanoCpp PRIVATE ${sources}) target_include_directories(openVulkanoCpp PUBLIC openVulkanoCpp) @@ -74,20 +76,15 @@ if(IOS) target_link_libraries(openVulkanoCpp PRIVATE ${SYSTEMCONFIGURATION}) endif () -#Setup Vulkan SetupVulkan(openVulkanoCpp) -set_property(TARGET openVulkanoCpp PROPERTY CXX_STANDARD 17) - if (NOT ANDROID AND NOT IOS) Find_Package(libjpeg-turbo) - target_include_directories(openVulkanoCpp PRIVATE ${OpenCV_INCLUDE_DIRS}) - target_link_libraries(openVulkanoCpp PRIVATE glfw ${OpenCV_LIBS} pugixml) + target_link_libraries(openVulkanoCpp PRIVATE glfw pugixml) if (libjpeg-turbo_FOUND) target_link_libraries(openVulkanoCpp PRIVATE libjpeg-turbo::turbojpeg) endif() target_link_libraries(openVulkanoCpp PRIVATE assimp) - add_compile_definitions(GLM_FORCE_AVX2) target_link_libraries(openVulkanoCpp PRIVATE ftxui::screen ftxui::dom ftxui::component) endif() @@ -97,23 +94,16 @@ if (IOS) target_include_directories(openVulkanoCpp PRIVATE "/opt/libjpeg-turbo-ios/include") endif () -if (LINUX) - find_package(spdlog) - find_package(fmt) - find_package(yaml-cpp) - target_link_libraries(openVulkanoCpp PRIVATE fmt) -endif() - find_package(LibArchive REQUIRED) set(ZLIB_USE_STATIC_LIBS ON) find_package(ZLIB REQUIRED) target_include_directories(openVulkanoCpp PRIVATE ${LibArchive_INCLUDE_DIR}) -target_link_libraries(openVulkanoCpp PRIVATE magic_enum yaml-cpp spdlog glm pugixml ${LibArchive_LIBRARIES} ${ZLIB_LIBRARIES} stb eigen utf8cpp imgui_internal TracyClient stud-uuid) +target_link_libraries(openVulkanoCpp PRIVATE magic_enum yaml-cpp fmt spdlog glm pugixml ${LibArchive_LIBRARIES} ${ZLIB_LIBRARIES} stb eigen utf8cpp imgui_internal TracyClient stud-uuid) -add_compile_definitions(GLM_FORCE_INTRINSICS) -add_compile_definitions(GLM_FORCE_SILENT_WARNINGS) add_compile_definitions(LIBARCHIVE_STATIC) if(CMAKE_BUILD_TYPE STREQUAL "Debug") add_compile_definitions(DEBUG) endif() + +SetGlmDefines(openVulkanoCpp) \ No newline at end of file diff --git a/openVulkanoCpp/Math/Math.hpp b/openVulkanoCpp/Math/Math.hpp index 1f580d9..6c4d115 100644 --- a/openVulkanoCpp/Math/Math.hpp +++ b/openVulkanoCpp/Math/Math.hpp @@ -8,6 +8,7 @@ #define GLM_FORECE_DEPTH_ZERO_TO_ONE // TODO handle this better #include +#include #include #include #include