void CompilerLocatorCLANG::AddTools(CompilerPtr compiler, const wxString &installFolder) { compiler->SetInstallationPath( installFolder ); wxFileName toolFile(installFolder, ""); toolFile.AppendDir("bin"); #ifdef __WXMSW__ toolFile.SetExt("exe"); #endif toolFile.SetName("clang++"); AddTool(compiler, "CXX", toolFile.GetFullPath()); AddTool(compiler, "LinkerName", toolFile.GetFullPath()); #ifdef __WXMAC__ AddTool(compiler, "SharedObjectLinkerName", toolFile.GetFullPath(), "-dynamiclib -fPIC"); #else AddTool(compiler, "SharedObjectLinkerName", toolFile.GetFullPath(), "-shared -fPIC"); #endif toolFile.SetName("clang"); AddTool(compiler, "CC", toolFile.GetFullPath()); // Add the archive tool toolFile.SetName("llvm-ar"); if ( toolFile.FileExists() ) { AddTool(compiler, "AR", toolFile.GetFullPath(), "rcu"); } else { toolFile.SetName("ar"); AddTool(compiler, "AR", toolFile.GetFullPath(), "rcu"); } #ifdef __WXMSW__ AddTool(compiler, "ResourceCompiler", "windres.exe"); #else AddTool(compiler, "ResourceCompiler", ""); #endif // Add the assembler tool toolFile.SetName("llvm-as"); if ( toolFile.FileExists() ) { AddTool(compiler, "AS", toolFile.GetFullPath()); } else { toolFile.SetName("as"); AddTool(compiler, "AS", toolFile.GetFullPath()); } wxString makeExtraArgs; if ( wxThread::GetCPUCount() > 1 ) { makeExtraArgs << "-j" << wxThread::GetCPUCount(); } #ifdef __WXMSW__ AddTool(compiler, "MAKE", "mingw32-make.exe", makeExtraArgs); #else AddTool(compiler, "MAKE", "make", makeExtraArgs); #endif }
void CompilerLocatorCrossGCC::AddTools(CompilerPtr compiler, const wxString& binFolder, const wxString& prefix, const wxString& suffix) { compiler->SetName("Cross GCC ( " + prefix + " )"); compiler->SetInstallationPath(binFolder); CL_DEBUG("Found CrossGCC compiler under: %s. \"%s\"", binFolder, compiler->GetName()); wxFileName toolFile(binFolder, ""); toolFile.SetFullName(prefix + "-g++"); toolFile.SetExt(suffix); AddTool(compiler, "CXX", toolFile.GetFullPath(), suffix); AddTool(compiler, "LinkerName", toolFile.GetFullPath()); AddTool(compiler, "SharedObjectLinkerName", toolFile.GetFullPath(), "-shared -fPIC"); toolFile.SetFullName(prefix + "-gcc"); toolFile.SetExt(suffix); AddTool(compiler, "CC", toolFile.GetFullPath()); toolFile.SetFullName(prefix + "-ar"); toolFile.SetExt(suffix); AddTool(compiler, "AR", toolFile.GetFullPath(), "rcu"); toolFile.SetFullName(prefix + "-windres"); toolFile.SetExt(suffix); if(toolFile.FileExists()) AddTool(compiler, "ResourceCompiler", toolFile.GetFullPath()); toolFile.SetFullName(prefix + "-as"); toolFile.SetExt(suffix); AddTool(compiler, "AS", toolFile.GetFullPath()); toolFile.SetFullName(prefix + "-gdb"); toolFile.SetExt(suffix); AddTool(compiler, "Debugger", toolFile.GetFullPath()); toolFile.SetFullName("make"); toolFile.SetExt(suffix); wxString makeExtraArgs; if(wxThread::GetCPUCount() > 1) { makeExtraArgs << "-j" << wxThread::GetCPUCount(); } // XXX Need this on Windows? // makeExtraArgs << " SHELL=cmd.exe "; // What to do if there's no make here? (on Windows) if(toolFile.FileExists()) AddTool(compiler, "MAKE", toolFile.GetFullPath(), makeExtraArgs); }
void CompilerLocatorGCC::AddTools(CompilerPtr compiler, const wxString& binFolder, const wxString& suffix) { wxFileName masterPath(binFolder, ""); wxString defaultBinFolder = "/usr/bin"; compiler->SetCompilerFamily(COMPILER_FAMILY_GCC); compiler->SetInstallationPath( binFolder ); CL_DEBUG("Found GNU GCC compiler under: %s. \"%s\"", masterPath.GetPath(), compiler->GetName()); wxFileName toolFile(binFolder, ""); // ++++----------------------------------------------------------------- // With XCode installation, only // g++, gcc, and make are installed under the Xcode installation folder // the rest (mainly ar and as) are taken from /usr/bin // ++++----------------------------------------------------------------- toolFile.SetFullName("g++"); AddTool(compiler, "CXX", toolFile.GetFullPath(), suffix); AddTool(compiler, "LinkerName", toolFile.GetFullPath(), suffix); #ifndef __WXMAC__ AddTool(compiler, "SharedObjectLinkerName", toolFile.GetFullPath(), suffix, "-shared -fPIC"); #else AddTool(compiler, "SharedObjectLinkerName", toolFile.GetFullPath(), suffix, "-dynamiclib -fPIC"); #endif toolFile.SetFullName("gcc"); AddTool(compiler, "CC", toolFile.GetFullPath(), suffix); toolFile.SetFullName("make"); wxString makeExtraArgs; if ( wxThread::GetCPUCount() > 1 ) { makeExtraArgs << "-j" << wxThread::GetCPUCount(); } AddTool(compiler, "MAKE", toolFile.GetFullPath(), "", makeExtraArgs); // ++++----------------------------------------------------------------- // From this point on, we use /usr/bin only // ++++----------------------------------------------------------------- toolFile.AssignDir( defaultBinFolder ); toolFile.SetFullName("ar"); AddTool(compiler, "AR", toolFile.GetFullPath(), "", "rcu"); toolFile.SetFullName("windres"); AddTool(compiler, "ResourceCompiler", "", ""); toolFile.SetFullName("as"); AddTool(compiler, "AS", toolFile.GetFullPath(), ""); }