Files
fs2open.github.com/freespace2/resources.cmake
T
Taylor Richards 12a36dc1a3 fix various macOS/Xcode project issues (#7875)
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.
2026-10-17 06:16:10 -04:00

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()