forked from LeenkxTeam/LNXSDK
69 lines
1.8 KiB
JavaScript
69 lines
1.8 KiB
JavaScript
|
const fs = require("fs");
|
||
|
|
||
|
const optickPathKey = "AURA_OPTICK_PATH";
|
||
|
|
||
|
// See https://github.com/Kode/Kha/wiki/Hashlink
|
||
|
const targetsHL = ["windows-hl", "linux-hl", "osx-hl", "android-hl", "ios-hl"];
|
||
|
const targetsCPP = ["windows", "linux", "osx"];
|
||
|
const targetsHTML5 = ["html5", "debug-html5"];
|
||
|
|
||
|
function addBackends(project) {
|
||
|
project.localLibraryPath = "Backends";
|
||
|
|
||
|
const isHL = targetsHL.indexOf(Project.platform) >= 0;
|
||
|
|
||
|
if (isHL) {
|
||
|
project.addLibrary("hl");
|
||
|
project.addDefine("AURA_BACKEND_HL");
|
||
|
console.log("[Aura] Using HL/C backend");
|
||
|
}
|
||
|
|
||
|
const isHTML5 = targetsHTML5.indexOf(Project.platform) >= 0;
|
||
|
if (isHTML5) {
|
||
|
// project.addSources("backends/html5");
|
||
|
}
|
||
|
|
||
|
project.localLibraryPath = "Libraries";
|
||
|
}
|
||
|
|
||
|
async function main() {
|
||
|
const project = new Project('aura');
|
||
|
|
||
|
project.addSources('Sources');
|
||
|
|
||
|
if (process.argv.indexOf("--aura-no-backend") == -1) {
|
||
|
addBackends(project);
|
||
|
}
|
||
|
else {
|
||
|
project.addDefine("AURA_NO_BACKEND");
|
||
|
}
|
||
|
|
||
|
const isCPP = targetsCPP.indexOf(Project.platform) >= 0;
|
||
|
if (isCPP && process.argv.indexOf("--aura-no-simd") == -1) {
|
||
|
project.addDefine("AURA_SIMD");
|
||
|
}
|
||
|
|
||
|
const withOptick = optickPathKey in process.env && isCPP;
|
||
|
if (withOptick) {
|
||
|
const optickPath = process.env[optickPathKey];
|
||
|
|
||
|
if (fs.existsSync(optickPath)) {
|
||
|
project.addDefine("AURA_WITH_OPTICK");
|
||
|
|
||
|
await project.addProject(optickPath);
|
||
|
|
||
|
// Unfortunately there is no metadata to include a specified header
|
||
|
// in the cpp file that calls a certain _inlined_ Haxe function, so
|
||
|
// instead we need to add it everywhere for now (bad workaround)...
|
||
|
project.addParameter("--macro addGlobalMetadata('aura', '@:headerCode(\"#include <optick.h>\")')");
|
||
|
}
|
||
|
else {
|
||
|
console.warn(`Aura: Path ${optickPath} does not exist, building without Optick support.`);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
resolve(project);
|
||
|
}
|
||
|
|
||
|
await main();
|