diff --git a/tribits/CHANGELOG.md b/tribits/CHANGELOG.md index b40ef0324..24a06f531 100644 --- a/tribits/CHANGELOG.md +++ b/tribits/CHANGELOG.md @@ -6,20 +6,20 @@ ChangeLog for TriBITS * **Added:** The project-level cache variable `_IMPORTED_NO_SYSTEM` was added to set the `IMPORTED_NO_SYSTEM` property (CMake versions 3.23+ - only) on the exported IMPORTED library targets in the installed + only) on the IMPORTED library targets in the installed `Config.cmake` files (see updated TriBITS users guide and build reference documentation for `_IMPORTED_NO_SYSTEM`). Setting this to `ON` results in the include directories for this project's IMPORTED library targets to be listed on the compile lines in downstream CMake projects using `-I` instead of the default `-isystem` for IMPORTED library - targets. Therefore, setting this option to `ON` returns backward - compatibility for the move to modern CMake targets which involved setting - the include directories on the IMPORTED library targets using - `target_include_directories()` described below (which changed the include - directories from being listed as `-I` to `-isystem` by default).
- **Workaround:** As a workaround for CMake versions less than 3.23, - downstream CMake projects can set `CMAKE_NO_SYSTEM_FROM_IMPORTED=TRUE` in - their CMake configure as described below.
For more details, see + targets. Setting this option to `ON` returns backward compatibility for the + move to modern CMake targets which involved setting the include directories + on the IMPORTED library targets using `target_include_directories()` + described below (which changed the include directories from being listed as + `-I` to `-isystem` by default).
**Workaround:** As a workaround for + CMake versions less than 3.23, downstream CMake projects can set + `CMAKE_NO_SYSTEM_FROM_IMPORTED=TRUE` in their CMake configure as described + below.
For more details, see [TriBITSPub/TriBITS#443](https://github.com/TriBITSPub/TriBITS/issues/443). ## 2021-11-18: @@ -48,14 +48,14 @@ ChangeLog for TriBITS `_INCLUDE_DIRS`, `_TPL_INCLUDE_DIRS`, `_INCLUDE_DIRS`, and `_TPL_INCLUDE_DIRS` unnecessary by downstream CMake projects. (See the changes to the - `TribitsExampleApp/CmakeLists.txt` file that remove calls to - `include_directories()`.) However, this change will also cause downstream - CMake projects to pull in include directories as `SYSTEM` (e.g. using - `-isystem` instead of `-I`) from IMPORTED library targets. This changes how - these include directories are searched and could break some fragile build - environments that have the same header file names in multiple include - directories searched by the compiler. Also, this will silence any regular - compiler warnings from headers found under these include + `TribitsExampleApp/CmakeLists.txt` file that removed calls to + `include_directories()` involving these variables.) However, this change + will also cause downstream CMake projects to pull in include directories as + `SYSTEM` (e.g. using `-isystem` instead of `-I`) from IMPORTED library + targets. This changes how these include directories are searched and could + break some fragile build environments that have the same header file names + in multiple include directories searched by the compiler. Also, this will + silence any regular compiler warnings from headers found under these include directories.
***Workarounds:*** One workaround for this is for the downstream CMake project to set the cache variable `CMAKE_NO_SYSTEM_FROM_IMPORTED=TRUE` which will restore the include