diff options
Diffstat (limited to 'Source/cmLinkLibrariesCommand.cxx')
-rw-r--r-- | Source/cmLinkLibrariesCommand.cxx | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Source/cmLinkLibrariesCommand.cxx b/Source/cmLinkLibrariesCommand.cxx new file mode 100644 index 0000000..13f6bae --- /dev/null +++ b/Source/cmLinkLibrariesCommand.cxx @@ -0,0 +1,41 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "cmLinkLibrariesCommand.h" + +#include "cmMakefile.h" + +class cmExecutionStatus; + +// cmLinkLibrariesCommand +bool cmLinkLibrariesCommand::InitialPass(std::vector<std::string> const& args, + cmExecutionStatus&) +{ + if (args.empty()) { + return true; + } + // add libraries, note that there is an optional prefix + // of debug and optimized than can be used + for (std::vector<std::string>::const_iterator i = args.begin(); + i != args.end(); ++i) { + if (*i == "debug") { + ++i; + if (i == args.end()) { + this->SetError("The \"debug\" argument must be followed by " + "a library"); + return false; + } + this->Makefile->AppendProperty("LINK_LIBRARIES", "debug"); + } else if (*i == "optimized") { + ++i; + if (i == args.end()) { + this->SetError("The \"optimized\" argument must be followed by " + "a library"); + return false; + } + this->Makefile->AppendProperty("LINK_LIBRARIES", "optimized"); + } + this->Makefile->AppendProperty("LINK_LIBRARIES", i->c_str()); + } + + return true; +} |