func appendToBuildSettings()

in Sources/XCRemoteCache/Commands/Prepare/Integrate/BuildSettingsIntegrateAppender.swift [59:102]


    func appendToBuildSettings(buildSettings: BuildSettings, wrappers: XCRCBinariesPaths) -> BuildSettings {
        var result = buildSettings
        setBuildSetting(buildSettings: &result, key: "SWIFT_EXEC", value: wrappers.swiftc.path )
        if options.contains(.disableSwiftDriverIntegration) {
            setBuildSetting(buildSettings: &result, key: "SWIFT_USE_INTEGRATED_DRIVER", value: "NO" )
        }
        // When generating artifacts, no need to shell-out all compilation commands to our wrappers
        if case .consumer = mode {
            setBuildSetting(buildSettings: &result, key: "CC", value: wrappers.cc.path )
            setBuildSetting(buildSettings: &result, key: "LD", value: wrappers.ld.path )
            // Setting LIBTOOL to '' breaks SwiftDriver intengration so resetting it to the original value
            // 'libtool' for all excluded configurations
            setBuildSetting(
                buildSettings: &result,
                key: "LIBTOOL",
                value: wrappers.libtool.path,
                excludedValue: "libtool"
            )
            setBuildSetting(buildSettings: &result, key: "LIPO", value: wrappers.lipo.path )
            setBuildSetting(buildSettings: &result, key: "LDPLUSPLUS", value: wrappers.ldplusplus.path )
        }

        let existingSwiftFlags = result["OTHER_SWIFT_FLAGS"] as? String
        let existingCFlags = result["OTHER_CFLAGS"] as? String
        var swiftFlags = XcodeSettingsSwiftFlags(settingValue: existingSwiftFlags)
        var clangFlags = XcodeSettingsCFlags(settingValue: existingCFlags)

        // Overriding debug prefix map for Swift and ObjC to have consistent absolute path for all debug symbols
        swiftFlags.assignFlag(key: "debug-prefix-map", value: "\(repoRoot.path)=$(XCRC_FAKE_SRCROOT)")
        clangFlags.assignFlag(key: "debug-prefix-map", value: "\(repoRoot.path)=$(XCRC_FAKE_SRCROOT)")

        setBuildSetting(buildSettings: &result, key: "OTHER_SWIFT_FLAGS", value: swiftFlags.settingValue )
        setBuildSetting(buildSettings: &result, key: "OTHER_CFLAGS", value: clangFlags.settingValue )

        setBuildSetting(buildSettings: &result, key: "XCRC_FAKE_SRCROOT", value: "\(fakeSrcRoot.path)" )
        setBuildSetting(buildSettings: &result, key: "XCRC_PLATFORM_PREFERRED_ARCH", value:
        """
        $(LINK_FILE_LIST_$(CURRENT_VARIANT)_$(PLATFORM_PREFERRED_ARCH):dir:standardizepath:file:default=arm64)
        """
        )

        explicitlyDisableSDKs(buildSettings: &result)
        return result
    }