summaryrefslogtreecommitdiffstats
path: root/Tests/QtAutogen/MocIncludeSymlink
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2020-08-06 06:20:16 (GMT)
committerBrad King <brad.king@kitware.com>2020-08-10 14:36:17 (GMT)
commit4c33b305a0c0bc504fa70bf47171a9447a7840c3 (patch)
tree98e7e8229223839642d104258091b3f8b1bf4734 /Tests/QtAutogen/MocIncludeSymlink
parent39c6ac5112382093f99d2ee375162cdec57e4aec (diff)
downloadCMake-4c33b305a0c0bc504fa70bf47171a9447a7840c3.zip
CMake-4c33b305a0c0bc504fa70bf47171a9447a7840c3.tar.gz
CMake-4c33b305a0c0bc504fa70bf47171a9447a7840c3.tar.bz2
Autogen: Turn off moc path prefix generation by default
Change the default value of `CMAKE_AUTOMOC_PATH_PREFIX` to `OFF` to restore compatibility with behavior of CMake 3.15 and below. C++ source files that are generated by Qt's meta object compiler (moc) include the header file that was passed as input argument to moc. This is usually a path relative to the source directory, for example #include "../../source/dir/myobject.h" That is problematic for reproducible builds as described in #18815. To cope with that, the target property AUTOMOC_PATH_PREFIX was introduced in CMake 3.16 by commit d018d27c10 (Autogen: Add moc path prefix generation (AUTOMOC_PATH_PREFIX), 2019-09-13, v3.16.0-rc1~94^2~4). The property is default-initialized from the variable `CMAKE_AUTOMOC_PATH_PREFIX`, which defaults to `ON`. If this property is ON, and myobject.h is located in an include directory of the target, moc-generated C++ files include the file without the "path prefix": #include "myobject.h" This behavior, however, can break projects that have equally named header files in different include directories. As "not breaking existing projects" trumps "have reproducible builds by default" we change the default of `CMAKE_AUTOMOC_PATH_PREFIX` to `OFF`. Also, it is now possible to pass `-DCMAKE_AUTOMOC_PATH_PREFIX=ON` on the CMake command line. Before, it was overridden in `CMakeGenericSystem`. Fixes: #20598 Issue: #18815
Diffstat (limited to 'Tests/QtAutogen/MocIncludeSymlink')
-rw-r--r--Tests/QtAutogen/MocIncludeSymlink/CMakeLists.txt1
1 files changed, 1 insertions, 0 deletions
diff --git a/Tests/QtAutogen/MocIncludeSymlink/CMakeLists.txt b/Tests/QtAutogen/MocIncludeSymlink/CMakeLists.txt
index 1627b39..8b11b46 100644
--- a/Tests/QtAutogen/MocIncludeSymlink/CMakeLists.txt
+++ b/Tests/QtAutogen/MocIncludeSymlink/CMakeLists.txt
@@ -61,6 +61,7 @@ macro(buildMocInclude sourceDir binaryDir)
"${sourceDir}"
MocInclude
CMAKE_FLAGS "-DQT_TEST_VERSION=${QT_TEST_VERSION}"
+ "-DCMAKE_AUTOMOC_PATH_PREFIX=ON"
"-DCMAKE_AUTOGEN_VERBOSE=${CMAKE_AUTOGEN_VERBOSE}"
"-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}"
OUTPUT_VARIABLE output