From d0643946ccfc3eb060ef126f075c321c4443795c Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Sat, 3 Aug 2024 19:34:37 +0200 Subject: [PATCH] Update CMake for iOS build --- CMakeLists.txt | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b7aebc2..cbc96f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,20 +41,26 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/TryCompileShaders.cmake.in ${CM execute_process(COMMAND ${BASH_EXECUTABLE} CompileShaders.sh "${SHADER_OUTPUT_DEST}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Scripts) file(GLOB GENERATED_SHADER_SOURCES "${SHADER_OUTPUT_DEST}/*") +set(MAIN_FILE examples/main.cpp) +if (IOS) + set(MAIN_FILE examples/Host/iOS/main.mm) +endif () + +file(GLOB_RECURSE sources CONFIGURE_DEPENDS "openVulkanoCpp/*.h" "openVulkanoCpp/*.c" "openVulkanoCpp/*.hpp" "openVulkanoCpp/*.cpp" "examples/*.hpp" "examples/*.cpp") + if(APPLE) - file(GLOB_RECURSE sources CONFIGURE_DEPENDS "openVulkanoCpp/*.mm" "openVulkanoCpp/*.m" "openVulkanoCpp/*.c" "openVulkanoCpp/*.cpp" "examples/*.hpp" "examples/*.cpp") - add_executable(openVulkanoCpp examples/main.cpp ${resources} ${GENERATED_SHADER_SOURCES}) -else() - file(GLOB_RECURSE sources CONFIGURE_DEPENDS "openVulkanoCpp/*.h" "openVulkanoCpp/*.c" "openVulkanoCpp/*.hpp" "openVulkanoCpp/*.cpp" "examples/*.hpp" "examples/*.cpp") - file(GLOB SHADER_SRC_FILES ${ROOT_FOLDER}/openVulkanoCpp/Shader/*) - list(FILTER SHADER_SRC_FILES EXCLUDE REGEX ".*\\.(hpp|cpp)$") - add_executable(openVulkanoCpp examples/main.cpp ${SHADER_SRC_FILES} ${GENERATED_SHADER_SOURCES}) - if (MSVC) - set_property(GLOBAL PROPERTY USE_FOLDERS ON) - source_group("Shaders" FILES ${SHADER_SRC_FILES}) - endif() + file(GLOB_RECURSE sources_obj CONFIGURE_DEPENDS "openVulkanoCpp/*.mm" "openVulkanoCpp/*.m" "examples/*.m" "examples/*.mm") + list(APPEND sources ${sources_obj}) endif() +file(GLOB SHADER_SRC_FILES ${ROOT_FOLDER}/openVulkanoCpp/Shader/*) +list(FILTER SHADER_SRC_FILES EXCLUDE REGEX ".*\\.(hpp|cpp)$") + +add_executable(openVulkanoCpp ${MAIN_FILE} ${SHADER_SRC_FILES} ${GENERATED_SHADER_SOURCES}) + +set_property(GLOBAL PROPERTY USE_FOLDERS ON) +source_group("Shaders" FILES ${SHADER_SRC_FILES}) + FilterPlatformPaths(sources) SetWarningSettings(openVulkanoCpp) set_property(TARGET openVulkanoCpp PROPERTY CXX_STANDARD 20) @@ -69,7 +75,13 @@ if(IOS) set(MACOSX_BUNDLE_GUI_IDENTIFIER ${APP_BUNDLE_IDENTIFIER}) set(MACOSX_BUNDLE_BUNDLE_NAME ${APP_BUNDLE_IDENTIFIER}) - set(CMAKE_OSX_DEPLOYMENT_TARGET "14.1") # The used ARKit features are only available starting with iOS 14 + set(CMAKE_OSX_DEPLOYMENT_TARGET "16") # The used ARKit features are only available starting with iOS 16 + + set(CMAKE_XCODE_EMBED_FRAMEWORKS ON) + + set_target_properties(openVulkanoCpp PROPERTIES + XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "466MGSD624" + ) endif() if(APPLE) LinkAppleFrameworks(openVulkanoCpp) @@ -107,7 +119,9 @@ endif() list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/deps/INSTALL) target_link_libraries(openVulkanoCpp PRIVATE magic_enum yaml-cpp fmt spdlog glm pugixml stb eigen utf8cpp imgui_internal TracyClient stud-uuid ryml unordered_dense Boost::regex units) -LinkCurl(openVulkanoCpp) +if (NOT IOS) + LinkCurl(openVulkanoCpp) +endif() add_compile_definitions(LIBARCHIVE_STATIC) add_compile_definitions(NOMINMAX)