mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-11-04 17:54:35 +00:00
Create an application bundle for examples on Mac OS X
This commit is contained in:
committed by
Sam Lantinga
parent
b6a55c2856
commit
20c00babbc
@@ -64,14 +64,10 @@ macro(add_sdl_example_executable TARGET)
|
|||||||
if(NOT AST_SOURCES)
|
if(NOT AST_SOURCES)
|
||||||
message(FATAL_ERROR "add_sdl_example_executable needs at least one source")
|
message(FATAL_ERROR "add_sdl_example_executable needs at least one source")
|
||||||
endif()
|
endif()
|
||||||
set(EXTRA_SOURCES "")
|
|
||||||
if(AST_DATAFILES)
|
|
||||||
list(APPEND EXTRA_SOURCES ${DATAFILES})
|
|
||||||
endif()
|
|
||||||
if(ANDROID)
|
if(ANDROID)
|
||||||
add_library(${TARGET} SHARED ${AST_SOURCES} ${EXTRA_SOURCES})
|
add_library(${TARGET} SHARED ${AST_SOURCES} ${AST_DATAFILES})
|
||||||
else()
|
else()
|
||||||
add_executable(${TARGET} ${AST_SOURCES} ${EXTRA_SOURCES})
|
add_executable(${TARGET} ${AST_SOURCES} ${AST_DATAFILES})
|
||||||
endif()
|
endif()
|
||||||
SDL_AddCommonCompilerFlags(${TARGET})
|
SDL_AddCommonCompilerFlags(${TARGET})
|
||||||
target_include_directories(${TARGET} PRIVATE "${SDL3_SOURCE_DIR}/src/video/khronos")
|
target_include_directories(${TARGET} PRIVATE "${SDL3_SOURCE_DIR}/src/video/khronos")
|
||||||
@@ -85,13 +81,9 @@ macro(add_sdl_example_executable TARGET)
|
|||||||
COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${AST_DATAFILES} $<TARGET_FILE_DIR:${TARGET}>/sdl-${TARGET}
|
COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${AST_DATAFILES} $<TARGET_FILE_DIR:${TARGET}>/sdl-${TARGET}
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
)
|
)
|
||||||
else()
|
elseif(NOT APPLE)
|
||||||
add_dependencies(${TARGET} copy-sdl-example-resources)
|
add_dependencies(${TARGET} copy-sdl-example-resources)
|
||||||
endif()
|
endif()
|
||||||
if(APPLE)
|
|
||||||
# Make sure resource files get installed into macOS/iOS .app bundles.
|
|
||||||
set_target_properties(${TARGET} PROPERTIES RESOURCE "${AST_DATAFILES}")
|
|
||||||
endif()
|
|
||||||
if(EMSCRIPTEN)
|
if(EMSCRIPTEN)
|
||||||
foreach(res IN LISTS AST_DATAFILES)
|
foreach(res IN LISTS AST_DATAFILES)
|
||||||
get_filename_component(res_name "${res}" NAME)
|
get_filename_component(res_name "${res}" NAME)
|
||||||
@@ -101,7 +93,18 @@ macro(add_sdl_example_executable TARGET)
|
|||||||
set_property(TARGET ${TARGET} APPEND PROPERTY ADDITIONAL_CLEAN_FILES "$<TARGET_FILE_DIR:${TARGET}>/$<JOIN:${AST_DATAFILES},$<SEMICOLON>$<TARGET_FILE_DIR:${TARGET}>/>")
|
set_property(TARGET ${TARGET} APPEND PROPERTY ADDITIONAL_CLEAN_FILES "$<TARGET_FILE_DIR:${TARGET}>/$<JOIN:${AST_DATAFILES},$<SEMICOLON>$<TARGET_FILE_DIR:${TARGET}>/>")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WINDOWS)
|
if(APPLE)
|
||||||
|
# Set Apple App ID / Bundle ID. This is needed to launch apps on some Apple
|
||||||
|
# platforms (iOS, for example).
|
||||||
|
set_target_properties(${TARGET} PROPERTIES
|
||||||
|
RESOURCES "${AST_DATAFILES}"
|
||||||
|
MACOSX_BUNDLE TRUE
|
||||||
|
MACOSX_BUNDLE_GUI_IDENTIFIER "org.libsdl.${TARGET}"
|
||||||
|
MACOSX_BUNDLE_BUNDLE_VERSION "${SDL3_VERSION}"
|
||||||
|
MACOSX_BUNDLE_SHORT_VERSION_STRING "${SDL3_VERSION}"
|
||||||
|
)
|
||||||
|
set_property(SOURCE ${AST_DATAFILES} PROPERTY MACOSX_PACKAGE_LOCATION "Resources")
|
||||||
|
elseif(WINDOWS)
|
||||||
# CET support was added in VS 16.7
|
# CET support was added in VS 16.7
|
||||||
if(MSVC_VERSION GREATER 1926 AND CMAKE_GENERATOR_PLATFORM MATCHES "Win32|x64")
|
if(MSVC_VERSION GREATER 1926 AND CMAKE_GENERATOR_PLATFORM MATCHES "Win32|x64")
|
||||||
set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -CETCOMPAT")
|
set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " -CETCOMPAT")
|
||||||
@@ -217,18 +220,6 @@ if(RISCOS)
|
|||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set Apple App ID / Bundle ID. This is needed to launch apps on some Apple
|
|
||||||
# platforms (iOS, for example).
|
|
||||||
if(APPLE)
|
|
||||||
foreach(CURRENT_TARGET ${SDL_EXAMPLE_EXECUTABLES})
|
|
||||||
set_target_properties("${CURRENT_TARGET}" PROPERTIES
|
|
||||||
MACOSX_BUNDLE_GUI_IDENTIFIER "org.libsdl.${CURRENT_TARGET}"
|
|
||||||
MACOSX_BUNDLE_BUNDLE_VERSION "${SDL3_VERSION}"
|
|
||||||
MACOSX_BUNDLE_SHORT_VERSION_STRING "${SDL3_VERSION}"
|
|
||||||
)
|
|
||||||
endforeach()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(SDL_INSTALL_EXAMPLES)
|
if(SDL_INSTALL_EXAMPLES)
|
||||||
if(RISCOS)
|
if(RISCOS)
|
||||||
install(
|
install(
|
||||||
|
|||||||
Reference in New Issue
Block a user