From 7ef345cb4264665960c6d87b7be2ef4dae1f8f99 Mon Sep 17 00:00:00 2001 From: Taylor Richards Date: Fri, 16 Oct 2026 02:44:41 -0400 Subject: [PATCH 1/5] fix various macOS/Xcode project issues 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. --- CMakeLists.txt | 24 +++++++++++++++++------- cmake/platform-darwin.cmake | 4 ---- code/CMakeLists.txt | 7 +++++++ freespace2/CMakeLists.txt | 6 ++++++ freespace2/resources.cmake | 3 ++- freespace2/resources/mac/Info.plist.in | 2 +- lib/antlr4-cpp-runtime/CMakeLists.txt | 7 ++++--- lib/antlr4.cmake | 7 +++++++ parsers/CMakeLists.txt | 7 +++++++ qtfred/CMakeLists.txt | 6 ++++++ qtfred/resources/mac/Info.plist.in | 2 +- 11 files changed, 58 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dc5ac74681b..60c13093da3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,20 +29,30 @@ ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX) SET(TARGET_COPY_FILES "" CACHE INTERNAL "" FORCE) SET(TARGET_COPY_DIRS "" CACHE INTERNAL "" FORCE) -### Define options and editable variables in the section below: -# This is only needed for single configuration generators so don't annoy others -if(NOT CMAKE_BUILD_TYPE AND NOT DEFINED CMAKE_CONFIGURATION_TYPES) - set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Default build configuration used." FORCE) - message(WARNING "CMAKE_BUILD_TYPE was not specified, defaulting to Release configuration.") -endif(NOT CMAKE_BUILD_TYPE AND NOT DEFINED CMAKE_CONFIGURATION_TYPES) +get_property(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) # Override standard CMake configurations -set(CMAKE_CONFIGURATION_TYPES Debug Release FastDebug CACHE STRING "Available configurations" FORCE) +set(FSO_BUILD_TYPES Debug Release FastDebug) + +if(is_multi_config) + set(CMAKE_CONFIGURATION_TYPES "${FSO_BUILD_TYPES}" CACHE STRING "Configuration types" FORCE) +elseif(NOT DEFINED CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Default build configuration used." FORCE) + message(WARNING "CMAKE_BUILD_TYPE was not specified, defaulting to Release configuration.") + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "${FS_BUILD_TYPES}") +endif() set(FSO_LANGUAGES C CXX) if(APPLE) set(FSO_LANGUAGES ${FSO_LANGUAGES} OBJC OBJCXX) + + # 10.15 for c++17 std::filesystem + # NOTE: this must be set *before* the project() call to work properly!! + set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "macOS deployment target") + + # fix all targets in scheme (so it's not just qtfred) + set(CMAKE_XCODE_GENERATE_SCHEME TRUE) endif() PROJECT(FS2_Open LANGUAGES ${FSO_LANGUAGES}) diff --git a/cmake/platform-darwin.cmake b/cmake/platform-darwin.cmake index d24d8616ce4..e886ddbb3ca 100644 --- a/cmake/platform-darwin.cmake +++ b/cmake/platform-darwin.cmake @@ -11,10 +11,6 @@ endif() target_link_libraries(platform INTERFACE ${COCOA_LIBRARY}) -# To support C++17 we need to target at least 10.13. maybe 10.14 for some rare features -# bump to 10.15 for c++17 std::filesystem usage in qtFRED -SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.15") - SET(CMAKE_SKIP_RPATH FALSE) SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) SET(CMAKE_INSTALL_RPATH @loader_path/../Frameworks/) diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index 4cc52dcea77..ddf5110c6df 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -130,5 +130,12 @@ set_target_properties(code PROPERTIES XCODE_ATTRIBUTE_COPY_PHASE_STRIP[variant=D set_target_properties(code PROPERTIES XCODE_ATTRIBUTE_STRIP_INSTALLED_PRODUCT[variant=Debug] "NO") set_target_properties(code PROPERTIES XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN[variant=Debug] "NO") +# Prevent warnings on files with no symbols in Xcode +if(XCODE) + set_target_properties(code PROPERTIES + STATIC_LIBRARY_OPTIONS "-no_warning_for_no_symbols" + ) +endif() + # Prevent GCC warnings in third-party BitOp... see GitHub #4366 suppress_file_warnings(scripting/lua/bitop/bit.c) diff --git a/freespace2/CMakeLists.txt b/freespace2/CMakeLists.txt index e7ad4eb99e4..ed83791eafb 100644 --- a/freespace2/CMakeLists.txt +++ b/freespace2/CMakeLists.txt @@ -102,3 +102,9 @@ set_target_properties(Freespace2 PROPERTIES XCODE_ATTRIBUTE_GCC_GENERATE_DEBUGGI set_target_properties(Freespace2 PROPERTIES XCODE_ATTRIBUTE_COPY_PHASE_STRIP[variant=Debug] "NO") set_target_properties(Freespace2 PROPERTIES XCODE_ATTRIBUTE_STRIP_INSTALLED_PRODUCT[variant=Debug] "NO") set_target_properties(Freespace2 PROPERTIES XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN[variant=Debug] "NO") + +set_target_properties(Freespace2 PROPERTIES XCODE_SCHEME_ARGUMENTS "${FSO_RUN_ARGUMENTS}") + +if(FSO_FREESPACE_PATH AND NOT "${FSO_FREESPACE_PATH}" STREQUAL "${CMAKE_INSTALL_PREFIX}") + set_target_properties(Freespace2 PROPERTIES XCODE_SCHEME_WORKING_DIRECTORY "${FSO_FREESPACE_PATH}") +endif() diff --git a/freespace2/resources.cmake b/freespace2/resources.cmake index ddf00309dc6..ec3d78bd434 100644 --- a/freespace2/resources.cmake +++ b/freespace2/resources.cmake @@ -57,7 +57,8 @@ elseif(PLATFORM_MAC) set_target_properties(Freespace2 PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "FreeSpace Open") set_target_properties(Freespace2 PROPERTIES MACOSX_DEPLOYMENT_TARGET "${CMAKE_OSX_DEPLOYMENT_TARGET}") 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" "$/../Resources" diff --git a/freespace2/resources/mac/Info.plist.in b/freespace2/resources/mac/Info.plist.in index 44d3c501e96..f1f03017fa0 100644 --- a/freespace2/resources/mac/Info.plist.in +++ b/freespace2/resources/mac/Info.plist.in @@ -29,7 +29,7 @@ LSApplicationCategoryType public.app-category.games LSMinimumSystemVersion - ${MACOSX_DEPLOYMENT_TARGET} + ${CMAKE_OSX_DEPLOYMENT_TARGET} NSMainNibFile MainMenu NSPrincipalClass diff --git a/lib/antlr4-cpp-runtime/CMakeLists.txt b/lib/antlr4-cpp-runtime/CMakeLists.txt index 827764823d2..14946528c6e 100644 --- a/lib/antlr4-cpp-runtime/CMakeLists.txt +++ b/lib/antlr4-cpp-runtime/CMakeLists.txt @@ -7,15 +7,16 @@ set(CMAKE_MACOSX_RPATH OFF) set(ANTLR_BUILD_SHARED OFF) -# Detect build type, fallback to release and throw a warning if use didn't specify any -if(NOT CMAKE_BUILD_TYPE) +get_property(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) + +if(NOT CMAKE_BUILD_TYPE AND NOT is_multi_config) message(WARNING "Build type not set, falling back to Release mode. To specify build type use: -DCMAKE_BUILD_TYPE= where is Debug or Release.") set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release." FORCE) -endif(NOT CMAKE_BUILD_TYPE) +endif(NOT CMAKE_BUILD_TYPE AND NOT is_multi_config) if(NOT WITH_DEMO) message(STATUS "Building without demo. To enable demo build use: -DWITH_DEMO=True") diff --git a/lib/antlr4.cmake b/lib/antlr4.cmake index 1967dac5fa0..fe67383d79c 100644 --- a/lib/antlr4.cmake +++ b/lib/antlr4.cmake @@ -23,6 +23,13 @@ add_subdirectory(antlr4-cpp-runtime EXCLUDE_FROM_ALL) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/antlr4-cpp-runtime/cmake" PARENT_SCOPE) suppress_warnings(antlr4_static) +# Prevent warnings on files with no symbols in Xcode +if(XCODE) + set_target_properties(antlr4_static PROPERTIES + STATIC_LIBRARY_OPTIONS "-no_warning_for_no_symbols" + ) +endif() + target_include_directories(antlr4_static PUBLIC "${CMAKE_CURRENT_LIST_DIR}/antlr4-cpp-runtime/runtime/src") set_target_properties(antlr4_static diff --git a/parsers/CMakeLists.txt b/parsers/CMakeLists.txt index a540a4b494d..9bed6e69bbd 100644 --- a/parsers/CMakeLists.txt +++ b/parsers/CMakeLists.txt @@ -50,3 +50,10 @@ add_parser(action_expression/ActionExpression.g4) target_include_directories(parsers PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") suppress_warnings(parsers) + +# Prevent warnings on files with no symbols in Xcode +if(XCODE) + set_target_properties(parsers PROPERTIES + STATIC_LIBRARY_OPTIONS "-no_warning_for_no_symbols" + ) +endif() \ No newline at end of file diff --git a/qtfred/CMakeLists.txt b/qtfred/CMakeLists.txt index b8bc0bff4cc..26d8575cd31 100644 --- a/qtfred/CMakeLists.txt +++ b/qtfred/CMakeLists.txt @@ -243,8 +243,14 @@ elseif(PLATFORM_MAC) set_target_properties(qtfred PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "qtFRED") set_target_properties(qtfred PROPERTIES MACOSX_DEPLOYMENT_TARGET "${CMAKE_OSX_DEPLOYMENT_TARGET}") set_target_properties(qtfred PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER "us.indiegames.scp.qtFRED") + set_target_properties(qtfred PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "us.indiegames.scp.qtFRED") set_target_properties(qtfred PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_STYLE "Manual") set_target_properties(qtfred PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") + set_target_properties(qtfred PROPERTIES XCODE_SCHEME_ARGUMENTS "${FSO_RUN_ARGUMENTS}") + + if(FSO_FREESPACE_PATH AND NOT "${FSO_FREESPACE_PATH}" STREQUAL "${CMAKE_INSTALL_PREFIX}") + set_target_properties(qtfred PROPERTIES XCODE_SCHEME_WORKING_DIRECTORY "${FSO_FREESPACE_PATH}") + endif() # Copy everything from the Resources directory add_custom_command(TARGET qtfred POST_BUILD diff --git a/qtfred/resources/mac/Info.plist.in b/qtfred/resources/mac/Info.plist.in index 70e13757559..9dd183d7e5c 100644 --- a/qtfred/resources/mac/Info.plist.in +++ b/qtfred/resources/mac/Info.plist.in @@ -29,7 +29,7 @@ LSApplicationCategoryType public.app-category.games LSMinimumSystemVersion - ${MACOSX_DEPLOYMENT_TARGET} + ${CMAKE_OSX_DEPLOYMENT_TARGET} NSMainNibFile MainMenu NSPrincipalClass From 65b955b796e1d2f38ee31941f9db8ba26702ea17 Mon Sep 17 00:00:00 2001 From: Taylor Richards Date: Fri, 16 Oct 2026 06:29:39 -0400 Subject: [PATCH 2/5] fix issue with cmake build type --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 60c13093da3..090a4ec6f98 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,10 +36,10 @@ set(FSO_BUILD_TYPES Debug Release FastDebug) if(is_multi_config) set(CMAKE_CONFIGURATION_TYPES "${FSO_BUILD_TYPES}" CACHE STRING "Configuration types" FORCE) -elseif(NOT DEFINED CMAKE_BUILD_TYPE) +elseif(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Default build configuration used." FORCE) message(WARNING "CMAKE_BUILD_TYPE was not specified, defaulting to Release configuration.") - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "${FS_BUILD_TYPES}") + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "${FSO_BUILD_TYPES}") endif() set(FSO_LANGUAGES C CXX) From 45864cbb6f23710a17cd4278a9f9f42db024cc8f Mon Sep 17 00:00:00 2001 From: Taylor Richards Date: Fri, 16 Oct 2026 06:31:16 -0400 Subject: [PATCH 3/5] fix LTO configuration on multi-config generators --- CMakeLists.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 090a4ec6f98..4716b7a1c56 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -204,13 +204,14 @@ endif() include(clang-tidy) +set(CMAKE_INTERPROCEDURAL_OPTIMIZATION FALSE) + include(CheckIPOSupported) check_ipo_supported(RESULT LTO_AVAILABLE) -if (CMAKE_BUILD_TYPE STREQUAL "Release" AND FSO_USE_LTO AND LTO_AVAILABLE) - set(CMAKE_POLICY_DEFAULT_CMP0069 NEW) - message("Enabled LTO") - set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) -endif (CMAKE_BUILD_TYPE STREQUAL "Release" AND FSO_USE_LTO AND LTO_AVAILABLE) +if (FSO_USE_LTO AND LTO_AVAILABLE) + message("Enabled LTO for Release builds") + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE) +endif (FSO_USE_LTO AND LTO_AVAILABLE) # This includes source code for some tools, either used in the build or also for something else ADD_SUBDIRECTORY(tools) From 649dd6a857b7f2ad0786764bc75ad46e867bf56f Mon Sep 17 00:00:00 2001 From: Taylor Richards Date: Fri, 16 Oct 2026 06:33:48 -0400 Subject: [PATCH 4/5] clean up no_symbol_warnings fix --- cmake/util.cmake | 11 +++++++++++ code/CMakeLists.txt | 8 ++------ lib/antlr4.cmake | 10 +++------- parsers/CMakeLists.txt | 8 ++------ 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/cmake/util.cmake b/cmake/util.cmake index bfce4de182d..d6610d45904 100644 --- a/cmake/util.cmake +++ b/cmake/util.cmake @@ -241,6 +241,17 @@ function(suppress_file_warnings) endif() endfunction(suppress_file_warnings) +# Suppress no symbols warnings in static libraries (on Xcode) +function(suppress_no_symbol_warnings _target) + if(XCODE) + get_target_property(target_type ${_target} TYPE) + if(target_type STREQUAL "STATIC_LIBRARY") + set_property(TARGET ${_target} APPEND PROPERTY + STATIC_LIBRARY_OPTIONS "-no_warning_for_no_symbols" + ) + endif() + endif() +endfunction(suppress_no_symbol_warnings) function(list_target_dependencies _target _out_var) set(out_list) diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index ddf5110c6df..5f349771840 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -130,12 +130,8 @@ set_target_properties(code PROPERTIES XCODE_ATTRIBUTE_COPY_PHASE_STRIP[variant=D set_target_properties(code PROPERTIES XCODE_ATTRIBUTE_STRIP_INSTALLED_PRODUCT[variant=Debug] "NO") set_target_properties(code PROPERTIES XCODE_ATTRIBUTE_GCC_SYMBOLS_PRIVATE_EXTERN[variant=Debug] "NO") -# Prevent warnings on files with no symbols in Xcode -if(XCODE) - set_target_properties(code PROPERTIES - STATIC_LIBRARY_OPTIONS "-no_warning_for_no_symbols" - ) -endif() +# Prevent warnings on files with no symbols on Mac +suppress_no_symbol_warnings(code) # Prevent GCC warnings in third-party BitOp... see GitHub #4366 suppress_file_warnings(scripting/lua/bitop/bit.c) diff --git a/lib/antlr4.cmake b/lib/antlr4.cmake index fe67383d79c..6b8d18108c0 100644 --- a/lib/antlr4.cmake +++ b/lib/antlr4.cmake @@ -23,13 +23,9 @@ add_subdirectory(antlr4-cpp-runtime EXCLUDE_FROM_ALL) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/antlr4-cpp-runtime/cmake" PARENT_SCOPE) suppress_warnings(antlr4_static) -# Prevent warnings on files with no symbols in Xcode -if(XCODE) - set_target_properties(antlr4_static PROPERTIES - STATIC_LIBRARY_OPTIONS "-no_warning_for_no_symbols" - ) -endif() - +# Prevent warnings on files with no symbols on Mac +suppress_no_symbol_warnings(antlr4_static) + target_include_directories(antlr4_static PUBLIC "${CMAKE_CURRENT_LIST_DIR}/antlr4-cpp-runtime/runtime/src") set_target_properties(antlr4_static diff --git a/parsers/CMakeLists.txt b/parsers/CMakeLists.txt index 9bed6e69bbd..70bfa43d16b 100644 --- a/parsers/CMakeLists.txt +++ b/parsers/CMakeLists.txt @@ -51,9 +51,5 @@ target_include_directories(parsers PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") suppress_warnings(parsers) -# Prevent warnings on files with no symbols in Xcode -if(XCODE) - set_target_properties(parsers PROPERTIES - STATIC_LIBRARY_OPTIONS "-no_warning_for_no_symbols" - ) -endif() \ No newline at end of file +# Prevent warnings on files with no symbols on Mac +suppress_no_symbol_warnings(parsers) From e95fb35e88143d79a75dc6a79cb4c7081320ffc9 Mon Sep 17 00:00:00 2001 From: Taylor Richards Date: Sat, 17 Oct 2026 00:15:28 -0400 Subject: [PATCH 5/5] address feedback --- CMakeLists.txt | 3 +-- freespace2/resources.cmake | 2 +- qtfred/CMakeLists.txt | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4716b7a1c56..43508ae83f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -204,11 +204,10 @@ endif() include(clang-tidy) -set(CMAKE_INTERPROCEDURAL_OPTIMIZATION FALSE) - include(CheckIPOSupported) check_ipo_supported(RESULT LTO_AVAILABLE) if (FSO_USE_LTO AND LTO_AVAILABLE) + set(CMAKE_POLICY_DEFAULT_CMP0069 NEW) message("Enabled LTO for Release builds") set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE) endif (FSO_USE_LTO AND LTO_AVAILABLE) diff --git a/freespace2/resources.cmake b/freespace2/resources.cmake index ec3d78bd434..94cf4d604ae 100644 --- a/freespace2/resources.cmake +++ b/freespace2/resources.cmake @@ -55,8 +55,8 @@ elseif(PLATFORM_MAC) 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_DEPLOYMENT_TARGET "${CMAKE_OSX_DEPLOYMENT_TARGET}") 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 diff --git a/qtfred/CMakeLists.txt b/qtfred/CMakeLists.txt index 26d8575cd31..84def10e97d 100644 --- a/qtfred/CMakeLists.txt +++ b/qtfred/CMakeLists.txt @@ -241,8 +241,8 @@ elseif(PLATFORM_MAC) set_target_properties(qtfred PROPERTIES MACOSX_BUNDLE_LONG_VERSION_STRING "${FSO_FULL_VERSION_STRING}") set_target_properties(qtfred PROPERTIES MACOSX_BUNDLE_SHORT_VERSION_STRING "${FSO_PRODUCT_VERSION_STRING}") set_target_properties(qtfred PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "qtFRED") - set_target_properties(qtfred PROPERTIES MACOSX_DEPLOYMENT_TARGET "${CMAKE_OSX_DEPLOYMENT_TARGET}") set_target_properties(qtfred PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER "us.indiegames.scp.qtFRED") + set_target_properties(qtfred PROPERTIES XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "us.indiegames.scp.qtFRED") set_target_properties(qtfred PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_STYLE "Manual") set_target_properties(qtfred PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "")