summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalXCodeGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* cmSystemTools: Fix 'ErrorOccurred' spellingFeRD (Frank Dana)2022-06-131-1/+1
| | | | | | | | Rename the booleans 's_ErrorOccured' and 's_FatalErrorOccured' to 's_ErrorOccurred' and 's_FatalErrorOccurred', respectively. Rename the getters and setters to 'Get[Fatal]ErrorOccurred' and 'Set[Fatal]ErrorOccurred', and fix all uses across the codebase.
* Xcode: Check for multiple `OSX_ARCHITECTURES` on targetHyper Nova Sun2022-04-111-3/+21
| | | | | | | | When determining a given target's object directory, also check for its `OSX_ARCHITECTURES` before resorting to global defaults. This fixes inconsistent object library references when: - `CMAKE_OSX_ARCHITECTURES` is unset or singular - but the object library's `OSX_ARCHITECTURES` property is set to multiple archs
* cmTarget: Add `HasKnownObjectFileLocation()` shorthandHyper Nova Sun2022-04-111-1/+1
| | | | | | | | Allow `cmGlobalGenerator`s to decide `HasKnownObjectFileLocation()` per given `cmTarget` - `cmGlobalGenerator::HasKnownObjectFileLocation()` now takes an optional `cmGeneratorTarget` - `cmTarget::HasKnownObjectFileLocation()` added as a shorthand
* xcode: add support for xcconfig filesGregor Jasny2022-04-031-0/+78
| | | | Fixes: #18420
* LINK_LIBRARIES: Evaluate separately for linking and usage requirementsBrad King2022-03-221-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | We evaluate `LINK_LIBRARIES` and `INTERFACE_LINK_LIBRARIES` for two purposes: * Constructing the link line. * Collecting usage requirements. We evaluate `INTERFACE_LINK_LIBRARIES` separately for each purpose in order to support the `$<LINK_ONLY:...>` generator expression used to express private link dependencies of a static library. Previously we only evaluated `LINK_LIBRARIES` for linking, and used that result for collecting usage requirements too. Therefore `$<LINK_ONLY:...>` does not work in `LINK_LIBRARIES`. With the introduction of `INTERFACE_LINK_LIBRARIES_DIRECT`, evaluation of `LINK_LIBRARIES` now needs to distinguish these two cases in order to honor link dependencies encountered through `$<LINK_ONLY:...>` without also exposing other usage requirements through private dependencies of a static library. Revise internal infrastructure to distinguish the two cases when evaluating `LINK_LIBRARIES`. Make the information available in code paths for `INTERFACE_LINK_LIBRARIES_DIRECT` and `LINK_ONLY`. Defer actually using the information to later commits. Issue: #22496
* Xcode: Fix support for source tree symlink inside build treeBrad King2022-02-281-4/+6
| | | | | | | | | | | Since commit 61495cdaae (Fix Xcode project references to the source tree, 2009-09-22, v2.8.0~43) we force source file references to use relative paths from the source tree. If the source tree path is a symbolic link inside the build tree, the relative `../` sequence goes to the wrong place. The problem with debug breakpoints motivating that change does not seem to occur in modern Xcode versions, so update the logic to use a relative path only when it does not need to start in any `../` sequence.
* GenEx/LINK_LIBRARY: Add features for framework support on AppleMarc Chevrier2022-02-151-21/+25
|
* cmGlobalGenerator: Add helper to split framework pathMarc Chevrier2022-02-131-38/+16
| | | | | cmComputeLinkInformation and cmGlobalXCodeGenerator now rely on this method to handle framework paths.
* Genex: Add $<LINK_LIBRARY:...>Marc Chevrier2022-02-071-1/+3
| | | | | | | | This generator expression offers the capability, for the link step, to decorate libraries with prefix/suffix flags and/or adding any specific flag for each library. Fixes: #22812, #18751, #20078, #22703
* cmBuildOptions: Split build arguments into separate object.Carsten Rudolph2022-01-221-1/+1
|
* Xcode: Properly identify frameworks with system includesGregor Jasny2021-12-221-1/+1
| | | | | | | | Check the complete include path for being a system include, not the derived framework search path. The code for Ninja and Makefile generators does exactly the same. Fixes: #23011
* cmLocalGenerator: Simplify Add{Custom,Utility}CommandNAKAMURA Takumi2021-11-181-16/+17
|
* cmCustomCommand: Move constructor arguments to individual settersNAKAMURA Takumi2021-11-181-5/+6
| | | | | | | | Make `cmCustomCommand` have just only default constructor. Use each setter instead. This follows the builder pattern. Introduce `cc::SetOutputs(std::string output)`. This will be used later, as substitution for `cc::SetOutputs({output})`.
* Source: Fix IWYU warnings in Xcode generatorsNAKAMURA Takumi2021-11-161-3/+10
|
* Xcode: Add embedded plugins optionGusts Kaksis2021-11-101-0/+9
|
* Source: fix many -Wmissing-prototypes warnings by marking functions staticSean McBride2021-10-251-2/+2
|
* Merge topic 'xcode-dead-code'Brad King2021-09-291-3/+0
|\ | | | | | | | | | | | | | | b8a2ce0484 cmGlobalXCodeGenerator: Remove dead buildsystem version check Acked-by: Kitware Robot <kwrobot@kitware.com> Reviewed-by: Raul Tambre <raul@tambre.ee> Merge-request: !6568
| * cmGlobalXCodeGenerator: Remove dead buildsystem version checkBrad King2021-09-281-3/+0
| | | | | | | | | | | | | | | | | | In commit 8d5f4c4db9 (Xcode: Switch to the "new build system" for Xcode 12 and above, 2020-09-14, v3.19.0-rc1~143^2~7) we accidentally added code in an `else` block that under the opposite condition by which the block can be entered. Remove it. Fixes: #22681
* | Xcode: Treat .inl files as C++ header filesJake Turner2021-09-281-1/+1
|/ | | | | Generate the `explicitFileType` as `sourcecode.cpp.h` instead of just `sourcecode`. This enables syntax highlighting in Xcode.
* Rename cmProp in cmValueMarc Chevrier2021-09-211-29/+29
|
* Xcode: add support for embedding dynamic librariesLucas SOLTIC2021-09-131-2/+5
|
* Use new AddCacheEntry signaturesMarc Chevrier2021-09-101-3/+2
|
* Refactor: Use new SetProperty signaturesMarc Chevrier2021-08-251-1/+1
|
* Merge topic 'xcode13-old-buildsystem'Brad King2021-07-071-1/+5
|\ | | | | | | | | | | | | 71a2664ebb Xcode: Ignore deprecated build system Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6309
| * Xcode: Ignore deprecated build systemGregor Jasny2021-07-061-1/+5
| | | | | | | | | | With Xcode 13 the key to suppress the check has changed. Tested with Xcode 12.5 and 13.0-beta2.
* | cmMakefile: Add helper to initialize CMAKE_CONFIGURATION_TYPESBrad King2021-06-301-8/+1
|/ | | | | Factor out duplicate code from the Ninja Multi-Config, Visual Studio, and Xcode generators.
* cmComputeLinkInformation: Improve type safety of item IsPath memberBrad King2021-05-291-3/+5
| | | | Use an enum to avoid implicit conversions to bool.
* cmLocalGenerator: Factor out relative path conversion helpersBrad King2021-05-131-2/+1
| | | | | | Most calls to `MaybeConvertToRelativePath` use one of our common work directories (e.g. top of the build tree) as the local path. Add helpers for each of the common cases to simplify and clarify call sites.
* cmGlobalXCodeGenerator: Simplify relative path conversion under project rootBrad King2021-05-121-10/+4
|
* Merge topic 'xcode-inherited-params'Brad King2021-05-121-0/+3
|\ | | | | | | | | | | | | dfaf55fbfd Xcode: add extra '$(inherited)' entries using InheritBuildSettingAttribute. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6077
| * Xcode: add extra '$(inherited)' entries using InheritBuildSettingAttribute.Danny Parker2021-05-051-0/+3
| | | | | | | | | | | | | | | | | | These have been added to: GCC_PREPROCESSOR_DEFINITIONS OTHER_CFLAGS OTHER_LDFLAGS This is to allow Cocoapods to work correctly as it uses xcconfig files to alter build settings in Xcode, and requires these build settings to inherit from their parent, not overwrite.
* | Xcode: Fix typos and spelling in error messageJosef Angstenberger2021-05-071-1/+1
|/
* Merge topic 'xcode_app_extensions'Brad King2021-04-261-20/+51
|\ | | | | | | | | | | | | | | eb5e33ba47 Xcode: Add support for embedding app extensions f62a2bf44f Tests: Factor out XcodeProject-Embed check function findAttribute() Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5934
| * Xcode: Add support for embedding app extensionsAlexander Akhundzhanov2021-04-221-20/+51
| | | | | | | | Co-Authored-By: Craig Scott <craig.scott@crascit.com>
* | Xcode: Add support of DEPFILE for add_custom_command, part 2Marc Chevrier2021-04-171-2/+26
| | | | | | | | | | | | This MR extend the support of 'DEPFILE' to buildsystem version 1. Issue: #20286
* | Xcode: Add support of DEPFILE for add_custom_commandMarc Chevrier2021-04-151-4/+29
|/ | | | Issue: #20286
* Merge branch 'backport-xcode-framework-quoting' into xcode-framework-quotingBrad King2021-03-101-1/+1
|\
| * Xcode: Restore support for spaces in framework namesBrad King2021-03-101-1/+1
| | | | | | | | | | | | | | | | | | | | In commit ce2dee9e5b (Xcode: Don't add framework as -framework argument in linker info list, 2020-09-28, v3.19.0-rc1~47^2) we split up the path to a framework into the directory and framework name parts, but only retained the quoting on the directory part. Restore quoting of the framework name. Fixes: #21910
* | cmLocalGenerator: Simplify some GetIncludeFlag call sitesBrad King2021-02-251-6/+3
| | | | | | | | | | The path style argument is meaningful only with the Ninja generator, so drop it from call sites in Makefile and Xcode generators.
* | cmLocalGenerator: Clarify GetIncludeFlags signatureBrad King2021-02-251-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | Make the `config` argument non-optional so all callers must be explicit. Convert the path style argument to an enumeration to make its role clear at call sites. The path style argument is implemented by `ConvertToIncludeReference`, which was introduced with the Ninja generator by commit 5b114c9bee (Introduce a cmLocalGenerator::ConvertToIncludeReference function, 2011-09-07, v2.8.7~187^2~4). Its only purpose is to allow the Ninja generator to use relative paths in `-I` flags. Add a comment explaining this role.
* | cmCustomCommand: Record value of CMP0116 at time of creationKyle Edwards2021-02-231-7/+9
| |
* | Merge topic 'xcode-framework-path'Brad King2021-02-041-1/+14
|\ \ | |/ | | | | | | | | | | | | | | 5389bb4274 Xcode: Don't hard-code SDK-provided implicit framework search paths df08f8df30 cmComputeLinkInformation: Fix misspelt private variable name 375b307bae Apple: Fix linking to frameworks that do not exist until build time Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5760
| * Xcode: Don't hard-code SDK-provided implicit framework search pathsCraig Scott2021-02-031-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | When a framework is linked to a target by its full path and that framework is located in one of the implicit framework search directories, CMake 3.18.5 and earlier discarded that path. ce2dee9e5ba (Xcode: Don't add framework as -framework argument in linker info list, 2020-09-28) introduced a regression which resulted in the framework path always being added to the search path even if it matched one of the implicit search paths. This broke the ability to do device and simulator builds from the same configured project. Fixes: #21678
* | iOS: Fix compilation of CMake itselfHayden2021-02-021-2/+5
| | | | | | | | There are no ApplicationServices on iOS.
* | Merge topic 'xcode-object-ids'Brad King2021-01-081-12/+45
|\ \ | |/ | | | | | | | | | | | | | | b8b6573db8 Xcode: Use deterministic object ids for script build phases 2892228dc9 cmGlobalXCodeGenerator: Add infrastructure for deterministic object ids d250b67722 cmGlobalXCodeGenerator: Adopt pbxproj object id generation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5671
| * Xcode: Use deterministic object ids for script build phasesBrad King2021-01-061-9/+12
| | | | | | | | | | | | | | | | | | | | The Xcode "new build system" only considers a script build phase up to date if it has run before, even if outputs are newer than inputs. Use a deterministic object id for script build phases associated with custom commands so that they do not need to re-run after CMake re-generates the project. Fixes: #21669
| * cmGlobalXCodeGenerator: Add infrastructure for deterministic object idsBrad King2021-01-061-13/+23
| |
| * cmGlobalXCodeGenerator: Adopt pbxproj object id generationBrad King2021-01-061-2/+22
| |
* | Xcode: Generalize inheritance of project-level search pathsBrad King2020-12-221-10/+35
| | | | | | | | | | | | | | | | | | Generalize the change from commit bffb17be3d (Xcode: Inherit target library and framework search paths from project, 2020-11-04, v3.19.0-rc3~4^2) to apply to framework and other kinds of search paths added either for include directories or for linking. Issue: #21617
* | cmGlobalXCodeGenerator: Factor out helper to append attributeBrad King2020-12-211-28/+35
| |