mirror of
https://github.com/UltraCoderRU/libwebrtc.git
synced 2026-01-28 11:15:13 +00:00
Win32: Now working under Jake
This commit is contained in:
parent
edf4abdcf0
commit
f42594d363
7 changed files with 54 additions and 16 deletions
|
|
@ -1,5 +1,13 @@
|
||||||
|
set(ENV_COMMAND export)
|
||||||
|
set(ENV_SEP ":")
|
||||||
set(DEPOTTOOLS_PATH ${CMAKE_SOURCE_DIR}/Dependencies/depot_tools)
|
set(DEPOTTOOLS_PATH ${CMAKE_SOURCE_DIR}/Dependencies/depot_tools)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
set(ENV_COMMAND set)
|
||||||
|
set(ENV_SEP ";")
|
||||||
|
set(DEPOTTOOLS_PATH "${DEPOTTOOLS_PATH};${DEPOTTOOLS_PATH}/python276_bin;")
|
||||||
|
endif(WIN32)
|
||||||
|
|
||||||
macro(add_libwebrtc_command
|
macro(add_libwebrtc_command
|
||||||
ARG_NAME
|
ARG_NAME
|
||||||
ARG_OUTPUT
|
ARG_OUTPUT
|
||||||
|
|
|
||||||
2
Dependencies/depot_tools
vendored
2
Dependencies/depot_tools
vendored
|
|
@ -1 +1 @@
|
||||||
Subproject commit f7b29d4a6dd3fa9777f68423fedcc1a6154014bf
|
Subproject commit d05b9b1575d9ca30230ae612d2f08e0381a0da2b
|
||||||
|
|
@ -47,6 +47,8 @@ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
|
||||||
set(LIBWEBRTC_ARCH "x86")
|
set(LIBWEBRTC_ARCH "x86")
|
||||||
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^x86.64$")
|
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^x86.64$")
|
||||||
set(LIBWEBRTC_ARCH "x64")
|
set(LIBWEBRTC_ARCH "x64")
|
||||||
|
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64")
|
||||||
|
set(LIBWEBRTC_ARCH "x64")
|
||||||
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc")
|
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc")
|
||||||
set(LIBWEBRTC_ARCH "ppc")
|
set(LIBWEBRTC_ARCH "ppc")
|
||||||
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc64")
|
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc64")
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,27 @@
|
||||||
|
|
||||||
var os = require('os');
|
var os = require('os');
|
||||||
var fs = require('fs-extra');
|
var fs = require('fs-extra');
|
||||||
|
var exec = require('child_process').exec;
|
||||||
|
var execSync = require('child_process').execSync;
|
||||||
|
|
||||||
namespace('build', function () {
|
namespace('build', function () {
|
||||||
task('generate', {async: true}, function () {
|
task('generate', {async: true}, function () {
|
||||||
var opts = 'use_gold=false is_debug=false rtc_include_tests=false';
|
var opts = 'use_gold=false is_debug=false rtc_include_tests=false';
|
||||||
|
var pathSep = (os.platform() === 'win32') ? '\\' : '/';
|
||||||
|
var envSep = (os.platform() === 'win32') ? ';' : ':';
|
||||||
|
|
||||||
|
if (os.platform() === 'win32') {
|
||||||
|
process.env.DEPOT_TOOLS_WIN_TOOLCHAIN = 0;
|
||||||
|
process.env.PATH = process.cwd() + '/Dependencies/depot_tools;' + process.env.PATH;
|
||||||
|
process.env.PATH = process.cwd() + '/Dependencies/depot_tools/python276_bin;' + process.env.PATH;
|
||||||
|
} else {
|
||||||
process.env.PATH = process.cwd() + '/Dependencies/depot_tools:' + process.env.PATH;
|
process.env.PATH = process.cwd() + '/Dependencies/depot_tools:' + process.env.PATH;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('Generating WebRTC build files...' + 'gn gen out/Default --args=\'' + opts + '\'');
|
||||||
|
|
||||||
process.chdir('src');
|
process.chdir('src');
|
||||||
jake.exec('gn gen out/Default --args=\'' + opts + '\'', function () {
|
exec('gn gen out/Default --args="' + opts + '"', function (error, stdout, stderr) {
|
||||||
complete();
|
complete();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
@ -18,14 +31,14 @@ namespace('build', function () {
|
||||||
var packages = 'libjingle_peerconnection field_trial_default metrics_default';
|
var packages = 'libjingle_peerconnection field_trial_default metrics_default';
|
||||||
|
|
||||||
console.log('Building WebRTC...');
|
console.log('Building WebRTC...');
|
||||||
jake.exec('ninja -C out/Default ' + packages, { printStdout: true }, function () {
|
jake.exec('ninja -C out/Default ' + packages, { printStdout: true, printStderr: true }, function () {
|
||||||
complete();
|
complete();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
task('merge', ['build:ninja'], {async: true}, function () {
|
task('merge', ['build:ninja'], {async: true}, function () {
|
||||||
var prefix = os.platform() !== 'windows' ? 'lib' : '';
|
var prefix = os.platform() !== 'win32' ? 'lib' : '';
|
||||||
var suffix = os.platform() === 'windows' ? '.lib' : '.a';
|
var suffix = os.platform() === 'win32' ? '.lib' : '.a';
|
||||||
var path = '../lib/' + prefix + 'webrtc' + suffix;
|
var path = '../lib/' + prefix + 'webrtc' + suffix;
|
||||||
|
|
||||||
console.log('Merging libraries...');
|
console.log('Merging libraries...');
|
||||||
|
|
@ -34,7 +47,15 @@ namespace('build', function () {
|
||||||
fs.mkdir('../lib');
|
fs.mkdir('../lib');
|
||||||
}
|
}
|
||||||
|
|
||||||
jake.exec('python webrtc/build/merge_libs.py out/Default ' + path, function () {
|
if (os.platform() === 'win32') {
|
||||||
|
var output = execSync('python chromium/src/build/vs_toolchain.py get_toolchain_dir', { encoding: 'utf-8' });
|
||||||
|
var matches = output.match(/vs_path = \"(.*)\"/);
|
||||||
|
console.log(matches);
|
||||||
|
|
||||||
|
process.env.PATH = matches[1] + '\\VC\\bin' + ';' + process.env.PATH;
|
||||||
|
}
|
||||||
|
|
||||||
|
jake.exec('python webrtc/build/merge_libs.py out/Default ' + path, { printStdout: true, printStderr: true }, function () {
|
||||||
complete();
|
complete();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ function getPackageName() {
|
||||||
var platform = os.platform();
|
var platform = os.platform();
|
||||||
var arch = os.arch();
|
var arch = os.arch();
|
||||||
var nodever = process.version;
|
var nodever = process.version;
|
||||||
var suffix = (platform === 'windows') ? '.zip' : '.tar.gz';
|
var suffix = (platform === 'win32') ? '.zip' : '.tar.gz';
|
||||||
|
|
||||||
return pkg.config.filename
|
return pkg.config.filename
|
||||||
.replace('{VERSION}', version)
|
.replace('{VERSION}', version)
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ namespace('fetch', function () {
|
||||||
var packageName = getPackageName();
|
var packageName = getPackageName();
|
||||||
|
|
||||||
console.log('Extracting', packageName);
|
console.log('Extracting', packageName);
|
||||||
jake.exec('tar xf ' + packageName, function () {
|
jake.exec('tar xf ' + packageName, { printStdout: true, printStderr: true }, function () {
|
||||||
fs.unlinkSync(packageName);
|
fs.unlinkSync(packageName);
|
||||||
complete();
|
complete();
|
||||||
});
|
});
|
||||||
|
|
@ -59,37 +59,44 @@ namespace('fetch', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
task('configure', ['fetch:submodules'], {async: true}, function () {
|
task('configure', ['fetch:submodules'], {async: true}, function () {
|
||||||
|
var pathSep = (os.platform() === 'win32') ? '\\' : '/';
|
||||||
|
var envSep = (os.platform() === 'win32') ? ';' : ':';
|
||||||
|
|
||||||
|
if (os.platform() === 'win32') {
|
||||||
|
process.env.DEPOT_TOOLS_WIN_TOOLCHAIN = 0;
|
||||||
|
}
|
||||||
|
|
||||||
console.log('Configuring gclient to fetch WebRTC code');
|
console.log('Configuring gclient to fetch WebRTC code');
|
||||||
process.env.PATH = process.cwd() + '/Dependencies/depot_tools:' + process.env.PATH;
|
process.env.PATH = process.cwd() + pathSep + 'Dependencies' + pathSep + 'depot_tools' + envSep + process.env.PATH;
|
||||||
jake.exec('gclient config --name src ' + WebRTCUrl, {printStdout: true}, function () {
|
jake.exec('gclient config --name src ' + WebRTCUrl, { printStdout: true, printStderr: true }, function () {
|
||||||
complete();
|
complete();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
task('sync', ['fetch:configure'], {async: true}, function () {
|
task('sync', ['fetch:configure'], {async: true}, function () {
|
||||||
console.log('Retrieving WebRTC source code');
|
console.log('Retrieving WebRTC source code');
|
||||||
jake.exec('gclient sync --revision ' + WebRTCRev + ' -n -D', {printStdout: true}, function () {
|
jake.exec('gclient sync --revision ' + WebRTCRev + ' -n -D', { printStdout: true, printStderr: true }, function () {
|
||||||
complete();
|
complete();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
task('chromium', ['fetch:sync'], {async: true}, function () {
|
task('chromium', ['fetch:sync'], {async: true}, function () {
|
||||||
console.log('Retrieving Chromium dependencies');
|
console.log('Retrieving Chromium dependencies');
|
||||||
jake.exec('git clone ' + ChromiumUrl + ' src/chromium/src', { breakOnError: false, printStdout: true }, function () {
|
jake.exec('git clone ' + ChromiumUrl + ' src/chromium/src', { breakOnError: false, printStdout: true, printStderr: true }, function () {
|
||||||
complete();
|
complete();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
task('clang', ['fetch:chromium'], {async: true}, function () {
|
task('clang', ['fetch:chromium'], {async: true}, function () {
|
||||||
console.log('Updating clang');
|
console.log('Updating clang');
|
||||||
jake.exec('python src/chromium/src/tools/clang/scripts/update.py', {printStdout: true}, function () {
|
jake.exec('python src/chromium/src/tools/clang/scripts/update.py', { printStdout: true, printStderr: true }, function () {
|
||||||
complete();
|
complete();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
task('links', ['fetch:clang'], {async: true}, function () {
|
task('links', ['fetch:clang'], {async: true}, function () {
|
||||||
console.log('Creating symbolic links');
|
console.log('Creating symbolic links');
|
||||||
jake.exec('python src/setup_links.py', {printStdout: true}, function () {
|
jake.exec('python src/setup_links.py', { printStdout: true, printStderr: true }, function () {
|
||||||
complete();
|
complete();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ task('package', {async: true}, function () {
|
||||||
var packageName = getPackageName();
|
var packageName = getPackageName();
|
||||||
|
|
||||||
console.log('Creating ' + packageName + '...');
|
console.log('Creating ' + packageName + '...');
|
||||||
if (os.platform() !== 'windows') {
|
if (os.platform() !== 'win32') {
|
||||||
jake.exec('tar cfz ' + packageName + ' include lib', function () {
|
jake.exec('tar cfz ' + packageName + ' include lib', function () {
|
||||||
complete();
|
complete();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue