2021-03-01 14:40:02 -05:00
|
|
|
include(../../cmake/AddPlatformExecutable.cmake)
|
|
|
|
|
2022-08-15 11:09:43 -04:00
|
|
|
if (ENABLE_METAL)
|
2022-02-15 11:29:56 -05:00
|
|
|
find_library(METAL Metal)
|
|
|
|
|
2022-02-21 11:47:23 -05:00
|
|
|
set(EXTRA_LIBRARIES GFXMetal ${METAL} ${EXTRA_LIBRARIES})
|
|
|
|
set(EXTRA_SRC ${CMAKE_CURRENT_SOURCE_DIR}/sdl_metal.mm ${EXTRA_SRC})
|
2022-08-15 11:09:43 -04:00
|
|
|
endif ()
|
2022-02-15 11:29:56 -05:00
|
|
|
|
2022-08-15 11:09:43 -04:00
|
|
|
if (ENABLE_VULKAN)
|
2022-02-21 11:47:23 -05:00
|
|
|
set(EXTRA_LIBRARIES GFXVulkan ${EXTRA_LIBRARIES})
|
|
|
|
set(EXTRA_SRC ${CMAKE_CURRENT_SOURCE_DIR}/sdl_vulkan.cpp ${EXTRA_SRC})
|
2022-08-15 11:09:43 -04:00
|
|
|
endif ()
|
2022-02-21 11:03:34 -05:00
|
|
|
|
2022-08-15 11:09:43 -04:00
|
|
|
if (ENABLE_DX12)
|
2022-02-21 15:53:42 -05:00
|
|
|
set(EXTRA_LIBRARIES GFXDX12 ${EXTRA_LIBRARIES})
|
2022-08-15 11:09:43 -04:00
|
|
|
endif ()
|
2022-02-21 15:53:42 -05:00
|
|
|
|
2022-08-15 11:09:43 -04:00
|
|
|
if (TARGET SDL2::SDL2)
|
2022-02-21 11:47:23 -05:00
|
|
|
set(EXTRA_LIBRARIES SDL2::SDL2 ${EXTRA_LIBRARIES})
|
2022-08-15 11:09:43 -04:00
|
|
|
endif ()
|
2022-02-21 11:09:55 -05:00
|
|
|
|
2022-08-15 11:09:43 -04:00
|
|
|
if (TARGET SDL2::Main)
|
2022-02-21 11:47:23 -05:00
|
|
|
set(EXTRA_LIBRARIES SDL2::Main ${EXTRA_LIBRARIES})
|
2022-08-15 11:09:43 -04:00
|
|
|
endif ()
|
2022-02-21 07:53:08 -05:00
|
|
|
|
2022-08-15 11:09:43 -04:00
|
|
|
if (TARGET SDL2::SDL2main)
|
2022-02-21 11:47:23 -05:00
|
|
|
set(EXTRA_LIBRARIES SDL2::SDL2main ${EXTRA_LIBRARIES})
|
2022-08-15 11:09:43 -04:00
|
|
|
endif ()
|
2022-02-21 07:53:08 -05:00
|
|
|
|
2021-03-01 14:40:02 -05:00
|
|
|
add_platform(
|
2022-02-18 14:36:38 -05:00
|
|
|
SRC
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/file.cpp
|
|
|
|
${EXTRA_SRC}
|
2021-03-01 14:40:02 -05:00
|
|
|
MAIN_FILE
|
|
|
|
main.cpp.in
|
2021-09-13 13:47:29 -04:00
|
|
|
EXECUTABLE_PROPERTIES
|
|
|
|
MACOSX_BUNDLE ON
|
|
|
|
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in"
|
2021-03-01 14:40:02 -05:00
|
|
|
LINK_LIBRARIES
|
|
|
|
Core
|
2022-02-21 12:09:14 -05:00
|
|
|
GFXDummy
|
2022-02-15 11:29:56 -05:00
|
|
|
${EXTRA_LIBRARIES}
|
2021-03-01 14:40:02 -05:00
|
|
|
)
|
|
|
|
|
2022-05-21 17:47:15 -04:00
|
|
|
function(add_platform_commands target data_directory skip_data)
|
2022-08-15 11:09:43 -04:00
|
|
|
if (NOT skip_data)
|
|
|
|
if (ENABLE_MACOS)
|
2022-06-27 10:09:07 -04:00
|
|
|
file(MAKE_DIRECTORY $<TARGET_FILE_DIR:${target}>/../Resources/game)
|
|
|
|
|
2022-02-22 09:34:00 -05:00
|
|
|
add_custom_target(${target}_copy_assets
|
2022-08-15 11:09:43 -04:00
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${data_directory} $<TARGET_FILE_DIR:${target}>/../Resources/game)
|
2022-06-27 10:09:07 -04:00
|
|
|
|
|
|
|
file(MAKE_DIRECTORY $<TARGET_FILE_DIR:${target}>/../Resources/base)
|
|
|
|
|
|
|
|
add_custom_target(${target}_copy_base
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/bin/base $<TARGET_FILE_DIR:${target}>/../Resources/base)
|
|
|
|
|
|
|
|
add_dependencies(${target} ${target}_copy_assets ${target}_copy_base)
|
2022-08-15 11:09:43 -04:00
|
|
|
else ()
|
2022-05-21 17:49:24 -04:00
|
|
|
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin/game)
|
2022-02-22 09:34:00 -05:00
|
|
|
|
|
|
|
add_custom_target(${target}_copy_assets
|
2022-05-21 17:49:24 -04:00
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${data_directory} ${CMAKE_BINARY_DIR}/bin/game
|
2022-02-22 09:34:00 -05:00
|
|
|
)
|
2022-06-27 10:09:07 -04:00
|
|
|
|
|
|
|
add_dependencies(${target} ${target}_copy_assets)
|
2022-08-15 11:09:43 -04:00
|
|
|
endif ()
|
|
|
|
endif ()
|
2021-03-01 14:40:02 -05:00
|
|
|
endfunction()
|