2017-10-18 20:45:26 +03:00
|
|
|
|
#include "./Version.xcconfig"
|
2016-11-08 05:28:46 +03:00
|
|
|
|
|
2020-07-29 12:22:32 +03:00
|
|
|
|
// :Mark: Architectures
|
2017-06-06 00:23:12 +03:00
|
|
|
|
SDKROOT = iphoneos
|
|
|
|
|
|
2017-06-06 01:16:03 +03:00
|
|
|
|
// :Mark: Deployment
|
2024-07-29 10:48:25 +03:00
|
|
|
|
IPHONEOS_DEPLOYMENT_TARGET = 12.0
|
|
|
|
|
TVOS_DEPLOYMENT_TARGET = 12.0
|
2023-01-12 15:35:57 +03:00
|
|
|
|
MACOSX_DEPLOYMENT_TARGET = 10.13
|
2017-06-06 01:16:03 +03:00
|
|
|
|
COPY_PHASE_STRIP = NO
|
2017-06-06 00:23:12 +03:00
|
|
|
|
|
2017-06-06 01:16:03 +03:00
|
|
|
|
// :Mark: Packaging
|
2017-06-06 03:04:20 +03:00
|
|
|
|
PRODUCT_NAME = $(PROJECT_NAME)
|
2017-06-05 23:47:18 +03:00
|
|
|
|
|
2017-06-06 01:16:03 +03:00
|
|
|
|
// :Mark: Language configurations
|
2019-10-11 23:59:38 +03:00
|
|
|
|
CLANG_ENABLE_MODULES = NO
|
2017-06-06 01:16:03 +03:00
|
|
|
|
CLANG_ENABLE_OBJC_ARC = YES
|
|
|
|
|
CLANG_CXX_LIBRARY = libc++
|
|
|
|
|
CLANG_CXX_LANGUAGE_STANDARD = gnu++14
|
|
|
|
|
GCC_C_LANGUAGE_STANDARD = gnu99
|
|
|
|
|
|
2017-06-06 01:44:55 +03:00
|
|
|
|
// :Mark: Search paths
|
|
|
|
|
ALWAYS_SEARCH_USER_PATHS = NO
|
2017-10-31 01:10:49 +03:00
|
|
|
|
USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../AppCenter/AppCenter"/**
|
2017-05-19 06:45:30 +03:00
|
|
|
|
|
2017-08-09 22:36:17 +03:00
|
|
|
|
// :Mark: Code signing
|
2019-08-29 15:59:33 +03:00
|
|
|
|
CODE_SIGN_IDENTITY =
|
2017-08-09 22:36:17 +03:00
|
|
|
|
|
2017-06-06 01:44:55 +03:00
|
|
|
|
// :Mark: Linking
|
|
|
|
|
DEAD_CODE_STRIPPING = NO
|
|
|
|
|
|
|
|
|
|
// :Mark: Code generation
|
|
|
|
|
GCC_NO_COMMON_BLOCKS = YES
|
|
|
|
|
|
|
|
|
|
// :Mark: Preprocessing
|
|
|
|
|
ENABLE_STRICT_OBJC_MSGSEND = YES
|
|
|
|
|
|
2018-07-31 13:52:03 +03:00
|
|
|
|
// :Mark: OTHER_CFLAGS
|
2020-06-11 19:05:47 +03:00
|
|
|
|
GLOBAL_CFLAGS = -Wshorten-64-to-32 -Wall -fstack-protector-strong -fpie
|
|
|
|
|
OTHER_CFLAGS = $(GLOBAL_CFLAGS)
|
2016-12-21 05:04:42 +03:00
|
|
|
|
|
2017-02-08 02:27:25 +03:00
|
|
|
|
// :Mark: Extension API Only
|
|
|
|
|
// Make sure we don't use API that are not available in extensions.
|
|
|
|
|
// See https://pewpewthespells.com/blog/buildsettings.html for info about the flag.
|
2020-06-05 15:59:02 +03:00
|
|
|
|
APPLICATION_EXTENSION_API_ONLY = YES
|
2016-11-12 02:47:29 +03:00
|
|
|
|
|
2017-02-08 02:27:25 +03:00
|
|
|
|
// :Mark: GCC_PREPROCESSOR_DEFINITIONS
|
2020-06-01 12:29:10 +03:00
|
|
|
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) APP_CENTER_C_VERSION="\""$(VERSION_STRING)"\"" APP_CENTER_C_BUILD="\""$(BUILD_NUMBER)"\""
|
2017-02-08 02:27:25 +03:00
|
|
|
|
|
2017-02-09 01:32:06 +03:00
|
|
|
|
// :Mark: Configuration of warnings. We're listing every warning that we disabled and explain the reason why.
|
2017-02-08 02:27:25 +03:00
|
|
|
|
//
|
|
|
|
|
// -everything
|
|
|
|
|
// We want the best possible diagnostics, so we simply enable everything that exists, and then opt–out of what doesn’t make sense for us.
|
|
|
|
|
|
|
|
|
|
// -objc-missing-property-synthesis
|
|
|
|
|
// This isn’t a real issue since we don’t have any interest in building on extremely old Clangs.
|
|
|
|
|
// (Also, each property that cannot be auto–synthesized triggers at least a warning…)
|
|
|
|
|
|
|
|
|
|
// -float-equal
|
|
|
|
|
// While we could change all 90 instances of floating point comparison to a method that includes an epsilon, this is overkill and not needed.
|
|
|
|
|
// See http://stackoverflow.com/questions/11421756/weverything-yielding-comparing-floating-point-with-or-is-unsafe
|
|
|
|
|
|
|
|
|
|
// -pedantic
|
2017-02-09 01:32:06 +03:00
|
|
|
|
// Generates too much noise.
|
2017-02-08 02:27:25 +03:00
|
|
|
|
|
|
|
|
|
// -padded
|
|
|
|
|
// This isn’t really an issue to us, since we’re not programming embedded systems.
|
|
|
|
|
|
2017-02-10 03:06:38 +03:00
|
|
|
|
// -c++98
|
2017-02-09 23:22:30 +03:00
|
|
|
|
// We don't want to compile our code for C++98, no need to be warned about incompatibility.
|
|
|
|
|
|
2017-02-15 21:52:00 +03:00
|
|
|
|
// -c++98-compat-pedantic
|
2017-02-15 04:19:41 +03:00
|
|
|
|
// We don't want to compile our code for C++98, no need to be warned about incompatibility.
|
|
|
|
|
|
2017-02-09 23:44:19 +03:00
|
|
|
|
// -auto-import
|
2017-05-26 15:15:30 +03:00
|
|
|
|
// Standard ``import`` is used by tons of files and C++ code limits the possibility to use @import, so we don't. => Disabled.
|
2017-02-09 23:44:19 +03:00
|
|
|
|
|
2017-03-29 04:20:33 +03:00
|
|
|
|
// -assign-enum
|
|
|
|
|
// A lot of api use enums as params but Apple's docs suggest passing in 0 which causes annoying warnings.
|
|
|
|
|
|
2017-04-01 03:28:37 +03:00
|
|
|
|
// -exit-time-destructors
|
|
|
|
|
// Global destructors are obvious, no need to warn about them.
|
|
|
|
|
|
2017-04-01 03:33:47 +03:00
|
|
|
|
// -global-constructors
|
|
|
|
|
// Global constructors are obvious, no need to warn about them.
|
|
|
|
|
|
2017-04-03 19:58:06 +03:00
|
|
|
|
// -cast-align
|
|
|
|
|
// We're not interested in this one as the Mach-O format is itself well-aligned and the original memory allocation
|
|
|
|
|
// happens through malloc() and mmap() which always return at least 16byte alignment.
|
2017-05-26 15:15:30 +03:00
|
|
|
|
// Read more about alignment in the c++ reference: http://en.cppreference.com/w/cpp/language/object#Alignment.
|
2017-04-03 19:58:06 +03:00
|
|
|
|
|
2017-06-01 23:05:29 +03:00
|
|
|
|
WARNING_CFLAGS = -Weverything -Wno-objc-missing-property-synthesis -Wno-float-equal -Wno-pedantic -Wno-padded -Wno-sign-conversion -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-auto-import -Wno-assign-enum -Wno-exit-time-destructors -Wno-global-constructors -Wno-cast-align
|
2017-02-22 01:59:08 +03:00
|
|
|
|
|
|
|
|
|
// These are all partially (but not completely?) independent of WARNING_CFLAGS
|
|
|
|
|
// and need to be specified explicitly.
|
|
|
|
|
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES
|
|
|
|
|
GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES
|
2017-06-06 01:16:03 +03:00
|
|
|
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR
|
2017-02-22 01:59:08 +03:00
|
|
|
|
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES
|
|
|
|
|
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES
|
|
|
|
|
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES
|
|
|
|
|
GCC_WARN_MISSING_PARENTHESES = YES
|
|
|
|
|
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES
|
|
|
|
|
GCC_WARN_UNUSED_FUNCTION = YES
|
|
|
|
|
GCC_WARN_UNUSED_LABEL = YES
|
|
|
|
|
GCC_WARN_UNUSED_PARAMETER = YES
|
|
|
|
|
GCC_WARN_UNUSED_VARIABLE = YES
|
|
|
|
|
GCC_WARN_UNUSED_VALUE = YES
|
|
|
|
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE
|
|
|
|
|
GCC_WARN_UNKNOWN_PRAGMAS = YES
|
|
|
|
|
GCC_WARN_SHADOW = YES
|
|
|
|
|
GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES
|
2020-05-25 18:10:16 +03:00
|
|
|
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES
|
2017-02-22 01:59:08 +03:00
|
|
|
|
GCC_WARN_ABOUT_MISSING_NEWLINE = YES
|
|
|
|
|
GCC_WARN_UNDECLARED_SELECTOR = YES
|
|
|
|
|
GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = YES
|
2018-08-02 14:02:42 +03:00
|
|
|
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
|
2017-02-22 01:59:08 +03:00
|
|
|
|
CLANG_WARN__EXIT_TIME_DESTRUCTORS = YES
|
2018-08-02 14:02:42 +03:00
|
|
|
|
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES
|
|
|
|
|
CLANG_WARN_BOOL_CONVERSION = YES
|
|
|
|
|
CLANG_WARN_COMMA = YES
|
2017-02-22 01:59:08 +03:00
|
|
|
|
CLANG_WARN_CONSTANT_CONVERSION = YES
|
|
|
|
|
CLANG_WARN_CXX0X_EXTENSIONS = YES
|
|
|
|
|
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES
|
2018-08-02 14:02:42 +03:00
|
|
|
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR
|
|
|
|
|
CLANG_WARN_EMPTY_BODY = YES
|
|
|
|
|
CLANG_WARN_ENUM_CONVERSION = YES
|
|
|
|
|
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES
|
|
|
|
|
CLANG_WARN_INFINITE_RECURSION = YES
|
|
|
|
|
CLANG_WARN_INT_CONVERSION = YES
|
2017-02-22 01:59:08 +03:00
|
|
|
|
CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE = YES
|
|
|
|
|
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
|
|
|
|
|
CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
|
2018-08-02 14:02:42 +03:00
|
|
|
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR
|
|
|
|
|
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES
|
|
|
|
|
CLANG_WARN_STRICT_PROTOTYPES = YES
|
2017-02-22 01:59:08 +03:00
|
|
|
|
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES
|
2017-06-06 01:16:03 +03:00
|
|
|
|
CLANG_WARN_SUSPICIOUS_MOVE = YES
|
2018-08-02 14:02:42 +03:00
|
|
|
|
CLANG_WARN_UNREACHABLE_CODE = YES
|
2019-04-23 12:54:21 +03:00
|
|
|
|
CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODY = YES
|
|
|
|
|
CLANG_WARN_OBJC_INTERFACE_IVARS = YES
|
2020-10-29 11:00:34 +03:00
|
|
|
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES
|
2018-08-02 14:02:42 +03:00
|
|
|
|
|
2017-02-22 01:59:08 +03:00
|
|
|
|
// Enable extra analyze modes
|
|
|
|
|
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES
|
|
|
|
|
CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES
|
|
|
|
|
CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES
|
|
|
|
|
CLANG_ANALYZER_NONNULL = YES
|
2019-04-23 12:54:21 +03:00
|
|
|
|
CLANG_ANALYZER_GCD_PERFORMANCE = YES
|
2020-10-26 14:27:36 +03:00
|
|
|
|
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES
|
2017-02-22 01:59:08 +03:00
|
|
|
|
|
2019-04-23 12:54:21 +03:00
|
|
|
|
// Swift Compiler - Code Generation
|
2019-10-18 09:39:25 +03:00
|
|
|
|
SWIFT_ENFORCE_EXCLUSIVE_ACCESS = on
|
2020-05-05 20:34:54 +03:00
|
|
|
|
|
|
|
|
|
// Option for xcframework
|
|
|
|
|
BUILD_LIBRARIES_FOR_DISTRIBUTION = YES
|