| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
6646771b0f project: Do not issue CMP0048 warnings on injected call
08eb157c03 Tests: Add case showing CMP0048 warning on injected project command
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2235
|
| |
| |
| |
| | |
Fixes: #18202
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
This family enable to manage link flags
Three new properties:
* directory property: LINK_OPTIONS
* target properties: LINK_OPTIONS and INTERFACE_LINK_OPTIONS
Two new commands
* add_link_options(): to populate directory property
* target_link_options(): to populate target properties
Fixes: #16543
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Store both the as-written and lower-case command names and use
the latter to avoid case-insensitive string comparisons.
With this I obtain 2-6% speed increase (on Windows) for the configure
step with no significant changes in memory usage. A case-insensitive
comparison is a lot slower than just calling `==` because the operator
will use things like memcmp, so prefer the latter.
The `cmSystemTools::LowerCase` function allocates a new string each time
it is called, so before this change we were allocating in:
* cmMakefile::Configure two times for each function
(to look for `cmake_minimum_required` and `project`)
* cmMakefile::ExecuteCommand twice by function by calling
cmState::GetCommand and copying the name
Now we are only allocating once by function instead of four.
|
|
|
|
|
|
| |
The two-argument forms of `AddDefineFlag` and `RemoveDefineFlag`
need no access to `cmMakefile` class members. They are used only
within the implementation file.
|
|
|
|
|
| |
Return `std::string const&` instead of a `const char*` that points
into a string anyway. Update call sites accordingly.
|
|\
| |
| |
| |
| |
| |
| | |
60cb75e4a1 Fix CMAKE_DISABLE_SOURCE_CHANGES recognition of top of build tree
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2001
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The change in commit v3.11.0-rc1~480^2 (UseJava: add_jar OUTPUT_DIR
option used only for jar generation, 2017-10-12) added code of the form
`file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR})`. This exposed an existing
bug in `CMAKE_DISABLE_SOURCE_CHANGES` in which it does not recognize
that the top of the build tree itself is in the build tree. Fix that
now.
Fixes: #17933
|
| |
| |
| |
| |
| |
| |
| | |
This command manages preprocessor definitions at directory level and
supports generator expressions.
Fixes: #15374
|
| |
| |
| |
| |
| |
| | |
Policies affecting the behavior of CMake-provided macros and functions
need to be able to get the policy setting as of the call site rather
than the definition site. Add an undocumented option to do this.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
65198cfd0f variable_watch: trigger on variables set via PARENT_SCOPE
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1948
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Make sure that we also trigger variable watches when a variable
is set in the parent scope.
Fixes: #17827
|
|\ \ \
| |/ /
|/| /
| |/
| |
| |
| | |
aad360eb3d Fix crash with --trace-expand --warn-uninitialized together
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1944
|
| |
| |
| |
| |
| |
| |
| |
| | |
Some code paths in `ExpandVariablesInString{New,Old}` were not checking
the `filename` parameter for a null pointer, but this can happen when
using the above flags together. Add the checks and a test case.
Fixes: #17896
|
| |
| |
| |
| |
| | |
Normally they are sanitized by the `link_directories` command before
populating the property, but projects may set the property directly.
|
| |
| |
| |
| | |
Issue: #17849
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
45408b5ea1 cmake_minimum_required: Optionally set policies with version range
6a41aa2abd cmPolicies: Split parsing and impl of ApplyPolicyVersion
1d00ed7cf7 cmPolicies: Drop unnecessary check from ApplyPolicyVersion
0df559832b cmPolicies: Pass policy version as std::string
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1864
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Teach `cmake_minimum_required` and `cmake_policy(VERSION)` to support a
version range of the form `<min>[...<max>]`. Define this to mean that
version `<min>` is required, but known policies up to those introduced
by `<max>` will be set to `NEW`. This will allow projects to easily
specify a range of versions for which they have been updated.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Policy `CMP0074` was added by commit eb35d8884b (find_package: Use
PackageName_ROOT variables as search prefixes, 2018-03-15). Revise the
logic to avoid warning when a `PackageName_ROOT` variable is set to
empty since that won't change the search behavior. Also, when we do
warn include the variable value(s) for reference.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This feature was originally added by commit v3.9.0-rc1~71^2~2 (find_*:
Add a new PackageRoot search path group, 2017-05-03) and documented by
commit v3.9.0-rc1~71^2 (find_*: Add docs for PackageRoot search path
group, 2017-05-03). However, we had to disable the feature and remove
the documentation in commit v3.9.1~2^2 (find_*: Disable the PACKAGE_ROOT
search path group for CMake 3.9, 2017-08-08) due to breaking projects
that used `PackageName_ROOT` variables themselves.
Add policy `CMP0074` to restore the `PackageName_ROOT` variable behavior
in a compatible way. Also revise the stack of root paths to store the
paths themselves rather than the package names. This way the policy can
be considered at the `find_package` call site instead of individual
`find_` calls inside a find module.
Co-Author: Chuck Atkins <chuck.atkins@kitware.com>
Issue: #17144
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
5901699672 cmDepends: Remove attempt to change directory that always fails
e60e4dfc88 cmWorkingDirectory: Check success of current dir changes
e654622aee Tests: Add --build-and-test test case
a865f0beb2 Tests: Confirm test working dir set successfully
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1817
|
| | | |
|
|/ /
| |
| |
| | |
We don't need to pass an argument with the target's own name.
|
| |
| |
| |
| |
| |
| |
| | |
Store "Known" files separately in KnownFileSearchIndex. This avoids
creating the rather expensive cmSourceFileLocation object for source
files that are already known. For large projects this results in a
factor 3-4 speedup of cmGlobalGenerator::Compute().
|
|/
|
|
| |
Implements: #17680
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
- Use `std::move` while inserting temporary results into vectors.
- Change `push_back` to `emplace_back` where appropriate.
|
|
|
|
|
| |
Follow up commit 969c1f94ae (cmSourceGroup: code improvements; use
std::string and C++11 loops, 2017-01-10).
|
|\
| |
| |
| |
| |
| |
| | |
969c1f94 cmSourceGroup: code improvements; use std::string and C++11 loops
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1656
|
| |
| |
| |
| | |
Topic-rename: cmSourceGroup-modern-cxx
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Primarily, this includes:
- the rule files generated for custom targets;
- source files representing custom targets directly;
- outputs of custom commands;
- byproducts of custom commands; and
- dependencies of custom commands.
|
|/
|
|
|
|
|
|
|
|
|
| |
The ambiguous extension logic is an old behavior that ends up taking
lots of extra compute cycles to execute. This is triggered by various
CMake codepaths which pass extension-less paths down when CMake actually
knows that they are not ambiguous. These codepaths will be indicated in
upcoming changes.
Various APIs have gained a cmSourceFileLocationKind parameter, but they
are all optional and default to the existing behavior.
|
|\
| |
| |
| |
| |
| |
| |
| | |
81868e6b CUDA: Add cu as default source file extension
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Brad King <brad.king@kitware.com>
Merge-request: !1629
|
| | |
|
| |
| |
| |
| | |
Closes: #17431
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
| |
When C++ features require a certain C++/CUDA level, verify or update the
standard level target property for each language independently.
While at it, add missing rejection of invalid `CUDA_STANDARD` property
values.
Co-Author: Brad King <brad.king@kitware.com>
Fixes: #17519
|
|
|
|
|
|
|
| |
The original code doesn't scale well as we add support for each new
language level.
Co-Author: Brad King <brad.king@kitware.com>
|
|\
| |
| |
| |
| |
| |
| | |
afd9a339 server: return whether or not a target is generator provided
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1475
|
| |
| |
| |
| |
| |
| | |
Some generators auto-generate targets. For example VS generators create
the ALL_BUILD target. Add the ability to mark targets as generator
provided and return that info through cmake-server codemodel.
|
|\ \
| |/
|/|
| |
| |
| |
| | |
fe2c2b0f server: ctestInfo fix to return all tests
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1479
|
| |
| |
| |
| |
| | |
Prior to this change we were looking at targets. But tests are
associated with directories. This change fixes how we gather all tests.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
4a6348db Performance: Improve efficiency of source file lookup in cmMakefile
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1421
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/ |
|