| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |\
| |
| |
| |
| |
| |
| | |
6e637b1102 install(PACKAGE_INFO): Fix error when usage requirements contain certain genex
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11322
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since commit 13c7bb5b0c (cmGeneratorExpression: Update strip function to
collect parsed expressions, 2025-04-08, v4.1.0-rc1~361^2~1), the logic
to strip generator expressions would error if the stripped expressions
were being collected and an expression without a `:` was found inside an
expression with a `:`. This resulted in an error when exporting a target
that contained such a generator expression in its link libraries or
compile definitions.
Address the error by checking whether the latest `$<` proceeded the
latest `:`.
|
| | | |
|
| | | |
|
| |\ \
| |/
| |
| |
| |
| |
| | |
8227028e49 string(GENEX_STRIP): Fix regression on nested generator expressions
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !11077
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since commit 13c7bb5b0c (cmGeneratorExpression: Update strip function to
collect parsed expressions, 2025-04-08), the logic to strip generator
expressions from a string made incorrect assumptions about the contents of
generator expressions, leading certain cases to be stripped incorrectly.
Clean up the logic and fix broken behavior, and add test coverage with
`string(GENEX_STRIP)`.
Fixes: #27133
|
| |\ \
| |/
| |
| |
| |
| |
| |
| | |
a760a74abf Tests: Optionally skip tests requiring 64-bit time_t
14e21fa992 bootstrap: Compile with 64-bit time_t on 32-bit Linux if possible
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !10951
|
| | |
| |
| |
| |
| | |
On some platforms, `time_t` is always 32-bit. Add an explicit option
to skip tests that require 64-bit `time_t`.
|
| |/ |
|
| |
|
|
|
|
| |
Extend commit 5b10f96793 (Linux: Compile with _FILE_OFFSET_BITS=64 on
32-bit Linux, 2020-09-23, v3.19.0-rc1~112^2) to cover `time_t` too,
by compiling with `_TIME_BITS=64`.
|
| |
|
|
|
| |
This was missed by commit 74519e1c83 (string(TIMESTAMP): Fix %s
placeholder for year 2038 on Windows, 2025-02-23).
|
| |
|
|
|
|
|
|
|
|
| |
`difftime` returns a `double`, so commit 6727270b75 (CMake: Extend
TIMESTAMP sub-commands with new unix time format specifier, 2016-02-16,
v3.6.0-rc1~338^2) cast it to `long` to get an integer result. However,
in the MSVC ABI, `long` is a 32-bit integer. Use an explicit 64-bit
integer type instead.
Fixes: #26716
|
| |
|
|
|
|
|
|
|
| |
The semantics mimic other languages like Python, Java, JS, etc.
To advance past a zero-length match, the search algorithm first
tries to find a non-zero alternative branch. If that fails, it
force-advances by 1 character.
Fixes: #13790, #13792, #18690, #26629
|
| |
|
|
|
|
|
|
|
| |
When doing successive matches, track the input start and current search
start positions separately to prevent the `^` anchor from matching in
the middle of the string. Add policy CMP0186 to provide compatibility.
Issue: #26629
Fixes: #16899
|
| |
|
|
|
| |
For policy-specific tests, use the version before the policy was
introduced. Otherwise, use 3.10 where possible.
|
| |
|
|
|
|
|
|
| |
For policy-specific tests, use the version before the policy was
introduced. Otherwise, use 3.5 where possible.
Also, remove `cmake_minimum_required()` and `project()` calls from
individual cases where they are handled by `CMakeLists.txt`.
|
| |
|
|
| |
Fixes: #24056
|
| |
|
|
| |
`s/then/than/` in a comparison.
|
| |
|
|
|
|
|
| |
The `GET_ARRAY` and `MEMBERS` modes were removed during development and
review of commit 8eab76eb84 (string(JSON): Adds JSON parsing support to
the string command, 2020-08-24, v3.19.0-rc1~159^2), but were
accidentally left in an error message.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The %f specified extends the string(TIMESTAMP) and file(TIMESTAMP)
commands to output the timestamp with a microsecond resolution.
This convention is offered by python's datetime module.
Before, the precision was limited to seconds.
The implementation is done by extending existing cmTimestamp methods
with a `microseconds` parameter. This parameter is optional in order to
be backwards compatible. The timestamps are now received in a
cross-platform manner using libuv, since the standard C functions like
time() don't allow for sub-second precision.
This requires libuv 1.28 or higher. We already require higher than
that on Windows, so update the required version for other platforms.
Implements: #19335
|
| |
|
|
|
|
| |
In ISO 8601 weeks begin with Monday. The first week of
the year is the week which contains the first Thursday
of the year.
|
| |
|
|
|
|
|
| |
Adds a set of sub commands to the string command for parsing JSON, the
JSON commands are: GET, TYPE, MEMBER, LENGTH, REMOVE, SET, and EQUAL.
Closes: #19501
|
| |
|
|
| |
Use 3.3 or 2.8.12 where possible.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
This is just like CONCAT but accepts a glue string to put between
each value. `JOIN ""` is equivalent to `CONCAT`.
|
| |
|
|
|
|
|
|
| |
These are defined both by [1] and [2] to give full names of a weekday
and month.
[1] http://pubs.opengroup.org/onlinepubs/009695399/functions/strftime.html
[2] https://msdn.microsoft.com/de-de/library/fe06s4ak.aspx
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
When `string(REGEX REPLACE)` or `string(REGEX MATCHALL)` loop
internally, they store their matches, but they do not clear the previous
match from an earlier iteration. This can leave the contents of
`CMAKE_MATCH_<N>` with bogus values for later matches in the string if
they have groups which earlier matched a non-empty string, but now match
an empty string.
Fixes #17079.
|
| |
|
|
| |
This encoding is documented by `strptime`.
|
| |
|
|
|
|
| |
See https://reproducible-builds.org/ for why this is good and
https://reproducible-builds.org/specs/source-date-epoch/ for the
definition of this variable.
|
| | |
|
| | |
|
| | |
|
| | |
|
|
|
Add a string(CONCAT) command to simply concatenate input arguments
together. This will be useful for combining strings from different
quoting syntaxes. Add a RunCMake.string test covering these cases.
|