BuildSettingExtractor icon indicating copy to clipboard operation
BuildSettingExtractor copied to clipboard

Consider supporting a platform/sdk-level set of xcconfig files for cross-platform projects

Open dempseyatgithub opened this issue 7 years ago • 4 comments

At the moment BSE performs all of its consolidation on the same 'level'. Common settings across multiple build settings at the project or target level are consolidated into a shared setting.

In a project created with targets for a single platform sdk, the project usually contains some consolidated platform-specific settings (such as SDKROOT).

For a project with targets for multiple platforms, it likely makes sense to have common settings for all targets using the same sdk separated out per platform.

This would generate a set of xcconfig files for each platform. (one per build style + shared). Each target build style xcconfig file would import the platform build style xcconfig file for the appropriate platform.

dempseyatgithub avatar Aug 21 '18 14:08 dempseyatgithub

This would likely require moving some settings, at least the SDK setting, from the project down to the SDK-level config file. And the deployment target setting as well.

dempseyatgithub avatar Jan 21 '20 23:01 dempseyatgithub

Does it make sense to do as Xcode does and keep one SDK at the project level? Without it, the setting appears as 'No SDK (macOS)' in the Xcode build settings interface.

dempseyatgithub avatar Jan 22 '20 00:01 dempseyatgithub

In a project with many many targets with various SDKs may want another level of hierarchy:

Config
    Project
          Project-Shared.xconfig
           ...
   SDKs
         iOS
            iOS-Shared.xconfig
             ...
         macOS
            macOS-Shared.xconfig
             ...
    Targets
        MyApp
           MyApp-Shared.xconfig
           ...
        MyAppTests
           MyAppTests-Shared.xconfig
           ...

dempseyatgithub avatar Feb 13 '20 21:02 dempseyatgithub

👍Yes this would be grand.

schwa avatar Mar 10 '21 03:03 schwa