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