`AUTOGEN_USE_SYSTEM_INCLUDE` was added. `AUTOGEN_USE_SYSTEM_INCLUDE`
is a boolean property that can be set on a target to indicate that the
autogen target include directory should be added as a system include
directory or normal include directory to the target.
f552ba6e6d presets: add support for macro expansion to includes
1df24df01f presets: Fix encoding of env/penv macro expansion on Windows
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8255
This function is used by NMake Makefile generator, but when shortening path
fails, it previously returned an empty string. `ERROR_ACCESS_DENIED` is
returned for paths within `C:\Program Files\WindowsApps`, which is
a special folder with limited access rights. It looks like this is
[by design](https://superuser.com/a/1730061/213587).
Fixes: #24853
ba5ced1be6 libarchive: Set build options the way we need for CMake
1e2bce305f Merge branch 'upstream-LibArchive' into update-libarchive
e468170731 LibArchive 2022-12-09 (ba80276c)
744a42c0ee libarchive: Update script to get 3.6.2
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8431
Teach `ExternalProject_Add` and `FetchContent_Declare` to resolve
relative remote URLs provided via `GIT_REPOSITORY`. Add policy
CMP0150 to maintain compatibility.
Fixes: #24211
Co-Authored-By: Craig Scott <craig.scott@crascit.com>
Add all cmake input files to the `ZERO_CHECK` project. Place files
under `CMAKE_SOURCE_DIR` in a folder structure matching the directory
structure. This way they are easier to find, and Visual Studio does not
close them when reloading the project.
Fixes: #24557
Previously CMake ignored the return code from iwyu because old versions
of the tool would exit with an error code even when no header include
violations were detected. The iwyu project has since changed this
behavior, so the tool no longer returns an error code unless the user
enables error reporting via command line arguments.
Behavior seen with iwyu version 0.19
Source file with missing includes:
- Case 1: iwyu arguments:
- return code: 0
- output: <report of all missing includes>
- Case 2: iwyu arguments: `-Xiwyu --error`
- return code: 1
- output: <report of all missing includes>
Source file with no missing includes:
- Case 1: iwyu arguments:
- return code: 0
- output: `(/path/to/file.cc has correct #includes/fwd-decls)`
- Case 2: iwyu arguments: `-Xiwyu --error`
- return code: 0
- output: `(/path/to/file.cc has correct #includes/fwd-decls)`
Teach CMake to return the iwyu return code if the user has invoked the
tool with any of these command line arguments included:
- `--error[=N]`
- `--error_always[=N]`
Fixes: #24066
e08ba229ee CMake code rely on cmList class for CMake lists management (part. 1)
51b0d45d91 cmExpandList and cmExpandLists rely on cmList class
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8423
We add a function in cmNinjaNormalTargetGenerator.cxx to check for the state of the option (as it was done for Makefile). This will be checked to add or not the `$LINK_PATH` and `$LINK_LIBRARIES` to the Ninja file.
The default behavior is adding those libraries.
Fixes: #24681
FILE_SET was introduced in CMake 3.23, so install(EXPORT) puts it
behind a version gate. However, this results in the include directories
not being picked up by older versions of CMake. Fall back to
set_property(APPEND) for versions of CMake older than 3.23.
Fixes: #24787
Add this target property to specify macro names that propagate to
dependents as `AUTOMOC_MACRO_NAMES`. The dependents will automatically
generate MOC files for source files that contain the inherited macro
names.
Co-Authored-By: Craig Scott <craig.scott@crascit.com>
Fixes: #19679