| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Reduce the number of files relying on `cmake.h`.
|
|
|
|
|
|
| |
Rename `cmGlobalVisualStudio{15 => Versioned}Generator`. Rename
`Factory` to `Factory15` since that part still needs to be
version-specific.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
2d68b2c593 String: Add str_if_stable() as a const alternative to str()
a0841b59bd String: Add support for a ""_s string literal syntax
9d5fe8e96a String: Add 'borrow' member to construct borrowing instances
80802a002c String: Add support for concatenation by operator+
ff69763ca0 String: Add a custom string type
410a3e4b22 Add support for using C++17 string_view or a fallback
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Daniel Pfeifer <daniel@pfeifer-mail.de>
Acked-by: Pavel Solodovnikov <hellyeahdominate@gmail.com>
Merge-request: !2578
|
| |
| |
| |
| |
| | |
Create a `static_string_view` type that binds only to the static storage
of string literals. Teach `cm::String` to borrow from these implicitly.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Create a `cm::String` type that holds a view of a string buffer and
optionally shares ownership of the buffer. Instances can either
borrow longer-lived storage (e.g. static storage of string literals)
or internally own a `std::string` instance. In the latter case,
share ownership with copies and substrings. Allocate a new internal
string only on operations that require mutation.
This will allow us to recover string sharing semantics that we
used to get from C++98 std::string copy-on-write implementations.
Such implementations are not allowed by C++11 so code our own in
a custom string type instead.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Define a `cm::string_view` type implemented via C++17 `std::string_view`
when available. Provide a fallback implementation for C++11 and C++14
compilers.
The fallback implementation was written by reading documentation of the
standard spec. We have no dedicated tests for it, but it will be
covered by tests of its clients later.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
b9c6f08276 Help: Add release note for fileapi feature
4b6b2a571c fileapi: extend codemodel v2 with directory details
eb8c7676a4 fileapi: extend codemodel v2 with a project model
42f0125ceb fileapi: Add test for cmakeFiles v1
6615408193 fileapi: add cmakeFiles v1
3f6ee75a66 fileapi: Add test for cache v2
7489e95b8e fileapi: add cache v2
ea0a060168 fileapi: Add test for codemodel v2
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2706
|
| | |
| | |
| | |
| | | |
Issue: #18398
|
| | |
| | |
| | |
| | |
| | |
| | | |
Start with v2 to distinguish it from server-mode v1.
Issue: #18398
|
| | |
| | |
| | |
| | |
| | |
| | | |
Start with v2 to distinguish it from server-mode v1.
Issue: #18398
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/ |
|
|
|
|
|
| |
This moves the global ``AUTOMOC/UIC/RCC`` targets initializer
generation code into a separate new ``cmQtAutoGenGlobalInitializer`` class.
|
|\
| |
| |
| |
| |
| |
| | |
20d5e77a27 CPack: Rename Ext generator to External
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2566
|
| |
| |
| |
| |
| | |
Ext and External were used inconsistently in the code and the
docs. This change converts all uses of Ext to External, including
within variable names used by the generator.
|
|/
|
|
|
|
|
|
|
| |
Before this change, install rules created by add_subdirectory()
would be executed after all of the top-level install rules, even
if they were declared before the top-level rules. This change
adds a new policy, CMP0082, which interleaves the add_subdirectory()
install rules with the other install rules so they are run in the
correct order.
|
|
|
|
|
|
|
|
|
|
|
|
| |
These new capabilities enable to manage link directories
Two new properties:
* target properties: LINK_DIRECTORIES and INTERFACE_LINK_DIRECTORIES
One new command
* target_link_directories(): to populate target properties
Fixes: #17215
|
|
|
|
|
| |
Declare entry points in a dedicated header and compile the source
separately instead of including it in the server implementation.
|
|
|
|
|
|
|
|
|
| |
Avoid exposing the item name implicitly as std::string. When the item
is a target, avoid storing a second copy of its name.
Most link item construction is paired with calls to `FindTargetToLink`
to get the possible target pointer. Rename these methods to
`ResolveLinkItem` and refactor them to construct the entire item.
|
|
|
|
|
|
|
|
| |
This generator doesn't actually package the files. Instead, it
provides a metadata JSON file that can be used by external packaging
software to do its own packaging. This JSON file provides information
about the components, component groups, installation types, and CMake
projects.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\
| |
| |
| |
| |
| |
| | |
ca49f1a8e4 CPack: Fix cross-compilation of WiX generator
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2116
|
| |
| |
| |
| |
| |
| |
| | |
Fix the case of the path to source files so it works on case-sensitive
filesystems.
Fixes: #18042
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Create a CPack generator that uses `nuget.exe` to create packages:
https://docs.microsoft.com/en-us/nuget/what-is-nuget
NuGet packages could be easily produced from a `*.nuspec` file (running
`nuget pack` in the directory w/ the spec file). The spec filename does
not affect the result `*.nupkg` name -- only `id` and `version` elements
of the spec are used (by NuGet).
Some implementation details:
* Minimize C++ code -- use CMake script do to the job. It just let the
base class (`cmCPackGenerator`) to preinstall everything to a temp
directory, render the spec file and run `nuget pack` in it, harvesting
`*.nupkg` files...;
* Ignore package name (and use default paths) prepared by the base class
(only `CPACK_TEMPORARY_DIRECTORY` is important) -- final package
filename is a responsibility of NuGet, so after generation just scan the
temp directory for the result `*.nupkg` file(s) and update
`packageFileNames` data-member of the generator;
* The generator supports _all-in-one_ (default), _one-group-per-package_
and _one-component-per-package_ modes.
|
| |
| |
| |
| |
| |
| |
| | |
This command manages preprocessor definitions at directory level and
supports generator expressions.
Fixes: #15374
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
In commit v2.8.0~170 (ENH: Added ctest test options PROCESSORS and
RUN_SERIAL, 2009-09-07) CTest learned to track the number of processors
allocated to running tests in order to balance it against the desired
level of parallelism. Extend this idea by introducing a new
`PROCESSOR_AFFINITY` test property to ask that CTest run a test
with the CPU affinity mask set. This will allow a set of tests
that are running concurrently to use disjoint CPU resources.
|
|
|
|
|
|
|
|
|
| |
Some environments require linking to thread libraries for `std::thread`.
Express this direct dependency of CMakeLib explicitly. Previously this
was done indirectly through our bundled libuv, but that does not work
when using a system libuv.
Fixes: #17757
|
|\
| |
| |
| |
| |
| |
| |
| | |
3ec5f7c1 De-duplicate cmUVSignalHackRAII
1ad58d30 cmUVSignalHackRAII: Use nullptr instead of NULL
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1699
|
| |
| |
| |
| |
| |
| | |
This was added separately in `cmCTestMultiProcessHandler` and
`cmQtAutoGenerator`. Factor out the duplicate code into a common header
for re-use.
|
|\ \
| |/
|/|
| |
| |
| |
| |
| |
| | |
e6a80ccf Make use of std::chrono throughout every component
ff62b005 CTest: add safe conversion from cmDuration to integer types
695951bc CTest: introduce cmDuration
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1592
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A problem area by recent refactoring of time to std::chrono has been the
unsafe conversion from duration<double> to std::chrono::seconds, which
is of an unspecified integer type.
This commit adds a template function that for a given type provides a
safe conversion, effectively clamping a duration<double> into what fits
safely in that type. A specialisation for int and unsigned int are
provided.
It changes the protential problem areas to use this safe function.
|
|/
|
|
|
|
|
|
|
|
| |
The last KDevelop3 release was many years ago, in 2008 I think.
I haven't seen or read about anybody using KDevelop 3 since a
long time, so I think it can safely be removed from CMake.
KDevelop 4 (first released in 2010) has its own proper CMake
support now, independent from this generator.
Alex
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This was partially implemented by commit v2.8.0~154 (Added some ctest
batch capabilities, 2009-09-10) but never finished.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The `uv_*_t` handle types are closed by `uv_close`, but the semantics
are tricky. Calling `uv_close` may not close immediately. Instead it
hands ownership to the uv loop to which the handle is currently
attached. When the loop decides to close it, a callback is used to
allow the `uv_close` caller to free resources.
Provide an abstraction layer as `cm::uv_*_ptr` types corresponding to
the `uv_*_t` handle types. Each pointer is either empty (`nullptr`)
or has an initialized handle attached to a loop. Use move semantics
to ensure a single owner of the handle so that clients can predict
when the handle is destroyed.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
a62d50ec Modules: Replace coded PATHS with PATH_SUFFIXES
fd56d6a8 FindMPEG,2: Update to current libmpeg2 behavior
5f382cd8 FindPike: Update names and paths
6720807d FindAVIFile: Replace PATHS with updated suffixes
f88ef9a9 Modules: Remove paths set as global Unix prefixes
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1502
|
| |
| |
| |
| |
| | |
This commit removes hardcoded paths that are already given in the
platform files or in `UnixPath` on a global level.
|
| |
| |
| |
| |
| | |
Remove the cmQtAutoGenDigest classes and make
cmQtAutoGeneratorInitializer instantiable instead.
|
| |
| |
| |
| |
| |
| | |
Adds the new base class `cmQtAutoGenerator` which contains common
variables and methods used by `cmQtAutoGeneratorMocUic` and
`cmQtAutoGeneratorRcc`.
|
| | |
|
|/
|
|
|
|
|
|
|
| |
Introduces the standalone RCC generator class `cmQtAutoGeneratorRcc`.
Every instance of `cmQtAutoGeneratorRcc` class handles the
`rcc` invocation for a single `.qrc` file.
The class will be used in the future to allow parallel `.qrc` file
processing by calling `cmake -E cmake_autorcc <INFO_FILE> <CONFIG>`.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
39c2feaf misc: Added utility method to allow working with stacks
f5d2988e server: Swapped to cm_thread impl
2636d86c utility: Added minimal std::thread drop-in
d46b4ba8 server: Updated server tests to try various communication channels
08dca583 Tests: reworked server tests to allow other operation modes
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1230
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cygwin-built CMake now converts paths from Cygwin to Windows form
(using cygpath -w) before they're passed to WiX.
The Wix generator on Cygwin requires the libuuid-dev package when
building CMake. However, the DLL it links to is installed by default
as part of Cygwin's core libs, so it does not need to be distributed.
If libuuid-dev isn't available, CMake is simply built without Wix
support on Cygwin.
|