include(../../cmake/AddPlatformExecutable.cmake) if(ENABLE_METAL) find_library(METAL Metal) set(EXTRA_LIBRARIES GFXMetal ${METAL} ${EXTRA_LIBRARIES}) set(EXTRA_SRC ${CMAKE_CURRENT_SOURCE_DIR}/sdl_metal.mm ${EXTRA_SRC}) endif() if(ENABLE_VULKAN) set(EXTRA_LIBRARIES GFXVulkan ${EXTRA_LIBRARIES}) set(EXTRA_SRC ${CMAKE_CURRENT_SOURCE_DIR}/sdl_vulkan.cpp ${EXTRA_SRC}) endif() if(ENABLE_DX12) set(EXTRA_LIBRARIES GFXDX12 ${EXTRA_LIBRARIES}) endif() if(TARGET SDL2::SDL2) set(EXTRA_LIBRARIES SDL2::SDL2 ${EXTRA_LIBRARIES}) endif() if(TARGET SDL2::Main) set(EXTRA_LIBRARIES SDL2::Main ${EXTRA_LIBRARIES}) endif() if(TARGET SDL2::SDL2main) set(EXTRA_LIBRARIES SDL2::SDL2main ${EXTRA_LIBRARIES}) endif() add_platform( SRC ${CMAKE_CURRENT_SOURCE_DIR}/file.cpp ${EXTRA_SRC} MAIN_FILE main.cpp.in EXECUTABLE_PROPERTIES MACOSX_BUNDLE ON MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in" LINK_LIBRARIES Core GFXDummy ${EXTRA_LIBRARIES} ) function(add_platform_commands target) if(ENABLE_MACOS) set(DUMMY_NAME ${target}-CopyShaders) add_custom_target(${DUMMY_NAME} ALL DEPENDS ${CMAKE_BINARY_DIR}/${target}-dummy) add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${target}-dummy COMMAND ${CMAKE_COMMAND} -E make_directory $/../Resources/shaders COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/bin/shaders $/../Resources/shaders ) add_dependencies(${target} ${DUMMY_NAME}) endif() if(NOT SKIP_DATA) if(ENABLE_MACOS) add_custom_target(${target}_copy_assets COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/example/data/ $/../Resources/data ) else() file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin/data) add_custom_target(${target}_copy_assets COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/example/data/ ${CMAKE_BINARY_DIR}/bin/data ) endif() add_dependencies(${target} ${target}_copy_assets) endif() endfunction()