CONFIG = asset_catalogs rez $$CONFIG
load(default_pre)

isEmpty(QMAKE_XCODE_DEVELOPER_PATH) {
    # Get path of Xcode's Developer directory
    QMAKE_XCODE_DEVELOPER_PATH = $$system("/usr/bin/xcode-select --print-path 2>/dev/null")
    isEmpty(QMAKE_XCODE_DEVELOPER_PATH): \
        error("Xcode path is not set. Please use xcode-select to choose Xcode installation path.")

    # Make sure Xcode path is valid
    !exists($$QMAKE_XCODE_DEVELOPER_PATH): \
        error("Xcode is not installed in $${QMAKE_XCODE_DEVELOPER_PATH}. Please use xcode-select to choose Xcode installation path.")
}

isEmpty(QMAKE_XCODEBUILD_PATH): \
    QMAKE_XCODEBUILD_PATH = $$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")

!isEmpty(QMAKE_XCODEBUILD_PATH) {
    # Make sure Xcode is set up properly
    !system("/usr/bin/xcrun xcodebuild -license check 2>/dev/null"): \
        error("Xcode not set up properly. You need to confirm the license agreement by running 'sudo xcrun xcodebuild -license accept'.")

    isEmpty(QMAKE_XCODE_VERSION) {
        # Extract Xcode version using xcodebuild
        xcode_version = $$system("/usr/bin/xcrun xcodebuild -version")
        QMAKE_XCODE_VERSION = $$member(xcode_version, 1)
        isEmpty(QMAKE_XCODE_VERSION): error("Could not resolve Xcode version.")
        unset(xcode_version)
    }
}

isEmpty(QMAKE_TARGET_BUNDLE_PREFIX) {
    QMAKE_XCODE_PREFERENCES_FILE = $$(HOME)/Library/Preferences/com.apple.dt.Xcode.plist
    exists($$QMAKE_XCODE_PREFERENCES_FILE): \
        QMAKE_TARGET_BUNDLE_PREFIX = $$system("/usr/libexec/PlistBuddy -c 'print IDETemplateOptions:bundleIdentifierPrefix' $$QMAKE_XCODE_PREFERENCES_FILE 2>/dev/null")

    !isEmpty(_QMAKE_CACHE_):!isEmpty(QMAKE_TARGET_BUNDLE_PREFIX): \
        cache(QMAKE_TARGET_BUNDLE_PREFIX)
}

QMAKE_ASSET_CATALOGS_APP_ICON = AppIcon

# Make the default debug info format for static debug builds
# DWARF instead of DWARF with dSYM. This cuts down build times
# for application debug builds significantly, as Xcode doesn't
# have to pull out all the DWARF info from the Qt static libs
# and put it into a dSYM file. We don't need that dSYM file in
# the first place, since the information is available in the
# object files inside the archives (static libraries).
macx-xcode:qtConfig(static): \
    QMAKE_XCODE_DEBUG_INFORMATION_FORMAT = dwarf

# This variable is used by the xcode_dynamic_library_suffix
# feature, which allows Xcode to choose the Qt libraries to link to
# at build time, depending on the current Xcode SDK and configuration.
QMAKE_XCODE_LIBRARY_SUFFIX_SETTING = QT_LIBRARY_SUFFIX

xcode_copy_phase_strip_setting.name = COPY_PHASE_STRIP
xcode_copy_phase_strip_setting.value = NO
QMAKE_MAC_XCODE_SETTINGS += xcode_copy_phase_strip_setting

xcode_product_bundle_identifier_setting.name = PRODUCT_BUNDLE_IDENTIFIER
xcode_product_bundle_identifier_setting.value = $$QMAKE_TARGET_BUNDLE_PREFIX
isEmpty(xcode_product_bundle_identifier_setting.value): \
    xcode_product_bundle_identifier_setting.value = "com.yourcompany"
xcode_product_bundle_identifier_setting.value = "$${xcode_product_bundle_identifier_setting.value}.${PRODUCT_NAME:rfc1034identifier}"
QMAKE_MAC_XCODE_SETTINGS += xcode_product_bundle_identifier_setting
