mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-07 08:15:59 -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.
41 lines
1.4 KiB
CMake
41 lines
1.4 KiB
CMake
|
|
MESSAGE(STATUS "Doing Mac OSX specific things...")
|
|
target_compile_definitions(platform INTERFACE APPLE_APP)
|
|
SET(EXE_GUI_TYPE MACOSX_BUNDLE)
|
|
|
|
FIND_LIBRARY(COCOA_LIBRARY Cocoa)
|
|
|
|
if (NOT COCOA_LIBRARY)
|
|
message(FATAL_ERROR "Couldn't find Cocoa!")
|
|
endif()
|
|
|
|
target_link_libraries(platform INTERFACE ${COCOA_LIBRARY})
|
|
|
|
SET(CMAKE_SKIP_RPATH FALSE)
|
|
SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
|
SET(CMAKE_INSTALL_RPATH @loader_path/../Frameworks/)
|
|
|
|
# Set the path where library dependencies are copied to
|
|
SET(LIBRAY_DESTINATION "../Frameworks")
|
|
|
|
set(PLATFORM_MAC TRUE CACHE INTERNAL "" FORCE)
|
|
|
|
# Maybe override arm64 setting if we are compiling for different architecture
|
|
# If not specified, or if it's a universal build, then this should do nothing
|
|
if(CMAKE_OSX_ARCHITECTURES MATCHES "arm64")
|
|
set(IS_ARM64 TRUE)
|
|
elseif(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64")
|
|
set(IS_ARM64 FALSE)
|
|
endif()
|
|
|
|
# Generate and don't strip debug symbols
|
|
# These settings don't seem to generate debug symbols for code and Freespace2
|
|
# so those settings are set manually in code and Freespace2's CMakeLists.txt files
|
|
set(CMAKE_XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGING_SYMBOLS "YES")
|
|
set(CMAKE_XCODE_ATTRIBUTE_COPY_PHASE_STRIP "NO")
|
|
set(CMAKE_XCODE_ATTRIBUTE_STRIP_INSTALLED_PRODUCT "NO")
|
|
set(CMAKE_XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN "NO")
|
|
|
|
# Generate .dSYM file
|
|
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT "dwarf-with-dsym")
|