| 222 | } |
| 223 | |
| 224 | void cmExportCMakeConfigGenerator::GenerateExpectedTargetsCode( |
| 225 | std::ostream& os, std::string const& expectedTargets) |
| 226 | { |
| 227 | /* clang-format off */ |
| 228 | os << "# Protect against multiple inclusion, which would fail when already " |
| 229 | "imported targets are added once more.\n" |
| 230 | "set(_cmake_targets_defined \"\")\n" |
| 231 | "set(_cmake_targets_not_defined \"\")\n" |
| 232 | "set(_cmake_expected_targets \"\")\n" |
| 233 | "foreach(_cmake_expected_target IN ITEMS " << expectedTargets << ")\n" |
| 234 | " list(APPEND _cmake_expected_targets \"${_cmake_expected_target}\")\n" |
| 235 | " if(TARGET \"${_cmake_expected_target}\")\n" |
| 236 | " list(APPEND _cmake_targets_defined \"${_cmake_expected_target}\")\n" |
| 237 | " else()\n" |
| 238 | " list(APPEND _cmake_targets_not_defined \"${_cmake_expected_target}\")\n" |
| 239 | " endif()\n" |
| 240 | "endforeach()\n" |
| 241 | "unset(_cmake_expected_target)\n" |
| 242 | "if(_cmake_targets_defined STREQUAL _cmake_expected_targets)\n" |
| 243 | " unset(_cmake_targets_defined)\n" |
| 244 | " unset(_cmake_targets_not_defined)\n" |
| 245 | " unset(_cmake_expected_targets)\n" |
| 246 | " unset(CMAKE_IMPORT_FILE_VERSION)\n" |
| 247 | " cmake_policy(POP)\n" |
| 248 | " return()\n" |
| 249 | "endif()\n" |
| 250 | "if(NOT _cmake_targets_defined STREQUAL \"\")\n" |
| 251 | " string(REPLACE \";\" \", \" _cmake_targets_defined_text \"${_cmake_targets_defined}\")\n" |
| 252 | " string(REPLACE \";\" \", \" _cmake_targets_not_defined_text \"${_cmake_targets_not_defined}\")\n" |
| 253 | " message(FATAL_ERROR \"Some (but not all) targets in this export " |
| 254 | "set were already defined.\\nTargets Defined: ${_cmake_targets_defined_text}\\n" |
| 255 | "Targets not yet defined: ${_cmake_targets_not_defined_text}\\n\")\n" |
| 256 | "endif()\n" |
| 257 | "unset(_cmake_targets_defined)\n" |
| 258 | "unset(_cmake_targets_not_defined)\n" |
| 259 | "unset(_cmake_expected_targets)\n" |
| 260 | "\n\n"; |
| 261 | /* clang-format on */ |
| 262 | } |
| 263 | |
| 264 | void cmExportCMakeConfigGenerator::GenerateImportTargetCode( |
| 265 | std::ostream& os, cmGeneratorTarget const* target, |
no outgoing calls
no test coverage detected