CMake changes
This commit is contained in:
1
3rdParty/glfw/CMakeLists.txt
vendored
1
3rdParty/glfw/CMakeLists.txt
vendored
@@ -14,3 +14,4 @@ FetchContent_Declare(
|
||||
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
|
||||
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
|
||||
FetchContent_MakeAvailable(glfw)
|
||||
set(glfw_FOUND ON PARENT_SCOPE)
|
||||
19
3rdParty/glm/CMakeLists.txt
vendored
19
3rdParty/glm/CMakeLists.txt
vendored
@@ -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)
|
||||
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
|
||||
add_compile_definitions(GLM_FORCE_AVX2)
|
||||
else ()
|
||||
add_compile_definitions(GLM_FORCE_INTRINSICS)
|
||||
endif ()
|
||||
target_compile_definitions(${TARGET} PUBLIC GLM_FORCE_AVX2)
|
||||
else ()
|
||||
target_compile_definitions(${TARGET} PUBLIC GLM_FORCE_INTRINSICS)
|
||||
endif ()
|
||||
endfunction()
|
||||
25
3rdParty/imgui/CMakeLists.txt
vendored
25
3rdParty/imgui/CMakeLists.txt
vendored
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
#define GLM_FORECE_DEPTH_ZERO_TO_ONE // TODO handle this better
|
||||
#include <glm/glm.hpp>
|
||||
#include <glm/gtc/type_aligned.hpp>
|
||||
#include <glm/gtc/quaternion.hpp>
|
||||
#include <glm/gtc/matrix_transform.hpp>
|
||||
#include <glm/gtx/quaternion.hpp>
|
||||
|
||||
Reference in New Issue
Block a user