Files
OpenVulkano/examples/CMakeLists.txt
2024-08-14 22:47:19 +02:00

46 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.28 FATAL_ERROR)
include(SetupVulkan)
include(Utils)
include(CopyResourcesToExe)
file(GLOB_RECURSE SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/ExampleApps/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/*.h" "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp")
if (IOS)
file(GLOB_RECURSE SRC_IOS "${CMAKE_CURRENT_SOURCE_DIR}/Host/iOS/*.h" "${CMAKE_CURRENT_SOURCE_DIR}/Host/iOS/*.hpp" "${CMAKE_CURRENT_SOURCE_DIR}/Host/iOS/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/Host/iOS/*.m" "${CMAKE_CURRENT_SOURCE_DIR}/Host/iOS/*.mm")
list(APPEND SOURCES ${SRC_IOS})
endif ()
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" FILES ${SOURCES})
set(MAIN_FILE main.cpp)
if (IOS)
set(MAIN_FILE Host/iOS/main.mm)
endif ()
add_executable(OpenVulkano_Examples ${MAIN_FILE} ${SOURCES})
set_property(TARGET OpenVulkano_Examples PROPERTY CXX_STANDARD 20)
# Setup IOS
if(IOS)
set(APP_BUNDLE_IDENTIFIER "eu.georgh93.openVulkano")
set(MACOSX_BUNDLE_INFO_STRING ${APP_BUNDLE_IDENTIFIER})
set(MACOSX_BUNDLE_GUI_IDENTIFIER ${APP_BUNDLE_IDENTIFIER})
set(MACOSX_BUNDLE_BUNDLE_NAME ${APP_BUNDLE_IDENTIFIER})
set(CMAKE_OSX_DEPLOYMENT_TARGET ${DEPLOYMENT_TARGET})
set(CMAKE_XCODE_EMBED_FRAMEWORKS ON)
set_target_properties(OpenVulkano_Examples PROPERTIES XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "466MGSD624")
endif()
if(APPLE)
LinkAppleFrameworks(OpenVulkano_Examples)
endif ()
CopyResourcesToExe(openVulkanoCpp "${CMAKE_CURRENT_SOURCE_DIR}/../fonts" ".ttf")
CopyResourcesToExe(openVulkanoCpp "${CMAKE_CURRENT_SOURCE_DIR}/ExampleSources" "*")
target_include_directories(OpenVulkano_Examples PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(OpenVulkano_Examples PRIVATE openVulkanoCpp)
target_link_libraries(OpenVulkano_Examples PRIVATE "$<LINK_LIBRARY:WHOLE_ARCHIVE,openVulkanoCpp>")
SetupVulkan(OpenVulkano_Examples)
SetGlmDefines(OpenVulkano_Examples)
SetWarningSettings(OpenVulkano_Examples)