mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-12 12:11:36 -10:00
Silence CMake build type warnings when using a multi-config generator. Fix macOS deployment target specification. It must be set before the first project() command to work properly, and needs to be a cached value so that it can be overridden by the user. This in particular is required for Xcode 27 where the minimum deployment target is 12.0 and using anything less is a hard fail rather than a warning. Fix Xcode scheme only containing qtFred as a buildable target. Fix various Xcode warnings when a static library contains files without any symbols. Allow FSO/qtFRED cmdline arguments and working directory to be set via their respective options (FSO_RUN_ARGUMENTS & FSO_FREESPACE_PATH) in Xcode. Fix product identifier mismatch and unset minimum system version warnings in Info.plist file.
70 lines
2.5 KiB
CMake
70 lines
2.5 KiB
CMake
|
|
if(WIN32)
|
|
# Handling of windows resources
|
|
|
|
set(subpath resources/win)
|
|
|
|
set(RESOURCE_FILES
|
|
${subpath}/freespace.rc
|
|
${subpath}/version.rc2
|
|
)
|
|
|
|
set(ICONS
|
|
${subpath}/app_icon.ico
|
|
${subpath}/app_icon_glow.ico
|
|
${subpath}/dbg_icon.ico
|
|
${subpath}/goal_com.bmp
|
|
${subpath}/goal_fail.bmp
|
|
${subpath}/goal_inc.bmp
|
|
${subpath}/goal_none.bmp
|
|
${subpath}/goal_ord.bmp
|
|
${subpath}/V_app.ico
|
|
${subpath}/V_debug.ico
|
|
${subpath}/V_sse-d.ico
|
|
${subpath}/V_sse.ico
|
|
)
|
|
|
|
set(MANIFESTS
|
|
${subpath}/default.manifest
|
|
)
|
|
|
|
set(RESOURCES
|
|
${RESOURCE_FILES}
|
|
${ICONS}
|
|
${MANIFESTS}
|
|
)
|
|
|
|
target_sources(Freespace2 PRIVATE ${RESOURCES})
|
|
|
|
source_group("Resources" FILES ${RESOURCE_FILES})
|
|
source_group("Resources\\Icons" FILES ${ICONS})
|
|
source_group("Resources\\Manifests" FILES ${MANIFESTS})
|
|
|
|
SET_SOURCE_FILES_PROPERTIES(${subpath}/freespace.rc PROPERTIES COMPILE_DEFINITIONS "_VC08")
|
|
|
|
IF(FSO_INSTRUCTION_SET STREQUAL "SSE2" OR FSO_INSTRUCTION_SET STREQUAL "AVX" OR FSO_INSTRUCTION_SET STREQUAL "AVX2")
|
|
set_property(SOURCE ${subpath}/freespace.rc APPEND_STRING PROPERTY COMPILE_DEFINITIONS ";_SSE2")
|
|
ENDIF()
|
|
|
|
elseif(PLATFORM_MAC)
|
|
# Handling of mac resources
|
|
set(subpath resources/mac)
|
|
|
|
set_target_properties(Freespace2 PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/${subpath}/Info.plist.in")
|
|
set_target_properties(Freespace2 PROPERTIES MACOSX_BUNDLE_ICON_FILE "FS2_Open")
|
|
set_target_properties(Freespace2 PROPERTIES MACOSX_BUNDLE_LONG_VERSION_STRING "${FSO_FULL_VERSION_STRING}")
|
|
set_target_properties(Freespace2 PROPERTIES MACOSX_BUNDLE_SHORT_VERSION_STRING "${FSO_PRODUCT_VERSION_STRING}")
|
|
set_target_properties(Freespace2 PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "FreeSpace Open")
|
|
set_target_properties(Freespace2 PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER "us.indiegames.scp.FreeSpaceOpen")
|
|
|
|
set_target_properties(Freespace2 PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "us.indiegames.scp.FreeSpaceOpen")
|
|
|
|
# Copy everything from the Resources directory
|
|
add_custom_command(TARGET Freespace2 POST_BUILD
|
|
COMMAND cp -a "${CMAKE_CURRENT_SOURCE_DIR}/${subpath}/Resources" "$<TARGET_FILE_DIR:Freespace2>/../Resources"
|
|
COMMENT "Copying resources into bundle..."
|
|
)
|
|
else()
|
|
# No special resource handling required, add rules for new platforms here
|
|
endif()
|