diff options
-rw-r--r-- | Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst | 5 | ||||
-rw-r--r-- | Help/release/3.18.rst | 8 | ||||
-rw-r--r-- | Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst | 2 | ||||
-rw-r--r-- | Modules/CMakeGenericSystem.cmake | 4 | ||||
-rw-r--r-- | Tests/QtAutogen/MocIncludeSymlink/CMakeLists.txt | 1 |
5 files changed, 15 insertions, 5 deletions
diff --git a/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst b/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst index 3e3059d..5ed504f 100644 --- a/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst +++ b/Help/prop_tgt/AUTOMOC_PATH_PREFIX.rst @@ -13,7 +13,7 @@ the ``-p`` path prefix option. ``moc`` usually generates a relative include path in that case. :prop_tgt:`AUTOMOC_PATH_PREFIX` is initialized from the variable -:variable:`CMAKE_AUTOMOC_PATH_PREFIX`, which is ``ON`` by default. +:variable:`CMAKE_AUTOMOC_PATH_PREFIX`, which is ``OFF`` by default. See the :manual:`cmake-qt(7)` manual for more information on using CMake with Qt. @@ -24,8 +24,7 @@ Reproducible builds For reproducible builds it is recommended to keep headers that are ``moc`` compiled in one of the target :command:`include directories <target_include_directories>` and set -:prop_tgt:`AUTOMOC_PATH_PREFIX` to ``ON`` (which is the default). This ensures -that: +:prop_tgt:`AUTOMOC_PATH_PREFIX` to ``ON``. This ensures that: - ``moc`` output files are identical on different build setups, - ``moc`` output files will compile correctly when the source and/or diff --git a/Help/release/3.18.rst b/Help/release/3.18.rst index ba80d2b..93694f6 100644 --- a/Help/release/3.18.rst +++ b/Help/release/3.18.rst @@ -339,3 +339,11 @@ Changes made since CMake 3.18.0 include the following. that were using manual quoting or escaping to work around the prior limitation. This fix has been reverted in 3.18.1, but may be re-introduced in future versions of CMake with a policy for compatibility. + +3.18.2 +------ + +* The default value of :variable:`CMAKE_AUTOMOC_PATH_PREFIX` was changed to + ``OFF`` because this feature can break existing projects that have + identically named header files in different include directories. + This restores compatibility with behavior of CMake 3.15 and below. diff --git a/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst b/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst index dca0b06..1e9790f 100644 --- a/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst +++ b/Help/variable/CMAKE_AUTOMOC_PATH_PREFIX.rst @@ -8,4 +8,4 @@ This variable is used to initialize the :prop_tgt:`AUTOMOC_PATH_PREFIX` property on all the targets. See that target property for additional information. -The default value is ``ON``. +The default value is ``OFF``. diff --git a/Modules/CMakeGenericSystem.cmake b/Modules/CMakeGenericSystem.cmake index 000fba1..6f665a6 100644 --- a/Modules/CMakeGenericSystem.cmake +++ b/Modules/CMakeGenericSystem.cmake @@ -26,7 +26,9 @@ set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a") set(CMAKE_AUTOGEN_ORIGIN_DEPENDS ON) set(CMAKE_AUTOMOC_COMPILER_PREDEFINES ON) -set(CMAKE_AUTOMOC_PATH_PREFIX ON) +if(NOT DEFINED CMAKE_AUTOMOC_PATH_PREFIX) + set(CMAKE_AUTOMOC_PATH_PREFIX OFF) +endif() set(CMAKE_AUTOMOC_MACRO_NAMES "Q_OBJECT" "Q_GADGET" "Q_NAMESPACE" "Q_NAMESPACE_EXPORT") # basically all general purpose OSs support shared libs 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 |