summaryrefslogtreecommitdiffstats
path: root/Source/cmake.h
Commit message (Collapse)AuthorAgeFilesLines
* fileapi: Add protocol v1 infrastructure with support for shared query filesBrad King2018-12-121-0/+3
| | | | | | | | | | | | | | | | | | | Add a file-based API that clients may use to get semantic information about the buildsystem that CMake generates. Clients will write query files under a designated location in the build tree, and CMake will write reply files for clients to read. Start with support for shared stateless query files. These allow clients to share requests for major object versions and get all those recognized by CMake. Once any client has written a shared request to a build tree it will persist. Other clients will not need to overwrite the request (since it is stateless) and should not remove it either. For now we add only an undocumented object kind to use for testing the query and reply infrastructure. Object kinds providing real semantic information will be added later. Issue: #18398
* cmake: Factor json version object construction into helperBrad King2018-09-211-0/+1
|
* cmake: -S and -B can be used to specify source and build directoriesRobert Maynard2018-09-151-1/+3
| | | | | | Document the previously internal option of '-B' and provide a matching source directory option with '-S'. Both '-B', and '-S' can be used independently of each other.
* cmake: Declare VariableWatch member only when usedBrad King2018-08-291-2/+6
|
* Revise C++ coding style using clang-format-6.0Kitware Robot2018-06-011-5/+7
| | | | | | | | | | | | Run the `clang-format.bash` script to update all our C and C++ code to a new style defined by `.clang-format`. Use `clang-format` version 6.0. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* Merge topic 'parallel_build_option'Brad King2018-05-291-1/+4
|\ | | | | | | | | | | | | | | 1ab3881ec9 cmake: Add options for parallel builds to --build mode Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Henry Schreiner <henryschreineriii@gmail.com> Merge-request: !1962
| * cmake: Add options for parallel builds to --build modeFlorian Maushart2018-05-251-1/+4
| | | | | | | | | | | | | | While we already support `cmake --build . -- -j`, the options after `--` are specific to the native build tool. Add new options `--parallel [<N>]` and `-j [<N>]` to abstract this and map to the proper option for the native build tool.
* | Help: Update description of the -D option to CMakeRaul Laasner2018-05-241-1/+1
|/ | | | Fixes #18021
* Merge topic 'glob_configure_depends'Brad King2018-04-061-0/+10
|\ | | | | | | | | | | | | | | | | | | | | 6c4f8b4596 Adjust help documentation for file(GLOB), add topic notes 20612978c8 Add tests for `file(GLOB)` CONFIGURE_DEPENDS flag 3f4b81f540 Add glob verify support to XCode, VS, Ninja, and Makefile generators ca0befc2e1 Add `CONFIGURE_DEPENDS` flag support to cmFileCommand::HandleGlobCommand 599c93e22d Add cmGlobVerificationManager class, integrate with cmake and cmState Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1767
| * Add cmGlobVerificationManager class, integrate with cmake and cmStateShane Parris2018-03-291-0/+10
| |
* | Features: Add infrastructure for C++ 20 language standardBrad King2018-03-271-0/+1
|/ | | | Issue: #17849
* Reduce raw string pointers usage.Pavel Solodovnikov2018-01-311-2/+2
| | | | | | | | | | * Change some functions to take `std::string` instead of `const char*` in the following classes: `cmMakeFile`, `cmake`, `cmCoreTryCompile`, `cmSystemTools`, `cmState`, `cmLocalGenerator` and a few others. * Greatly reduce using of `const char*` overloads for `cmSystemTools::MakeDirectory` and `cmSystemTools::RelativePath`. * Remove many redundant `c_str()` conversions throughout the code.
* Performance: Improve efficiency of source file lookup in cmMakefileAaron Orenstein2017-11-171-0/+19
| | | | | | | | | This reintroduces the change from commit v3.10.0-rc1~69^2 (Performance: Improve efficiency of source file lookup in cmMakefile, 2017-08-17) with some corrections. The original was rolled back by commit v3.10.0-rc1~52^2~1 (Revert "Performance: ...", 2017-09-25) due to incompatibilities found. The rollback was followed-up by addition of a test for the offending case, and this revision passes the test.
* Add infrastructure for generators to select a build tool instanceBrad King2017-10-191-0/+7
| | | | | | | | | | | | | | Add cache entry `CMAKE_GENERATOR_INSTANCE` to hold the instance location persistently across re-runs of CMake in a given build tree. For now we reject the option by default if explicitly set. It will be implemented on a per-generator basis. Pass the setting into try_compile project generation. Add a RunCMake.GeneratorInstance test to cover basic use cases for the option. Verify that `CMAKE_GENERATOR_INSTANCE` is empty by default, and that it is rejected when the generator does not support a user setting. Issue: #17268
* cmake: Add --open option for IDE generatorsGregor Jasny2017-10-131-0/+3
|
* try_compile: Simplify generator platform and toolset propagationBrad King2017-09-271-12/+0
| | | | | | | | We don't need to save the `CMAKE_GENERATOR_{PLATFORM,TOOLSET}` values from the cache back into the `cmake` instance. They were used only to propagate the settings into `cmake` instances for `try_compile`, but we already have their values in the `cmMakefile`'s variables anyway. In fact those variables are the ones we actually give to the generators.
* IWYU: Mark cmConfigure.h with pragma: keepDaniel Pfeifer2017-08-261-1/+1
| | | | Also remove `#include "cmConfigure.h"` from most source files.
* Use C++11 nullptrDaniel Pfeifer2017-08-241-2/+1
|
* cmake: initialize with Role that controls which commands to registerDaniel Pfeifer2017-05-081-1/+8
|
* Use CM_DISABLE_COPYDaniel Pfeifer2017-04-241-2/+2
|
* cmake: pass cmStateSnapshot by const refDaniel Pfeifer2017-04-211-1/+1
|
* Use quotes for non-system includesDaniel Pfeifer2017-04-111-2/+2
| | | | | | | | | | | | | 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'
* split Default commands into Scripting and ProjectDaniel Pfeifer2017-02-131-1/+2
|
* Features: Add infrastructure for C++ 17 language standardBrad King2016-12-021-0/+1
| | | | Issue: #16468
* Fix several include-what-you-use findingsDaniel Pfeifer2016-11-081-5/+7
|
* Features: Add meta-features requesting awareness of a particular standardBrad King2016-11-021-0/+6
| | | | | | | | | | A common use case of `target_compile_features` is simply to specify that the compiler should be run in a mode that is aware of e.g. C++11. Some projects simply specify a particular C++11-only feature to request this. Provide a first-class way to do this by naming features after the corresponding language standard. Record them as always available in the corresponding standard level so that requesting them always ensures that standard (or higher) is used.
* cmState: Split auxiliary classes into separate filesStephen Kelly2016-10-191-1/+1
| | | | | | | Port dependents to the new locations as needed. Leave behind a cmState.h include in cmListFileCache to reduce noise. It is removed in a following commit.
* cmState: Port dependent code to new cmStateSnapshot nameStephen Kelly2016-10-191-6/+3
|
* cmState: Move CacheEntryType enum to separate namespaceStephen Kelly2016-10-191-1/+1
| | | | Port dependent code to the change.
* cmake: Factor out default generator selection into helperBrad King2016-10-111-0/+2
|
* Simplify CMake per-source license noticesBrad King2016-09-271-12/+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.
* cmake-server: Report server mode availablitily in CapabilitiesTobias Hunger2016-09-191-2/+2
| | | | | Report the availability of the server-mode in the output of cmake -E capabilities.
* cmake: Make FindCacheFile a static methodBrad King2016-09-141-1/+1
| | | | It does not need access to member data.
* cmake: Factor out method to find the CMakeCache.txt fileTobias Hunger2016-09-121-0/+3
|
* cmake: Introduce ReportCapabilitiesJsonTobias Hunger2016-09-121-0/+7
| | | | | | | Introduce cmake::ReportCapabilitiesJson which returns a the Json object that is serialized in cmake::ReportCapabilities. This allows to re-use the information in cmake-server.
* fix a load of include-what-you-use violationsDaniel Pfeifer2016-09-031-11/+9
|
* make sure to include cmConfigure.h before cmStandardIncludes.hDaniel Pfeifer2016-09-031-0/+2
|
* cmMessenger: Extract from cmake classStephen Kelly2016-08-251-3/+4
| | | | | | | | This way messages can be issued independent of the cmake instance. It is now possible to make DisplayMessage a virtual interface and override it to handle messages in the cmake-gui or future IDE interaction interfaces.
* cmake: Add `cmake -E capabilities` modeTobias Hunger2016-08-161-0/+2
| | | | | | | Add `cmake -E capabilities` to report on generators, cmake version and possibly other static capabilities of cmake. Closes: #15462
* cmake: Constify cmake::GetRegisteredGeneratorsBrad King2016-08-161-1/+1
|
* Report more information about extra generators in generator factoriesTobias Hunger2016-08-031-0/+2
|
* Refactor extra generator registration to use factoriesTobias Hunger2016-08-031-8/+5
| | | | | | | | | | | This will allow additional information about the availability and capabilities of extra generators to be queried without actually creating them. Instead of a static NewFactory() method like the main generator factories have, use a static GetFactory() method to get a pointer to a statically allocated extra generator factory. This simplifies memory management.
* CMake: Report whether generators support platformsTobias Hunger2016-07-141-0/+1
|
* use CM_NULLPTRDaniel Pfeifer2016-06-281-1/+2
|
* cmake: Add an option to control what files needs to be tracedAlex Turbov2016-06-171-0/+10
| | | | | | | | | | Even in relatively small projects using `--trace` (and `--trace-expand`) may produce a lot of output. When developing a custom module usually one is interested in output of only a few particular modules. Add a `--trace-source=<file>` option to enable tracing only a subset of source files. The final output would be only from requested modules, ignoring anything else not matched to given filename(s).
* Merge topic 'expose-cache-properties'Brad King2016-06-131-4/+0
|\ | | | | | | | | | | | | | | 63c0e92c cmState: Expose list of properties of values in the cache 6eee2463 cmCacheEntry: Retrieve all properties of cache entries 120899c6 cmPropertyList: Add a way to retrieve all properties 7066218e cmake: Kill cmake::CacheManager and its getter
| * cmake: Kill cmake::CacheManager and its getterTobias Hunger2016-06-101-4/+0
| | | | | | | | | | This member variable is never initialized and has apparently moved to cmState.
* | Merge topic 'fix-cmake-ISP-violation'Brad King2016-06-131-2/+4
|\ \ | | | | | | | | | | | | | | | 23f87e81 cmake: Remove force from IssueMessage API 54c65d5f cmake: Extract DisplayMessage API.
| * | cmake: Remove force from IssueMessage APIStephen Kelly2016-06-121-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The force parameter is ugly and makes the method harder to reason about (issues the message ... but maybe it doesn't ... but then again you can force it). It is a violation of https://en.wikipedia.org/wiki/Interface_segregation_principle and is the kind of thing described in a recent blog here: http://code.joejag.com/2016/anti-if-the-missing-patterns.html "Any time you see this you actually have two methods bundled into one. That boolean represents an opportunity to name a concept in your code."
| * | cmake: Extract DisplayMessage API.Stephen Kelly2016-06-121-0/+3
| |/