forked from OSchip/llvm-project
[MSVC] Automatically add atlmfc folder to include and libpath.
Differential Revision: https://reviews.llvm.org/D68736 llvm-svn: 374443
This commit is contained in:
parent
02c5386811
commit
79f2432966
|
@ -331,6 +331,11 @@ void visualstudio::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
TC.getSubDirectoryPath(
|
||||
toolchains::MSVCToolChain::SubDirectoryType::Lib)));
|
||||
|
||||
CmdArgs.push_back(Args.MakeArgString(
|
||||
Twine("-libpath:") +
|
||||
TC.getSubDirectoryPath(toolchains::MSVCToolChain::SubDirectoryType::Lib,
|
||||
"atlmfc")));
|
||||
|
||||
if (TC.useUniversalCRT()) {
|
||||
std::string UniversalCRTLibPath;
|
||||
if (TC.getUniversalCRTLibraryPath(UniversalCRTLibPath))
|
||||
|
@ -548,7 +553,7 @@ void visualstudio::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
EnvVar.substr(0, PrefixLen) +
|
||||
TC.getSubDirectoryPath(SubDirectoryType::Bin) +
|
||||
llvm::Twine(llvm::sys::EnvPathSeparator) +
|
||||
TC.getSubDirectoryPath(SubDirectoryType::Bin, HostArch) +
|
||||
TC.getSubDirectoryPath(SubDirectoryType::Bin, "", HostArch) +
|
||||
(EnvVar.size() > PrefixLen
|
||||
? llvm::Twine(llvm::sys::EnvPathSeparator) +
|
||||
EnvVar.substr(PrefixLen)
|
||||
|
@ -824,6 +829,7 @@ static const char *llvmArchToDevDivInternalArch(llvm::Triple::ArchType Arch) {
|
|||
// of hardcoding paths.
|
||||
std::string
|
||||
MSVCToolChain::getSubDirectoryPath(SubDirectoryType Type,
|
||||
llvm::StringRef SubdirParent,
|
||||
llvm::Triple::ArchType TargetArch) const {
|
||||
const char *SubdirName;
|
||||
const char *IncludeName;
|
||||
|
@ -843,6 +849,9 @@ MSVCToolChain::getSubDirectoryPath(SubDirectoryType Type,
|
|||
}
|
||||
|
||||
llvm::SmallString<256> Path(VCToolChainPath);
|
||||
if (!SubdirParent.empty())
|
||||
llvm::sys::path::append(Path, SubdirParent);
|
||||
|
||||
switch (Type) {
|
||||
case SubDirectoryType::Bin:
|
||||
if (VSLayout == ToolsetLayout::VS2017OrNewer) {
|
||||
|
@ -1228,6 +1237,8 @@ void MSVCToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
|
|||
if (!VCToolChainPath.empty()) {
|
||||
addSystemInclude(DriverArgs, CC1Args,
|
||||
getSubDirectoryPath(SubDirectoryType::Include));
|
||||
addSystemInclude(DriverArgs, CC1Args,
|
||||
getSubDirectoryPath(SubDirectoryType::Include, "atlmfc"));
|
||||
|
||||
if (useUniversalCRT()) {
|
||||
std::string UniversalCRTSdkPath;
|
||||
|
|
|
@ -98,12 +98,14 @@ public:
|
|||
Lib,
|
||||
};
|
||||
std::string getSubDirectoryPath(SubDirectoryType Type,
|
||||
llvm::StringRef SubdirParent,
|
||||
llvm::Triple::ArchType TargetArch) const;
|
||||
|
||||
// Convenience overload.
|
||||
// Uses the current target arch.
|
||||
std::string getSubDirectoryPath(SubDirectoryType Type) const {
|
||||
return getSubDirectoryPath(Type, getArch());
|
||||
std::string getSubDirectoryPath(SubDirectoryType Type,
|
||||
llvm::StringRef SubdirParent = "") const {
|
||||
return getSubDirectoryPath(Type, SubdirParent, getArch());
|
||||
}
|
||||
|
||||
enum class ToolsetLayout {
|
||||
|
|
Loading…
Reference in New Issue