ソースを参照

Autogen: Do not use per-config file suffixes with VS yet

The change in commit v3.9.0-rc1~42^2~1 (Autogen: Per-config file
suffixes, 2017-05-15) broke Visual Studio builds because the generators
do not yet fully support per-config sources.  Disable the behavior on
Visual Studio generators for now.

Fixes: #16939
Brad King 8 年 前
コミット
cc1b513df1

+ 0 - 9
Help/manual/cmake-qt.7.rst

@@ -72,9 +72,6 @@ Included ``moc_*.cpp`` and ``*.moc`` files will be generated in the
 automatically added to the target's :prop_tgt:`INCLUDE_DIRECTORIES`.
 (This differs from CMake 3.7 and below; see their documentation for details.)
 
-* For multi configuration generators, except Xcode, the include directory is
-  ``<AUTOGEN_BUILD_DIR>/include_<CONFIG>``.
-
 * See :prop_tgt:`AUTOGEN_BUILD_DIR`.
 
 Not included ``moc_<basename>.cpp`` files will be generated in custom
@@ -82,9 +79,6 @@ folders to avoid name collisions and included in a separate
 ``<AUTOGEN_BUILD_DIR>/mocs_compilation.cpp`` file which is compiled
 into the target.
 
-* For multi configuration generators, except Xcode, the file is
-  ``<AUTOGEN_BUILD_DIR>/mocs_compilation_<CONFIG>.cpp``.
-
 * See :prop_tgt:`AUTOGEN_BUILD_DIR`.
 
 The ``moc`` command line will consume the :prop_tgt:`COMPILE_DEFINITIONS` and
@@ -123,9 +117,6 @@ The generated generated ``ui_*.h`` files are placed in the
 automatically added to the target's :prop_tgt:`INCLUDE_DIRECTORIES`.
 (This differs from CMake 3.7 and below; see their documentation for details.)
 
-* For multi configuration generators, except Xcode, the include directory is
-  ``<AUTOGEN_BUILD_DIR>/include_<CONFIG>``.
-
 * See :prop_tgt:`AUTOGEN_BUILD_DIR`.
 
 The :prop_tgt:`AUTOUIC` target property may be pre-set for all following

+ 0 - 7
Help/prop_tgt/AUTOMOC.rst

@@ -20,9 +20,6 @@ source files at build time and invoke moc accordingly.
   This allows the compiler to find the included ``moc_<basename>.cpp`` file
   regardless of the location the original source.
 
-  * For multi configuration generators, except Xcode, the include directory is
-    ``<AUTOGEN_BUILD_DIR>/include_<CONFIG>``.
-
   * See :prop_tgt:`AUTOGEN_BUILD_DIR`.
 
 * If an ``#include`` statement like ``#include "<basename>.moc"`` is found,
@@ -36,10 +33,6 @@ source files at build time and invoke moc accordingly.
   ``<AUTOGEN_BUILD_DIR>/mocs_compilation.cpp`` file,
   which is compiled as part of the target.
 
-  * For multi configuration generators, except Xcode, the file names are
-    ``moc_<basename>_<CONFIG>.cpp`` and
-    ``<AUTOGEN_BUILD_DIR>/mocs_compilation_<CONFIG>.cpp``.
-
   * The custom directories with checksum
     based names help to avoid name collisions for moc files with the same
     ``<basename>``.

+ 0 - 3
Help/prop_tgt/AUTOUIC.rst

@@ -17,9 +17,6 @@ optional :prop_tgt:`AUTOUIC_SEARCH_PATHS` of the target.
 ``<AUTOGEN_BUILD_DIR>/include``,
 which is automatically added to the target's :prop_tgt:`INCLUDE_DIRECTORIES`.
 
-* For multi configuration generators, except Xcode, the include directory is
-  ``<AUTOGEN_BUILD_DIR>/include_<CONFIG>``.
-
 * See :prop_tgt:`AUTOGEN_BUILD_DIR`.
 
 This property is initialized by the value of the :variable:`CMAKE_AUTOUIC`

+ 4 - 0
Source/cmQtAutoGeneratorInitializer.cxx

@@ -162,6 +162,10 @@ static bool IsMultiConfig(cmGlobalGenerator* globalGen)
   if (globalGen->GetName().find("Xcode") != std::string::npos) {
     return false;
   }
+  // FIXME: Visual Studio does not fully support per-config sources yet.
+  if (globalGen->GetName().find("Visual Studio") != std::string::npos) {
+    return false;
+  }
   return globalGen->IsMultiConfig();
 }