[Cmake-commits] CMake branch, next, updated. v3.0.2-5640-gfb79547

Stephen Kelly steveire at gmail.com
Tue Oct 7 13:57:11 EDT 2014


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, next has been updated
       via  fb79547b09afa0f0f16690afc89aa17b639c5df2 (commit)
       via  53f11506314ac3402d6f577a0f463e8355d609fa (commit)
      from  9636477672916b7521e3c0b9d65c8fff07ce99b1 (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 -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fb79547b09afa0f0f16690afc89aa17b639c5df2
commit fb79547b09afa0f0f16690afc89aa17b639c5df2
Merge: 9636477 53f1150
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Oct 7 13:57:10 2014 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Oct 7 13:57:10 2014 -0400

    Merge topic 'autorcc-depends' into next
    
    53f11506 Revert topic.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=53f11506314ac3402d6f577a0f463e8355d609fa
commit 53f11506314ac3402d6f577a0f463e8355d609fa
Author:     Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Oct 7 19:56:21 2014 +0200
Commit:     Stephen Kelly <steveire at gmail.com>
CommitDate: Tue Oct 7 19:56:29 2014 +0200

    Revert topic.

diff --git a/Modules/AutogenInfo.cmake.in b/Modules/AutogenInfo.cmake.in
index 7d89420..602b065 100644
--- a/Modules/AutogenInfo.cmake.in
+++ b/Modules/AutogenInfo.cmake.in
@@ -1,6 +1,5 @@
 set(AM_SOURCES @_cpp_files@ )
 set(AM_RCC_SOURCES @_rcc_files@ )
-set(AM_RCC_INPUTS @_qt_rcc_inputs@)
 set(AM_SKIP_MOC @_skip_moc@ )
 set(AM_SKIP_UIC @_skip_uic@ )
 set(AM_HEADERS @_moc_headers@ )
diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx
index 53399f9..cb070cc 100644
--- a/Source/cmQtAutoGenerators.cxx
+++ b/Source/cmQtAutoGenerators.cxx
@@ -166,112 +166,6 @@ static std::string getAutogenTargetDir(cmTarget const* target)
   return targetDir;
 }
 
-std::string cmQtAutoGenerators::ListQt5RccInputs(cmSourceFile* sf,
-                                            cmTarget const* target,
-                                            std::vector<std::string>& depends)
-{
-  std::string rccCommand = this->GetRccExecutable(target);
-  std::vector<std::string> qrcEntries;
-
-  std::vector<std::string> command;
-  command.push_back(rccCommand);
-  command.push_back("--list");
-
-  std::string absFile = cmsys::SystemTools::GetRealPath(
-                                              sf->GetFullPath().c_str());
-
-  command.push_back(absFile);
-
-  std::string output;
-  int retVal = 0;
-  bool result = cmSystemTools::RunSingleCommand(command, &output,
-                                            &retVal, 0,
-                                            cmSystemTools::OUTPUT_NONE);
-  if (!result || retVal)
-    {
-    std::cerr << "AUTOGEN: error: Rcc list process for " << sf->GetFullPath()
-              << " failed:\n" << output << std::endl;
-    return std::string();
-    }
-
-  std::istringstream ostr(output);
-  std::string oline;
-  while(std::getline(ostr, oline))
-    {
-    if (oline.empty())
-      {
-      // The output of rcc --list contains many empty lines.
-      continue;
-      }
-    if (cmHasLiteralPrefix(oline, "RCC: Error in"))
-      {
-      static std::string searchString = "Cannot find file '";
-
-      std::string::size_type pos = oline.find(searchString);
-      if (pos == std::string::npos)
-        {
-        std::cerr << "AUTOGEN: error: Rcc lists unparsable output "
-                  << oline << std::endl;
-        return std::string();
-        }
-      pos += searchString.length();
-      std::string::size_type sz = oline.size() - pos - 1;
-      qrcEntries.push_back(oline.substr(pos, sz));
-      }
-    else
-      {
-      qrcEntries.push_back(oline);
-      }
-    }
-  depends.insert(depends.end(), qrcEntries.begin(), qrcEntries.end());
-  std::string entriesList;
-  const char* sep = "";
-  for(std::vector<std::string>::const_iterator it = qrcEntries.begin();
-      it != qrcEntries.end(); ++it)
-    {
-    entriesList += sep;
-    entriesList += *it;
-    sep = "@list_sep@";
-    }
-  return entriesList;
-}
-
-std::string cmQtAutoGenerators::ListQt4RccInputs(cmSourceFile* sf,
-                                            std::vector<std::string>& depends)
-{
-  const std::string qrcContents = ReadAll(sf->GetFullPath());
-
-  cmsys::RegularExpression fileMatchRegex("(<file[^<]+)");
-
-  std::string entriesList;
-  const char* sep = "";
-
-  size_t offset = 0;
-  while (fileMatchRegex.find(qrcContents.c_str() + offset))
-    {
-    std::string qrcEntry = fileMatchRegex.match(1);
-
-    offset += qrcEntry.size();
-
-    cmsys::RegularExpression fileReplaceRegex("(^<file[^>]*>)");
-    fileReplaceRegex.find(qrcEntry);
-    std::string tag = fileReplaceRegex.match(1);
-
-    qrcEntry = qrcEntry.substr(tag.size());
-
-    if (!cmSystemTools::FileIsFullPath(qrcEntry.c_str()))
-      {
-      qrcEntry = sf->GetLocation().GetDirectory() + "/" + qrcEntry;
-      }
-
-    entriesList += sep;
-    entriesList += qrcEntry;
-    sep = "@list_sep@";
-    depends.push_back(qrcEntry);
-    }
-  return entriesList;
-}
-
 bool cmQtAutoGenerators::InitializeAutogenTarget(cmTarget* target)
 {
   cmMakefile* makefile = target->GetMakefile();
@@ -524,8 +418,6 @@ void cmQtAutoGenerators::SetupAutoGenerateTarget(cmTarget const* target)
   inputFile += "/Modules/AutogenInfo.cmake.in";
   std::string outputFile = targetDir;
   outputFile += "/AutogenInfo.cmake";
-  makefile->AddDefinition("_qt_rcc_inputs",
-              makefile->GetDefinition("_qt_rcc_inputs_" + target->GetName()));
   makefile->ConfigureFile(inputFile.c_str(), outputFile.c_str(),
                           false, true, false);
 
@@ -977,12 +869,9 @@ void cmQtAutoGenerators::SetupAutoRccTarget(cmTarget const* target)
   std::vector<cmSourceFile*> srcFiles;
   target->GetConfigCommonSourceFiles(srcFiles);
 
-  std::string qrcInputs;
-  const char* qrcInputsSep = "";
-
   std::string rccFileFiles;
   std::string rccFileOptions;
-  const char *optionSep = "";
+  const char *sep = "";
 
   const char *qtVersion = makefile->GetDefinition("_target_qt_version");
 
@@ -991,11 +880,6 @@ void cmQtAutoGenerators::SetupAutoRccTarget(cmTarget const* target)
     {
     cmSystemTools::ExpandListArgument(opts, rccOptions);
     }
-  std::string qtMajorVersion = makefile->GetSafeDefinition("QT_VERSION_MAJOR");
-  if (qtMajorVersion == "")
-    {
-    qtMajorVersion = makefile->GetSafeDefinition("Qt5Core_VERSION_MAJOR");
-    }
 
   for(std::vector<cmSourceFile*>::const_iterator fileIt = srcFiles.begin();
       fileIt != srcFiles.end();
@@ -1025,9 +909,9 @@ void cmQtAutoGenerators::SetupAutoRccTarget(cmTarget const* target)
 
         if (!rccOptions.empty())
           {
-          rccFileFiles += optionSep;
+          rccFileFiles += sep;
           rccFileFiles += absFile;
-          rccFileOptions += optionSep;
+          rccFileOptions += sep;
           }
         const char *listSep = "";
         for(std::vector<std::string>::const_iterator it = rccOptions.begin();
@@ -1038,34 +922,10 @@ void cmQtAutoGenerators::SetupAutoRccTarget(cmTarget const* target)
           rccFileOptions += *it;
           listSep = "@list_sep@";
           }
-        optionSep = ";";
-
-        std::vector<std::string> depends;
-
-        std::string entriesList;
-        if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED")))
-          {
-          if (qtMajorVersion == "5")
-            {
-            entriesList = this->ListQt5RccInputs(sf, target, depends);
-            }
-          else
-            {
-            entriesList = this->ListQt4RccInputs(sf, depends);
-            }
-          if (entriesList.empty())
-            {
-            return;
-            }
-          }
-        qrcInputs += qrcInputsSep;
-        qrcInputs += entriesList;
-        qrcInputsSep = ";";
+        sep = ";";
         }
       }
     }
-  makefile->AddDefinition("_qt_rcc_inputs_" + target->GetName(),
-                      cmLocalGenerator::EscapeForCMake(qrcInputs).c_str());
 
   makefile->AddDefinition("_rcc_files",
           cmLocalGenerator::EscapeForCMake(_rcc_files).c_str());
@@ -1075,29 +935,6 @@ void cmQtAutoGenerators::SetupAutoRccTarget(cmTarget const* target)
   makefile->AddDefinition("_qt_rcc_options_options",
             cmLocalGenerator::EscapeForCMake(rccFileOptions).c_str());
 
-  makefile->AddDefinition("_qt_rcc_executable",
-                          this->GetRccExecutable(target).c_str());
-}
-
-std::string cmQtAutoGenerators::GetRccExecutable(cmTarget const* target)
-{
-  cmMakefile *makefile = target->GetMakefile();
-  const char *qtVersion = makefile->GetDefinition("_target_qt_version");
-  if (!qtVersion)
-    {
-    qtVersion = makefile->GetDefinition("Qt5Core_VERSION_MAJOR");
-    if (!qtVersion)
-      {
-      qtVersion = makefile->GetDefinition("QT_VERSION_MAJOR");
-      }
-    if (const char *targetQtVersion =
-        target->GetLinkInterfaceDependentStringProperty("QT_MAJOR_VERSION",
-                                                        ""))
-      {
-      qtVersion = targetQtVersion;
-      }
-    }
-
   std::string targetName = target->GetName();
   if (strcmp(qtVersion, "5") == 0)
     {
@@ -1106,9 +943,9 @@ std::string cmQtAutoGenerators::GetRccExecutable(cmTarget const* target)
       {
       cmSystemTools::Error("Qt5::rcc target not found ",
                           targetName.c_str());
-      return std::string();
+      return;
       }
-    return qt5Rcc->GetLocation("");
+    makefile->AddDefinition("_qt_rcc_executable", qt5Rcc->GetLocation(""));
     }
   else if (strcmp(qtVersion, "4") == 0)
     {
@@ -1117,14 +954,15 @@ std::string cmQtAutoGenerators::GetRccExecutable(cmTarget const* target)
       {
       cmSystemTools::Error("Qt4::rcc target not found ",
                           targetName.c_str());
-      return std::string();
+      return;
       }
-    return qt4Rcc->GetLocation("");
+    makefile->AddDefinition("_qt_rcc_executable", qt4Rcc->GetLocation(""));
+    }
+  else
+    {
+    cmSystemTools::Error("The CMAKE_AUTORCC feature supports only Qt 4 and "
+                        "Qt 5 ", targetName.c_str());
     }
-
-  cmSystemTools::Error("The CMAKE_AUTORCC feature supports only Qt 4 and "
-                      "Qt 5 ", targetName.c_str());
-  return std::string();
 }
 
 static cmGlobalGenerator* CreateGlobalGenerator(cmake* cm,
@@ -1192,10 +1030,7 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile(cmMakefile* makefile,
                                      "AM_Qt5Core_VERSION_MAJOR");
     }
   this->Sources = makefile->GetSafeDefinition("AM_SOURCES");
-  {
-  std::string rccSources = makefile->GetSafeDefinition("AM_RCC_SOURCES");
-  cmSystemTools::ExpandListArgument(rccSources, this->RccSources);
-  }
+  this->RccSources = makefile->GetSafeDefinition("AM_RCC_SOURCES");
   this->SkipMoc = makefile->GetSafeDefinition("AM_SKIP_MOC");
   this->SkipUic = makefile->GetSafeDefinition("AM_SKIP_UIC");
   this->Headers = makefile->GetSafeDefinition("AM_HEADERS");
@@ -1293,28 +1128,6 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile(cmMakefile* makefile,
     cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";");
     this->RccOptions[*fileIt] = *optionIt;
     }
-
-  const char *rccInputs = makefile->GetSafeDefinition("AM_RCC_INPUTS");
-  std::vector<std::string> rccInputLists;
-  cmSystemTools::ExpandListArgument(rccInputs, rccInputLists);
-
-  if (this->RccSources.size() != rccInputLists.size())
-    {
-    cmSystemTools::Error("Error processing file: ", filename.c_str());
-    return false;
-    }
-
-  for (std::vector<std::string>::iterator fileIt = this->RccSources.begin(),
-                                            inputIt = rccInputLists.begin();
-                                            fileIt != this->RccSources.end();
-                                            ++fileIt, ++inputIt)
-    {
-    cmSystemTools::ReplaceString(*inputIt, "@list_sep@", ";");
-    std::vector<std::string> rccInputFiles;
-    cmSystemTools::ExpandListArgument(*inputIt, rccInputFiles);
-
-    this->RccInputs[*fileIt] = rccInputFiles;
-    }
   }
   this->CurrentCompileSettingsStr = this->MakeCompileSettingsString(makefile);
 
@@ -2237,29 +2050,13 @@ bool cmQtAutoGenerators::GenerateUi(const std::string& realName,
   return false;
 }
 
-bool cmQtAutoGenerators::InputFilesNewerThanQrc(const std::string& qrcFile,
-                                                const std::string& rccOutput)
-{
-  std::vector<std::string> const& files = this->RccInputs[qrcFile];
-  for (std::vector<std::string>::const_iterator it = files.begin();
-       it != files.end(); ++it)
-    {
-    int inputNewerThanQrc = 0;
-    bool success = cmsys::SystemTools::FileTimeCompare(it->c_str(),
-                                                      rccOutput.c_str(),
-                                                      &inputNewerThanQrc);
-    if (!success || inputNewerThanQrc >= 0)
-      {
-      return true;
-      }
-    }
-  return false;
-}
-
 bool cmQtAutoGenerators::GenerateQrc()
 {
-  for(std::vector<std::string>::const_iterator si = this->RccSources.begin();
-      si != this->RccSources.end(); ++si)
+  std::vector<std::string> sourceFiles;
+  cmSystemTools::ExpandListArgument(this->RccSources, sourceFiles);
+
+  for(std::vector<std::string>::const_iterator si = sourceFiles.begin();
+      si != sourceFiles.end(); ++si)
     {
     std::string ext = cmsys::SystemTools::GetFilenameLastExtension(*si);
 
@@ -2278,14 +2075,10 @@ bool cmQtAutoGenerators::GenerateQrc()
                                 + ".dir/qrc_" + basename + ".cpp";
 
     int sourceNewerThanQrc = 0;
-    bool generateQrc = !cmsys::SystemTools::FileTimeCompare(si->c_str(),
+    bool success = cmsys::SystemTools::FileTimeCompare(si->c_str(),
                                                       rcc_output_file.c_str(),
                                                       &sourceNewerThanQrc);
-    generateQrc = generateQrc || (sourceNewerThanQrc >= 0);
-    generateQrc = generateQrc || this->InputFilesNewerThanQrc(*si,
-                                                          rcc_output_file);
-
-    if (this->GenerateAll || generateQrc)
+    if (this->GenerateAll || !success || sourceNewerThanQrc >= 0)
       {
       std::map<std::string, std::string>::const_iterator optionIt
               = this->RccOptions.find(*si);
diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h
index 79fa5df..c298f5d 100644
--- a/Source/cmQtAutoGenerators.h
+++ b/Source/cmQtAutoGenerators.h
@@ -86,20 +86,9 @@ private:
   void MergeRccOptions(std::vector<std::string> &opts,
                        const std::vector<std::string> &fileOpts, bool isQt5);
 
-  std::string GetRccExecutable(cmTarget const* target);
-
-  std::string ListQt5RccInputs(cmSourceFile* sf, cmTarget const* target,
-                               std::vector<std::string>& depends);
-
-  std::string ListQt4RccInputs(cmSourceFile* sf,
-                               std::vector<std::string>& depends);
-
-  bool InputFilesNewerThanQrc(const std::string& qrcFile,
-                              const std::string& rccOutput);
-
   std::string QtMajorVersion;
   std::string Sources;
-  std::vector<std::string> RccSources;
+  std::string RccSources;
   std::string SkipMoc;
   std::string SkipUic;
   std::string Headers;
@@ -127,7 +116,6 @@ private:
   std::vector<std::string> UicTargetOptions;
   std::map<std::string, std::string> UicOptions;
   std::map<std::string, std::string> RccOptions;
-  std::map<std::string, std::vector<std::string> > RccInputs;
 
   bool Verbose;
   bool ColorOutput;
diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt
index 028649e..3fd00b8 100644
--- a/Tests/QtAutogen/CMakeLists.txt
+++ b/Tests/QtAutogen/CMakeLists.txt
@@ -113,38 +113,3 @@ set_target_properties(no_link_language PROPERTIES AUTOMOC TRUE)
 qtx_wrap_cpp(uicOnlyMoc sub/uiconly.h)
 add_executable(uiconly sub/uiconly.cpp ${uicOnlyMoc})
 target_link_libraries(uiconly ${QT_LIBRARIES})
-
-if (NOT CMAKE_GENERATOR STREQUAL Ninja)
-
-  try_compile(RCC_DEPENDS
-    "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends"
-    "${CMAKE_CURRENT_SOURCE_DIR}/autorcc_depends"
-    autorcc_depends
-    CMAKE_FLAGS "-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}" "-DQT_TEST_VERSION=${QT_TEST_VERSION}"
-    OUTPUT_VARIABLE output
-  )
-  if (NOT RCC_DEPENDS)
-    message(SEND_ERROR "Initial build of autorcc_depends failed. Output: ${output}")
-  endif()
-
-  file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends/info_file.txt" qrc_files)
-
-  list(GET qrc_files 0 qrc_file1)
-
-  set(timeformat "%Y%j%H%M%S")
-
-  file(TIMESTAMP "${qrc_file1}" file1_before "${timeformat}")
-
-  execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_SOURCE_DIR}/autorcc_depends/res1_input.txt")
-  execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change.
-
-  execute_process(COMMAND "${CMAKE_COMMAND}" --build .
-    WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends"
-  )
-
-  file(TIMESTAMP "${qrc_file1}" file1_step1 "${timeformat}")
-
-  if (NOT file1_step1 GREATER file1_before)
-    message(SEND_ERROR "file1 (${qrc_file1}) should have changed in the first step!")
-  endif()
-endif()
diff --git a/Tests/QtAutogen/autorcc_depends/CMakeLists.txt b/Tests/QtAutogen/autorcc_depends/CMakeLists.txt
deleted file mode 100644
index afd95bc..0000000
--- a/Tests/QtAutogen/autorcc_depends/CMakeLists.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-project(autorcc_depends)
-
-set(CMAKE_AUTORCC ON)
-
-if (QT_TEST_VERSION STREQUAL 4)
-  find_package(Qt4 REQUIRED)
-  set(QT_CORE_TARGET Qt4::QtCore)
-else()
-  if (NOT QT_TEST_VERSION STREQUAL 5)
-    message(SEND_ERROR "Invalid Qt version specified.")
-  endif()
-
-  find_package(Qt5Core REQUIRED)
-  set(QT_CORE_TARGET Qt5::Core)
-endif()
-
-add_executable(test_res1
-  test_res1.cpp
-  res1.qrc
-)
-target_link_libraries(test_res1 ${QT_CORE_TARGET})
-add_custom_command(TARGET test_res1 POST_BUILD COMMAND
-  ${CMAKE_COMMAND} -E echo "$<TARGET_FILE:test_res1>" > info_file.txt)
diff --git a/Tests/QtAutogen/autorcc_depends/res1.qrc b/Tests/QtAutogen/autorcc_depends/res1.qrc
deleted file mode 100644
index cfea618..0000000
--- a/Tests/QtAutogen/autorcc_depends/res1.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-<RCC>
-    <qresource prefix="/">
-        <file>res1_input.txt</file>
-    </qresource>
-</RCC>
diff --git a/Tests/QtAutogen/autorcc_depends/res1_input.txt b/Tests/QtAutogen/autorcc_depends/res1_input.txt
deleted file mode 100644
index da62762..0000000
--- a/Tests/QtAutogen/autorcc_depends/res1_input.txt
+++ /dev/null
@@ -1 +0,0 @@
-Res1 input.
diff --git a/Tests/QtAutogen/autorcc_depends/test_res1.cpp b/Tests/QtAutogen/autorcc_depends/test_res1.cpp
deleted file mode 100644
index 766b775..0000000
--- a/Tests/QtAutogen/autorcc_depends/test_res1.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-
-int main()
-{
-  return 0;
-}

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

Summary of changes:
 Modules/AutogenInfo.cmake.in                   |    1 -
 Source/cmQtAutoGenerators.cxx                  |  249 ++----------------------
 Source/cmQtAutoGenerators.h                    |   14 +-
 Tests/QtAutogen/CMakeLists.txt                 |   35 ----
 Tests/QtAutogen/autorcc_depends/CMakeLists.txt |   24 ---
 Tests/QtAutogen/autorcc_depends/res1.qrc       |    5 -
 Tests/QtAutogen/autorcc_depends/res1_input.txt |    1 -
 Tests/QtAutogen/autorcc_depends/test_res1.cpp  |    5 -
 8 files changed, 22 insertions(+), 312 deletions(-)
 delete mode 100644 Tests/QtAutogen/autorcc_depends/CMakeLists.txt
 delete mode 100644 Tests/QtAutogen/autorcc_depends/res1.qrc
 delete mode 100644 Tests/QtAutogen/autorcc_depends/res1_input.txt
 delete mode 100644 Tests/QtAutogen/autorcc_depends/test_res1.cpp


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list