| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
97bca2f9fa Android: Use unified toolchain in NDK r19+
19f36c5fb2 Android: Update test to not require GCC compiler to exist in NDK
f3e32ddae9 Android: Re-order system initialization to select sysroot last
9a0720b819 Android: Clarify name of internal variable for arch triple
4e6c58d937 Android: Select NDK host tag while determining system
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3612
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The NDK build system now uses only a single toolchain in
<ndk>/toolchains/llvm/prebuilt/<host>
Its compilers are always `bin/{clang,clang++}` and its binutils are
always `bin/<triple>-*`. It is a standalone toolchain:
* The Anrdoid API level is specified at the end of `--target=`.
* The standard library may be specified via `-stdlib=`.
* No need to pass system includes or libraries explicitly.
* No need to pass `--sysroot` or `-gcc-toolchain`.
Teach CMake to recognize NDK versions that have a unified
toolchain with its own sysroot and use the above approach.
Fixes: #18739
|
| | |
|
| | |
|
| |
| |
| |
| | |
The triple applies to more than just header locations.
|
| |
| |
| |
| |
| | |
The host tag is tied to the host platform and does not depend on any
specific language or compiler.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
d1aa9f307e Tests: Remove stray source dir modification in RunCMake.find_program
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3610
|
| | |
| | |
| | |
| | |
| | |
| | | |
Since commit c76c1ea208 (find_program: Consider CWD only for paths with
separator, 2018-05-31, v3.13.0-rc1~413^2) this test has created a
directory in the source tree unnecessarily. Remove it.
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| |_|/
|/| |
| | |
| | |
| | |
| | | |
4542ec239a Help/dev: Add release commit instructions to maintainer guide
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3604
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
eb5ea5a505 CMakeVersion: Use '-rc0' version suffix on release branches prior to rc1
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3609
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Revert the change from commit 7b354baad5 (CMakeVersion: Set
CMake_VERSION_RC to 0 even in non-rc versions, 2019-07-25) and instead
define a `0` value in `CMake_VERSION_RC` to mean `-rc0`. This
distinguishes release branch versions prior to the first release
candidate from the first release candidate itself. It also makes room
for a dedicated "CMake $major.$minor.0-rc1" release commit for `-rc1` as
we have for later release candidates and final releases.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
d6be117ca0 ExternalProject: Support not initializing any submodules
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3579
|
| | | |
| | | |
| | | |
| | | | |
Fixes #15592
|
|\ \ \ \
| |_|_|/
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | | |
bd2793b6e9 Help: Add documentation for INSTALL_REMOVE_ENVIROMENT_RPATH
f08dcbffec Property: Add INSTALL_REMOVE_ENVIROMENT_RPATH property
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3544
|
| | | | |
|
| | | | |
|
|\ \ \ \
| |_|_|/
|/| | | |
|
| | | | |
|
|\ \ \ \
| |/ / / |
|
| |\ \ \
| | | | |
| | | | |
| | | | | |
Merge-request: !3608
|
|\ \ \ \ \
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | | |
3b113cc131 Help: Add 3.15.1 release notes
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3608
|
| |/ / / |
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
1d3841b600 Genex: Memoize usage requirement TARGET_PROPERTY existence
b5460f9931 cmLinkItem: Expose HadHeadSensitiveCondition in cmLinkInterfaceLibraries
ad2b3a32d1 Genex: Optimize build setting TARGET_PROPERTY evaluation
11fa818ecd Genex: Optimize usage requirement TARGET_PROPERTY recursion
0239bf8ac8 Genex: In TARGET_PROPERTY check for usage reqs in link libs earlier
7caebeb0e4 Genex: Re-order TARGET_PROPERTY logic to de-duplicate checks
b2785a0fbd Genex: Move TARGET_PROPERTY linked targets evaluation to end
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Cristian Adam <cristian.adam@gmail.com>
Merge-request: !3589
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
For each usage requirement (such as `INTERFACE_COMPILE_DEFINITIONS` or
`INTERFACE_INCLUDE_DIRECTORIES`), the value of the generator expression
`$<TARGET_PROPERTY:target,prop>` includes the values of the same
property from the transitive closure of link libraries of the target.
In cases that a target's transitive closure of dependencies does not
depend on the target being linked (the "head" target), we can memoize
whether or not a usage requirement property exists at all for that
target. When a usage requirement does not exist for a target, we
can skip evaluating it for every consuming target.
Fixes: #18964, #18965
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Clients may be able to avoid repeating work if they know the transitive
link interface libraries do not depend on what is linking them.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
For each build setting property (such as `COMPILE_DEFINITIONS` or
`INCLUDE_DIRECTORIES`), the value of `$<TARGET_PROPERTY:target,prop>`
includes the values of the corresponding `INTERFACE_*` usage requirement
property from the transitive closure of link libraries of the target.
Previously we computed this by constructing a generator expression
string like `$<TARGET_PROPERTY:lib,INTERFACE_COMPILE_DEFINITIONS>` and
recursively evaluating it with the generator expression engine. Avoid
the string construction and parsing by using the dedicated evaluation
method `cmGeneratorTarget::EvaluateInterfaceProperty`.
Issue: #18964, #18965
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In large projects the generation process spends a lot of time evaluating
usage requirements through transitive interface properties on targets.
This can be seen in a contrived example with deep dependencies:
set(prev "")
foreach(i RANGE 1 500)
add_library(a${i} a.c)
target_compile_definitions(a${i} PUBLIC A${i})
target_link_libraries(a${i} PUBLIC ${prev})
set(prev a${i})
endforeach()
For each usage requirement (such as `INTERFACE_COMPILE_DEFINITIONS` or
`INTERFACE_INCLUDE_DIRECTORIES`), the value of the generator expression
`$<TARGET_PROPERTY:target,prop>` includes the values of the same
property from the transitive closure of link libraries of the target.
Previously we computed this by constructing a generator expression
string like `$<TARGET_PROPERTY:lib,INTERFACE_COMPILE_DEFINITIONS>` and
recursively evaluating it with the generator expression engine. Avoid
the string construction and parsing by creating and using a dedicated
evaluation method `cmGeneratorTarget::EvaluateInterfaceProperty` that
looks up the properties directly.
Issue: #18964, #18965
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Check for usage requirement properties early enough to avoid duplicate
checks in other conditions.
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
e91bfe440c cmMakefile: Let AddDefinition accept a value as cm::string_view
f2ba968ef2 cmMakefile: Simplify and rename AddDefinitionBool
9b5cc42531 cmDefinitions: Remove const char* based Set method
e268840c0a cmDefinitions: Add Unset and cm::string_view based Set methods
451fd329a8 cmDefinitions: Cleanups
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3577
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This changes `cmMakefile::AddDefinition` to take a `cm::string_view` as value
argument instead of a `const char *`.
Benefits are:
- `std::string` can be passed to `cmMakefile::AddDefinition` directly without
the `c_str()` plus string length recomputation fallback.
- Lengths of literals passed to `cmMakefile::AddDefinition` can be computed at
compile time.
In various sources uses of `cmMakefile::AddDefinition` are adapted to avoid
`std::string::c_str` calls and the `std::string` is passed directly.
Uses of `cmMakefile::AddDefinition`, where a `nullptr` `const char*` might
be passed to `cmMakefile::AddDefinition` are extended with `nullptr` checks.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This simplifies the `cmMakefile::AddDefinition` method with bool value
overload to call the string based `cmMakefile::AddDefinition` method
with either an "ON" or "OFF" string.
Also the method is renamed to `cmMakefile::AddDefinitionBool`
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
- Removes `cmDefinitions::Set` method overload that takes a `const char*`
value argument.
- Updates calls to `cmDefinitions::Set` to use the `cm::string_view` based
version instead.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
- The `cmDefinitions::Def` struct is simplified by removing an unused
constructor and the `std_string` type definition. The std::string value
becomes a member variable instead of being derived from.
- The `cmDefinitions::Unset` method is added that unsets a definition.
It has the same functionality as calling `cmDefinitions::Set` with a
`nullptr` value argument,
- The `cmDefinitions::Set` method gets an overloaded version that takes a
`cm::string_view` as value argument.
- The originl `cmDefinitions::Set` method with `const char*` argument is
refactored to either call the `cm::string_view` based `cmDefinitions::Set`
overload or `cmDefinitions::Unset`, depending on whether the value
`const char*` is a nullptr (`Unset`) or not (`Set`).
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
4ff0bb054b cmSystemTools: Make IsInternallyOn, IsON and IsOff cm::string_view based
65d3ea2c7f cmAlgorithms: Make cmHasLiteral{Prefix,Suffix} cm::string_view based
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3598
|
| | | | | | | |
|
| | | | | | | |
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
aff019f7a4 Merge branch 'upstream-KWSys' into update-kwsys
780d9e070b KWSys 2019-07-25 (a24a6acb)
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3602
|
| |\ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
* upstream-KWSys:
KWSys 2019-07-25 (a24a6acb)
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Code extracted from:
https://gitlab.kitware.com/utils/kwsys.git
at commit a24a6acbbb4a51cf6fefbeb10d1f63ed1b670c69 (master).
Upstream Shortlog
-----------------
Brad King (3):
15896025 SystemTools: Use C++11 in SystemToolsAppendComponents
c6f8e24a SystemTools: Fix CollapseFullPath with relative base path
5ca03af6 SystemTools: Revert "Reduce scope of 'buf' variable in CollapseFullPath"
David Bodnar (5):
116a4919 RegularExpression: Reduce scope of 'len' variable
31f5cdeb RegularExpression: Initialize private members on construction
6e36d909 SystemTools: Reduce scope of 'buf' variable in CollapseFullPath
a93bc28c SystemTools: Drop unnecessary .c_str()
6c3dfd25 CommandLineArguments: initialize internal class members directly
|
|\ \ \ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
94f536b935 cmCTestHandlerCommand: fix typo of local variable
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3600
|
| | |_|/ / / / / /
| |/| | | | | | | |
|
|\ \ \ \ \ \ \ \ \
| | |_|_|_|_|/ / /
| |/| | | | | | | |
|
| |\ \ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Merge-request: !3605
|