From cc1b513df143161e437c261cc385225cb4191d16 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 6 Jun 2017 09:09:41 -0400 Subject: 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 --- Help/manual/cmake-qt.7.rst | 9 --------- Help/prop_tgt/AUTOMOC.rst | 7 ------- Help/prop_tgt/AUTOUIC.rst | 3 --- Source/cmQtAutoGeneratorInitializer.cxx | 4 ++++ 4 files changed, 4 insertions(+), 19 deletions(-) diff --git a/Help/manual/cmake-qt.7.rst b/Help/manual/cmake-qt.7.rst index 9f3968c..00d6e6e 100644 --- a/Help/manual/cmake-qt.7.rst +++ b/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 - ``/include_``. - * See :prop_tgt:`AUTOGEN_BUILD_DIR`. Not included ``moc_.cpp`` files will be generated in custom @@ -82,9 +79,6 @@ folders to avoid name collisions and included in a separate ``/mocs_compilation.cpp`` file which is compiled into the target. -* For multi configuration generators, except Xcode, the file is - ``/mocs_compilation_.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 - ``/include_``. - * See :prop_tgt:`AUTOGEN_BUILD_DIR`. The :prop_tgt:`AUTOUIC` target property may be pre-set for all following diff --git a/Help/prop_tgt/AUTOMOC.rst b/Help/prop_tgt/AUTOMOC.rst index 81eff82..0171d20 100644 --- a/Help/prop_tgt/AUTOMOC.rst +++ b/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_.cpp`` file regardless of the location the original source. - * For multi configuration generators, except Xcode, the include directory is - ``/include_``. - * See :prop_tgt:`AUTOGEN_BUILD_DIR`. * If an ``#include`` statement like ``#include ".moc"`` is found, @@ -36,10 +33,6 @@ source files at build time and invoke moc accordingly. ``/mocs_compilation.cpp`` file, which is compiled as part of the target. - * For multi configuration generators, except Xcode, the file names are - ``moc__.cpp`` and - ``/mocs_compilation_.cpp``. - * The custom directories with checksum based names help to avoid name collisions for moc files with the same ````. diff --git a/Help/prop_tgt/AUTOUIC.rst b/Help/prop_tgt/AUTOUIC.rst index 4a08072..6493bbc 100644 --- a/Help/prop_tgt/AUTOUIC.rst +++ b/Help/prop_tgt/AUTOUIC.rst @@ -17,9 +17,6 @@ optional :prop_tgt:`AUTOUIC_SEARCH_PATHS` of the target. ``/include``, which is automatically added to the target's :prop_tgt:`INCLUDE_DIRECTORIES`. -* For multi configuration generators, except Xcode, the include directory is - ``/include_``. - * See :prop_tgt:`AUTOGEN_BUILD_DIR`. This property is initialized by the value of the :variable:`CMAKE_AUTOUIC` diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index a39c10b..6924ba2 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/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(); } -- cgit v0.12