| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Fixes: #17955
|
|\
| |
| |
| |
| |
| |
| | |
df535ad846 Add CMAKE_FOLDER variable to initialize FOLDER target property
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1896
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This can be used for example to organize all following targets into one
Visual Studio folder:
set(CMAKE_FOLDER Libraries)
add_subdirectory(libA)
add_subdirectory(libB)
set(CMAKE_FOLDER Executables)
add_subdirectory(progA)
Another possibility is using the current directory name for all
following targets in subdirectories:
get_filename_component(dirname "${CMAKE_CURRENT_SOURCE_DIR}" NAME)
string(APPEND CMAKE_FOLDER "/${dirname}")
|
|/
|
|
|
|
| |
Remove an unused variable and its containing local scope accidentally
left by commit v3.11.0-rc1~44^2 (Reduce allocation of temporary values
on heap, 2018-01-25).
|
|\
| |
| |
| |
| |
| |
| | |
2dc2a3eb15 Identify DLL platforms via CMAKE_IMPORT_LIBRARY_SUFFIX
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1832
|
| |
| |
| |
| |
| |
| |
| | |
Use `CMAKE_IMPORT_LIBRARY_SUFFIX` to identify platforms that have DLL
import libraries rather than memorizing a list of platform names.
Fixes: #16801
|
| |
| |
| |
| |
| |
| | |
Introduce policy `CMP0073` to avoid producing these cache entries.
Fixes: #16364
|
| |
| |
| |
| | |
Inline the condition in the one remaining place it is checked.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Remove the `<target>_LIB_DEPENDS` cache entry unconditionally.
It will be populated again later if needed. There is no need
to ask the user to remove the cache entry if the target type
changes.
Issue: #16364
|
|/
|
|
| |
We don't need to pass an argument with the target's own name.
|
|
|
|
|
|
|
|
| |
Note: This only allows `OBJECT` libraries to be on the right-hand side
of `target_link_libraries` but still does not link its object-files to
the target on the left-hand side.
Issue: #14778
|
|
|
|
| |
Found via `codespell -q 3 -I ../cmake-whitelist.txt`.
|
|
|
|
|
| |
Similar to 660769151a7f628f92eb28d77bcae854eaae54c2, the `SetProperty`
side is showing up in performance listings due to string comparisons.
|
|
|
|
|
| |
- Use `std::move` while inserting temporary results into vectors.
- Change `push_back` to `emplace_back` where appropriate.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This introduces concurrent thread processing in the `_autogen`
target wich processes AUTOMOC and AUTOUIC.
Source file parsing is distributed among the threads by
using a job queue from which the threads pull new parse jobs.
Each thread might start an independent ``moc`` or ``uic`` process.
Altogether this roughly speeds up the AUTOMOC and AUTOUIC build
process by the number of physical CPUs on the host system.
The exact number of threads to start in the `_autogen` target
is controlled by the new AUTOGEN_PARALLEL target property which
is initialized by the new CMAKE_AUTOGEN_PARALLEL variable.
If AUTOGEN_PARALLEL is empty or unset (which is the default)
the thread count is set to the number of physical CPUs on
the host system.
The AUTOMOC/AUTOUIC generator and the AUTORCC generator are
refactored to use a libuv loop internally.
Closes #17422.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| |
| |
| | |
f19c70c3 Fortran: Add option to run the compiler through launcher tools
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1517
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add a `Fortran_COMPILER_LAUNCHER` target property like those added for C
and CXX by commit v3.4.0-rc1~450^2 (Add options to launch the compiler
through tools like ccache or distcc, 2015-06-04) and CUDA by commit
v3.10.0-rc1~531^2 (CUDA: Add option to run the compiler through launcher
tools, 2017-06-09).
Fixes: #17499
|
|/
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Use its value to initialize the `CUDA_SEPARABLE_COMPILATION` target
property when targets are created.
Fixes: #17478
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The purpose of this new `IMPORTED_GLOBAL` target-property is to prolong
the lifetime and scope of `IMPORTED` targets in such a way as if they
had been created with the keyword `GLOBAL` in the first place.
* It can only be set to `TRUE`. That means, a local `IMPORTED` target
can be promoted to global scope but a global `IMPORTED` target cannot
be degraded to local scope!
* Setting it to `TRUE` only succeeds if done from within the same
directory in which the `IMPORTED` target was created in the first
place.
Fixes #17256.
|
|
|
|
|
|
|
|
| |
Before this change, `cmTarget::CheckProperty` accepted several strings
as valid properties, including all strings prefixed with
"INTERFACE_LINK_LIBRARIES". Now, that particular string is still
accepted but other strings prefixed with that string are no longer
accepted.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The change in commit v3.8.0-rc1~276^2 (Allow NO_SYSTEM_FROM_IMPORTED on
imported INTERFACE libraries, 2016-11-21) was incorrect. The property
is not meant to be set on imported targets at all. It is meant to be
set on their consumers that compile sources. Since INTERFACE libraries
have no sources to compile, the property is not needed on them.
Revert most of that change. Unfortunately we must still tolerate
project code setting NO_SYSTEM_FROM_IMPORTED on INTERFACE libraries
because they were allowed by CMake 3.8 and 3.9.
Issue: #17348
|
| |
|
|
|
|
| |
Add an unordered map to cmMakefile to speed up GetSource() lookups.
|
|
|
|
| |
Update the one place that used it to avoid needing assignment.
|
| |
|
|
|
|
|
|
| |
Changes done via `clang-tidy` with some manual fine-tuning
for the variable naming and `auto` type deduction
where appropriate.
|
| |
|
|
|
|
|
|
| |
Create a `<LANG>_CPPCHECK` target property (initialized by a
`CMAKE_<LANG>_CPPCHECK` variable) to specify a `cppcheck` command line
to be run along with the compiler.
|
| |
|
| |
|
|
|
|
| |
Closes #17176
|
|
|
|
|
|
|
|
| |
Add a `CUDA_COMPILER_LAUNCHER` target property like those added for C
and CXX by commit v3.4.0-rc1~450^2 (Add options to launch the compiler
through tools like ccache or distcc, 2015-06-04).
Fixes: #16953
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
23691d78 CUDA: Allow sources to be compiled to .ptx files
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !725
|
| |
| |
| |
| |
| | |
When the target property `CUDA_PTX_COMPILATION` is enabled CUDA OBJECT
libraries will generate ptx files instead of object files.
|
|/
|
|
|
| |
Named enumeration values are much clearer at call sites and add more
type safety.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
eec93bce Allow OBJECT libraries to be installed, exported, and imported
93c89bc7 Genex: Allow TARGET_OBJECTS to be used everywhere
ac0cf7ff Genex: Reject TARGET_OBJECTS on non-object libraries earlier
8577978c Tests: ExportImport C code should use explicit (void) in prototypes
26cfd039 cmInstallTargetGenerator: Re-order GenerateScriptForConfig logic
25f3f22a cmGlobalGenerator: Add method to check if object file location is known
d596c550 cmGeneratorTarget: Add method to get the object file directory
930042f2 cmGeneratorTarget: Factor out a GetTargetObjectNames method
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !712
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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'
|
| |
|
|
|
|
| |
Closes #15227
|
| |
|
|
|
|
|
| |
This new property controls whether to apply INSTALL_NAME_DIR to the
build tree. It also overrides BUILD_WITH_INSTALL_RPATH.
|
|
|
|
| |
Closes: #16432
|