void GD_API CodeCompilationHelpers::CreateExternalSourceFileCompilationTask(gd::Project & game, SourceFile & file, gd::Layout * scene) { CodeCompilerTask task; wxFileName inputFile(file.GetFileName()); inputFile.MakeAbsolute(wxFileName::FileName(game.GetProjectFile()).GetPath()); task.compilerCall.inputFile = ToString(inputFile.GetFullPath()); task.compilerCall.outputFile = string(CodeCompiler::Get()->GetOutputDirectory()+"GD"+ToString(&file)+"ObjectFile.o"); task.compilerCall.compilationForRuntime = false; task.compilerCall.optimize = false; task.compilerCall.eventsGeneratedCode = false; task.compilerCall.extraHeaderDirectories.push_back(ToString(wxFileName::FileName(game.GetProjectFile()).GetPath())); task.scene = scene; if ( scene ) task.postWork = std::shared_ptr<CodeCompilerExtraWork>(new SourceFileCodeCompilerPostWork(scene)); task.userFriendlyName = "Compilation of file "+file.GetFileName(); CodeCompiler::Get()->AddTask(task); }