summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Allow OBJECT libraries to be installed, exported, and importedRobert Maynard2017-04-1838-94/+362
| | | | | | | | Teach install() and export() to handle the actual object files. Disallow this on Xcode with multiple architectures because it still cannot be cleanly supported there. Co-Author: Brad King <brad.king@kitware.com>
* Genex: Allow TARGET_OBJECTS to be used everywhereRobert Maynard2017-04-1812-14/+102
| | | | | | | | | Previously the `TARGET_OBJECTS` generator expression was limited only to use in a buildsystem context so that Xcode's placeholders in object file paths can be evaluated. Lift this restriction so that the expression can at least be used in most settings. Co-Author: Brad King <brad.king@kitware.com>
* Genex: Reject TARGET_OBJECTS on non-object libraries earlierBrad King2017-04-1811-41/+53
| | | | | | | | Move the diagnostic that rejects the TARGET_OBJECTS generator expression in non-buildsystem context until after the check for whether the named target is an object library. This order will makes more sense than the previous order once TARGET_OBJECTS is allowed in non-buildsystem context.
* Tests: ExportImport C code should use explicit (void) in prototypesRobert Maynard2017-04-181-12/+12
|
* cmInstallTargetGenerator: Re-order GenerateScriptForConfig logicBrad King2017-04-181-19/+22
| | | | | Do not populate some local variables before switching on the target type.
* cmGlobalGenerator: Add method to check if object file location is knownBrad King2017-04-183-0/+19
| | | | | | | 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.
* cmGeneratorTarget: Add method to get the object file directoryBrad King2017-04-182-0/+17
| | | | | Add a `GetObjectDirectory` method to get the target's object file directory for a specific configuration.
* cmGeneratorTarget: Factor out a GetTargetObjectNames methodBrad King2017-04-183-29/+43
|
* cmGeneratorTarget: Drop default GetLinkerLanguage config argumentBrad King2017-04-172-2/+3
| | | | Update one remaining call site to avoid using the default.
* Merge topic 'prepare-per-config-objects'Brad King2017-04-177-83/+192
|\ | | | | | | | | | | | | | | | | | | | | | | ca697bfc cmGeneratorTarget: Drop obj libs from GetConfigCommonSourceFiles e44a8d2c Xcode: Refactor loop over all sources 97cc29c7 VS: Teach generators how to mark per-config source files 2f6f6f0c Xcode: Use config-specific object library files on link lines 888c8af6 VS: List config-specific object library files on link lines 40aa6c05 cmGeneratorTarget: Add method to collect all sources for all configs Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !701
| * cmGeneratorTarget: Drop obj libs from GetConfigCommonSourceFilesBrad King2017-04-132-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | Call sites such as those in the VS global generator that are used only to reject per-config sources will now allow per-config object library objects. The corresponding generators have already been taught to deal with per-config object library files. Remaining call sites do not need object library files anyway. This will later allow `$<TARGET_OBJECTS:...>` generator expressions to evaluate to values that vary by configuration (e.g. because each configuration has its own object files).
| * 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.
| * VS: Teach generators how to mark per-config source filesBrad King2017-04-134-36/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | Add internal infrastructure for looping over all sources for all configurations and generating each source with exclusion marks for configurations in which they do not participate. This does not yet make per-config sources available in general but does set up some of the needed infrastructure. Unfortunately doing this cleanly will require major refactoring of both the VS 7-9 generators and the VS 10+ generators (for separate reasons). Instead add some extra internal structures to carry information where we need it.
| * 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.)
| * VS: List config-specific object library files on link linesBrad King2017-04-131-11/+10
| | | | | | | | | | | | In cases that we need to list object library files on link lines, look up the set of files matching the configuration of each link line.
| * cmGeneratorTarget: Add method to collect all sources for all configsBrad King2017-04-132-0/+52
| | | | | | | | | | | | Multi-config generators like VS and Xcode need to loop over all the source files first and then handle per-config information within each one. Teach cmGeneratorTarget to provide such a view.
* | Merge topic 'file-copy-relative-from'Brad King2017-04-1710-10/+89
|\ \ | | | | | | | | | | | | | | | | | | | | | 99b90dbf file: Add COPY/INSTALL option for fixed layout relative to a directory dadf1570 file: Refactor COPY/INSTALL relative path handling Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !703
| * | file: Add COPY/INSTALL option for fixed layout relative to a directoryBrad King2017-04-1310-1/+77
| | | | | | | | | | | | | | | | | | | | | | | | Add a `FILES_FROM_DIR` option to install a specific set of files specified relative to a given directory and preserve their layout in the destination. Currently we intend to use this internally to implement other things so we don't provide an `install()` porcelain or documentation yet.
| * | file: Refactor COPY/INSTALL relative path handlingBrad King2017-04-131-10/+13
| |/ | | | | | | Delay conversion to absolute path until the last moment.
* | Merge topic 'iwyu-mapping'Brad King2017-04-172-0/+147
|\ \ | | | | | | | | | | | | | | | | | | d2b0a47c Add include-what-you-use mapping Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !692
| * | Add include-what-you-use mappingDaniel Pfeifer2017-04-132-0/+147
| |/
* | Merge topic 'simpler-import-lib-check'Brad King2017-04-171-3/+1
|\ \ | | | | | | | | | | | | | | | | | | 9a5dcc32 cmExportBuildFileGenerator: use HasImportLibrary Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !699
| * | cmExportBuildFileGenerator: use HasImportLibraryBen Boeckel2017-04-131-3/+1
| | |
* | | Merge topic 'vs-custom-kits-dir'Brad King2017-04-173-13/+44
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | fee01194 VS: Add an environment variable for the Windows 10 kits directory b80c6d12 VS: Refactor Win 10 Kits root detection to support multiple roots Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !696
| * | | VS: Add an environment variable for the Windows 10 kits directoryBrad King2017-04-123-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Define a `CMAKE_WINDOWS_KITS_10_DIR` environment variable to allow users to tell CMake about a custom Windows 10 SDK directory. We choose to make this an environment variable rather than a CMake variable or cache entry because: * Using a custom directory also requires custom external MSBuild configuration. Therefore users are already configuring a custom environment. * The custom directory must be set consistently in all parts of a build including nested projects. An environment variable avoids requiring users to thread the setting into nested builds. Fixes: #16743
| * | | VS: Refactor Win 10 Kits root detection to support multiple rootsBrad King2017-04-121-13/+25
| |/ /
* | | CMake Nightly Date StampKitware Robot2017-04-171-1/+1
| | |
* | | CMake Nightly Date StampKitware Robot2017-04-161-1/+1
| | |
* | | CMake Nightly Date StampKitware Robot2017-04-151-1/+1
| | |
* | | CMake Nightly Date StampKitware Robot2017-04-141-1/+1
| |/ |/|
* | Merge topic 'xcode-remove-UseObjectLibraries'Brad King2017-04-133-57/+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
| * | cmGeneratorTarget: Drop unused UseObjectLibraries methodBrad King2017-04-122-38/+0
| | |
| * | 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 'CheckSymbolExists-update-docs'Brad King2017-04-131-32/+41
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 7f8b93ab CheckSymbolExists: Document that intrinsics may not be detected 91233d56 CheckSymbolExists: Format documentation b416d3e6 CheckSymbolExists: Convert docs to bracket comment syntax Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !695
| * | CheckSymbolExists: Document that intrinsics may not be detectedBrad King2017-04-121-2/+2
| | | | | | | | | | | | Fixes: #16794
| * | CheckSymbolExists: Format documentationBrad King2017-04-121-18/+26
| | |
| * | CheckSymbolExists: Convert docs to bracket comment syntaxBrad King2017-04-121-32/+33
| |/
* | Merge topic 'project-description'Brad King2017-04-1313-3/+82
|\ \ | | | | | | | | | | | | | | | | | | 3b484871 project: Add `DESCRIPTION` parameter Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !679
| * | project: Add `DESCRIPTION` parameterAlex Turbov2017-04-1113-3/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is quite often the project description has used in a real world software. Examples include: * part of a help screen of the application * builtin resources (`*.rc` files, data for "About" dialog of a GUI app, & etc) * most generators for CPack can use it * it could be used by documentary software (Doxygen, Sphinx) which is usually integrated to CMake based projects via `add_custom_target()` Now `project()` call learned an optional `DESCRIPTION` parameter with a short string describing a project. Being specified, it would set the `PROJECT_DESCRIPTION` variable which could be used in `configure_file()` or whatever user wants. Also `PROJECT_DESCRIPTION` is a default value for `CPACK_PACKAGE_DESCRIPTION_SUMMARY`.
* | | Merge topic 'update-kwsys'Brad King2017-04-135-4/+95
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | ada8e0ca Merge branch 'upstream-KWSys' into update-kwsys 85841e8b KWSys 2017-04-12 (23a4c211) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !694
| * \ \ Merge branch 'upstream-KWSys' into update-kwsysBrad King2017-04-125-4/+95
| |\ \ \ | | |_|/ | |/| | | | | | | | | | * upstream-KWSys: KWSys 2017-04-12 (23a4c211)
| | * | KWSys 2017-04-12 (23a4c211)KWSys Upstream2017-04-125-4/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Code extracted from: https://gitlab.kitware.com/utils/kwsys.git at commit 23a4c211e90c1cfd399c3632141dbd549a5db8cf (master). Upstream Shortlog ----------------- Brad King (2): 41a9dfef SystemInformation: Fix dynamic loader failure on WinXP SP2 3ead6158 SystemTools: Fix stat() wrapper compilation with Borland Daniel Pfeifer (1): ce5b0d34 Disable include-what-you-use Mathieu Westphal (1): a2bf6bb3 SystemTools: Add cross-platform stat() wrapper
* | | | Merge topic 'include-style'Brad King2017-04-13556-750/+867
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-11549-726/+726
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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'
| * | | | CPack: drop CPack prefix for includesDaniel Pfeifer2017-04-1118-24/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Automate with: git grep -l '#include <CPack/' -- Source \ | xargs sed -i 's/#include <CPack\/\(.*\)>/#include "\1"/g' git grep -l '#include "CPack/' -- Source \ | xargs sed -i 's/#include "CPack\/\(.*\)"/#include "\1"/g'
| * | | | cmConfigure: Ensure separate include block in headersDaniel Pfeifer2017-04-11111-0/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure that `#include <cmConfigure.h>` is followed by an empty line in header files. This is necessary to make sure that changing <> to "" does not affect the include ordering of clang-format. Automate with: git grep -l '#include <cmConfigure.h>' | grep -v '.cxx$' \ | xargs sed -i '/#include <cmConfigure.h>/ { N; N; s/\n\{1,2\}/\n\n/ }'
* | | | | CMake Nightly Date StampKitware Robot2017-04-131-1/+1
| |/ / / |/| | |
* | | | Merge topic 'vs-refactor-source-loop'Brad King2017-04-124-93/+80
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a2e91af9 cmGeneratorTarget: Drop unused GetIDLSources method a77158b2 VS: Refactor loop over classified sources Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !689
| * | | | cmGeneratorTarget: Drop unused GetIDLSources methodBrad King2017-04-112-8/+0
| | | | |