diff --git a/.gitignore b/.gitignore index dd7249891d..d7b2bfc255 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# Exclude user build config files +Config/User*.xcconfig + # Exclude the build directory build/* # Exclude temp nibs and swap files diff --git a/Config/Project-Debug.xcconfig b/Config/Project-Debug.xcconfig new file mode 100644 index 0000000000..45bc9b1583 --- /dev/null +++ b/Config/Project-Debug.xcconfig @@ -0,0 +1,9 @@ +// +// Copyright 2024 Signal Messenger, LLC +// SPDX-License-Identifier: AGPL-3.0-only +// + +#include "Project.xcconfig" + +// User-specific overrides +#include? "User-Debug.xcconfig" diff --git a/Config/Project-Release.xcconfig b/Config/Project-Release.xcconfig new file mode 100644 index 0000000000..0d302b9a9b --- /dev/null +++ b/Config/Project-Release.xcconfig @@ -0,0 +1,9 @@ +// +// Copyright 2024 Signal Messenger, LLC +// SPDX-License-Identifier: AGPL-3.0-only +// + +#include "Project.xcconfig" + +// User-specific overrides +#include? "User-Release.xcconfig" diff --git a/Config/Project.xcconfig b/Config/Project.xcconfig new file mode 100644 index 0000000000..d00c0aedaf --- /dev/null +++ b/Config/Project.xcconfig @@ -0,0 +1,12 @@ +// +// Copyright 2024 Signal Messenger, LLC +// SPDX-License-Identifier: AGPL-3.0-only +// + +GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES +GCC_TREAT_WARNINGS_AS_ERRORS = YES +MTL_TREAT_WARNINGS_AS_ERRORS = YES +SWIFT_TREAT_WARNINGS_AS_ERRORS = YES + +// User-specific overrides +#include? "User.xcconfig" diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index d22ae1d822..cb762628d6 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -3600,6 +3600,10 @@ 059982632C6D0C4F00C87533 /* ChatListPinInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListPinInfo.swift; sourceTree = ""; }; 05B411242C62845000A1EDBC /* ChatListInboxFilterSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListInboxFilterSection.swift; sourceTree = ""; }; 05E3A4DD8B4442530268AFC1 /* Pods-SignalShareExtension.app store release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SignalShareExtension.app store release.xcconfig"; path = "Target Support Files/Pods-SignalShareExtension/Pods-SignalShareExtension.app store release.xcconfig"; sourceTree = ""; }; + 05EA61422CC9437F00B16D4E /* Project-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Project-Debug.xcconfig"; sourceTree = ""; }; + 05EA61432CC943D200B16D4E /* Project-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Project-Release.xcconfig"; sourceTree = ""; }; + 05EA61442CC943DD00B16D4E /* Project.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; }; + 05EA61472CC9491400B16D4E /* User.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = User.xcconfig; sourceTree = ""; }; 0BADD293DAFC82BF3274F0F6 /* Pods_SignalTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SignalTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 1404D8B2276A353A0068E2F6 /* ChatListViewController+Multiselect.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ChatListViewController+Multiselect.swift"; sourceTree = ""; }; 1466AB272817F7E7003B3D9F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = en; path = translations/en.lproj/PluralAware.stringsdict; sourceTree = ""; }; @@ -7288,6 +7292,17 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 05EA61412CC9437300B16D4E /* Config */ = { + isa = PBXGroup; + children = ( + 05EA61422CC9437F00B16D4E /* Project-Debug.xcconfig */, + 05EA61432CC943D200B16D4E /* Project-Release.xcconfig */, + 05EA61442CC943DD00B16D4E /* Project.xcconfig */, + 05EA61472CC9491400B16D4E /* User.xcconfig */, + ); + path = Config; + sourceTree = ""; + }; 07B6BFA4D17E1353B0696C14 /* Pods */ = { isa = PBXGroup; children = ( @@ -10955,6 +10970,7 @@ 453518691FC635DD00210559 /* SignalShareExtension */, 34A954A9271A471200B05242 /* SignalUI */, F9C5C898289451B900548EEE /* SignalServiceKit */, + 05EA61412CC9437300B16D4E /* Config */, D221A08C169C9E5E00537ABF /* Frameworks */, D221A08A169C9E5E00537ABF /* Products */, 07B6BFA4D17E1353B0696C14 /* Pods */, @@ -19065,6 +19081,7 @@ }; 4C10B17A23176CEB0099396B /* Testable Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 05EA61432CC943D200B16D4E /* Project-Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_GCD_PERFORMANCE = YES; @@ -19106,8 +19123,6 @@ GCC_NO_COMMON_BLOCKS = YES; GCC_PREPROCESSOR_DEFINITIONS = "TESTABLE_BUILD=1"; GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; @@ -19133,7 +19148,6 @@ GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Signal Messenger, LLC"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MTL_TREAT_WARNINGS_AS_ERRORS = YES; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = ( "-DNS_BLOCK_ASSERTIONS=1", @@ -19145,7 +19159,6 @@ SIGNAL_MERCHANTID = org.signalfoundation; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_TREAT_WARNINGS_AS_ERRORS = YES; SWIFT_UPCOMING_FEATURE_CONCISE_MAGIC_FILE = YES; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; SWIFT_UPCOMING_FEATURE_DISABLE_OUTWARD_ACTOR_ISOLATION = YES; @@ -19324,6 +19337,7 @@ }; 88238EA724EAD2FD00F28079 /* Profiling */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 05EA61432CC943D200B16D4E /* Project-Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_GCD_PERFORMANCE = YES; @@ -19364,8 +19378,6 @@ GCC_NO_COMMON_BLOCKS = YES; GCC_PREPROCESSOR_DEFINITIONS = "TESTABLE_BUILD=1"; GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; @@ -19391,7 +19403,6 @@ GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Signal Messenger, LLC"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MTL_TREAT_WARNINGS_AS_ERRORS = YES; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; OTHER_SWIFT_FLAGS = "-DTESTABLE_BUILD"; @@ -19400,7 +19411,6 @@ SIGNAL_MERCHANTID = org.signalfoundation; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_TREAT_WARNINGS_AS_ERRORS = YES; SWIFT_UPCOMING_FEATURE_CONCISE_MAGIC_FILE = YES; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; SWIFT_UPCOMING_FEATURE_DISABLE_OUTWARD_ACTOR_ISOLATION = YES; @@ -19579,6 +19589,7 @@ }; D221A0BA169C9E5F00537ABF /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 05EA61422CC9437F00B16D4E /* Project-Debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_GCD_PERFORMANCE = YES; @@ -19625,8 +19636,6 @@ USE_DEBUG_UI, ); GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; @@ -19652,14 +19661,12 @@ GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Signal Messenger, LLC"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MTL_TREAT_WARNINGS_AS_ERRORS = YES; ONLY_ACTIVE_ARCH = YES; OTHER_SWIFT_FLAGS = "-DTESTABLE_BUILD -DUSE_DEBUG_UI"; SDKROOT = iphoneos; SIGNAL_BUNDLEID_PREFIX = org.whispersystems; SIGNAL_MERCHANTID = org.signalfoundation; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_TREAT_WARNINGS_AS_ERRORS = YES; SWIFT_UPCOMING_FEATURE_CONCISE_MAGIC_FILE = YES; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; SWIFT_UPCOMING_FEATURE_DISABLE_OUTWARD_ACTOR_ISOLATION = YES; @@ -19686,6 +19693,7 @@ }; D221A0BB169C9E5F00537ABF /* App Store Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 05EA61432CC943D200B16D4E /* Project-Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_GCD_PERFORMANCE = YES; @@ -19725,8 +19733,6 @@ GCC_ENABLE_OBJC_EXCEPTIONS = NO; GCC_NO_COMMON_BLOCKS = YES; GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; - GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; @@ -19752,7 +19758,6 @@ GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Signal Messenger, LLC"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MTL_TREAT_WARNINGS_AS_ERRORS = YES; ONLY_ACTIVE_ARCH = NO; OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; SDKROOT = iphoneos; @@ -19760,7 +19765,6 @@ SIGNAL_MERCHANTID = org.signalfoundation; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_TREAT_WARNINGS_AS_ERRORS = YES; SWIFT_UPCOMING_FEATURE_CONCISE_MAGIC_FILE = YES; SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; SWIFT_UPCOMING_FEATURE_DISABLE_OUTWARD_ACTOR_ISOLATION = YES;