diff options
-rw-r--r-- | clang/lib/Driver/WindowsToolChain.cpp | 79 |
1 files changed, 37 insertions, 42 deletions
diff --git a/clang/lib/Driver/WindowsToolChain.cpp b/clang/lib/Driver/WindowsToolChain.cpp index 65887a7f418..3cbb5c83df9 100644 --- a/clang/lib/Driver/WindowsToolChain.cpp +++ b/clang/lib/Driver/WindowsToolChain.cpp @@ -33,6 +33,42 @@ using namespace clang::driver::toolchains; using namespace clang; using namespace llvm::opt; +Windows::Windows(const Driver &D, const llvm::Triple& Triple, + const ArgList &Args) + : ToolChain(D, Triple, Args) { +} + +Tool *Windows::buildLinker() const { + return new tools::visualstudio::Link(*this); +} + +Tool *Windows::buildAssembler() const { + if (getTriple().getEnvironment() == llvm::Triple::MachO) + return new tools::darwin::Assemble(*this); + getDriver().Diag(clang::diag::err_no_external_windows_assembler); + return NULL; +} + +bool Windows::IsIntegratedAssemblerDefault() const { + return true; +} + +bool Windows::IsUnwindTablesDefault() const { + return getArch() == llvm::Triple::x86_64; +} + +bool Windows::isPICDefault() const { + return getArch() == llvm::Triple::x86_64; +} + +bool Windows::isPIEDefault() const { + return false; +} + +bool Windows::isPICDefaultForced() const { + return getArch() == llvm::Triple::x86_64; +} + // FIXME: This probably should goto to some platform utils place. #ifdef _MSC_VER @@ -164,7 +200,7 @@ static bool getWindowsSDKDir(std::string &path) { return false; } -// Get Visual Studio installation directory. + // Get Visual Studio installation directory. static bool getVisualStudioDir(std::string &path) { // First check the environment variables that vsvars32.bat sets. const char* vcinstalldir = getenv("VCINSTALLDIR"); @@ -241,47 +277,6 @@ static bool getVisualStudioDir(std::string &path) { #endif // _MSC_VER -Windows::Windows(const Driver &D, const llvm::Triple& Triple, - const ArgList &Args) - : ToolChain(D, Triple, Args) { -#ifdef _MSC_VER - std::string VSDir; - if (getVisualStudioDir(VSDir)) - getProgramPaths().push_back(VSDir + "\\VC\\bin"); -#endif -} - -Tool *Windows::buildLinker() const { - return new tools::visualstudio::Link(*this); -} - -Tool *Windows::buildAssembler() const { - if (getTriple().getEnvironment() == llvm::Triple::MachO) - return new tools::darwin::Assemble(*this); - getDriver().Diag(clang::diag::err_no_external_windows_assembler); - return NULL; -} - -bool Windows::IsIntegratedAssemblerDefault() const { - return true; -} - -bool Windows::IsUnwindTablesDefault() const { - return getArch() == llvm::Triple::x86_64; -} - -bool Windows::isPICDefault() const { - return getArch() == llvm::Triple::x86_64; -} - -bool Windows::isPIEDefault() const { - return false; -} - -bool Windows::isPICDefaultForced() const { - return getArch() == llvm::Triple::x86_64; -} - void Windows::AddClangSystemIncludeArgs(const ArgList &DriverArgs, ArgStringList &CC1Args) const { if (DriverArgs.hasArg(options::OPT_nostdinc)) |