From a2cb1754a59d870f2a507d071d0c6c5891702645 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 20 Apr 2022 13:47:11 -0400 Subject: cmExportFileGenerator: require CMake 2.8.3 This allows use of `CMAKE_CURRENT_LIST_DIR`, `foreach(IN LISTS)`, `if(VERSION_*)`, and more. Note that generated filesets code already uses `if(VERSION_*)` and requires CMake 2.8.3 in practice. --- Source/cmExportFileGenerator.cxx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 6d6df71..3143c12 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -922,8 +922,11 @@ void cmExportFileGenerator::GeneratePolicyHeaderCode(std::ostream& os) // Protect that file against use with older CMake versions. /* clang-format off */ os << "# Generated by CMake\n\n"; - os << "if(\"${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}\" LESS 2.6)\n" - << " message(FATAL_ERROR \"CMake >= 2.6.0 required\")\n" + os << "if(\"${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}\" LESS 2.8)\n" + << " message(FATAL_ERROR \"CMake >= 2.8.0 required\")\n" + << "endif()\n" + << "if(CMAKE_VERSION VERSION_LESS \"2.8.3\")\n" + << " message(FATAL_ERROR \"CMake >= 2.8.3 required\")\n" << "endif()\n"; /* clang-format on */ @@ -935,7 +938,7 @@ void cmExportFileGenerator::GeneratePolicyHeaderCode(std::ostream& os) // versions. /* clang-format off */ os << "cmake_policy(PUSH)\n" - << "cmake_policy(VERSION 2.6...3.22)\n"; + << "cmake_policy(VERSION 2.8.3...3.22)\n"; /* clang-format on */ } -- cgit v0.12 From 59cc92085ea7c5a81de7d79946fa97f045adea78 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 20 Apr 2022 14:02:40 -0400 Subject: generated-cmake: use `_cmake_` prefixes for local variables This avoids stomping on any user variables. --- Source/cmExportFileGenerator.cxx | 56 ++++++++++++++++----------------- Source/cmExportInstallFileGenerator.cxx | 6 ++-- Source/cmInstallExportGenerator.cxx | 12 +++---- 3 files changed, 37 insertions(+), 37 deletions(-) diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 3143c12..fb37080 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -985,34 +985,34 @@ void cmExportFileGenerator::GenerateExpectedTargetsCode( /* clang-format off */ os << "# Protect against multiple inclusion, which would fail when already " "imported targets are added once more.\n" - "set(_targetsDefined)\n" - "set(_targetsNotDefined)\n" - "set(_expectedTargets)\n" - "foreach(_expectedTarget " << expectedTargets << ")\n" - " list(APPEND _expectedTargets ${_expectedTarget})\n" - " if(NOT TARGET ${_expectedTarget})\n" - " list(APPEND _targetsNotDefined ${_expectedTarget})\n" + "set(_cmake_targets_defined)\n" + "set(_cmake_targets_not_defined)\n" + "set(_cmake_expected_targets)\n" + "foreach(_cmake_expected_target " << expectedTargets << ")\n" + " list(APPEND _cmake_expected_targets ${_cmake_expected_target})\n" + " if(NOT TARGET ${_cmake_expected_target})\n" + " list(APPEND _cmake_targets_not_defined ${_cmake_expected_target})\n" " endif()\n" - " if(TARGET ${_expectedTarget})\n" - " list(APPEND _targetsDefined ${_expectedTarget})\n" + " if(TARGET ${_cmake_expected_target})\n" + " list(APPEND _cmake_targets_defined ${_cmake_expected_target})\n" " endif()\n" "endforeach()\n" - "if(\"${_targetsDefined}\" STREQUAL \"${_expectedTargets}\")\n" - " unset(_targetsDefined)\n" - " unset(_targetsNotDefined)\n" - " unset(_expectedTargets)\n" + "if(\"${_cmake_targets_defined}\" STREQUAL \"${_cmake_expected_targets}\")\n" + " unset(_cmake_targets_defined)\n" + " unset(_cmake_targets_not_defined)\n" + " unset(_cmake_expected_targets)\n" " set(CMAKE_IMPORT_FILE_VERSION)\n" " cmake_policy(POP)\n" " return()\n" "endif()\n" - "if(NOT \"${_targetsDefined}\" STREQUAL \"\")\n" + "if(NOT \"${_cmake_targets_defined}\" STREQUAL \"\")\n" " message(FATAL_ERROR \"Some (but not all) targets in this export " - "set were already defined.\\nTargets Defined: ${_targetsDefined}\\n" - "Targets not yet defined: ${_targetsNotDefined}\\n\")\n" + "set were already defined.\\nTargets Defined: ${_cmake_targets_defined}\\n" + "Targets not yet defined: ${_cmake_targets_not_defined}\\n\")\n" "endif()\n" - "unset(_targetsDefined)\n" - "unset(_targetsNotDefined)\n" - "unset(_expectedTargets)\n" + "unset(_cmake_targets_defined)\n" + "unset(_cmake_targets_not_defined)\n" + "unset(_cmake_expected_targets)\n" "\n\n"; /* clang-format on */ } @@ -1178,12 +1178,12 @@ void cmExportFileGenerator::GenerateImportedFileCheckLoop(std::ostream& os) // but the development package was not installed.). /* clang-format off */ os << "# Loop over all imported files and verify that they actually exist\n" - "foreach(target ${_IMPORT_CHECK_TARGETS} )\n" - " foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} )\n" - " if(NOT EXISTS \"${file}\" )\n" - " message(FATAL_ERROR \"The imported target \\\"${target}\\\"" + "foreach(_cmake_target IN LISTS _cmake_import_check_targets)\n" + " foreach(_cmake_file IN LISTS \"_cmake_import_check_files_for_${_cmake_target}\")\n" + " if(NOT EXISTS \"${_cmake_file}\")\n" + " message(FATAL_ERROR \"The imported target \\\"${_cmake_target}\\\"" " references the file\n" - " \\\"${file}\\\"\n" + " \\\"${_cmake_file}\\\"\n" "but this file does not exist. Possible reasons include:\n" "* The file was deleted, renamed, or moved to another location.\n" "* An install or uninstall procedure did not complete successfully.\n" @@ -1193,9 +1193,9 @@ void cmExportFileGenerator::GenerateImportedFileCheckLoop(std::ostream& os) "\")\n" " endif()\n" " endforeach()\n" - " unset(_IMPORT_CHECK_FILES_FOR_${target})\n" + " unset(\"_cmake_import_check_files_for_${_cmake_target}\")\n" "endforeach()\n" - "unset(_IMPORT_CHECK_TARGETS)\n" + "unset(_cmake_import_check_targets)\n" "\n"; /* clang-format on */ } @@ -1208,9 +1208,9 @@ void cmExportFileGenerator::GenerateImportedFileChecksCode( // Construct the imported target name. std::string targetName = cmStrCat(this->Namespace, target->GetExportName()); - os << "list(APPEND _IMPORT_CHECK_TARGETS " << targetName + os << "list(APPEND _cmake_import_check_targets " << targetName << " )\n" - "list(APPEND _IMPORT_CHECK_FILES_FOR_" + "list(APPEND _cmake_import_check_files_for_" << targetName << " "; for (std::string const& li : importedLocations) { diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx index 0c41946..3d667cb 100644 --- a/Source/cmExportInstallFileGenerator.cxx +++ b/Source/cmExportInstallFileGenerator.cxx @@ -254,10 +254,10 @@ void cmExportInstallFileGenerator::LoadConfigFiles(std::ostream& os) /* clang-format off */ os << "# Load information for each installed configuration.\n" << "get_filename_component(_DIR \"${CMAKE_CURRENT_LIST_FILE}\" PATH)\n" - << "file(GLOB CONFIG_FILES \"${_DIR}/" + << "file(GLOB _cmake_config_files \"${_DIR}/" << this->GetConfigImportFileGlob() << "\")\n" - << "foreach(f ${CONFIG_FILES})\n" - << " include(${f})\n" + << "foreach(_cmake_config_file ${_cmake_config_files})\n" + << " include(${_cmake_config_file})\n" << "endforeach()\n" << "\n"; /* clang-format on */ diff --git a/Source/cmInstallExportGenerator.cxx b/Source/cmInstallExportGenerator.cxx index 627f59d..eadfd2e 100644 --- a/Source/cmInstallExportGenerator.cxx +++ b/Source/cmInstallExportGenerator.cxx @@ -195,16 +195,16 @@ void cmInstallExportGenerator::GenerateScriptActions(std::ostream& os, Indent indentNN = indentN.Next(); Indent indentNNN = indentNN.Next(); /* clang-format off */ - os << indentN << "file(DIFFERENT EXPORT_FILE_CHANGED FILES\n" + os << indentN << "file(DIFFERENT _cmake_export_file_changed FILES\n" << indentN << " \"" << installedFile << "\"\n" << indentN << " \"" << this->MainImportFile << "\")\n"; - os << indentN << "if(EXPORT_FILE_CHANGED)\n"; - os << indentNN << "file(GLOB OLD_CONFIG_FILES \"" << installedDir + os << indentN << "if(_cmake_export_file_changed)\n"; + os << indentNN << "file(GLOB _cmake_old_config_files \"" << installedDir << this->EFGen->GetConfigImportFileGlob() << "\")\n"; - os << indentNN << "if(OLD_CONFIG_FILES)\n"; + os << indentNN << "if(_cmake_old_config_files)\n"; os << indentNNN << R"(message(STATUS "Old export file \")" << installedFile - << "\\\" will be replaced. Removing files [${OLD_CONFIG_FILES}].\")\n"; - os << indentNNN << "file(REMOVE ${OLD_CONFIG_FILES})\n"; + << "\\\" will be replaced. Removing files [${_cmake_old_config_files}].\")\n"; + os << indentNNN << "file(REMOVE ${_cmake_old_config_files})\n"; os << indentNN << "endif()\n"; os << indentN << "endif()\n"; os << indent << "endif()\n"; -- cgit v0.12 From d74761b181ccf21e50a3b371617ec8f24cd54a4d Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 20 Apr 2022 14:03:43 -0400 Subject: generated-scripts: simplify `if` conditions --- Source/cmExportFileGenerator.cxx | 15 +++++++-------- Source/cmInstallGenerator.cxx | 4 ++-- Source/cmScriptGenerator.cxx | 6 ++---- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index fb37080..97a6088 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -985,19 +985,18 @@ void cmExportFileGenerator::GenerateExpectedTargetsCode( /* clang-format off */ os << "# Protect against multiple inclusion, which would fail when already " "imported targets are added once more.\n" - "set(_cmake_targets_defined)\n" - "set(_cmake_targets_not_defined)\n" - "set(_cmake_expected_targets)\n" + "set(_cmake_targets_defined \"\")\n" + "set(_cmake_targets_not_defined \"\")\n" + "set(_cmake_expected_targets \"\")\n" "foreach(_cmake_expected_target " << expectedTargets << ")\n" " list(APPEND _cmake_expected_targets ${_cmake_expected_target})\n" - " if(NOT TARGET ${_cmake_expected_target})\n" - " list(APPEND _cmake_targets_not_defined ${_cmake_expected_target})\n" - " endif()\n" " if(TARGET ${_cmake_expected_target})\n" " list(APPEND _cmake_targets_defined ${_cmake_expected_target})\n" + " else()\n" + " list(APPEND _cmake_targets_not_defined ${_cmake_expected_target})\n" " endif()\n" "endforeach()\n" - "if(\"${_cmake_targets_defined}\" STREQUAL \"${_cmake_expected_targets}\")\n" + "if(_cmake_targets_defined STREQUAL _cmake_expected_targets)\n" " unset(_cmake_targets_defined)\n" " unset(_cmake_targets_not_defined)\n" " unset(_cmake_expected_targets)\n" @@ -1005,7 +1004,7 @@ void cmExportFileGenerator::GenerateExpectedTargetsCode( " cmake_policy(POP)\n" " return()\n" "endif()\n" - "if(NOT \"${_cmake_targets_defined}\" STREQUAL \"\")\n" + "if(NOT _cmake_targets_defined STREQUAL \"\")\n" " message(FATAL_ERROR \"Some (but not all) targets in this export " "set were already defined.\\nTargets Defined: ${_cmake_targets_defined}\\n" "Targets not yet defined: ${_cmake_targets_not_defined}\\n\")\n" diff --git a/Source/cmInstallGenerator.cxx b/Source/cmInstallGenerator.cxx index 4cfeb47..00eb8c3 100644 --- a/Source/cmInstallGenerator.cxx +++ b/Source/cmInstallGenerator.cxx @@ -160,9 +160,9 @@ void cmInstallGenerator::AddInstallRule( std::string cmInstallGenerator::CreateComponentTest( const std::string& component, bool exclude_from_all) { - std::string result = R"("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "x)"; + std::string result = "CMAKE_INSTALL_COMPONENT STREQUAL \""; result += component; - result += "x\""; + result += "\""; if (!exclude_from_all) { result += " OR NOT CMAKE_INSTALL_COMPONENT"; } diff --git a/Source/cmScriptGenerator.cxx b/Source/cmScriptGenerator.cxx index 5ac7be9..437b938 100644 --- a/Source/cmScriptGenerator.cxx +++ b/Source/cmScriptGenerator.cxx @@ -52,8 +52,7 @@ static void cmScriptGeneratorEncodeConfig(const std::string& config, std::string cmScriptGenerator::CreateConfigTest(const std::string& config) { - std::string result = - cmStrCat("\"${", this->RuntimeConfigVariable, "}\" MATCHES \"^("); + std::string result = cmStrCat(this->RuntimeConfigVariable, " MATCHES \"^("); if (!config.empty()) { cmScriptGeneratorEncodeConfig(config, result); } @@ -64,8 +63,7 @@ std::string cmScriptGenerator::CreateConfigTest(const std::string& config) std::string cmScriptGenerator::CreateConfigTest( std::vector const& configs) { - std::string result = - cmStrCat("\"${", this->RuntimeConfigVariable, "}\" MATCHES \"^("); + std::string result = cmStrCat(this->RuntimeConfigVariable, " MATCHES \"^("); const char* sep = ""; for (std::string const& config : configs) { result += sep; -- cgit v0.12 From 2ec44be41e1359e6df07edcc86d0934042cd2ef3 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 20 Apr 2022 14:05:07 -0400 Subject: generated-scripts: quote variable expansions --- Source/cmExportFileGenerator.cxx | 8 ++++---- Source/cmExportInstallFileGenerator.cxx | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 97a6088..7aa35d3 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -989,11 +989,11 @@ void cmExportFileGenerator::GenerateExpectedTargetsCode( "set(_cmake_targets_not_defined \"\")\n" "set(_cmake_expected_targets \"\")\n" "foreach(_cmake_expected_target " << expectedTargets << ")\n" - " list(APPEND _cmake_expected_targets ${_cmake_expected_target})\n" - " if(TARGET ${_cmake_expected_target})\n" - " list(APPEND _cmake_targets_defined ${_cmake_expected_target})\n" + " list(APPEND _cmake_expected_targets \"${_cmake_expected_target}\")\n" + " if(TARGET \"${_cmake_expected_target}\")\n" + " list(APPEND _cmake_targets_defined \"${_cmake_expected_target}\")\n" " else()\n" - " list(APPEND _cmake_targets_not_defined ${_cmake_expected_target})\n" + " list(APPEND _cmake_targets_not_defined \"${_cmake_expected_target}\")\n" " endif()\n" "endforeach()\n" "if(_cmake_targets_defined STREQUAL _cmake_expected_targets)\n" diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx index 3d667cb..edee26d 100644 --- a/Source/cmExportInstallFileGenerator.cxx +++ b/Source/cmExportInstallFileGenerator.cxx @@ -257,7 +257,7 @@ void cmExportInstallFileGenerator::LoadConfigFiles(std::ostream& os) << "file(GLOB _cmake_config_files \"${_DIR}/" << this->GetConfigImportFileGlob() << "\")\n" << "foreach(_cmake_config_file ${_cmake_config_files})\n" - << " include(${_cmake_config_file})\n" + << " include(\"${_cmake_config_file}\")\n" << "endforeach()\n" << "\n"; /* clang-format on */ -- cgit v0.12 From 233997a914af8341527eddd83a09fcc0f383ec65 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 20 Apr 2022 14:05:36 -0400 Subject: generated-scripts: use `foreach(IN LISTS)` --- Source/cmExportFileGenerator.cxx | 2 +- Source/cmExportInstallFileGenerator.cxx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 7aa35d3..d13253a 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -988,7 +988,7 @@ void cmExportFileGenerator::GenerateExpectedTargetsCode( "set(_cmake_targets_defined \"\")\n" "set(_cmake_targets_not_defined \"\")\n" "set(_cmake_expected_targets \"\")\n" - "foreach(_cmake_expected_target " << expectedTargets << ")\n" + "foreach(_cmake_expected_target IN ITEMS " << expectedTargets << ")\n" " list(APPEND _cmake_expected_targets \"${_cmake_expected_target}\")\n" " if(TARGET \"${_cmake_expected_target}\")\n" " list(APPEND _cmake_targets_defined \"${_cmake_expected_target}\")\n" diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx index edee26d..7de1230 100644 --- a/Source/cmExportInstallFileGenerator.cxx +++ b/Source/cmExportInstallFileGenerator.cxx @@ -256,7 +256,7 @@ void cmExportInstallFileGenerator::LoadConfigFiles(std::ostream& os) << "get_filename_component(_DIR \"${CMAKE_CURRENT_LIST_FILE}\" PATH)\n" << "file(GLOB _cmake_config_files \"${_DIR}/" << this->GetConfigImportFileGlob() << "\")\n" - << "foreach(_cmake_config_file ${_cmake_config_files})\n" + << "foreach(_cmake_config_file IN LISTS _cmake_config_files)\n" << " include(\"${_cmake_config_file}\")\n" << "endforeach()\n" << "\n"; -- cgit v0.12 From c2194176db8248d63e8e8b77740bf9a1285f3680 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 20 Apr 2022 14:06:52 -0400 Subject: generated-scripts: unset used variables --- Source/cmExportFileGenerator.cxx | 5 ++++- Source/cmExportInstallFileGenerator.cxx | 2 ++ Source/cmInstallExportGenerator.cxx | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index d13253a..3661f07 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -996,11 +996,12 @@ void cmExportFileGenerator::GenerateExpectedTargetsCode( " list(APPEND _cmake_targets_not_defined \"${_cmake_expected_target}\")\n" " endif()\n" "endforeach()\n" + "unset(_cmake_expected_target)\n" "if(_cmake_targets_defined STREQUAL _cmake_expected_targets)\n" " unset(_cmake_targets_defined)\n" " unset(_cmake_targets_not_defined)\n" " unset(_cmake_expected_targets)\n" - " set(CMAKE_IMPORT_FILE_VERSION)\n" + " unset(CMAKE_IMPORT_FILE_VERSION)\n" " cmake_policy(POP)\n" " return()\n" "endif()\n" @@ -1192,8 +1193,10 @@ void cmExportFileGenerator::GenerateImportedFileCheckLoop(std::ostream& os) "\")\n" " endif()\n" " endforeach()\n" + " unset(_cmake_file)\n" " unset(\"_cmake_import_check_files_for_${_cmake_target}\")\n" "endforeach()\n" + "unset(_cmake_target)\n" "unset(_cmake_import_check_targets)\n" "\n"; /* clang-format on */ diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx index 7de1230..06fd453 100644 --- a/Source/cmExportInstallFileGenerator.cxx +++ b/Source/cmExportInstallFileGenerator.cxx @@ -259,6 +259,8 @@ void cmExportInstallFileGenerator::LoadConfigFiles(std::ostream& os) << "foreach(_cmake_config_file IN LISTS _cmake_config_files)\n" << " include(\"${_cmake_config_file}\")\n" << "endforeach()\n" + << "unset(_cmake_config_file)\n" + << "unset(_cmake_config_files)\n" << "\n"; /* clang-format on */ } diff --git a/Source/cmInstallExportGenerator.cxx b/Source/cmInstallExportGenerator.cxx index eadfd2e..18ce601 100644 --- a/Source/cmInstallExportGenerator.cxx +++ b/Source/cmInstallExportGenerator.cxx @@ -206,7 +206,9 @@ void cmInstallExportGenerator::GenerateScriptActions(std::ostream& os, << "\\\" will be replaced. Removing files [${_cmake_old_config_files}].\")\n"; os << indentNNN << "file(REMOVE ${_cmake_old_config_files})\n"; os << indentNN << "endif()\n"; + os << indentNN << "unset(_cmake_old_config_files)\n"; os << indentN << "endif()\n"; + os << indentN << "unset(_cmake_export_file_changed)\n"; os << indent << "endif()\n"; /* clang-format on */ -- cgit v0.12 From a1a7f629184cf068785330c81378106abf240542 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 20 Apr 2022 14:07:05 -0400 Subject: generated-scripts: improve prose messages with CMake lists Instead of printing a CMake list, make it an English-style list. This also allows the line-break algorithm to make these messages much more readable. --- Source/cmExportFileGenerator.cxx | 6 ++++-- Source/cmInstallExportGenerator.cxx | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 3661f07..452eb99 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -1006,9 +1006,11 @@ void cmExportFileGenerator::GenerateExpectedTargetsCode( " return()\n" "endif()\n" "if(NOT _cmake_targets_defined STREQUAL \"\")\n" + " string(REPLACE \";\" \", \" _cmake_targets_defined_text \"${_cmake_targets_defined}\")\n" + " string(REPLACE \";\" \", \" _cmake_targets_not_defined_text \"${_cmake_targets_not_defined}\")\n" " message(FATAL_ERROR \"Some (but not all) targets in this export " - "set were already defined.\\nTargets Defined: ${_cmake_targets_defined}\\n" - "Targets not yet defined: ${_cmake_targets_not_defined}\\n\")\n" + "set were already defined.\\nTargets Defined: ${_cmake_targets_defined_text}\\n" + "Targets not yet defined: ${_cmake_targets_not_defined_text}\\n\")\n" "endif()\n" "unset(_cmake_targets_defined)\n" "unset(_cmake_targets_not_defined)\n" diff --git a/Source/cmInstallExportGenerator.cxx b/Source/cmInstallExportGenerator.cxx index 18ce601..eb7537d 100644 --- a/Source/cmInstallExportGenerator.cxx +++ b/Source/cmInstallExportGenerator.cxx @@ -202,8 +202,10 @@ void cmInstallExportGenerator::GenerateScriptActions(std::ostream& os, os << indentNN << "file(GLOB _cmake_old_config_files \"" << installedDir << this->EFGen->GetConfigImportFileGlob() << "\")\n"; os << indentNN << "if(_cmake_old_config_files)\n"; + os << indentNNN << "string(REPLACE \";\" \", \" _cmake_old_config_files_text \"${_cmake_old_config_files}\")\n"; os << indentNNN << R"(message(STATUS "Old export file \")" << installedFile - << "\\\" will be replaced. Removing files [${_cmake_old_config_files}].\")\n"; + << "\\\" will be replaced. Removing files [${_cmake_old_config_files_text}].\")\n"; + os << indentNNN << "unset(_cmake_old_config_files_text)\n"; os << indentNNN << "file(REMOVE ${_cmake_old_config_files})\n"; os << indentNN << "endif()\n"; os << indentNN << "unset(_cmake_old_config_files)\n"; -- cgit v0.12 From 408512858670c04597b644b03c5db04856b474e8 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 20 Apr 2022 14:08:05 -0400 Subject: generated-scripts: use CMAKE_CURRENT_LIST_DIR where possible --- Source/cmExportInstallFileGenerator.cxx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx index 06fd453..adccdfe 100644 --- a/Source/cmExportInstallFileGenerator.cxx +++ b/Source/cmExportInstallFileGenerator.cxx @@ -253,8 +253,7 @@ void cmExportInstallFileGenerator::LoadConfigFiles(std::ostream& os) // Now load per-configuration properties for them. /* clang-format off */ os << "# Load information for each installed configuration.\n" - << "get_filename_component(_DIR \"${CMAKE_CURRENT_LIST_FILE}\" PATH)\n" - << "file(GLOB _cmake_config_files \"${_DIR}/" + << "file(GLOB _cmake_config_files \"${CMAKE_CURRENT_LIST_DIR}/" << this->GetConfigImportFileGlob() << "\")\n" << "foreach(_cmake_config_file IN LISTS _cmake_config_files)\n" << " include(\"${_cmake_config_file}\")\n" -- cgit v0.12