// Global settings for all configurations


ARCHS = x86_64
SDKROOT = macosx // Use latest macOS SDK
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
GCC_VERSION = com.apple.compilers.llvm.clang.1_0
MACOSX_DEPLOYMENT_TARGET = 10.9
COPY_PHASE_STRIP = NO
DEAD_CODE_STRIPPING = YES
GCC_AUTO_VECTORIZATION = YES
GCC_GENERATE_DEBUGGING_SYMBOLS = YES
GCC_DEBUGGING_SYMBOLS = full
GCC_C_LANGUAGE_STANDARD = c11
CLANG_CXX_LANGUAGE_STANDARD = c++0x
CLANG_CXX_LIBRARY = libc++

OTHER_CFLAGS = $(inherited)
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) __MACOSX__

FRAMEWORK_SEARCH_PATHS_QUOTED_1 = "$(SDK_DIR)/System/Library/Frameworks"
FRAMEWORK_SEARCH_PATHS_QUOTED_2 = "$(SRCROOT)/../macosx/build/$(CONFIGURATION)"
FRAMEWORK_SEARCH_PATHS_QUOTED_3 = "$(SRCROOT)/../macosx/external/QT"

LIBRARY_SEARCH_PATHS_QUOTED_1 = "$(SDK_DIR)/usr/lib"
LIBRARY_SEARCH_PATHS_QUOTED_2 = "$(SRCROOT)/../macosx/build/$(CONFIGURATION)"
LIBRARY_SEARCH_PATHS_QUOTED_3 = "$(SRCROOT)/../macosx/external/QT"

HEADER_SEARCH_PATHS_QUOTED_1 = "$(SRCROOT)/../macosx/external/glew/include/**"

CLANG_ENABLE_OBJC_ARC = YES
GCC_NO_COMMON_BLOCKS = YES

CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES

// Preprocessing
ENABLE_STRICT_OBJC_MSGSEND = YES

// Objective-C Warnings
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES
GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES
GCC_WARN_STRICT_SELECTOR_MATCH = YES
GCC_WARN_UNDECLARED_SELECTOR = YES

// Warnings
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES
CLANG_WARN_EMPTY_BODY = YES
GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES
CLANG_WARN_BOOL_CONVERSION = YES
CLANG_WARN_CONSTANT_CONVERSION = YES
GCC_WARN_64_TO_32_BIT_CONVERSION = YES
CLANG_WARN_ENUM_CONVERSION = YES
CLANG_WARN_INT_CONVERSION = YES
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES
GCC_WARN_ABOUT_RETURN_TYPE = YES
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = NO // Can't enable this because of Qt
CLANG_WARN_INFINITE_RECURSION = YES
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES
CLANG_WARN_ASSIGN_ENUM = YES
GCC_WARN_SIGN_COMPARE = YES
CLANG_WARN_COMMA = YES
GCC_WARN_UNINITIALIZED_AUTOS = YES
GCC_WARN_UNKNOWN_PRAGMAS = YES
CLANG_WARN_UNREACHABLE_CODE = YES
GCC_WARN_UNUSED_FUNCTION = YES
GCC_WARN_UNUSED_LABEL = YES
GCC_WARN_UNUSED_VARIABLE = YES

// C++ Warnings
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES
CLANG_WARN_SUSPICIOUS_MOVE = YES

