#include "../kerep/src/DtsodParser/DtsodV24.h" extern const char* os; extern const char* arch; STRUCT(Language, Autoarr(Pointer)* aliases; Autoarr(Pointer)* file_extensions; ) Autoarr_declare(Language) STRUCT(Tool, Autoarr(Pointer)* aliases; const char* exe_file; bool parallel; Hashtable* supported_languages; Hashtable* src_languages; Autoarr(Pointer)* src_dirs; Autoarr(Pointer)* pre_args; Autoarr(Pointer)* post_args; ) STRUCT(CompilationScenario, Hashtable* tools; /* Hashtable */ Hashtable* languages; /* Hashtable */ Autoarr(Pointer)* tool_order; ) /* Public Functions */ void CompilationScenario_construct(CompilationScenario* ptr); void CompilationScenario_destruct(CompilationScenario* ptr); /// applies all options from project, selected configuration and task ///@return Maybe Maybe CompilationScenario_applyProjectOptions(CompilationScenario* sc, Hashtable* dtsod, const char* configuration, const char* task); /// compiles project using given scenario /// @return Maybe Maybe CompilationScenario_exec(CompilationScenario* sc); /* Internal Functions */ /// tries to set options for tools registered in the project ///@return Maybe Maybe CompilationScenario_tryApplyToolsOptions(CompilationScenario* sc, Hashtable* dtsod); /// tries to get any options from field ///@return Maybe Maybe CompilationScenario_tryApplyConditionalOptions(CompilationScenario* sc, Hashtable* dtsod, const char* condition_name); /// tries to get options from dtsod fields named "windowss", "linux", "android", "x64", "android-arm32", "windows_x86", etc. ///@return Maybe Maybe CompilationScenario_tryApplyPlatformSpecificOptions(CompilationScenario* sc, Hashtable* dtsod); ///@return Maybe Maybe CompilationScenario_applyConfigurationOptions(CompilationScenario* sc, Hashtable* dtsod, const char* configuration); ///@return Maybe Maybe CompilationScenario_applyTaskOptions(CompilationScenario* sc, Hashtable* dtsod, const char* task);