CMake changes

This commit is contained in:
Georg Hagen
2024-05-22 13:54:22 +02:00
parent cdab347bda
commit 640ca59dcd
5 changed files with 24 additions and 48 deletions

View File

@@ -14,3 +14,4 @@ FetchContent_Declare(
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(glfw) FetchContent_MakeAvailable(glfw)
set(glfw_FOUND ON PARENT_SCOPE)

View File

@@ -8,16 +8,21 @@ FetchContent_Declare(
glm glm
EXCLUDE_FROM_ALL EXCLUDE_FROM_ALL
GIT_REPOSITORY ${GLM_REPO} GIT_REPOSITORY ${GLM_REPO}
GIT_TAG 0.9.9.8 GIT_TAG 1.0.1
GIT_SHALLOW TRUE GIT_SHALLOW TRUE
) )
set(GLM_TEST_ENABLE OFF CACHE BOOL "" FORCE) set(GLM_TEST_ENABLE OFF CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(glm) FetchContent_MakeAvailable(glm)
add_compile_definitions(GLM_FORCE_SILENT_WARNINGS)
if (NOT ANDROID AND NOT IOS) 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 # TODO check target architecture first
add_compile_definitions(GLM_FORCE_AVX2) target_compile_definitions(${TARGET} PUBLIC GLM_FORCE_AVX2)
else () else ()
add_compile_definitions(GLM_FORCE_INTRINSICS) target_compile_definitions(${TARGET} PUBLIC GLM_FORCE_INTRINSICS)
endif () endif ()
endfunction()

View File

@@ -24,33 +24,12 @@ add_library(imgui_internal STATIC
${IMGUI_SRC_DIR}/backends/imgui_impl_vulkan.cpp ${IMGUI_SRC_DIR}/backends/imgui_impl_vulkan.cpp
) )
find_package(glfw3) if (glfw_FOUND)
if (glfw3_FOUND)
target_sources(imgui_internal PRIVATE ${IMGUI_SRC_DIR}/backends/imgui_impl_glfw.cpp) target_sources(imgui_internal PRIVATE ${IMGUI_SRC_DIR}/backends/imgui_impl_glfw.cpp)
target_link_libraries(imgui_internal PUBLIC glfw) target_link_libraries(imgui_internal PUBLIC glfw)
endif () endif ()
if (APPLE) SetupVulkan(imgui_internal)
# 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()
target_include_directories(imgui_internal PUBLIC ${Vulkan_INCLUDE_DIR}) target_include_directories(imgui_internal PUBLIC ${Vulkan_INCLUDE_DIR})
target_include_directories(imgui_internal target_include_directories(imgui_internal

View File

@@ -1,5 +1,6 @@
cmake_minimum_required(VERSION 3.28 FATAL_ERROR) cmake_minimum_required(VERSION 3.28 FATAL_ERROR)
include(cmake/VarsFromFile.cmake)
include(cmake/SetCompilerSettings.cmake) include(cmake/SetCompilerSettings.cmake)
include(cmake/SetupVulkan.cmake) include(cmake/SetupVulkan.cmake)
include(cmake/Filter.cmake) include(cmake/Filter.cmake)
@@ -32,6 +33,7 @@ else()
endif() endif()
FilterPlatformPaths(sources) FilterPlatformPaths(sources)
SetWarningSettings(openVulkanoCpp) SetWarningSettings(openVulkanoCpp)
set_property(TARGET openVulkanoCpp PROPERTY CXX_STANDARD 17)
target_sources(openVulkanoCpp PRIVATE ${sources}) target_sources(openVulkanoCpp PRIVATE ${sources})
target_include_directories(openVulkanoCpp PUBLIC openVulkanoCpp) target_include_directories(openVulkanoCpp PUBLIC openVulkanoCpp)
@@ -74,20 +76,15 @@ if(IOS)
target_link_libraries(openVulkanoCpp PRIVATE ${SYSTEMCONFIGURATION}) target_link_libraries(openVulkanoCpp PRIVATE ${SYSTEMCONFIGURATION})
endif () endif ()
#Setup Vulkan
SetupVulkan(openVulkanoCpp) SetupVulkan(openVulkanoCpp)
set_property(TARGET openVulkanoCpp PROPERTY CXX_STANDARD 17)
if (NOT ANDROID AND NOT IOS) if (NOT ANDROID AND NOT IOS)
Find_Package(libjpeg-turbo) Find_Package(libjpeg-turbo)
target_include_directories(openVulkanoCpp PRIVATE ${OpenCV_INCLUDE_DIRS}) target_link_libraries(openVulkanoCpp PRIVATE glfw pugixml)
target_link_libraries(openVulkanoCpp PRIVATE glfw ${OpenCV_LIBS} pugixml)
if (libjpeg-turbo_FOUND) if (libjpeg-turbo_FOUND)
target_link_libraries(openVulkanoCpp PRIVATE libjpeg-turbo::turbojpeg) target_link_libraries(openVulkanoCpp PRIVATE libjpeg-turbo::turbojpeg)
endif() endif()
target_link_libraries(openVulkanoCpp PRIVATE assimp) target_link_libraries(openVulkanoCpp PRIVATE assimp)
add_compile_definitions(GLM_FORCE_AVX2)
target_link_libraries(openVulkanoCpp PRIVATE ftxui::screen ftxui::dom ftxui::component) target_link_libraries(openVulkanoCpp PRIVATE ftxui::screen ftxui::dom ftxui::component)
endif() endif()
@@ -97,23 +94,16 @@ if (IOS)
target_include_directories(openVulkanoCpp PRIVATE "/opt/libjpeg-turbo-ios/include") target_include_directories(openVulkanoCpp PRIVATE "/opt/libjpeg-turbo-ios/include")
endif () endif ()
if (LINUX)
find_package(spdlog)
find_package(fmt)
find_package(yaml-cpp)
target_link_libraries(openVulkanoCpp PRIVATE fmt)
endif()
find_package(LibArchive REQUIRED) find_package(LibArchive REQUIRED)
set(ZLIB_USE_STATIC_LIBS ON) set(ZLIB_USE_STATIC_LIBS ON)
find_package(ZLIB REQUIRED) find_package(ZLIB REQUIRED)
target_include_directories(openVulkanoCpp PRIVATE ${LibArchive_INCLUDE_DIR}) 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) add_compile_definitions(LIBARCHIVE_STATIC)
if(CMAKE_BUILD_TYPE STREQUAL "Debug") if(CMAKE_BUILD_TYPE STREQUAL "Debug")
add_compile_definitions(DEBUG) add_compile_definitions(DEBUG)
endif() endif()
SetGlmDefines(openVulkanoCpp)

View File

@@ -8,6 +8,7 @@
#define GLM_FORECE_DEPTH_ZERO_TO_ONE // TODO handle this better #define GLM_FORECE_DEPTH_ZERO_TO_ONE // TODO handle this better
#include <glm/glm.hpp> #include <glm/glm.hpp>
#include <glm/gtc/type_aligned.hpp>
#include <glm/gtc/quaternion.hpp> #include <glm/gtc/quaternion.hpp>
#include <glm/gtc/matrix_transform.hpp> #include <glm/gtc/matrix_transform.hpp>
#include <glm/gtx/quaternion.hpp> #include <glm/gtx/quaternion.hpp>