51 generator->
Init(project);
63 wxChar pathSep = platform::windows ? _T(
'\\') : _T(
'/');
65 for (
size_t i = 0; i < pathArray.
GetCount(); ++i)
69 if (pathArray[i].AfterLast(pathSep).IsSameAs(_T(
"bin")))
79 if (platform::windows)
91 m_MasterPath = ini.
Read(_T(
"/InstallSettings/InstallPath"), _T(
"C:\\MinGW"));
94 #ifdef __WXMSW__ // for wxRegKey 98 key.
SetName(_T(
"HKEY_LOCAL_MACHINE\\Software\\Dev-C++"));
111 key.
SetName(_T(
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"));
112 for (
int i = 0; i < 2; ++i)
115 while (ok && !name.
StartsWith(
wxT(
"Minimalist GNU for Windows")) && name !=
wxT(
"TDM-GCC"))
131 while (binFolder.
GetNext(&name))
144 key.
SetName(
wxT(
"HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall"));
193 settings_path =
_T(
"/sets/") +
GetID() +
_T(
"/master_path");
194 compiler_path =
_T(
"/sets/") +
GetID() +
_T(
"/c_compiler");
198 settings_path =
_T(
"/user_sets/") +
GetID() +
_T(
"/master_path");
199 compiler_path =
_T(
"/user_sets/") +
GetID() +
_T(
"/c_compiler");
201 cmgr->
Read(settings_path, &master_path);
202 cmgr->
Read(compiler_path, &compiler_exe);
210 if (platform::windows)
211 master_path =
_T(
"C:\\MinGW");
213 master_path =
_T(
"/usr");
215 wxString gcc_command = master_path + sep +
_T(
"bin") + sep + compiler_exe;
227 #if wxCHECK_VERSION(3, 0, 0) 234 long result =
wxExecute(gcc_command +
_T(
" --version"), output, errors, flags );
245 if (reg_exp.
Compile(
_T(
"[0-9][.][0-9][.][0-9]")) && reg_exp.
Matches(output[0]))
wxString GetName(bool bShortPrefix=true) const
DLLIMPORT wxArrayString GetArrayFromString(const wxString &text, const wxString &separator=DEFAULT_ARRAY_SEP, bool trimSpaces=true)
bool wxGetEnv(const wxString &var, wxString *value)
bool Read(const wxString &key, wxString *str) const
virtual AutoDetectResult AutoDetectInstallationDir()
Try to auto-detect the compiler's installation directory.
Generate command-lines needed to produce a build.
ConfigManager * GetConfigManager(const wxString &name_space) const
static Manager * Get()
Use Manager::Get() to get a pointer to its instance Manager::Get() is guaranteed to never return an i...
bool GetFirst(wxString *filename, const wxString &filespec=wxEmptyString, int flags=wxDIR_DEFAULT) const
bool wxFileExists(const wxString &filename)
bool GetFirstKey(wxString &strKeyName, long &lIndex)
bool Matches(const wxString &text, int flags=0) const
virtual void Reset()
Reset settings to defaults.
bool QueryValue(const wxString &szValue, wxString &strValue, bool raw) const
CompilerPrograms m_Programs
virtual Compiler * CreateCopy()
Implement this in new compilers, to return a new copy.
CompilerMINGW(const wxString &name=_("GNU GCC Compiler"), const wxString &ID=_T("gcc"))
virtual void Init(cbProject *project)
Initialize for use with the specified project.
wxUSE_UNICODE_dependent wxChar
const wxString & GetID() const
Get this compiler's unique ID.
virtual void SetVersionString()
Set the compiler version string.
Represents a Code::Blocks project.
wxString Left(size_t count) const
size_t Replace(const wxString &strOld, const wxString &strNew, bool replaceAll=true)
wxString GetVolume() const
bool GetMatch(size_t *start, size_t *len, size_t index=0) const
wxString Read(const wxString &key, const wxString &defaultVal=wxEmptyString)
static wxUniChar GetPathSeparator(wxPathFormat format=wxPATH_NATIVE)
wxString wxGetOSDirectory()
MacrosManager * GetMacrosManager() const
wxString & Trim(bool fromRight=true)
void ReplaceMacros(wxString &buffer, ProjectBuildTarget *target=nullptr, bool subrequest=false)
Abstract base class for compilers.
bool GetNext(wxString *filename) const
const wxString & GetParentID() const
Get this compiler's parent's unique ID.
static wxString GetExecutableFolder()
bool GetNextKey(wxString &strKeyName, long &lIndex) const
bool StartsWith(const wxString &prefix, wxString *rest=NULL) const
bool Open(AccessMode mode=Write)
bool Compile(const wxString &pattern, int flags=wxRE_DEFAULT)
virtual CompilerCommandGenerator * GetCommandGenerator(cbProject *project)
This is to be overridden, if compiler needs to alter the default command line generation.
void SetName(const wxString &strKey)
long wxExecute(const wxString &command, int flags=wxEXEC_ASYNC, wxProcess *callback=NULL, const wxExecuteEnv *env=NULL)