[Cmake-commits] CMake branch, master, updated. v3.13.0-rc2-360-gbfdd1ba

Kitware Robot kwrobot at kitware.com
Tue Nov 6 11:43:04 EST 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
       via  bfdd1ba604a31b3bb9f0baa29ce6fce467ee2e47 (commit)
       via  7bed0507554bed0208d66610417b690645768503 (commit)
       via  d80aaad40ba0798861431fda2bf491b07099d87f (commit)
       via  77f8393afed1d8a051ca7b7d67e0979ec9038442 (commit)
       via  47255060e7788123901012586f0c51c26bd849b6 (commit)
       via  575e2cc35da7cef40c521bccf0512483012bc136 (commit)
       via  fe997d80e0eaa154910797ee2612d9f05e003cf6 (commit)
       via  47f9c15c60e2898640fa57aed4c5ff5ee5c0d3ef (commit)
       via  336893d9eb0ee732683b18e2e9e8a17e86e09d99 (commit)
       via  846043dd35cbceec4ec114492ad04805b6ee625a (commit)
       via  b71a9598a408a134bd7d003b6586b345f2b961fe (commit)
       via  f74c406501e5ffb5b6a3c8b76c831ca87e8f0168 (commit)
       via  0669de5d36b853fa7ff81081de719a0a48e2b654 (commit)
       via  b5e895b5d41dc688bf0acdec352cbccc178a7236 (commit)
       via  7413f29fe63296cf34176c5fc68c2c5354b43202 (commit)
       via  d2235fd2538eca934f542ff82f21249c3ff314be (commit)
       via  7a801b7dfb38c2f9f77fbda0f45ed88b70ca4b87 (commit)
      from  f55b7bdc5dd0dbc6897cb2d5f4673516a6afc4db (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bfdd1ba604a31b3bb9f0baa29ce6fce467ee2e47
commit bfdd1ba604a31b3bb9f0baa29ce6fce467ee2e47
Merge: 7bed050 575e2cc
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Nov 6 16:40:09 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Tue Nov 6 11:40:16 2018 -0500

    Merge topic 'FindPostgreSQL-target'
    
    575e2cc35d FindPostgreSQL: extract the actual version number
    7413f29fe6 Tests/FindPostgreSQL: add a test for FindPostgreSQL
    d2235fd253 FindPostgreSQL: add an imported target
    7a801b7dfb FindPostgreSQL: Modernize documentation layout
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !2555


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7bed0507554bed0208d66610417b690645768503
commit 7bed0507554bed0208d66610417b690645768503
Merge: d80aaad 47f9c15
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Nov 6 16:38:15 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Tue Nov 6 11:38:23 2018 -0500

    Merge topic 'autogen_origin_depends'
    
    47f9c15c60 Autogen: Update <ORIGIN>_autogen target documentation
    336893d9eb Autogen: Separate AUTOGEN_TARGET_DEPENDS tests into own tests suite
    846043dd35 Autogen: Rename MocDepends test to AutogenOriginDependsOn
    b71a9598a4 Autogen: Add test for AUTOGEN_ORIGIN_DEPENDS=OFF
    f74c406501 Autogen: Add (CMAKE_)AUTOGEN_ORIGIN_DEPENDS release notes
    0669de5d36 Autogen: Add (CMAKE_)AUTOGEN_ORIGIN_DEPENDS documentation
    b5e895b5d4 Autogen: Add (CMAKE_)AUTOGEN_ORIGIN_DEPENDS support
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !2518


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d80aaad40ba0798861431fda2bf491b07099d87f
commit d80aaad40ba0798861431fda2bf491b07099d87f
Merge: f55b7bd 77f8393
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Nov 6 11:33:41 2018 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Nov 6 11:33:41 2018 -0500

    Merge branch 'release-3.13'


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=575e2cc35da7cef40c521bccf0512483012bc136
commit 575e2cc35da7cef40c521bccf0512483012bc136
Author:     Ben Boeckel <ben.boeckel at kitware.com>
AuthorDate: Thu Nov 1 14:45:25 2018 -0400
Commit:     Ben Boeckel <ben.boeckel at kitware.com>
CommitDate: Mon Nov 5 11:13:33 2018 -0500

    FindPostgreSQL: extract the actual version number
    
    The `PG_VERSION` variable can be mangled by distributions to indicate
    things like the name of the distro and package build numbers.
    
    However, `PG_VERSION_NUM` is new in 8.2 (2006), so keep the old
    extraction code around for old versions.

diff --git a/Modules/FindPostgreSQL.cmake b/Modules/FindPostgreSQL.cmake
index 6832bbe..4b5e60e 100644
--- a/Modules/FindPostgreSQL.cmake
+++ b/Modules/FindPostgreSQL.cmake
@@ -175,14 +175,34 @@ if (PostgreSQL_INCLUDE_DIR)
   foreach(_PG_CONFIG_HEADER ${_PG_CONFIG_HEADERS})
     if(EXISTS "${_PG_CONFIG_HEADER}")
       file(STRINGS "${_PG_CONFIG_HEADER}" pgsql_version_str
-           REGEX "^#define[\t ]+PG_VERSION[\t ]+\".*\"")
+           REGEX "^#define[\t ]+PG_VERSION_NUM[\t ]+.*")
       if(pgsql_version_str)
-        string(REGEX REPLACE "^#define[\t ]+PG_VERSION[\t ]+\"([^\"]*)\".*"
-               "\\1" PostgreSQL_VERSION_STRING "${pgsql_version_str}")
+        string(REGEX REPLACE "^#define[\t ]+PG_VERSION_NUM[\t ]+([0-9]*).*"
+               "\\1" _PostgreSQL_VERSION_NUM "${pgsql_version_str}")
         break()
       endif()
     endif()
   endforeach()
+  if (_PostgreSQL_VERSION_NUM)
+    math(EXPR _PostgreSQL_major_version "${_PostgreSQL_VERSION_NUM} / 10000")
+    math(EXPR _PostgreSQL_minor_version "${_PostgreSQL_VERSION_NUM} % 10000")
+    set(PostgreSQL_VERSION_STRING "${_PostgreSQL_major_version}.${_PostgreSQL_minor_version}")
+    unset(_PostgreSQL_major_version)
+    unset(_PostgreSQL_minor_version)
+  else ()
+    foreach(_PG_CONFIG_HEADER ${_PG_CONFIG_HEADERS})
+      if(EXISTS "${_PG_CONFIG_HEADER}")
+        file(STRINGS "${_PG_CONFIG_HEADER}" pgsql_version_str
+             REGEX "^#define[\t ]+PG_VERSION[\t ]+\".*\"")
+        if(pgsql_version_str)
+          string(REGEX REPLACE "^#define[\t ]+PG_VERSION[\t ]+\"([^\"]*)\".*"
+                 "\\1" PostgreSQL_VERSION_STRING "${pgsql_version_str}")
+          break()
+        endif()
+      endif()
+    endforeach()
+  endif ()
+  unset(_PostgreSQL_VERSION_NUM)
   unset(pgsql_version_str)
 endif()
 

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=47f9c15c60e2898640fa57aed4c5ff5ee5c0d3ef
commit 47f9c15c60e2898640fa57aed4c5ff5ee5c0d3ef
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Sat Nov 3 12:11:24 2018 +0100
Commit:     Sebastian Holtermann <sebholt at xwmw.org>
CommitDate: Mon Nov 5 14:03:01 2018 +0100

    Autogen: Update <ORIGIN>_autogen target documentation

diff --git a/Help/manual/cmake-qt.7.rst b/Help/manual/cmake-qt.7.rst
index 724d8ec..0382794 100644
--- a/Help/manual/cmake-qt.7.rst
+++ b/Help/manual/cmake-qt.7.rst
@@ -44,14 +44,10 @@ Qt Build Tools
 
 Qt relies on some bundled tools for code generation, such as ``moc`` for
 meta-object code generation, ``uic`` for widget layout and population,
-and ``rcc`` for virtual filesystem content generation.  These tools may be
+and ``rcc`` for virtual file system content generation.  These tools may be
 automatically invoked by :manual:`cmake(1)` if the appropriate conditions
 are met.  The automatic tool invocation may be used with both Qt 4 and Qt 5.
 
-The tools are executed as part of a synthesized custom target generated by
-CMake.  Target dependencies may be added to that custom target by adding them
-to the :prop_tgt:`AUTOGEN_TARGET_DEPENDS` target property.
-
 AUTOMOC
 ^^^^^^^
 
@@ -214,19 +210,31 @@ overrides options from the :prop_tgt:`AUTORCC_OPTIONS` target property.
 Source files can be excluded from :prop_tgt:`AUTORCC` processing by
 enabling :prop_sf:`SKIP_AUTORCC` or the broader :prop_sf:`SKIP_AUTOGEN`.
 
+The ``<ORIGIN>_autogen`` target
+===============================
+
+The ``moc`` and ``uic`` tools are executed as part of a synthesized
+``<ORIGIN>_autogen`` :command:`custom target <add_custom_target>` generated by
+CMake.  By default that ``<ORIGIN>_autogen`` target inherits the dependencies
+of the ``<ORIGIN>`` target (see :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS`).
+Target dependencies may be added to the ``<ORIGIN>_autogen`` target by adding
+them to the :prop_tgt:`AUTOGEN_TARGET_DEPENDS` target property.
+
 Visual Studio Generators
 ========================
 
-When using the :manual:`Visual Studio generators <cmake-generators(7)>`,
-CMake uses a ``PRE_BUILD`` :command:`custom command <add_custom_command>` for
-:prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`.
-If the :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC` processing depends on files,
-a :command:`custom target <add_custom_target>` is used instead.
-This happens when
-
-- The origin target depends on :prop_sf:`GENERATED` files which aren't excluded
-  from :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC` by :prop_sf:`SKIP_AUTOMOC`,
-  :prop_sf:`SKIP_AUTOUIC`, :prop_sf:`SKIP_AUTOGEN` or :policy:`CMP0071`
+When using the :manual:`Visual Studio generators <cmake-generators(7)>`, CMake
+generates a ``PRE_BUILD`` :command:`custom command <add_custom_command>`
+instead of the ``<ORIGIN>_autogen`` :command:`custom target <add_custom_target>`
+(for :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC`).
+This isn't always possible though and
+an ``<ORIGIN>_autogen`` :command:`custom target <add_custom_target>` is used,
+when either
+
+- the ``<ORIGIN>`` target depends on :prop_sf:`GENERATED` files which aren't
+  excluded from :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTOUIC` by
+  :prop_sf:`SKIP_AUTOMOC`, :prop_sf:`SKIP_AUTOUIC`, :prop_sf:`SKIP_AUTOGEN`
+  or :policy:`CMP0071`
 - :prop_tgt:`AUTOGEN_TARGET_DEPENDS` lists a source file
 
 qtmain.lib on Windows
diff --git a/Help/prop_tgt/AUTOMOC.rst b/Help/prop_tgt/AUTOMOC.rst
index 3bd693a..70d89f2 100644
--- a/Help/prop_tgt/AUTOMOC.rst
+++ b/Help/prop_tgt/AUTOMOC.rst
@@ -3,8 +3,8 @@ AUTOMOC
 
 Should the target be processed with automoc (for Qt projects).
 
-AUTOMOC is a boolean specifying whether CMake will handle the Qt ``moc``
-preprocessor automatically, i.e.  without having to use the
+:prop_tgt:`AUTOMOC` is a boolean specifying whether CMake will handle the Qt
+``moc`` preprocessor automatically, i.e.  without having to use the
 :module:`QT4_WRAP_CPP() <FindQt4>` or QT5_WRAP_CPP() macro.
 Currently Qt4 and Qt5 are supported.
 
diff --git a/Help/prop_tgt/AUTORCC.rst b/Help/prop_tgt/AUTORCC.rst
index 3cc5990..99c2b0e 100644
--- a/Help/prop_tgt/AUTORCC.rst
+++ b/Help/prop_tgt/AUTORCC.rst
@@ -3,7 +3,7 @@ AUTORCC
 
 Should the target be processed with autorcc (for Qt projects).
 
-``AUTORCC`` is a boolean specifying whether CMake will handle
+:prop_tgt:`AUTORCC` is a boolean specifying whether CMake will handle
 the Qt ``rcc`` code generator automatically, i.e. without having to use
 the :module:`QT4_ADD_RESOURCES() <FindQt4>` or ``QT5_ADD_RESOURCES()``
 macro.  Currently Qt4 and Qt5 are supported.
diff --git a/Help/prop_tgt/AUTOUIC.rst b/Help/prop_tgt/AUTOUIC.rst
index 4fc603f..8cae0a7 100644
--- a/Help/prop_tgt/AUTOUIC.rst
+++ b/Help/prop_tgt/AUTOUIC.rst
@@ -3,7 +3,7 @@ AUTOUIC
 
 Should the target be processed with autouic (for Qt projects).
 
-``AUTOUIC`` is a boolean specifying whether CMake will handle
+:prop_tgt:`AUTOUIC` is a boolean specifying whether CMake will handle
 the Qt ``uic`` code generator automatically, i.e. without having to use
 the :module:`QT4_WRAP_UI() <FindQt4>` or ``QT5_WRAP_UI()`` macro. Currently
 Qt4 and Qt5 are supported.

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=336893d9eb0ee732683b18e2e9e8a17e86e09d99
commit 336893d9eb0ee732683b18e2e9e8a17e86e09d99
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Tue Oct 30 11:41:37 2018 +0100
Commit:     Sebastian Holtermann <sebholt at xwmw.org>
CommitDate: Mon Nov 5 14:03:01 2018 +0100

    Autogen: Separate AUTOGEN_TARGET_DEPENDS tests into own tests suite
    
    The tests for AUTOGEN_TARGET_DEPENDS were part of the
    AutogenOriginDependsOn tests suite.  This separates them
    into an own AutogenTargetDepends tests suite.

diff --git a/Tests/QtAutogen/AutogenOriginDependsOn/CMakeLists.txt b/Tests/QtAutogen/AutogenOriginDependsOn/CMakeLists.txt
index f70d9ce..60869eb 100644
--- a/Tests/QtAutogen/AutogenOriginDependsOn/CMakeLists.txt
+++ b/Tests/QtAutogen/AutogenOriginDependsOn/CMakeLists.txt
@@ -89,51 +89,3 @@ target_link_libraries(SimpleLib ${QT_QTCORE_TARGET})
 add_executable(mocDepGenLib testGenLib.cpp)
 target_link_libraries(mocDepGenLib SimpleLib ${QT_QTCORE_TARGET})
 set_target_properties(mocDepGenLib PROPERTIES AUTOMOC TRUE)
-
-
-# -- Test AUTOGEN_TARGET_DEPENDS with GENERATED file dependency
-#
-# This tests the dependency of the mocDepATDFile_autogen target of
-# mocDepATDTarget to the utility target mocDepATDFileUtil.
-# If mocDepATDFile_autogen gets built *before* or in *parallel* to
-# mocDepATDFileUtil, the build will fail. That's
-# because ATDFile.hpp, which is required by mocDepATDFile_autogen,
-# is only valid after the mocDepATDFileUtil build has been completed.
-#
-# The sleep seconds artificially increase the build time of
-# mocDepATDFileUtil to simulate a slow utility target build that takes
-# longer to run than the build of the mocDepATDFile_autogen target.
-add_custom_command(
-  OUTPUT ${CBD}/ATDFile.hpp
-  COMMAND ${CMAKE_COMMAND} -E copy ${CSD}/object_invalid.hpp.in ${CBD}/ATDFile.hpp
-  COMMAND ${CMAKE_COMMAND} -E sleep 3
-  COMMAND ${CMAKE_COMMAND} -E copy ${CSD}/object_valid.hpp.in ${CBD}/ATDFile.hpp)
-
-add_executable(mocDepATDFile testATDFile.cpp)
-target_link_libraries(mocDepATDFile ${QT_QTCORE_TARGET})
-set_target_properties(mocDepATDFile PROPERTIES AUTOMOC TRUE)
-set_target_properties(mocDepATDFile PROPERTIES AUTOGEN_TARGET_DEPENDS ${CBD}/ATDFile.hpp)
-
-
-# -- Test AUTOGEN_TARGET_DEPENDS with target dependency
-#
-# This tests the dependency of the mocDepATDTarget_autogen target of
-# mocDepATDTarget to the utility target mocDepATDTargetUtil.
-# If mocDepATDTarget_autogen gets built *before* or in *parallel* to
-# mocDepATDTargetUtil, the build will fail. That's
-# because ATDTarget.hpp, which is required by mocDepATDTarget_autogen,
-# is only valid after the mocDepATDTargetUtil build has been completed.
-#
-# The sleep seconds artificially increase the build time of
-# mocDepATDTargetUtil to simulate a slow utility target build that takes
-# longer to run than the build of the mocDepATDTarget_autogen target.
-add_custom_target(mocDepATDTargetUtil
-  BYPRODUCTS ${CBD}/ATDTarget.hpp
-  COMMAND ${CMAKE_COMMAND} -E copy ${CSD}/object_invalid.hpp.in ${CBD}/ATDTarget.hpp
-  COMMAND ${CMAKE_COMMAND} -E sleep 3
-  COMMAND ${CMAKE_COMMAND} -E copy ${CSD}/object_valid.hpp.in ${CBD}/ATDTarget.hpp)
-
-add_executable(mocDepATDTarget testATDTarget.cpp)
-target_link_libraries(mocDepATDTarget ${QT_QTCORE_TARGET})
-set_target_properties(mocDepATDTarget PROPERTIES AUTOMOC TRUE)
-set_target_properties(mocDepATDTarget PROPERTIES AUTOGEN_TARGET_DEPENDS mocDepATDTargetUtil)
diff --git a/Tests/QtAutogen/AutogenTargetDepends/CMakeLists.txt b/Tests/QtAutogen/AutogenTargetDepends/CMakeLists.txt
new file mode 100644
index 0000000..63b7c98
--- /dev/null
+++ b/Tests/QtAutogen/AutogenTargetDepends/CMakeLists.txt
@@ -0,0 +1,54 @@
+cmake_minimum_required(VERSION 3.10)
+project(AutogenTargetDepends)
+include("../AutogenTest.cmake")
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+set(CSD ${CMAKE_CURRENT_SOURCE_DIR})
+set(CBD ${CMAKE_CURRENT_BINARY_DIR})
+
+# -- Test AUTOGEN_TARGET_DEPENDS with GENERATED file dependency
+#
+# This tests the dependency of the mocDepATDFile_autogen target of
+# mocDepATDTarget to the utility target mocDepATDFileUtil.
+# If mocDepATDFile_autogen gets built *before* or in *parallel* to
+# mocDepATDFileUtil, the build will fail. That's
+# because ATDFile.hpp, which is required by mocDepATDFile_autogen,
+# is only valid after the mocDepATDFileUtil build has been completed.
+#
+# The sleep seconds artificially increase the build time of
+# mocDepATDFileUtil to simulate a slow utility target build that takes
+# longer to run than the build of the mocDepATDFile_autogen target.
+add_custom_command(
+  OUTPUT ${CBD}/ATDFile.hpp
+  COMMAND ${CMAKE_COMMAND} -E copy ${CSD}/object_invalid.hpp.in ${CBD}/ATDFile.hpp
+  COMMAND ${CMAKE_COMMAND} -E sleep 3
+  COMMAND ${CMAKE_COMMAND} -E copy ${CSD}/object_valid.hpp.in ${CBD}/ATDFile.hpp)
+
+add_executable(mocDepATDFile testATDFile.cpp)
+target_link_libraries(mocDepATDFile ${QT_QTCORE_TARGET})
+set_target_properties(mocDepATDFile PROPERTIES AUTOMOC TRUE)
+set_target_properties(mocDepATDFile PROPERTIES AUTOGEN_TARGET_DEPENDS ${CBD}/ATDFile.hpp)
+
+
+# -- Test AUTOGEN_TARGET_DEPENDS with target dependency
+#
+# This tests the dependency of the mocDepATDTarget_autogen target of
+# mocDepATDTarget to the utility target mocDepATDTargetUtil.
+# If mocDepATDTarget_autogen gets built *before* or in *parallel* to
+# mocDepATDTargetUtil, the build will fail. That's
+# because ATDTarget.hpp, which is required by mocDepATDTarget_autogen,
+# is only valid after the mocDepATDTargetUtil build has been completed.
+#
+# The sleep seconds artificially increase the build time of
+# mocDepATDTargetUtil to simulate a slow utility target build that takes
+# longer to run than the build of the mocDepATDTarget_autogen target.
+add_custom_target(mocDepATDTargetUtil
+  BYPRODUCTS ${CBD}/ATDTarget.hpp
+  COMMAND ${CMAKE_COMMAND} -E copy ${CSD}/object_invalid.hpp.in ${CBD}/ATDTarget.hpp
+  COMMAND ${CMAKE_COMMAND} -E sleep 3
+  COMMAND ${CMAKE_COMMAND} -E copy ${CSD}/object_valid.hpp.in ${CBD}/ATDTarget.hpp)
+
+add_executable(mocDepATDTarget testATDTarget.cpp)
+target_link_libraries(mocDepATDTarget ${QT_QTCORE_TARGET})
+set_target_properties(mocDepATDTarget PROPERTIES AUTOMOC TRUE)
+set_target_properties(mocDepATDTarget PROPERTIES AUTOGEN_TARGET_DEPENDS mocDepATDTargetUtil)
diff --git a/Tests/QtAutogen/AutogenTargetDepends/object_invalid.hpp.in b/Tests/QtAutogen/AutogenTargetDepends/object_invalid.hpp.in
new file mode 100644
index 0000000..854d9a1
--- /dev/null
+++ b/Tests/QtAutogen/AutogenTargetDepends/object_invalid.hpp.in
@@ -0,0 +1 @@
+#ifndef
diff --git a/Tests/QtAutogen/AutogenTargetDepends/object_valid.hpp.in b/Tests/QtAutogen/AutogenTargetDepends/object_valid.hpp.in
new file mode 100644
index 0000000..f364f7c
--- /dev/null
+++ b/Tests/QtAutogen/AutogenTargetDepends/object_valid.hpp.in
@@ -0,0 +1,14 @@
+#ifndef OBJECT_HPP
+#define OBJECT_HPP
+
+#include <QObject>
+
+class Object : public QObject
+{
+  Q_OBJECT
+public:
+  Q_SLOT
+  void aSlot(){};
+};
+
+#endif
diff --git a/Tests/QtAutogen/AutogenOriginDependsOn/testATDFile.cpp b/Tests/QtAutogen/AutogenTargetDepends/testATDFile.cpp
similarity index 100%
rename from Tests/QtAutogen/AutogenOriginDependsOn/testATDFile.cpp
rename to Tests/QtAutogen/AutogenTargetDepends/testATDFile.cpp
diff --git a/Tests/QtAutogen/AutogenOriginDependsOn/testATDTarget.cpp b/Tests/QtAutogen/AutogenTargetDepends/testATDTarget.cpp
similarity index 100%
rename from Tests/QtAutogen/AutogenOriginDependsOn/testATDTarget.cpp
rename to Tests/QtAutogen/AutogenTargetDepends/testATDTarget.cpp
diff --git a/Tests/QtAutogen/CommonTests.cmake b/Tests/QtAutogen/CommonTests.cmake
index ccbddbd..58d9f0b 100644
--- a/Tests/QtAutogen/CommonTests.cmake
+++ b/Tests/QtAutogen/CommonTests.cmake
@@ -17,6 +17,7 @@ if(QT_TEST_VERSION GREATER 4)
 endif()
 ADD_AUTOGEN_TEST(AutogenOriginDependsOff autogenOriginDependsOff)
 ADD_AUTOGEN_TEST(AutogenOriginDependsOn)
+ADD_AUTOGEN_TEST(AutogenTargetDepends)
 if(QT_TEST_ALLOW_QT_MACROS)
   ADD_AUTOGEN_TEST(MocIncludeStrict mocIncludeStrict)
   ADD_AUTOGEN_TEST(MocIncludeRelaxed mocIncludeRelaxed)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=846043dd35cbceec4ec114492ad04805b6ee625a
commit 846043dd35cbceec4ec114492ad04805b6ee625a
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Tue Oct 30 11:27:49 2018 +0100
Commit:     Sebastian Holtermann <sebholt at xwmw.org>
CommitDate: Sat Nov 3 12:14:40 2018 +0100

    Autogen: Rename MocDepends test to AutogenOriginDependsOn

diff --git a/Tests/QtAutogen/MocDepends/CMakeLists.txt b/Tests/QtAutogen/AutogenOriginDependsOn/CMakeLists.txt
similarity index 99%
rename from Tests/QtAutogen/MocDepends/CMakeLists.txt
rename to Tests/QtAutogen/AutogenOriginDependsOn/CMakeLists.txt
index 6ea72be..f70d9ce 100644
--- a/Tests/QtAutogen/MocDepends/CMakeLists.txt
+++ b/Tests/QtAutogen/AutogenOriginDependsOn/CMakeLists.txt
@@ -1,5 +1,5 @@
 cmake_minimum_required(VERSION 3.10)
-project(MocDepends)
+project(AutogenOriginDependsOn)
 include("../AutogenTest.cmake")
 
 include_directories(${CMAKE_CURRENT_BINARY_DIR})
diff --git a/Tests/QtAutogen/MocDepends/object_invalid.hpp.in b/Tests/QtAutogen/AutogenOriginDependsOn/object_invalid.hpp.in
similarity index 100%
rename from Tests/QtAutogen/MocDepends/object_invalid.hpp.in
rename to Tests/QtAutogen/AutogenOriginDependsOn/object_invalid.hpp.in
diff --git a/Tests/QtAutogen/MocDepends/object_valid.hpp.in b/Tests/QtAutogen/AutogenOriginDependsOn/object_valid.hpp.in
similarity index 100%
rename from Tests/QtAutogen/MocDepends/object_valid.hpp.in
rename to Tests/QtAutogen/AutogenOriginDependsOn/object_valid.hpp.in
diff --git a/Tests/QtAutogen/MocDepends/simpleLib.cpp.in b/Tests/QtAutogen/AutogenOriginDependsOn/simpleLib.cpp.in
similarity index 100%
rename from Tests/QtAutogen/MocDepends/simpleLib.cpp.in
rename to Tests/QtAutogen/AutogenOriginDependsOn/simpleLib.cpp.in
diff --git a/Tests/QtAutogen/MocDepends/simpleLib.hpp.in b/Tests/QtAutogen/AutogenOriginDependsOn/simpleLib.hpp.in
similarity index 100%
rename from Tests/QtAutogen/MocDepends/simpleLib.hpp.in
rename to Tests/QtAutogen/AutogenOriginDependsOn/simpleLib.hpp.in
diff --git a/Tests/QtAutogen/MocDepends/testATDFile.cpp b/Tests/QtAutogen/AutogenOriginDependsOn/testATDFile.cpp
similarity index 100%
rename from Tests/QtAutogen/MocDepends/testATDFile.cpp
rename to Tests/QtAutogen/AutogenOriginDependsOn/testATDFile.cpp
diff --git a/Tests/QtAutogen/MocDepends/testATDTarget.cpp b/Tests/QtAutogen/AutogenOriginDependsOn/testATDTarget.cpp
similarity index 100%
rename from Tests/QtAutogen/MocDepends/testATDTarget.cpp
rename to Tests/QtAutogen/AutogenOriginDependsOn/testATDTarget.cpp
diff --git a/Tests/QtAutogen/MocDepends/testGenFile.cpp b/Tests/QtAutogen/AutogenOriginDependsOn/testGenFile.cpp
similarity index 100%
rename from Tests/QtAutogen/MocDepends/testGenFile.cpp
rename to Tests/QtAutogen/AutogenOriginDependsOn/testGenFile.cpp
diff --git a/Tests/QtAutogen/MocDepends/testGenLib.cpp b/Tests/QtAutogen/AutogenOriginDependsOn/testGenLib.cpp
similarity index 100%
rename from Tests/QtAutogen/MocDepends/testGenLib.cpp
rename to Tests/QtAutogen/AutogenOriginDependsOn/testGenLib.cpp
diff --git a/Tests/QtAutogen/MocDepends/testGenLib.hpp b/Tests/QtAutogen/AutogenOriginDependsOn/testGenLib.hpp
similarity index 100%
rename from Tests/QtAutogen/MocDepends/testGenLib.hpp
rename to Tests/QtAutogen/AutogenOriginDependsOn/testGenLib.hpp
diff --git a/Tests/QtAutogen/MocDepends/testGenTarget.cpp b/Tests/QtAutogen/AutogenOriginDependsOn/testGenTarget.cpp
similarity index 100%
rename from Tests/QtAutogen/MocDepends/testGenTarget.cpp
rename to Tests/QtAutogen/AutogenOriginDependsOn/testGenTarget.cpp
diff --git a/Tests/QtAutogen/CommonTests.cmake b/Tests/QtAutogen/CommonTests.cmake
index 46d56cb..ccbddbd 100644
--- a/Tests/QtAutogen/CommonTests.cmake
+++ b/Tests/QtAutogen/CommonTests.cmake
@@ -16,7 +16,7 @@ if(QT_TEST_VERSION GREATER 4)
   ADD_AUTOGEN_TEST(MocMacroName mocMacroName)
 endif()
 ADD_AUTOGEN_TEST(AutogenOriginDependsOff autogenOriginDependsOff)
-ADD_AUTOGEN_TEST(MocDepends)
+ADD_AUTOGEN_TEST(AutogenOriginDependsOn)
 if(QT_TEST_ALLOW_QT_MACROS)
   ADD_AUTOGEN_TEST(MocIncludeStrict mocIncludeStrict)
   ADD_AUTOGEN_TEST(MocIncludeRelaxed mocIncludeRelaxed)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b71a9598a408a134bd7d003b6586b345f2b961fe
commit b71a9598a408a134bd7d003b6586b345f2b961fe
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Tue Oct 30 11:21:12 2018 +0100
Commit:     Sebastian Holtermann <sebholt at xwmw.org>
CommitDate: Sat Nov 3 12:14:40 2018 +0100

    Autogen: Add test for AUTOGEN_ORIGIN_DEPENDS=OFF

diff --git a/Tests/QtAutogen/AutogenOriginDependsOff/CMakeLists.txt b/Tests/QtAutogen/AutogenOriginDependsOff/CMakeLists.txt
new file mode 100644
index 0000000..1c2271a
--- /dev/null
+++ b/Tests/QtAutogen/AutogenOriginDependsOff/CMakeLists.txt
@@ -0,0 +1,71 @@
+cmake_minimum_required(VERSION 3.11)
+project(AutogenOriginDependsOff)
+include("../AutogenTest.cmake")
+
+set(CSD ${CMAKE_CURRENT_SOURCE_DIR})
+set(CBD ${CMAKE_CURRENT_BINARY_DIR})
+include_directories(${CSD})
+include_directories(${CBD})
+
+# A GENERATED file ensures there will be an _autogen target in VS
+add_custom_command (
+    OUTPUT "${CBD}/config.hpp"
+    COMMAND ${CMAKE_COMMAND} -E copy "${CSD}/config.hpp.in" "${CBD}/config.hpp"
+    )
+
+
+# Library "a_mc" provides a header that holds a string with the content of
+# mocs_compilation.cpp from a_qt.  It therefore must depend on a_qt_autogen.
+add_custom_target ( a_mc
+    COMMAND ${CMAKE_COMMAND} -E sleep 2
+    COMMAND ${CMAKE_COMMAND}
+        "-DMCF=${CBD}/a_qt_autogen/mocs_compilation.cpp"
+        "-DCF_IN=${CSD}/a_mc.hpp.in"
+        "-DCF_OUT=${CBD}/a_mc.hpp"
+        -P ${CSD}/configure_content.cmake
+    )
+add_dependencies ( a_mc a_qt_autogen )
+
+# Library "a_qt"
+# - depends on a GENERATED file
+# - AUTOMOC enabled
+# - depends on a target (a_mc) that depends on a_qt_qutogen
+add_library ( a_qt a_qt.cpp "${CBD}/config.hpp" )
+add_dependencies ( a_qt a_mc )
+target_link_libraries ( a_qt ${QT_QTCORE_TARGET})
+set_target_properties ( a_qt PROPERTIES AUTOMOC TRUE)
+# Disable AUTOGEN_ORIGIN_DEPENDS to avoid loop dependencies
+set_target_properties ( a_qt PROPERTIES AUTOGEN_ORIGIN_DEPENDS OFF)
+
+
+# Library "b_mc" provides a header that holds a string function that returns
+# the content of mocs_compilation.cpp from b_qt.
+# It therefore must depend on b_qt_autogen.
+add_custom_command (
+    OUTPUT ${CBD}/b_mc.cpp
+    DEPENDS b_qt_autogen
+    COMMAND ${CMAKE_COMMAND} -E sleep 2
+    COMMAND ${CMAKE_COMMAND}
+        "-DMCF=${CBD}/b_qt_autogen/mocs_compilation.cpp"
+        "-DCF_IN=${CSD}/b_mc.cpp.in"
+        "-DCF_OUT=${CBD}/b_mc.cpp"
+        -P ${CSD}/configure_content.cmake
+    )
+add_library ( b_mc ${CSD}/b_mc.hpp ${CBD}/b_mc.cpp )
+
+# Library "b_qt"
+# - depends on a GENERATED file
+# - AUTOMOC enabled
+# - depends on a library (b_mc) that depends on b_qt_qutogen
+add_library ( b_qt b_qt.cpp "${CBD}/config.hpp" )
+target_link_libraries ( b_qt b_mc )
+target_link_libraries ( b_qt ${QT_QTCORE_TARGET})
+set_target_properties ( b_qt PROPERTIES AUTOMOC TRUE)
+# Disable AUTOGEN_ORIGIN_DEPENDS to avoid loop dependencies
+set_target_properties ( b_qt PROPERTIES AUTOGEN_ORIGIN_DEPENDS OFF)
+
+
+# The main target depends on both libraries which depend on the _autogen
+# target of the main target.
+add_executable ( autogenOriginDependsOff main.cpp )
+target_link_libraries ( autogenOriginDependsOff a_qt b_qt )
diff --git a/Tests/QtAutogen/AutogenOriginDependsOff/a_mc.hpp.in b/Tests/QtAutogen/AutogenOriginDependsOff/a_mc.hpp.in
new file mode 100644
index 0000000..fe71f67
--- /dev/null
+++ b/Tests/QtAutogen/AutogenOriginDependsOff/a_mc.hpp.in
@@ -0,0 +1,9 @@
+#ifndef A_MC_HPP
+#define A_MC_HPP
+
+namespace a_mc {
+
+char const* mocs_compilation = "@MOCS_COMPILATION@";
+}
+
+#endif
diff --git a/Tests/QtAutogen/AutogenOriginDependsOff/a_qt.cpp b/Tests/QtAutogen/AutogenOriginDependsOff/a_qt.cpp
new file mode 100644
index 0000000..e498969
--- /dev/null
+++ b/Tests/QtAutogen/AutogenOriginDependsOff/a_qt.cpp
@@ -0,0 +1,28 @@
+
+#include "a_qt.hpp"
+#include <a_mc.hpp>
+
+namespace a_qt {
+
+/// @brief A source local QObject based class
+class Source_QObject : public QObject
+{
+  Q_OBJECT
+public:
+  Source_QObject() {}
+  ~Source_QObject() {}
+
+  std::string str;
+};
+
+std::string mocs_compilation()
+{
+  // Create and destroy QObject based classes
+  Header_QObject header_obj;
+  Source_QObject source_obj;
+
+  return std::string(a_mc::mocs_compilation);
+}
+}
+
+#include "a_qt.moc"
diff --git a/Tests/QtAutogen/AutogenOriginDependsOff/a_qt.hpp b/Tests/QtAutogen/AutogenOriginDependsOff/a_qt.hpp
new file mode 100644
index 0000000..e2387ee
--- /dev/null
+++ b/Tests/QtAutogen/AutogenOriginDependsOff/a_qt.hpp
@@ -0,0 +1,25 @@
+#ifndef A_QT_HPP
+#define A_QT_HPP
+
+#include <QObject>
+#include <config.hpp>
+#include <string>
+
+namespace a_qt {
+
+/// @brief A header local QObject based class
+class Header_QObject : public QObject
+{
+  Q_OBJECT
+public:
+  Header_QObject() {}
+  ~Header_QObject() {}
+
+  std::string str;
+};
+
+/// @brief Function that returns the content of mocs_compilation.cpp
+extern std::string mocs_compilation();
+}
+
+#endif
diff --git a/Tests/QtAutogen/AutogenOriginDependsOff/b_mc.cpp.in b/Tests/QtAutogen/AutogenOriginDependsOff/b_mc.cpp.in
new file mode 100644
index 0000000..0f5ec30
--- /dev/null
+++ b/Tests/QtAutogen/AutogenOriginDependsOff/b_mc.cpp.in
@@ -0,0 +1,9 @@
+#include <b_mc.hpp>
+
+namespace b_mc {
+
+char const* mocs_compilation()
+{
+  return "@MOCS_COMPILATION@";
+}
+}
diff --git a/Tests/QtAutogen/AutogenOriginDependsOff/b_mc.hpp b/Tests/QtAutogen/AutogenOriginDependsOff/b_mc.hpp
new file mode 100644
index 0000000..0437273
--- /dev/null
+++ b/Tests/QtAutogen/AutogenOriginDependsOff/b_mc.hpp
@@ -0,0 +1,9 @@
+#ifndef B_MC_HPP
+#define B_MC_HPP
+
+namespace b_mc {
+
+extern char const* mocs_compilation();
+}
+
+#endif
diff --git a/Tests/QtAutogen/AutogenOriginDependsOff/b_qt.cpp b/Tests/QtAutogen/AutogenOriginDependsOff/b_qt.cpp
new file mode 100644
index 0000000..f72f6ca
--- /dev/null
+++ b/Tests/QtAutogen/AutogenOriginDependsOff/b_qt.cpp
@@ -0,0 +1,28 @@
+
+#include "b_qt.hpp"
+#include <b_mc.hpp>
+
+namespace b_qt {
+
+/// @brief A source local QObject based class
+class Source_QObject : public QObject
+{
+  Q_OBJECT
+public:
+  Source_QObject() {}
+  ~Source_QObject() {}
+
+  std::string str;
+};
+
+std::string mocs_compilation()
+{
+  // Create and destroy QObject based classes
+  Header_QObject header_obj;
+  Source_QObject source_obj;
+
+  return std::string(b_mc::mocs_compilation());
+}
+}
+
+#include "b_qt.moc"
diff --git a/Tests/QtAutogen/AutogenOriginDependsOff/b_qt.hpp b/Tests/QtAutogen/AutogenOriginDependsOff/b_qt.hpp
new file mode 100644
index 0000000..d7f0311
--- /dev/null
+++ b/Tests/QtAutogen/AutogenOriginDependsOff/b_qt.hpp
@@ -0,0 +1,25 @@
+#ifndef B_QT_HPP
+#define B_QT_HPP
+
+#include <QObject>
+#include <config.hpp>
+#include <string>
+
+namespace b_qt {
+
+/// @brief A header local QObject based class
+class Header_QObject : public QObject
+{
+  Q_OBJECT
+public:
+  Header_QObject() {}
+  ~Header_QObject() {}
+
+  std::string str;
+};
+
+/// @brief Function that returns the content of mocs_compilation.cpp
+extern std::string mocs_compilation();
+}
+
+#endif
diff --git a/Tests/QtAutogen/AutogenOriginDependsOff/config.hpp.in b/Tests/QtAutogen/AutogenOriginDependsOff/config.hpp.in
new file mode 100644
index 0000000..e415d08
--- /dev/null
+++ b/Tests/QtAutogen/AutogenOriginDependsOff/config.hpp.in
@@ -0,0 +1,8 @@
+#ifndef CONFIG_HPP
+#define CONFIG_HPP
+
+// Application configuration
+
+enum dummy { NO_OP };
+
+#endif
diff --git a/Tests/QtAutogen/AutogenOriginDependsOff/configure_content.cmake b/Tests/QtAutogen/AutogenOriginDependsOff/configure_content.cmake
new file mode 100644
index 0000000..0fc6e63
--- /dev/null
+++ b/Tests/QtAutogen/AutogenOriginDependsOff/configure_content.cmake
@@ -0,0 +1,10 @@
+cmake_minimum_required(VERSION 3.10)
+
+# Read mocs_compilation.cpp file into variable
+file(READ "${MCF}" MOCS_COMPILATION)
+string(REPLACE "\\" "\\\\" MOCS_COMPILATION "${MOCS_COMPILATION}" )
+string(REPLACE "\"" "\\\"" MOCS_COMPILATION "${MOCS_COMPILATION}" )
+string(REPLACE "\n" "\"\n\"" MOCS_COMPILATION "${MOCS_COMPILATION}" )
+
+# Configure file
+configure_file ( "${CF_IN}" "${CF_OUT}" @ONLY )
diff --git a/Tests/QtAutogen/AutogenOriginDependsOff/main.cpp b/Tests/QtAutogen/AutogenOriginDependsOff/main.cpp
new file mode 100644
index 0000000..a3425f1
--- /dev/null
+++ b/Tests/QtAutogen/AutogenOriginDependsOff/main.cpp
@@ -0,0 +1,15 @@
+
+#include <a_qt.hpp>
+#include <b_qt.hpp>
+#include <string>
+
+int main()
+{
+  if (a_qt::mocs_compilation().empty()) {
+    return -1;
+  }
+  if (b_qt::mocs_compilation().empty()) {
+    return -1;
+  }
+  return 0;
+}
diff --git a/Tests/QtAutogen/CommonTests.cmake b/Tests/QtAutogen/CommonTests.cmake
index 01ed7e9..46d56cb 100644
--- a/Tests/QtAutogen/CommonTests.cmake
+++ b/Tests/QtAutogen/CommonTests.cmake
@@ -15,6 +15,7 @@ ADD_AUTOGEN_TEST(RccSkipSource)
 if(QT_TEST_VERSION GREATER 4)
   ADD_AUTOGEN_TEST(MocMacroName mocMacroName)
 endif()
+ADD_AUTOGEN_TEST(AutogenOriginDependsOff autogenOriginDependsOff)
 ADD_AUTOGEN_TEST(MocDepends)
 if(QT_TEST_ALLOW_QT_MACROS)
   ADD_AUTOGEN_TEST(MocIncludeStrict mocIncludeStrict)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f74c406501e5ffb5b6a3c8b76c831ca87e8f0168
commit f74c406501e5ffb5b6a3c8b76c831ca87e8f0168
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Wed Oct 24 11:42:58 2018 +0200
Commit:     Sebastian Holtermann <sebholt at xwmw.org>
CommitDate: Sat Nov 3 12:14:40 2018 +0100

    Autogen: Add (CMAKE_)AUTOGEN_ORIGIN_DEPENDS release notes

diff --git a/Help/release/dev/autogen-origin-depends.rst b/Help/release/dev/autogen-origin-depends.rst
new file mode 100644
index 0000000..7310487
--- /dev/null
+++ b/Help/release/dev/autogen-origin-depends.rst
@@ -0,0 +1,7 @@
+autogen-origin-depends
+----------------------
+
+* A new :variable:`CMAKE_AUTOGEN_ORIGIN_DEPENDS` variable and
+  :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS` target property may be set to enable or
+  disable forwarding of the origin target dependencies to the corresponding
+  ``_autogen`` target.

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0669de5d36b853fa7ff81081de719a0a48e2b654
commit 0669de5d36b853fa7ff81081de719a0a48e2b654
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Wed Oct 24 11:03:51 2018 +0200
Commit:     Sebastian Holtermann <sebholt at xwmw.org>
CommitDate: Sat Nov 3 12:14:40 2018 +0100

    Autogen: Add (CMAKE_)AUTOGEN_ORIGIN_DEPENDS documentation

diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst
index 1651114..047859d 100644
--- a/Help/manual/cmake-properties.7.rst
+++ b/Help/manual/cmake-properties.7.rst
@@ -124,6 +124,7 @@ Properties on Targets
    /prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG
    /prop_tgt/ARCHIVE_OUTPUT_NAME
    /prop_tgt/AUTOGEN_BUILD_DIR
+   /prop_tgt/AUTOGEN_ORIGIN_DEPENDS
    /prop_tgt/AUTOGEN_PARALLEL
    /prop_tgt/AUTOGEN_TARGET_DEPENDS
    /prop_tgt/AUTOMOC_COMPILER_PREDEFINES
diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst
index b88c661..9b12fc5 100644
--- a/Help/manual/cmake-variables.7.rst
+++ b/Help/manual/cmake-variables.7.rst
@@ -309,6 +309,7 @@ Variables that Control the Build
    /variable/CMAKE_ANDROID_STL_TYPE
    /variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY
    /variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG
+   /variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS
    /variable/CMAKE_AUTOGEN_PARALLEL
    /variable/CMAKE_AUTOGEN_VERBOSE
    /variable/CMAKE_AUTOMOC
diff --git a/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst b/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst
new file mode 100644
index 0000000..f61089a
--- /dev/null
+++ b/Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst
@@ -0,0 +1,26 @@
+AUTOGEN_ORIGIN_DEPENDS
+----------------------
+
+Switch for forwarding origin target dependencies to the corresponding
+``_autogen`` target.
+
+Targets which have their :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` property
+``ON`` have a corresponding ``_autogen`` target which is used to auto generate
+``moc`` and ``uic`` files.  As this ``_autogen`` target is created at
+generate-time, it is not possible to define dependencies of it,
+such as to create inputs for the ``moc`` or ``uic`` executable.
+
+The dependencies of the ``_autogen`` target are composed from
+
+- the origin target dependencies
+  (by default enabled via :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS`)
+- user defined dependencies from :prop_tgt:`AUTOGEN_TARGET_DEPENDS`
+
+:prop_tgt:`AUTOGEN_ORIGIN_DEPENDS` decides whether the origin target
+dependencies should be forwarded to the ``_autogen`` target or not.
+
+By default :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS` is initialized from
+:variable:`CMAKE_AUTOGEN_ORIGIN_DEPENDS` which is ``ON`` by default.
+
+See the :manual:`cmake-qt(7)` manual for more information on using CMake
+with Qt.
diff --git a/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst b/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
index 7d3dfd1..84c2bfe 100644
--- a/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
+++ b/Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst
@@ -9,9 +9,15 @@ Targets which have their :prop_tgt:`AUTOMOC` or :prop_tgt:`AUTOUIC` property
 generate-time, it is not possible to define dependencies of it,
 such as to create inputs for the ``moc`` or ``uic`` executable.
 
-The :prop_tgt:`AUTOGEN_TARGET_DEPENDS` target property can be set instead to a
-list of dependencies of the ``_autogen`` target.  Dependencies can be target
-names or file names.
+The dependencies of the ``_autogen`` target are composed from
+
+- the origin target dependencies
+  (by default enabled via :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS`)
+- user defined dependencies from :prop_tgt:`AUTOGEN_TARGET_DEPENDS`
+
+The :prop_tgt:`AUTOGEN_TARGET_DEPENDS` target property can be set to a
+list of additional dependencies for the ``_autogen`` target.  Dependencies
+can be target names or file names.
 
 See the :manual:`cmake-qt(7)` manual for more information on using CMake
 with Qt.
diff --git a/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst b/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst
new file mode 100644
index 0000000..1398e78
--- /dev/null
+++ b/Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst
@@ -0,0 +1,11 @@
+CMAKE_AUTOGEN_ORIGIN_DEPENDS
+----------------------------
+
+Switch for forwarding origin target dependencies to the corresponding
+``_autogen`` targets.
+
+This variable is used to initialize the :prop_tgt:`AUTOGEN_ORIGIN_DEPENDS`
+property on all the targets.  See that target property for additional
+information.
+
+By default :variable:`CMAKE_AUTOGEN_ORIGIN_DEPENDS` is ``ON``.

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b5e895b5d41dc688bf0acdec352cbccc178a7236
commit b5e895b5d41dc688bf0acdec352cbccc178a7236
Author:     Sebastian Holtermann <sebholt at xwmw.org>
AuthorDate: Wed Oct 24 11:22:50 2018 +0200
Commit:     Sebastian Holtermann <sebholt at xwmw.org>
CommitDate: Sat Nov 3 12:14:40 2018 +0100

    Autogen: Add (CMAKE_)AUTOGEN_ORIGIN_DEPENDS support
    
    This adds
    
    - the variable ``CMAKE_AUTOGEN_ORIGIN_DEPENDS`` which initializes
    - the target property ``AUTOGEN_ORIGIN_DEPENDS``
    
    which controls whether or not the origin target dependencies
    should be forwarded to the corresponding ``_autogen`` target.
    
    The default value of ``CMAKE_AUTOGEN_ORIGIN_DEPENDS`` is ``ON``
    which corresponds to the behavior that is in place since CMake 3.9.
    
    Closes: #18493

diff --git a/Modules/CMakeGenericSystem.cmake b/Modules/CMakeGenericSystem.cmake
index 02cb464..ddfc7bd 100644
--- a/Modules/CMakeGenericSystem.cmake
+++ b/Modules/CMakeGenericSystem.cmake
@@ -23,6 +23,8 @@ set(CMAKE_DL_LIBS "dl")
 
 set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
 set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a")
+
+set(CMAKE_AUTOGEN_ORIGIN_DEPENDS ON)
 set(CMAKE_AUTOMOC_COMPILER_PREDEFINES ON)
 set(CMAKE_AUTOMOC_MACRO_NAMES "Q_OBJECT" "Q_GADGET" "Q_NAMESPACE")
 
diff --git a/Source/cmQtAutoGenInitializer.cxx b/Source/cmQtAutoGenInitializer.cxx
index 7700767..a213c84 100644
--- a/Source/cmQtAutoGenInitializer.cxx
+++ b/Source/cmQtAutoGenInitializer.cxx
@@ -322,6 +322,9 @@ bool cmQtAutoGenInitializer::InitCustomTargets()
 
     // Autogen target: Compute user defined dependencies
     {
+      this->AutogenTarget.DependOrigin =
+        this->Target->GetPropertyAsBool("AUTOGEN_ORIGIN_DEPENDS");
+
       std::string const deps =
         this->Target->GetSafeProperty("AUTOGEN_TARGET_DEPENDS");
       if (!deps.empty()) {
@@ -904,7 +907,7 @@ bool cmQtAutoGenInitializer::InitAutogenTarget()
 
     // Add link library target dependencies to the autogen target
     // dependencies
-    {
+    if (this->AutogenTarget.DependOrigin) {
       // add_dependencies/addUtility do not support generator expressions.
       // We depend only on the libraries found in all configs therefore.
       std::map<cmGeneratorTarget const*, std::size_t> commonTargets;
@@ -941,8 +944,10 @@ bool cmQtAutoGenInitializer::InitAutogenTarget()
       new cmGeneratorTarget(autogenTarget, localGen));
 
     // Forward origin utilities to autogen target
-    for (BT<std::string> const& depName : this->Target->GetUtilities()) {
-      autogenTarget->AddUtility(depName.Value, makefile);
+    if (this->AutogenTarget.DependOrigin) {
+      for (BT<std::string> const& depName : this->Target->GetUtilities()) {
+        autogenTarget->AddUtility(depName.Value, makefile);
+      }
     }
     // Add additional autogen target dependencies to autogen target
     for (cmTarget* depTarget : this->AutogenTarget.DependTargets) {
diff --git a/Source/cmQtAutoGenInitializer.h b/Source/cmQtAutoGenInitializer.h
index ce00e00..1d3947b 100644
--- a/Source/cmQtAutoGenInitializer.h
+++ b/Source/cmQtAutoGenInitializer.h
@@ -107,6 +107,7 @@ private:
     std::string SettingsFile;
     std::map<std::string, std::string> ConfigSettingsFile;
     // Dependencies
+    bool DependOrigin = false;
     std::set<std::string> DependFiles;
     std::set<cmTarget*> DependTargets;
     // Sources to process
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 987bdb3..5d76a02 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -239,6 +239,7 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type,
     this->SetPropertyDefault("AUTOMOC", nullptr);
     this->SetPropertyDefault("AUTOUIC", nullptr);
     this->SetPropertyDefault("AUTORCC", nullptr);
+    this->SetPropertyDefault("AUTOGEN_ORIGIN_DEPENDS", nullptr);
     this->SetPropertyDefault("AUTOGEN_PARALLEL", nullptr);
     this->SetPropertyDefault("AUTOMOC_COMPILER_PREDEFINES", nullptr);
     this->SetPropertyDefault("AUTOMOC_DEPEND_FILTERS", nullptr);

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7413f29fe63296cf34176c5fc68c2c5354b43202
commit 7413f29fe63296cf34176c5fc68c2c5354b43202
Author:     Ben Boeckel <ben.boeckel at kitware.com>
AuthorDate: Wed Oct 31 15:06:45 2018 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Nov 1 13:23:38 2018 -0400

    Tests/FindPostgreSQL: add a test for FindPostgreSQL

diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index c7cfa86..f74defb 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -1461,6 +1461,10 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
     add_subdirectory(FindPatch)
   endif()
 
+  if(CMake_TEST_FindPostgreSQL)
+    add_subdirectory(FindPostgreSQL)
+  endif()
+
   if(CMake_TEST_FindProtobuf)
     add_subdirectory(FindProtobuf)
   endif()
diff --git a/Tests/FindPostgreSQL/CMakeLists.txt b/Tests/FindPostgreSQL/CMakeLists.txt
new file mode 100644
index 0000000..50151ee
--- /dev/null
+++ b/Tests/FindPostgreSQL/CMakeLists.txt
@@ -0,0 +1,10 @@
+add_test(NAME FindPostgreSQL.Test COMMAND
+  ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
+  --build-and-test
+  "${CMake_SOURCE_DIR}/Tests/FindPostgreSQL/Test"
+  "${CMake_BINARY_DIR}/Tests/FindPostgreSQL/Test"
+  ${build_generator_args}
+  --build-project TestFindPostgreSQL
+  --build-options ${build_options}
+  --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
+  )
diff --git a/Tests/FindPostgreSQL/Test/CMakeLists.txt b/Tests/FindPostgreSQL/Test/CMakeLists.txt
new file mode 100644
index 0000000..374e147
--- /dev/null
+++ b/Tests/FindPostgreSQL/Test/CMakeLists.txt
@@ -0,0 +1,16 @@
+cmake_minimum_required(VERSION 3.10)
+project(TestFindPostgreSQL C)
+include(CTest)
+
+find_package(PostgreSQL REQUIRED)
+
+add_definitions(-DCMAKE_EXPECTED_POSTGRESQL_VERSION="${PostgreSQL_VERSION_STRING}")
+
+add_executable(test_tgt main.c)
+target_link_libraries(test_tgt PostgreSQL::PostgreSQL)
+add_test(NAME test_tgt COMMAND test_tgt)
+
+add_executable(test_var main.c)
+target_include_directories(test_var PRIVATE ${PostgreSQL_INCLUDE_DIRS})
+target_link_libraries(test_var PRIVATE ${PostgreSQL_LIBRARIES})
+add_test(NAME test_var COMMAND test_var)
diff --git a/Tests/FindPostgreSQL/Test/main.c b/Tests/FindPostgreSQL/Test/main.c
new file mode 100644
index 0000000..2cfeed0
--- /dev/null
+++ b/Tests/FindPostgreSQL/Test/main.c
@@ -0,0 +1,15 @@
+#include <libpq-fe.h>
+#include <stdio.h>
+#include <string.h>
+
+int main()
+{
+  int version = PQlibVersion();
+  int major = version / 10000;
+  int minor = version % 10000;
+  char version_string[100];
+  snprintf(version_string, sizeof(version_string), "%d.%d", major, minor);
+  printf("Found PostgreSQL version %s, expected version %s\n", version_string,
+         CMAKE_EXPECTED_POSTGRESQL_VERSION);
+  return strcmp(version_string, CMAKE_EXPECTED_POSTGRESQL_VERSION);
+}

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d2235fd2538eca934f542ff82f21249c3ff314be
commit d2235fd2538eca934f542ff82f21249c3ff314be
Author:     Ben Boeckel <ben.boeckel at kitware.com>
AuthorDate: Wed Oct 31 14:36:27 2018 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Nov 1 13:23:33 2018 -0400

    FindPostgreSQL: add an imported target

diff --git a/Help/release/dev/FindPostgreSQL-target.rst b/Help/release/dev/FindPostgreSQL-target.rst
new file mode 100644
index 0000000..84f8d1a
--- /dev/null
+++ b/Help/release/dev/FindPostgreSQL-target.rst
@@ -0,0 +1,4 @@
+FindPostgreSQL-target
+---------------------
+
+* The :module:`FindPostgreSQL` module now provides an imported target.
diff --git a/Modules/FindPostgreSQL.cmake b/Modules/FindPostgreSQL.cmake
index d59ba50..6832bbe 100644
--- a/Modules/FindPostgreSQL.cmake
+++ b/Modules/FindPostgreSQL.cmake
@@ -7,6 +7,12 @@ FindPostgreSQL
 
 Find the PostgreSQL installation.
 
+IMPORTED Targets
+^^^^^^^^^^^^^^^^
+
+This module defines :prop_tgt:`IMPORTED` target ``PostgreSQL::PostgreSQL``
+if PostgreSQL has been found.
+
 Result Variables
 ^^^^^^^^^^^^^^^^
 
@@ -56,6 +62,8 @@ This module will set the following variables in your project:
 #  PostgreSQL_LIBRARY_DIRS  - Link directories for PostgreSQL libraries
 #  PostgreSQL_LIBRARIES     - The PostgreSQL libraries.
 #
+# The ``PostgreSQL::PostgreSQL`` imported target is also created.
+#
 # ----------------------------------------------------------------------------
 # If you have installed PostgreSQL in a non-standard location.
 # (Please note that in the following comments, it is assumed that <Your Path>
@@ -187,6 +195,12 @@ set(PostgreSQL_FOUND  ${POSTGRESQL_FOUND})
 
 # Now try to get the include and library path.
 if(PostgreSQL_FOUND)
+  if (NOT TARGET PostgreSQL::PostgreSQL)
+    add_library(PostgreSQL::PostgreSQL UNKNOWN IMPORTED)
+    set_target_properties(PostgreSQL::PostgreSQL PROPERTIES
+      IMPORTED_LOCATION "${PostgreSQL_LIBRARY}"
+      INTERFACE_INCLUDE_DIRECTORIES "${PostgreSQL_INCLUDE_DIR};${PostgreSQL_TYPE_INCLUDE_DIR}")
+  endif ()
   set(PostgreSQL_INCLUDE_DIRS ${PostgreSQL_INCLUDE_DIR} ${PostgreSQL_TYPE_INCLUDE_DIR} )
   set(PostgreSQL_LIBRARY_DIRS ${PostgreSQL_LIBRARY_DIR} )
   set(PostgreSQL_LIBRARIES ${PostgreSQL_LIBRARY})

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7a801b7dfb38c2f9f77fbda0f45ed88b70ca4b87
commit 7a801b7dfb38c2f9f77fbda0f45ed88b70ca4b87
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Nov 1 13:21:45 2018 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Nov 1 13:22:01 2018 -0400

    FindPostgreSQL: Modernize documentation layout

diff --git a/Modules/FindPostgreSQL.cmake b/Modules/FindPostgreSQL.cmake
index 77fa4ed..d59ba50 100644
--- a/Modules/FindPostgreSQL.cmake
+++ b/Modules/FindPostgreSQL.cmake
@@ -7,14 +7,21 @@ FindPostgreSQL
 
 Find the PostgreSQL installation.
 
-This module defines
-
-::
-
-  PostgreSQL_LIBRARIES - the PostgreSQL libraries needed for linking
-  PostgreSQL_INCLUDE_DIRS - the directories of the PostgreSQL headers
-  PostgreSQL_LIBRARY_DIRS  - the link directories for PostgreSQL libraries
-  PostgreSQL_VERSION_STRING - the version of PostgreSQL found (since CMake 2.8.8)
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This module will set the following variables in your project:
+
+``PostgreSQL_FOUND``
+  True if PostgreSQL is found.
+``PostgreSQL_LIBRARIES``
+  the PostgreSQL libraries needed for linking
+``PostgreSQL_INCLUDE_DIRS``
+  the directories of the PostgreSQL headers
+``PostgreSQL_LIBRARY_DIRS``
+  the link directories for PostgreSQL libraries
+``PostgreSQL_VERSION_STRING``
+  the version of PostgreSQL found
 #]=======================================================================]
 
 # ----------------------------------------------------------------------------

-----------------------------------------------------------------------

Summary of changes:
 Help/manual/cmake-properties.7.rst                 |  1 +
 Help/manual/cmake-qt.7.rst                         | 38 +++++++-----
 Help/manual/cmake-variables.7.rst                  |  1 +
 Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst           | 26 ++++++++
 Help/prop_tgt/AUTOGEN_TARGET_DEPENDS.rst           | 12 +++-
 Help/prop_tgt/AUTOMOC.rst                          |  4 +-
 Help/prop_tgt/AUTORCC.rst                          |  2 +-
 Help/prop_tgt/AUTOUIC.rst                          |  2 +-
 Help/release/dev/FindPostgreSQL-target.rst         |  4 ++
 Help/release/dev/autogen-origin-depends.rst        |  7 +++
 Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst     | 11 ++++
 Modules/CMakeGenericSystem.cmake                   |  2 +
 Modules/FindPostgreSQL.cmake                       | 63 +++++++++++++++----
 Source/cmQtAutoGenInitializer.cxx                  | 11 +++-
 Source/cmQtAutoGenInitializer.h                    |  1 +
 Source/cmTarget.cxx                                |  1 +
 Tests/CMakeLists.txt                               |  4 ++
 Tests/FindPostgreSQL/CMakeLists.txt                | 10 +++
 Tests/FindPostgreSQL/Test/CMakeLists.txt           | 16 +++++
 Tests/FindPostgreSQL/Test/main.c                   | 15 +++++
 .../AutogenOriginDependsOff/CMakeLists.txt         | 71 ++++++++++++++++++++++
 .../QtAutogen/AutogenOriginDependsOff/a_mc.hpp.in  |  9 +++
 Tests/QtAutogen/AutogenOriginDependsOff/a_qt.cpp   | 28 +++++++++
 Tests/QtAutogen/AutogenOriginDependsOff/a_qt.hpp   | 25 ++++++++
 .../QtAutogen/AutogenOriginDependsOff/b_mc.cpp.in  |  9 +++
 Tests/QtAutogen/AutogenOriginDependsOff/b_mc.hpp   |  9 +++
 Tests/QtAutogen/AutogenOriginDependsOff/b_qt.cpp   | 28 +++++++++
 Tests/QtAutogen/AutogenOriginDependsOff/b_qt.hpp   | 25 ++++++++
 .../AutogenOriginDependsOff/config.hpp.in          |  8 +++
 .../configure_content.cmake                        | 10 +++
 Tests/QtAutogen/AutogenOriginDependsOff/main.cpp   | 15 +++++
 .../CMakeLists.txt                                 | 50 +--------------
 .../object_invalid.hpp.in                          |  0
 .../object_valid.hpp.in                            |  0
 .../simpleLib.cpp.in                               |  0
 .../simpleLib.hpp.in                               |  0
 .../testGenFile.cpp                                |  0
 .../testGenLib.cpp                                 |  0
 .../testGenLib.hpp                                 |  0
 .../testGenTarget.cpp                              |  0
 .../QtAutogen/AutogenTargetDepends/CMakeLists.txt  | 54 ++++++++++++++++
 .../object_invalid.hpp.in                          |  0
 .../object_valid.hpp.in                            |  0
 .../testATDFile.cpp                                |  0
 .../testATDTarget.cpp                              |  0
 Tests/QtAutogen/CommonTests.cmake                  |  4 +-
 46 files changed, 490 insertions(+), 86 deletions(-)
 create mode 100644 Help/prop_tgt/AUTOGEN_ORIGIN_DEPENDS.rst
 create mode 100644 Help/release/dev/FindPostgreSQL-target.rst
 create mode 100644 Help/release/dev/autogen-origin-depends.rst
 create mode 100644 Help/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS.rst
 create mode 100644 Tests/FindPostgreSQL/CMakeLists.txt
 create mode 100644 Tests/FindPostgreSQL/Test/CMakeLists.txt
 create mode 100644 Tests/FindPostgreSQL/Test/main.c
 create mode 100644 Tests/QtAutogen/AutogenOriginDependsOff/CMakeLists.txt
 create mode 100644 Tests/QtAutogen/AutogenOriginDependsOff/a_mc.hpp.in
 create mode 100644 Tests/QtAutogen/AutogenOriginDependsOff/a_qt.cpp
 create mode 100644 Tests/QtAutogen/AutogenOriginDependsOff/a_qt.hpp
 create mode 100644 Tests/QtAutogen/AutogenOriginDependsOff/b_mc.cpp.in
 create mode 100644 Tests/QtAutogen/AutogenOriginDependsOff/b_mc.hpp
 create mode 100644 Tests/QtAutogen/AutogenOriginDependsOff/b_qt.cpp
 create mode 100644 Tests/QtAutogen/AutogenOriginDependsOff/b_qt.hpp
 create mode 100644 Tests/QtAutogen/AutogenOriginDependsOff/config.hpp.in
 create mode 100644 Tests/QtAutogen/AutogenOriginDependsOff/configure_content.cmake
 create mode 100644 Tests/QtAutogen/AutogenOriginDependsOff/main.cpp
 rename Tests/QtAutogen/{MocDepends => AutogenOriginDependsOn}/CMakeLists.txt (64%)
 copy Tests/QtAutogen/{MocDepends => AutogenOriginDependsOn}/object_invalid.hpp.in (100%)
 copy Tests/QtAutogen/{MocDepends => AutogenOriginDependsOn}/object_valid.hpp.in (100%)
 rename Tests/QtAutogen/{MocDepends => AutogenOriginDependsOn}/simpleLib.cpp.in (100%)
 rename Tests/QtAutogen/{MocDepends => AutogenOriginDependsOn}/simpleLib.hpp.in (100%)
 rename Tests/QtAutogen/{MocDepends => AutogenOriginDependsOn}/testGenFile.cpp (100%)
 rename Tests/QtAutogen/{MocDepends => AutogenOriginDependsOn}/testGenLib.cpp (100%)
 rename Tests/QtAutogen/{MocDepends => AutogenOriginDependsOn}/testGenLib.hpp (100%)
 rename Tests/QtAutogen/{MocDepends => AutogenOriginDependsOn}/testGenTarget.cpp (100%)
 create mode 100644 Tests/QtAutogen/AutogenTargetDepends/CMakeLists.txt
 rename Tests/QtAutogen/{MocDepends => AutogenTargetDepends}/object_invalid.hpp.in (100%)
 rename Tests/QtAutogen/{MocDepends => AutogenTargetDepends}/object_valid.hpp.in (100%)
 rename Tests/QtAutogen/{MocDepends => AutogenTargetDepends}/testATDFile.cpp (100%)
 rename Tests/QtAutogen/{MocDepends => AutogenTargetDepends}/testATDTarget.cpp (100%)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list