mirror of
https://github.com/Xaymar/obs-StreamFX
synced 2024-11-30 23:33:02 +00:00
109 lines
3.1 KiB
JavaScript
109 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);
|
|
});
|