#include "../kerep/src/DtsodParser/DtsodV24.h" extern const char* os; extern const char* arch; typedef struct { const char* language; const char* compiler; const char* obj_dir; const char* out_file; Autoarr(Pointer)* args; Autoarr(Pointer)* sources; } CompilationScenario; /* 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 */ ///@return Maybe Maybe CompilationScenario_tryApplyOptions(CompilationScenario* sc, Hashtable* dtsod); ///@return Maybe Maybe CompilationScenario_tryApplyConditionalOptions(CompilationScenario* sc, Hashtable* dtsod, const char* condition_name); /// tries to get options from dtsod fields named "windows", "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);