mirror of
				https://github.com/libsdl-org/SDL.git
				synced 2025-11-04 09:44: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