summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalXCodeGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Xcode: Drop support for Xcode versions below 3Brad King2017-04-221-294/+137
|
* Xcode: Compute version number earlierBrad King2017-04-211-9/+12
|
* Merge topic '16760-refactor-get-mac-content-directory'Brad King2017-04-211-1/+2
|\ | | | | | | | | | | | | cf320f7c Replace boolean `implib` parameters with enum Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !662
| * Replace boolean `implib` parameters with enumGregor Jasny2017-04-201-1/+2
| | | | | | | | | | Named enumeration values are much clearer at call sites and add more type safety.
* | Xcode: Use SYSTEM_HEADER_SEARCH_PATHS attribute for system includesGregor Jasny2017-04-191-4/+33
|/ | | | Closes #16795
* cmGlobalGenerator: Add method to check if object file location is knownBrad King2017-04-181-0/+12
| | | | | | | Add a `HasKnownObjectFileLocation` method returning whether we know the exact location of object files produced by the native build system. This is true everywhere except on Xcode when an architecture placeholder is used.
* Xcode: Refactor loop over all sourcesBrad King2017-04-131-33/+12
| | | | | Switch from `GetConfigCommonSourceFiles` to `GetAllConfigSources`. This will allow us to drop object library files from the former.
* Xcode: Use config-specific object library files on link linesBrad King2017-04-131-1/+1
| | | | | | | | We can do this only with Xcode 5 and above where we list the object library files in the per-config link line value. On older Xcode versions we list the object files as sources so that dependencies work correctly, but that does not allow per-config objects. (Xcode may allow per-config source exclusion but only by base name.)
* Merge topic 'xcode-remove-UseObjectLibraries'Brad King2017-04-131-19/+32
|\ | | | | | | | | | | | | | | | | 229abfc8 cmGeneratorTarget: Drop unused UseObjectLibraries method 63fbf587 Xcode: Inline relevant parts of UseObjectLibraries 1afacebe Xcode: Do not add Object Libraries source group on Xcode >= 5 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !698
| * Xcode: Inline relevant parts of UseObjectLibrariesBrad King2017-04-121-12/+22
| |
| * Xcode: Do not add Object Libraries source group on Xcode >= 5Brad King2017-04-121-11/+14
| | | | | | | | | | | | The group is always empty because on Xcode 5 and above we list object library files directly on the link line and do not list sources for them.
* | Merge topic 'include-style'Brad King2017-04-131-1/+1
|\ \ | |/ |/| | | | | | | | | | | | | 1d829c86 Use quotes for non-system includes 26ee9e42 CPack: drop CPack prefix for includes 5afac50f cmConfigure: Ensure separate include block in headers Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !691
| * Use quotes for non-system includesDaniel Pfeifer2017-04-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Automate with: git grep -l '#include <cm_' -- Source \ | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g' git grep -l '#include <cmsys/' -- Source \ | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g' git grep -l '#include <cm[A-Z]' -- Source \ | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
* | Xcode: Compute a concrete object file arch dir if possibleBrad King2017-04-111-1/+18
| |
* | Xcode: Refactor object directory name computationBrad King2017-04-111-10/+19
| | | | | | | | | | Factor out a helper function to compute the object directory name architecture component.
* | Xcode: Refactor internal architecture list constructionBrad King2017-04-111-17/+15
|/ | | | | Factor population of the `Architectures` member out into a helper to avoid duplication.
* Add GENERATOR_IS_MULTI_CONFIG global propertyBastien Schatt2017-04-041-0/+2
| | | | Fixes: #16768
* Merge topic 'ipo-policy-CMP0069'Brad King2017-03-311-0/+3
|\ | | | | | | | | | | | | | | | | | | | | | | dfa8263f Implement interprocedural optimization for GNU compilers 1588a577 Add policy CMP0069 to enforce INTERPROCEDURAL_OPTIMIZATION a7575700 Refactoring: s,GetFeatureAsBool,IsIPOEnabled, e05835c3 CheckIPOSupported: Visual Studio and Xcode generators do not support IPO Acked-by: Kitware Robot <kwrobot@kitware.com> Reviewed-by: Brad King <brad.king@kitware.com> Reviewed-by: Nils Gladitz <nilsgladitz@gmail.com> Merge-request: !568
| * Add policy CMP0069 to enforce INTERPROCEDURAL_OPTIMIZATIONRuslan Baratov2017-03-301-0/+3
| | | | | | | | | | | | | | | | | | Previously the `INTERPROCEDURAL_OPTIMIZATION` target property was honored only for the Intel compiler on Linux and otherwise ignored. In order to add support for more compilers incrementally without changing behavior in the future, add a new policy whose NEW behavior enforces the `INTERPROCEDURAL_OPTIMIZATION` property. Add flags for supported compilers and otherwise produce an error.
* | Merge topic '16742-swift-3.0'Brad King2017-03-301-1/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | 77139e32 Swift: Simplify mixed test case to make it version agnostic c03141c0 Swift: Default to Swift 3.0 with Xcode 8.3 and later Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !638
| * | Swift: Default to Swift 3.0 with Xcode 8.3 and laterGregor Jasny2017-03-281-1/+5
| | | | | | | | | | | | | | | | | | | | | Xcode 8.3 has dropped support for Swift 2.3 so that compiler and feature detection failed. Closes #16742
* | | Apple: Fix Resources location for all generatorsGregor Jasny2017-03-231-2/+7
| | | | | | | | | | | | Issue: #16680
* | | Xcode: Properly handle Bundle Resources with more than one hierarchy levelGregor Jasny2017-03-221-0/+40
| | | | | | | | | | | | Issue: #16680
* | | Xcode: Properly handle non-resource Bundle files on iOSGregor Jasny2017-03-221-2/+6
| |/ |/| | | | | Issue: #16680
* | Xcode: Control schema generation via variableGregor Jasny2017-03-121-2/+1
| | | | | | | | Issue: #15441
* | Xcode: Fix schema container location calculationGregor Jasny2017-02-281-3/+3
| |
* | Xcode: Do not autocreate schemesGregor Jasny2017-02-281-0/+31
| |
* | Merge topic 'cmake-xcode-schemes'Brad King2017-02-281-0/+28
|\ \ | | | | | | | | | | | | | | | 7238a052 Xcode: Add documentation for schema generator ffb8817b Xcode: Write shared schemes based on the default files generated by Xcode
| * | Xcode: Write shared schemes based on the default files generated by XcodeGusts Kaksis2017-02-281-0/+28
| |/ | | | | | | Issue: #15441
* | Xcode: Always track object library dependencies via hacky MakefileGregor Jasny2017-02-221-14/+12
| | | | | | | | | | | | | | | | Always use the dependency tracker Makefile to ensure targets that depend on object libraries are up-to-date. For all other target types we use the hack only for Xcode < 5. Fixes: #16615
* | Xcode: Record dependency information also for object librariesGregor Jasny2017-02-221-8/+30
| | | | | | | | | | | | | | | | | | | | Xcode seems to have troubles to track target dependecies to object files. This may lead to stale targets as reported in issue #16615. As a work-around the pre-Xcode 5 dependecy tracker hack with post-build make files is extended to also take object libraries into account.
* | Xcode: Collect dummy rules during iteration and emit afterwardsGregor Jasny2017-02-221-24/+13
| |
* | Makefile: Allow adding post-build rules to object librariesGregor Jasny2017-02-221-1/+2
|/
* Apple: Add support for static frameworksGregor Jasny2017-01-311-4/+35
| | | | Closes: #16432
* Xcode: Control emission of EFFECTIVE_PLATFORM_NAMEGregor Jasny2017-01-201-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building with multiple SDKs within one project Xcode requires the usage of ${EFFECTIVE_PLATFORM_NAME} to put temporary and build outout into separate directories. For example an iOS device and simulator build use two different SDKs (iphoneos and iphonesimulator). In the past cmake tries to detect embedded toolchains that could possibly use simulators and emitted EFFECTIVE_PLATFORM_NAME (EPN) at the proper locations. In #16253 Mark noticed that if he uses macosx and iphoneos in combination the necessary EPN is not emitted. This is because CMake by default assumes macosx SDK which does not trigger EPN emission. The fist naive approach - enabling EPN unconditionally revealed that then the EPN leaks into generator expressions like $<TARGET_FILE:xxx> which might be a regression and thus is unacceptable. The next approach was to add an CMake property to enable EPN emission unconditionally. This solved the reported problem. But the EPN leakage also happened for the embedded toolchains already without anyone noticing. So the control property was turned into a tri-state one: * No definition: EPN is activated for embedded toolchains like before * ON: EPN is always emitted * OFF: EPN is never emitted That approach gives the user the chance to disable EPN for embedded toolchains and restores generator expression functionality for those. Closes: #16253
* Xcode: Properly mark SYSTEM includes as suchGregor Jasny2016-12-271-0/+16
| | | | | | | | | We now populate the per-language flags in addition to the header search paths stored in HEADER_SEARCH_PATHS. This preserves include paths for GNU assembly files (cmake/cmake#16449) and also provides SYSTEM include semantics. Closes: cmake/cmake#15687
* Xcode: Add target property to override explicitFileTypeGregor Jasny2016-12-031-0/+4
|
* Xcode: Add target property to override productTypeGregor Jasny2016-12-031-0/+4
|
* Merge topic 'include-what-you-use'Brad King2016-11-281-2/+17
|\ | | | | | | | | | | | | | | d0c14dfb avoid including cmStandardIncludes.h 66a70999 iwyu: Fix VisualStudio specific issues 7b4244ac iwyu: Fix more findings aeff60e4 iwyu: Fix OSX specific issues
| * iwyu: Fix OSX specific issuesDaniel Pfeifer2016-11-221-2/+17
| |
* | Merge topic '16449-revert-xcode-system-includes'Brad King2016-11-281-30/+14
|\ \ | |/ |/| | | | | 543dcb0a Revert "Xcode: Obey SYSTEM keyword for includes (#15687)"
| * Revert "Xcode: Obey SYSTEM keyword for includes (#15687)"Gregor Jasny2016-11-281-30/+14
| | | | | | | | | | | | | | | | Revert commit v3.7.0-rc1~266^2 (Xcode: Obey SYSTEM keyword for includes, 2015-08-31). It worked for C, C++, and Swift but not for GNU Assembly files for which Xcode has no property to set flags. Closes: #16449
* | Add generator expression support to per-source COMPILE_FLAGSZsolt Parragi2016-10-281-1/+18
| | | | | | | | | | | | This allows users to specify different genex-based compile flags for each file in a target, e.g. compiling just a single file with `Od/Ox` in release builds on Visual Studio.
* | cmGlobalGenerator: Allow FindMakeProgram to failBrad King2016-10-201-1/+2
| | | | | | | | | | Revise its signature to return `bool` so that it can fail and abort configuration early.
* | cmState: Move CacheEntryType enum to separate namespaceStephen Kelly2016-10-191-3/+4
| | | | | | | | Port dependent code to the change.
* | cmState: Move TargetType enum to separate namespaceStephen Kelly2016-10-191-66/+66
| |
* | Factor IDE folder name retrieval out into helper methodGregor Jasny2016-10-171-2/+2
| | | | | | | | | | | | Add a `cmGeneratorTarget::GetEffectiveFolderName` helper to abstract lookup of the `FOLDER` property in combination with checking for generator support of folders.
* | VS: Provide an option to use x64 host toolsBrad King2016-10-141-0/+13
| | | | | | | | | | | | | | | | | | | | Visual Studio provides toolchains that are themselves built for 32-bit or 64-bit host architectures. By default it uses the 32-bit tools, but it can be told to prefer the 64-bit tools on 64-bit hosts. Extend the `CMAKE_GENERATOR_TOOLSET` specification to provide a way to request use of the 64-bit host tools. Closes: #15622
* | Xcode: Inline ConvertToRelativePath callsStephen Kelly2016-10-061-3/+3
|/ | | | | Avoid violations of Interface Segregation Principle. These two calls now simply call different methods.
* Simplify CMake per-source license noticesBrad King2016-09-271-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.