mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
cmLinkLineComputer: Extract from cmLocalGenerator
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.
This commit is contained in:
27
Source/cmLinkLineComputer.cxx
Normal file
27
Source/cmLinkLineComputer.cxx
Normal file
@@ -0,0 +1,27 @@
|
||||
/* 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;
|
||||
}
|
||||
Reference in New Issue
Block a user