
CMake has several classes which have too many responsibilities. cmLocalGenerator is one of them. Start to extract the link line computation. Create generator-specific implementations of the interface to account for generator-specific behavior. Unfortunately MSVC60 has different behavior to everything else and CMake still generates makefiles for it. Isolate it with MSVC60-specific names.
28 lines
712 B
C++
28 lines
712 B
C++
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
file Copyright.txt or https://cmake.org/licensing for details. */
|
|
|
|
#include "cmLinkLineComputer.h"
|
|
#include "cmOutputConverter.h"
|
|
|
|
cmLinkLineComputer::cmLinkLineComputer(cmState::Directory stateDir)
|
|
: StateDir(stateDir)
|
|
{
|
|
}
|
|
|
|
cmLinkLineComputer::~cmLinkLineComputer()
|
|
{
|
|
}
|
|
|
|
std::string cmLinkLineComputer::ConvertToLinkReference(
|
|
std::string const& lib) const
|
|
{
|
|
std::string relLib = lib;
|
|
|
|
if (cmOutputConverter::ContainedInDirectory(
|
|
this->StateDir.GetCurrentBinary(), lib, this->StateDir)) {
|
|
relLib = cmOutputConverter::ForceToRelativePath(
|
|
this->StateDir.GetCurrentBinary(), lib);
|
|
}
|
|
return relLib;
|
|
}
|