mirror of
https://github.com/Xaymar/obs-StreamFX
synced 2024-11-11 06:15:05 +00:00
ci: Remove Node.JS requirement
This commit is contained in:
parent
a627054e2f
commit
a72eba6ded
6 changed files with 23 additions and 245 deletions
36
.github/workflows/main.yml
vendored
36
.github/workflows/main.yml
vendored
|
@ -6,40 +6,24 @@ jobs:
|
|||
windows:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [windows-2016, windows-2019]
|
||||
os: windows-2019
|
||||
include:
|
||||
- os: windows-2016
|
||||
generator_32: "Visual Studio 15 2017"
|
||||
generator_64: "Visual Studio 15 2017"
|
||||
sysversion: "10.0.17763.0"
|
||||
- os: windows-2019
|
||||
generator_32: "Visual Studio 16 2019"
|
||||
generator_64: "Visual Studio 16 2019"
|
||||
sysversion: "10.0.18362.0"
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: "Clone Repository"
|
||||
uses: actions/checkout@v1
|
||||
- name: Install Node.JS 10.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 10
|
||||
- name: Configure & Compile
|
||||
shell: bash
|
||||
env:
|
||||
CMAKE_GENERATOR_32: ${{ matrix.generator_32 }}
|
||||
CMAKE_GENERATOR_64: ${{ matrix.generator_64 }}
|
||||
CMAKE_SYSTEM_VERSION: ${{ matrix.sysversion }}
|
||||
run: node ./ci/builder.js
|
||||
- name: Package
|
||||
shell: bash
|
||||
env:
|
||||
CMAKE_GENERATOR_32: ${{ matrix.generator_32 }}
|
||||
CMAKE_GENERATOR_64: ${{ matrix.generator_64 }}
|
||||
- name: "Configure Project"
|
||||
run: |
|
||||
mkdir build/package
|
||||
ls build/
|
||||
node ./ci/packager.js
|
||||
cmake -H"." -B"build/temp" -G"Visual Studio 16 2019" -A"x64" -T"host=x64" -DCMAKE_SYSTEM_VERSION=10.0 -DCMAKE_PACKAGE_NAME=StreamFX -DCMAKE_INSTALL_PREFIX="build/distrib" -DCMAKE_PACKAGE_PREFIX="build/package" -DOBS_DOWNLOAD=true
|
||||
- name: "Build Project"
|
||||
run: |
|
||||
cmake -H. -B"build/temp" --config RelWithDebInfo
|
||||
- name: "Package Project"
|
||||
run: |
|
||||
cmake -H. -B"build/temp" --config RelWithDebInfo --target PACKAGE_7Z
|
||||
cmake -H. -B"build/temp" --config RelWithDebInfo --target PACKAGE_ZIP
|
||||
- name: "Package Installer (Prereqs)"
|
||||
run: |
|
||||
curl "-kL" "https://cdn.xaymar.com/ci/innosetup-6.0.3.exe" "-f" "--retry" "5" "-o" "inno.exe"
|
||||
|
|
|
@ -1,93 +0,0 @@
|
|||
"use strict";
|
||||
|
||||
const process = require('process');
|
||||
const runner = require('./runner.js');
|
||||
let env = process.env;
|
||||
|
||||
let x32_steps = [];
|
||||
let x64_steps = [];
|
||||
|
||||
if ((process.platform == "win32") || (process.platform == "win64")) {
|
||||
// Windows
|
||||
let extra_conf = [
|
||||
`-DCMAKE_SYSTEM_VERSION=${process.env.CMAKE_SYSTEM_VERSION}`,
|
||||
`-DCMAKE_PACKAGE_NAME=StreamFX`,
|
||||
'-DCMAKE_INSTALL_PREFIX="build/distrib"',
|
||||
'-DCMAKE_PACKAGE_PREFIX="build/package"',
|
||||
'-DOBS_DOWNLOAD=true',
|
||||
];
|
||||
let extra_build = [
|
||||
|
||||
];
|
||||
|
||||
if(process.env.APPVEYOR) {
|
||||
extra_build.concat(['--', '/logger:"C:\\Program Files\\AppVeyor\\BuildAgent\\Appveyor.MSBuildLogger.dll"']);
|
||||
}
|
||||
|
||||
if ((process.env.CMAKE_GENERATOR_32 !== undefined) && (process.env.CMAKE_GENERATOR_32 !== "")) {
|
||||
x32_steps.push(
|
||||
[ 'cmake', [
|
||||
'-H.', '-Bbuild/32',
|
||||
`-G"${process.env.CMAKE_GENERATOR_32}"`, '-AWin32', '-T"host=x64"',
|
||||
].concat(extra_conf), env ]
|
||||
);
|
||||
x32_steps.push(
|
||||
[ 'cmake', [
|
||||
'--build', 'build/32',
|
||||
'--config', 'RelWithDebInfo',
|
||||
'--target', 'INSTALL'
|
||||
].concat(extra_build), env ]
|
||||
);
|
||||
}
|
||||
if ((process.env.CMAKE_GENERATOR_64 !== undefined) && (process.env.CMAKE_GENERATOR_64 !== "")) {
|
||||
x64_steps.push(
|
||||
[ 'cmake', [
|
||||
'-H.', '-Bbuild/64',
|
||||
`-G"${process.env.CMAKE_GENERATOR_64}"`, '-Ax64', '-T"host=x64"',
|
||||
].concat(extra_conf), env ]
|
||||
);
|
||||
x64_steps.push(
|
||||
[ 'cmake', [
|
||||
'--build', 'build/64',
|
||||
'--config', 'RelWithDebInfo',
|
||||
'--target', 'INSTALL'
|
||||
].concat(extra_build), env ]
|
||||
);
|
||||
}
|
||||
} else {
|
||||
// Unix
|
||||
|
||||
}
|
||||
|
||||
function runRunners(runnerArray, name) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
let local = runnerArray.reverse();
|
||||
while (local.length > 0) {
|
||||
try {
|
||||
let task = local.pop();
|
||||
let work = new runner(name, task[0], task[1], task[2]);
|
||||
await work.run();
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
resolve(0);
|
||||
});
|
||||
}
|
||||
|
||||
let promises = [];
|
||||
promises.push(runRunners(x32_steps, "32-Bit"));
|
||||
promises.push(runRunners(x64_steps, "64-Bit"));
|
||||
Promise.all(promises).then(
|
||||
res => {
|
||||
process.exit(0);
|
||||
},
|
||||
err => {
|
||||
console.log(err);
|
||||
process.exit(1);
|
||||
}
|
||||
).catch(err => {
|
||||
console.log(err);
|
||||
process.exit(1);
|
||||
})
|
|
@ -1,69 +0,0 @@
|
|||
"use strict";
|
||||
|
||||
const process = require('process');
|
||||
const runner = require('./runner.js');
|
||||
let env = process.env;
|
||||
|
||||
let steps = [];
|
||||
|
||||
if ((process.env.CMAKE_GENERATOR_64 !== undefined) && (process.env.CMAKE_GENERATOR_64 !== "")) {
|
||||
steps.push(
|
||||
[ 'cmake', [
|
||||
'--build', 'build/64',
|
||||
'--config', 'RelWithDebInfo',
|
||||
'--target', 'PACKAGE_7Z'
|
||||
], env ]
|
||||
);
|
||||
steps.push(
|
||||
[ 'cmake', [
|
||||
'--build', 'build/64',
|
||||
'--config', 'RelWithDebInfo',
|
||||
'--target', 'PACKAGE_ZIP'
|
||||
], env ]
|
||||
);
|
||||
} else if ((process.env.CMAKE_GENERATOR_32 !== undefined) && (process.env.CMAKE_GENERATOR_32 !== "")) {
|
||||
steps.push(
|
||||
[ 'cmake', [
|
||||
'--build', 'build/32',
|
||||
'--config', 'RelWithDebInfo',
|
||||
'--target', 'PACKAGE_7Z'
|
||||
], env ]
|
||||
);
|
||||
steps.push(
|
||||
[ 'cmake', [
|
||||
'--build', 'build/32',
|
||||
'--config', 'RelWithDebInfo',
|
||||
'--target', 'PACKAGE_ZIP'
|
||||
], env ]
|
||||
);
|
||||
}
|
||||
|
||||
function runRunners(runnerArray, name) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
let local = runnerArray.reverse();
|
||||
while (local.length > 0) {
|
||||
try {
|
||||
let task = local.pop();
|
||||
let work = new runner(name, task[0], task[1], task[2]);
|
||||
await work.run();
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
resolve(0);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
let promises = [];
|
||||
promises.push(runRunners(steps, "32-Bit"));
|
||||
Promise.all(promises).then(
|
||||
res => {
|
||||
process.exit(0);
|
||||
},
|
||||
err => {
|
||||
console.log(err);
|
||||
process.exit(1);
|
||||
}
|
||||
)
|
50
ci/runner.js
50
ci/runner.js
|
@ -1,50 +0,0 @@
|
|||
"use strict";
|
||||
|
||||
const process = require('process');
|
||||
const cp = require('child_process');
|
||||
|
||||
class Runner {
|
||||
constructor(name, cmd, args, env) {
|
||||
this.name = name;
|
||||
this.cmd = cmd;
|
||||
if (args == undefined)
|
||||
args = [];
|
||||
this.args = args;
|
||||
if (env == undefined)
|
||||
env = process.env;
|
||||
this.env = env;
|
||||
}
|
||||
|
||||
run() {
|
||||
let self = this;
|
||||
return new Promise(function(resolve, reject) {
|
||||
self.proc = cp.spawn(
|
||||
self.cmd, self.args, {
|
||||
windowsVerbatimArguments: true,
|
||||
windowsHide: true,
|
||||
env: self.env,
|
||||
}
|
||||
);
|
||||
self.proc.stdout.on('data', (data) => {
|
||||
process.stdout.write(`[${self.name}:Out] ${data}`);
|
||||
});
|
||||
self.proc.stderr.on('data', (data) => {
|
||||
process.stderr.write(`[${self.name}:Err] ${data}`);
|
||||
});
|
||||
self.proc.on('exit', (code, signal) => {
|
||||
if (code != 0) {
|
||||
reject(code);
|
||||
return;
|
||||
}
|
||||
resolve(code);
|
||||
return;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
execute() {
|
||||
return this.run();
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Runner;
|
|
@ -63,7 +63,7 @@ enum class keyframe_type { SECONDS, FRAMES };
|
|||
|
||||
std::shared_ptr<ffmpeg_manager> encoder::ffmpeg::ffmpeg_manager::_instance;
|
||||
|
||||
ffmpeg_manager::ffmpeg_manager()
|
||||
ffmpeg_manager::ffmpeg_manager() : _factories(), _handlers(), _debug_handler()
|
||||
{
|
||||
// Handlers
|
||||
_debug_handler = ::std::make_shared<handler::debug_handler>();
|
||||
|
@ -71,6 +71,8 @@ ffmpeg_manager::ffmpeg_manager()
|
|||
register_handler("h264_nvenc", ::std::make_shared<handler::nvenc_h264_handler>());
|
||||
register_handler("hevc_nvenc", ::std::make_shared<handler::nvenc_hevc_handler>());
|
||||
|
||||
// Encoders
|
||||
/*
|
||||
void* iterator = nullptr;
|
||||
const AVCodec* codec = nullptr;
|
||||
for (codec = av_codec_iterate(&iterator); codec != nullptr; codec = av_codec_iterate(&iterator)) {
|
||||
|
@ -85,6 +87,7 @@ ffmpeg_manager::ffmpeg_manager()
|
|||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
ffmpeg_manager::~ffmpeg_manager()
|
||||
|
@ -92,9 +95,12 @@ ffmpeg_manager::~ffmpeg_manager()
|
|||
_factories.clear();
|
||||
}
|
||||
|
||||
void ffmpeg_manager::register_handler(std::string const codec, std::shared_ptr<handler::handler> const handler) {}
|
||||
void ffmpeg_manager::register_handler(std::string codec, std::shared_ptr<handler::handler> handler)
|
||||
{
|
||||
_handlers.try_emplace(codec, handler);
|
||||
}
|
||||
|
||||
std::shared_ptr<handler::handler> const ffmpeg_manager::get_handler(std::string const codec)
|
||||
std::shared_ptr<handler::handler> ffmpeg_manager::get_handler(std::string codec)
|
||||
{
|
||||
auto fnd = _handlers.find(codec);
|
||||
if (fnd != _handlers.end())
|
||||
|
@ -106,7 +112,7 @@ std::shared_ptr<handler::handler> const ffmpeg_manager::get_handler(std::string
|
|||
#endif
|
||||
}
|
||||
|
||||
bool ffmpeg_manager::has_handler(std::string const codec)
|
||||
bool ffmpeg_manager::has_handler(std::string codec)
|
||||
{
|
||||
return (_handlers.find(codec) != _handlers.end());
|
||||
}
|
||||
|
|
|
@ -99,11 +99,11 @@ namespace encoder::ffmpeg {
|
|||
ffmpeg_manager();
|
||||
~ffmpeg_manager();
|
||||
|
||||
void register_handler(std::string const codec, std::shared_ptr<handler::handler> const handler);
|
||||
void register_handler(std::string codec, std::shared_ptr<handler::handler> handler);
|
||||
|
||||
std::shared_ptr<handler::handler> const get_handler(std::string const codec);
|
||||
std::shared_ptr<handler::handler> get_handler(std::string codec);
|
||||
|
||||
bool has_handler(std::string const codec);
|
||||
bool has_handler(std::string codec);
|
||||
};
|
||||
|
||||
struct ffmpeg_info {
|
||||
|
|
Loading…
Reference in a new issue