diff options
author | Brad King <brad.king@kitware.com> | 2008-02-20 18:36:38 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2008-02-20 18:36:38 (GMT) |
commit | 5e72a0d4e4e5ddd6817b294942af41dbb76b1e01 (patch) | |
tree | a3645d12ff2003d3128e5e9591e8624f2afa4322 | |
parent | cfd65e29da5406e5ef4b5734cfaa2a0a0c82de35 (diff) | |
download | CMake-5e72a0d4e4e5ddd6817b294942af41dbb76b1e01.zip CMake-5e72a0d4e4e5ddd6817b294942af41dbb76b1e01.tar.gz CMake-5e72a0d4e4e5ddd6817b294942af41dbb76b1e01.tar.bz2 |
ENH: Deprecate export_library_dependencies
- Reference export() and install(EXPORT)
- Fix to support OUTPUT_NAME in simple cases
-rw-r--r-- | Source/cmExportLibraryDependencies.cxx | 19 | ||||
-rw-r--r-- | Source/cmExportLibraryDependencies.h | 17 |
2 files changed, 30 insertions, 6 deletions
diff --git a/Source/cmExportLibraryDependencies.cxx b/Source/cmExportLibraryDependencies.cxx index ac9df30..cd36e06 100644 --- a/Source/cmExportLibraryDependencies.cxx +++ b/Source/cmExportLibraryDependencies.cxx @@ -80,8 +80,8 @@ void cmExportLibraryDependenciesCommand::ConstFinalPass() const // Collect dependency information about all library targets built in // the project. - const cmake* cm = this->Makefile->GetCMakeInstance(); - const cmGlobalGenerator* global = cm->GetGlobalGenerator(); + cmake* cm = this->Makefile->GetCMakeInstance(); + cmGlobalGenerator* global = cm->GetGlobalGenerator(); const std::vector<cmLocalGenerator *>& locals = global->GetLocalGenerators(); std::map<cmStdString, cmStdString> libDepsOld; std::map<cmStdString, cmStdString> libDepsNew; @@ -137,9 +137,20 @@ void cmExportLibraryDependenciesCommand::ConstFinalPass() const ltValue = "optimized"; break; } - valueOld += li->first; + std::string lib = li->first; + if(cmTarget* libtgt = global->FindTarget(0, lib.c_str())) + { + // Handle simple output name changes. This command is + // deprecated so we do not support full target name + // translation (which requires per-configuration info). + if(const char* outname = libtgt->GetProperty("OUTPUT_NAME")) + { + lib = outname; + } + } + valueOld += lib; valueOld += ";"; - valueNew += li->first; + valueNew += lib; valueNew += ";"; std::string& ltEntry = libTypes[ltVar]; diff --git a/Source/cmExportLibraryDependencies.h b/Source/cmExportLibraryDependencies.h index 6fa92d0..b5997cc 100644 --- a/Source/cmExportLibraryDependencies.h +++ b/Source/cmExportLibraryDependencies.h @@ -59,8 +59,7 @@ public: */ virtual const char* GetTerseDocumentation() { - return - "Write out the dependency information for all targets of a project."; + return "Deprecated. Use INSTALL(EXPORT) or EXPORT command."; } /** @@ -69,6 +68,14 @@ public: virtual const char* GetFullDocumentation() { return + "This command generates an old-style library dependencies file. " + "Projects requiring CMake 2.6 or later should not use the command. " + "Use instead the install(EXPORT) command to help export targets " + "from an installation tree and the export() command to export targets " + "from a build tree.\n" + "The old-style library dependencies file does not take into account " + "per-configuration names of libraries or the LINK_INTERFACE_LIBRARIES " + "target property.\n" " export_library_dependencies(<file> [APPEND])\n" "Create a file named <file> that can be included into a CMake listfile " "with the INCLUDE command. The file will contain a number of SET " @@ -78,6 +85,12 @@ public: "specified, the SET commands will be appended to the given file " "instead of replacing it."; } + + /** This command is kept for compatibility with older CMake versions. */ + virtual bool IsDiscouraged() + { + return true; + } cmTypeMacro(cmExportLibraryDependenciesCommand, cmCommand); |