110 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
"use strict";
 | 
						|
 | 
						|
const process = require('process');
 | 
						|
const runner = require('./runner.js');
 | 
						|
 | 
						|
// Steps
 | 
						|
let configure_runners = [];
 | 
						|
let build_runners = [];
 | 
						|
let package_runners = [];
 | 
						|
 | 
						|
{
 | 
						|
	let cmake_configure_extra = [
 | 
						|
		`-DCMAKE_SYSTEM_VERSION=${process.env.CMAKE_SYSTEM_VERSION}`,
 | 
						|
		'-DCMAKE_INSTALL_PREFIX="build/distrib/"',
 | 
						|
		'-DCMAKE_PACKAGE_PREFIX="build/"',
 | 
						|
		`-DCMAKE_PACKAGE_NAME="${process.env.PACKAGE_PREFIX}"`,
 | 
						|
	];
 | 
						|
	let cmake_build_extra = [
 | 
						|
	];
 | 
						|
 | 
						|
	// Configuration depends on platform
 | 
						|
	if (process.platform == "win32" || process.platform == "win64") {
 | 
						|
		configure_runners.push(new runner('32-bit', 'cmake', [
 | 
						|
				'-H.',
 | 
						|
				'-Bbuild/32',
 | 
						|
				`-G"Visual Studio 15 2017"`,
 | 
						|
			].concat(cmake_configure_extra)));
 | 
						|
		configure_runners.push(new runner('64-bit', 'cmake', [
 | 
						|
				'-H.',
 | 
						|
				'-Bbuild/64',
 | 
						|
				`-G"Visual Studio 15 2017 Win64"`,
 | 
						|
				'-T"host=x64"',
 | 
						|
			].concat(cmake_configure_extra)));
 | 
						|
		
 | 
						|
		// Extra build steps for AppVeyor on Windows for Logging purposes.
 | 
						|
		if(process.env.APPVEYOR) {
 | 
						|
			cmake_build_extra.concat(['--', '/logger:"C:\\Program Files\\AppVeyor\\BuildAgent\\Appveyor.MSBuildLogger.dll"']);
 | 
						|
		}
 | 
						|
	} else if (process.platform == "linux") {
 | 
						|
		configure_runners.push(new runner('32-bit', 'cmake', [
 | 
						|
				'-H.',
 | 
						|
				'-Bbuild32',
 | 
						|
				`-G"Unix Makefiles"`,
 | 
						|
				`-DCOPIED_DEPENDENCIES=false`,
 | 
						|
			].concat(cmake_configure_extra),
 | 
						|
			{ ...process.env, ...{
 | 
						|
				CFLAGS: `${process.env.COMPILER_FLAGS_32}`,
 | 
						|
				CXXFLAGS: `${process.env.COMPILER_FLAGS_32}`,
 | 
						|
			}}));
 | 
						|
		configure_runners.push(new runner('64-bit', 'cmake', [
 | 
						|
				'-H.',
 | 
						|
				'-Bbuild64',
 | 
						|
				`-G"Unix Makefiles"`,
 | 
						|
				`-DCOPIED_DEPENDENCIES=false`,
 | 
						|
			].concat(cmake_configure_extra),
 | 
						|
			{ ...process.env, ...{
 | 
						|
				CFLAGS: `${process.env.COMPILER_FLAGS_64}`,
 | 
						|
				CXXFLAGS: `${process.env.COMPILER_FLAGS_64}`,
 | 
						|
			}}));
 | 
						|
	}
 | 
						|
	
 | 
						|
	build_runners.push(new runner('32-bit', 'cmake', [
 | 
						|
		'--build', 'build/32', 
 | 
						|
		'--config', 'RelWithDebInfo',
 | 
						|
		'--target', 'INSTALL'
 | 
						|
	].concat(cmake_build_extra)));
 | 
						|
	build_runners.push(new runner('64-bit', 'cmake', [
 | 
						|
		'--build', 'build/64', 
 | 
						|
		'--config', 'RelWithDebInfo',
 | 
						|
		'--target', 'INSTALL'
 | 
						|
	].concat(cmake_build_extra)));
 | 
						|
	package_runners.push(new runner('32-bit', 'cmake', [
 | 
						|
		'--build', 'build/32',
 | 
						|
		'--target', 'PACKAGE_7Z',
 | 
						|
		'--config', 'RelWithDebInfo'
 | 
						|
	].concat(cmake_build_extra)));
 | 
						|
	package_runners.push(new runner('64-bit', 'cmake', [
 | 
						|
		'--build', 'build/64',
 | 
						|
		'--target', 'PACKAGE_ZIP',
 | 
						|
		'--config', 'RelWithDebInfo'
 | 
						|
	].concat(cmake_build_extra)));
 | 
						|
}
 | 
						|
 | 
						|
// Run Configure steps.
 | 
						|
let configure_promises = [];
 | 
						|
for (let config of configure_runners) {
 | 
						|
	configure_promises.push(config.run());
 | 
						|
}
 | 
						|
Promise.all(configure_promises).then(function(result) {    
 | 
						|
	let build_promises = [];
 | 
						|
	for (let build of build_runners) {
 | 
						|
		build_promises.push(build.run());
 | 
						|
	}
 | 
						|
	Promise.all(build_promises).then(function(result) {    
 | 
						|
		let package_promises = [];
 | 
						|
		for (let pack of package_runners) {
 | 
						|
			package_promises.push(pack.run());
 | 
						|
		}
 | 
						|
		Promise.all(package_promises).then(function(result) {    
 | 
						|
			process.exit(result);
 | 
						|
		}).catch(function(result) {
 | 
						|
			process.exit(result);
 | 
						|
		});
 | 
						|
	}).catch(function(result) {
 | 
						|
		process.exit(result);
 | 
						|
	});
 | 
						|
}).catch(function(result) {
 | 
						|
	process.exit(result);
 | 
						|
});
 |