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();
 |