define pathListSep = ":";
#endif
+#if defined(_DEBUG) && defined(__WIN32__)
+extern int getch(void);
+#endif
+
void ParseDirList(char * string, Container<String> list)
{
int c;
- byte * tokens[256];
+ char * tokens[256];
int numTokens = TokenizeWith(string, sizeof(tokens) / sizeof(byte *), tokens, ";", false);
list.Free();
for(c = 0; c < numTokens; c++)
int argc = 0;
*/
- Platform targetPlatform = GetRuntimePlatform();
-
Project project = null;
CompilerConfig optionsCompiler { };
bool noGlobalSettings = false;
bool noResources = false;
bool noWarnings = false;
- char * overrideObjDir = null;
- char * includemkPath = null;
+ const char * overrideObjDir = null;
+ const char * includemkPath = null;
/*
for(c = 0; c < this.argc; c++)
for(c = 1; c < argc; c++)
{
- char * arg = argv[c];
+ const char * arg = argv[c];
if(arg[0] == '-')
{
if(!strcmpi(arg+1, "make"))
}
else if(arg[1] == 't' && !arg[2])
{
- if(++c < argc)
- targetPlatform = argv[c];
+ // Obsolete target platform option
+ if(++c < argc);
else
valid = false;
}
else if(arg[1] == 'i')
{
if(++c < argc)
- ParseDirList(argv[c], optionsCompiler.includeDirs);
+ ParseDirList((char *)argv[c], optionsCompiler.includeDirs);
else
valid = false;
}
else if(arg[1] == 'l')
{
if(++c < argc)
- ParseDirList(argv[c], optionsCompiler.libraryDirs);
+ ParseDirList((char *)argv[c], optionsCompiler.libraryDirs);
else
valid = false;
}
else
{
valid = false;
- printf("invalid option: %s\n", arg);
+ printf($"invalid option: %s\n", arg);
}
}
else
}
if(!epjPath)
valid = false;
-
+
if(!valid)
{
- printf("Syntax:\n");
- printf(" epj2make [-t <target platform>] [-c <configuration>] [toolchain] [directories] [options] [-o <output>] <input>\n");
- printf(" toolchain:\n");
- printf(" [-make <make tool>]\n");
- printf(" [-cpp <c preprocessor>]\n");
- printf(" [-cc <c compiler>]\n");
- printf(" [-ecp <eC preprocessor>]\n");
- printf(" [-ecc <eC compiler>]\n");
- printf(" [-ecs <eC symbol generator>]\n");
- printf(" [-ear <Ecere Archiver>]\n");
- printf(" directories:\n");
- printf(" [-i <include dir[;inc dir[...]]>]\n");
- printf(" [-l <library dir[;lib dir[...]]>]\n");
- printf(" options:\n");
- printf(" [-noglobalsettings]\n");
- printf(" [-noresources]\n");
- printf(" [-d <intermediate objects directory>]\n");
- printf(" [-includemk <include.mk path>]\n");
+ printf("%s", $"Syntax:\n");
+ printf("%s", $" epj2make [-t <target platform>] [-c <configuration>] [toolchain] [directories] [options] [-o <output>] <input>\n");
+ printf("%s", $" toolchain:\n");
+ printf("%s", $" [-make <make tool>]\n");
+ printf("%s", $" [-cpp <c preprocessor>]\n");
+ printf("%s", $" [-cc <c compiler>]\n");
+ printf("%s", $" [-ecp <eC preprocessor>]\n");
+ printf("%s", $" [-ecc <eC compiler>]\n");
+ printf("%s", $" [-ecs <eC symbol generator>]\n");
+ printf("%s", $" [-ear <Ecere Archiver>]\n");
+ printf("%s", $" directories:\n");
+ printf("%s", $" [-i <include dir[;inc dir[...]]>]\n");
+ printf("%s", $" [-l <library dir[;lib dir[...]]>]\n");
+ printf("%s", $" options:\n");
+ printf("%s", $" [-noglobalsettings]\n");
+ printf("%s", $" [-noresources]\n");
+ printf("%s", $" [-d <intermediate objects directory>]\n");
+ printf("%s", $" [-includemk <crossplatform.mk path>]\n");
}
else
{
}
else
{
+ const char * compiler = getenv("COMPILER");
+ if(!compiler) compiler = "Default";
settingsContainer.Load();
//incref ideSettings;
delete settingsContainer;
// TODO: Command line option to choose between the two
- // or a command line option to not use global settings
+ // or a command line option to not use global settings
//defaultCompiler = MakeDefaultCompiler();
- defaultCompiler = ideSettings.GetCompilerConfig("Default");
+ defaultCompiler = ideConfig.compilers.GetCompilerConfig(compiler);
// possible TODO: use the workspace to select the active compiler
// TODO: option to specify compiler name when using global settings
}
defaultCompiler.libraryDirs.Add(dir);
delete optionsCompiler;
- project = LoadProject(epjPath);
+ project = LoadProject(epjPath, null);
if(project)
{
ProjectConfig defaultConfig = null;
}
}
if(!valid)
- printf("Error: Project configuration (%s) was not found.\n", configName);
+ printf($"Error: Project configuration (%s) was not found.\n", configName);
}
else
{
if(!releaseConfig && project.configurations.count)
{
releaseConfig = project.configurations[0];
- printf("Notice: Project configuration (%s) will be used.\n", releaseConfig.name);
+ printf($"Notice: Project configuration (%s) will be used.\n", releaseConfig.name);
}
if(releaseConfig)
}
if(valid)
{
- if(project.GenerateMakefile(makePath, noResources, includemkPath))
+ project.GenerateCompilerCf(defaultCompiler, project.topNode.ContainsFilesWithExtension("ec", project.config));
+ project.GenerateCrossPlatformMk(null);
+ if(project.GenerateMakefile(makePath, noResources, includemkPath, project.config))
{
if(makePath)
printf("%s\n", makePath);
delete project;
}
else
- printf("Error: Unable to open project file (%s) due to unknown error.\n", epjPath);
+ printf($"Error: Unable to open project file (%s) due to unknown error.\n", epjPath);
}
}
else
- printf("Error: Input file (%s) does not exist.\n", epjPath);
+ printf($"Error: Input file (%s) does not exist.\n", epjPath);
}
//if(optionsCompiler) // how to fix those leaks?
// CheckMemory();
delete ideSettings;
-#ifdef _DEBUG
+#if defined(_DEBUG) && defined(__WIN32__)
getch();
#endif
}