Skip to content

Commit

Permalink
feat: move kraken bridge symbol links into bridge/build folder
Browse files Browse the repository at this point in the history
  • Loading branch information
andycall committed Mar 17, 2021
1 parent 809f7a2 commit 39ecfab
Show file tree
Hide file tree
Showing 11 changed files with 50 additions and 30 deletions.
1 change: 1 addition & 0 deletions bridge/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
xcschememanagement.plist

cmake-build-*
build
2 changes: 1 addition & 1 deletion kraken/android/jniLibs/arm64-v8a/libkraken_jsc.so
2 changes: 1 addition & 1 deletion kraken/android/jniLibs/armeabi-v7a/libkraken_jsc.so
2 changes: 1 addition & 1 deletion kraken/ios/kraken_bridge.framework
2 changes: 1 addition & 1 deletion kraken/ios/prepare.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
if [ -L "kraken_bridge.framework" ]; then
ROOT=$(pwd)
rm kraken_bridge.framework
ln -s $ROOT/../../sdk/build/ios/framework/kraken_bridge.framework
ln -s $ROOT/../../bridge/build/ios/framework/kraken_bridge.framework
fi
2 changes: 1 addition & 1 deletion kraken/macos/libkraken_jsc.dylib
2 changes: 1 addition & 1 deletion kraken/macos/prepare.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ read_version() {
if [ -L "libkraken_jsc.dylib" ]; then
ROOT=$(pwd)
rm libkraken_jsc.dylib
ln -s $ROOT/../../sdk/build/macos/lib/x86_64/libkraken_jsc.dylib
ln -s $ROOT/../../bridge/build/macos/lib/x86_64/libkraken_jsc.dylib
elif [ ! -e "libkraken_jsc.dylib" ]; then
read_version
curl -O https://kraken.oss-cn-hangzhou.aliyuncs.com/kraken_bridge/$VERSION/libkraken_jsc.dylib
Expand Down
12 changes: 9 additions & 3 deletions scripts/build_android_so.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
require('./tasks');
const { series } = require('gulp');
const { paths } = require('./tasks');
const { series, task } = require('gulp');
const chalk = require('chalk');
const { execSync } = require('child_process');

task('android-so-clean', (done) => {
execSync(`rm -rf ${paths.bridge}/build/android`, { stdio: 'inherit' });
done();
});

// Run tasks
series(
'sdk-clean',
'android-so-clean',
'compile-polyfill',
'build-android-kraken-lib'
)((err) => {
Expand Down
12 changes: 9 additions & 3 deletions scripts/build_darwin_dylib.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,19 @@
/**
* Only build libkraken.dylib for macOS
*/
require('./tasks');
const { series } = require('gulp');
const { paths } = require('./tasks');
const { series, task } = require('gulp');
const chalk = require('chalk');
const { execSync } = require('child_process');

task('macos-dylib-clean', (done) => {
execSync(`rm -rf ${paths.bridge}/build/macos`, { stdio: 'inherit' });
done();
});

// Run tasks
series(
'sdk-clean',
'macos-dylib-clean',
'compile-polyfill',
'build-darwin-kraken-lib',
)((err) => {
Expand Down
12 changes: 9 additions & 3 deletions scripts/build_ios_framework.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,22 @@
* Build script for iOS
*/

require('./tasks');
const { paths } = require('./tasks');
const chalk = require('chalk');
const { program } = require('commander');
const minimist = require('minimist');
const { series, parallel } = require('gulp');
const { series, parallel, task } = require('gulp');
const { execSync } = require('child_process');
const buildMode = process.env.KRAKEN_BUILD || 'Debug';

task('ios-framework-clean', (done) => {
execSync(`rm -rf ${paths.bridge}/build/ios`, { stdio: 'inherit' });
done();
});

// Run tasks
series(
'sdk-clean',
'ios-framework-clean',
'compile-polyfill',
'build-ios-kraken-lib'
)((err) => {
Expand Down
31 changes: 16 additions & 15 deletions scripts/tasks.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ const paths = {
templates: resolveKraken('scripts/templates')
};

exports.paths = paths;

function resolveKraken(submodule) {
return resolve(KRAKEN_ROOT, submodule);
}
Expand Down Expand Up @@ -138,15 +140,15 @@ task('build-darwin-kraken-lib', done => {
env: {
...process.env,
KRAKEN_JS_ENGINE: 'jsc',
LIBRARY_OUTPUT_DIR: path.join(paths.sdk, 'build/macos/lib/x86_64')
LIBRARY_OUTPUT_DIR: path.join(paths.bridge, 'build/macos/lib/x86_64')
}
});

execSync(`cmake --build ${paths.bridge}/cmake-build-macos-x86_64 --target kraken kraken_test -- -j 12`, {
stdio: 'inherit'
});

const binaryPath = path.join(paths.sdk, 'build/macos/lib/x86_64/libkraken_jsc.dylib');
const binaryPath = path.join(paths.bridge, 'build/macos/lib/x86_64/libkraken_jsc.dylib');

if (buildMode == 'Release') {
execSync(`dsymutil ${binaryPath}`, { stdio: 'inherit' });
Expand Down Expand Up @@ -241,7 +243,7 @@ task(`build-ios-kraken-lib`, (done) => {
env: {
...process.env,
KRAKEN_JS_ENGINE: 'jsc',
LIBRARY_OUTPUT_DIR: path.join(paths.sdk, 'build/ios/lib/x86_64')
LIBRARY_OUTPUT_DIR: path.join(paths.bridge, 'build/ios/lib/x86_64')
}
});

Expand All @@ -260,7 +262,7 @@ task(`build-ios-kraken-lib`, (done) => {
env: {
...process.env,
KRAKEN_JS_ENGINE: 'jsc',
LIBRARY_OUTPUT_DIR: path.join(paths.sdk, 'build/ios/lib/arm')
LIBRARY_OUTPUT_DIR: path.join(paths.bridge, 'build/ios/lib/arm')
}
});

Expand All @@ -279,7 +281,7 @@ task(`build-ios-kraken-lib`, (done) => {
env: {
...process.env,
KRAKEN_JS_ENGINE: 'jsc',
LIBRARY_OUTPUT_DIR: path.join(paths.sdk, 'build/ios/lib/arm64')
LIBRARY_OUTPUT_DIR: path.join(paths.bridge, 'build/ios/lib/arm64')
}
});

Expand All @@ -288,11 +290,11 @@ task(`build-ios-kraken-lib`, (done) => {
stdio: 'inherit'
});

const armDynamicSDKPath = path.join(paths.sdk, 'build/ios/lib/arm/kraken_bridge.framework/kraken_bridge');
const arm64DynamicSDKPath = path.join(paths.sdk, 'build/ios/lib/arm64/kraken_bridge.framework/kraken_bridge');
const x64DynamicSDKPath = path.join(paths.sdk, 'build/ios/lib/x86_64/kraken_bridge.framework/kraken_bridge');
const armDynamicSDKPath = path.join(paths.bridge, 'build/ios/lib/arm/kraken_bridge.framework/kraken_bridge');
const arm64DynamicSDKPath = path.join(paths.bridge, 'build/ios/lib/arm64/kraken_bridge.framework/kraken_bridge');
const x64DynamicSDKPath = path.join(paths.bridge, 'build/ios/lib/x86_64/kraken_bridge.framework/kraken_bridge');

const targetDynamicSDKPath = `${paths.sdk}/build/ios/framework`;
const targetDynamicSDKPath = `${paths.bridge}/build/ios/framework`;
const frameworkPath = `${targetDynamicSDKPath}/kraken_bridge.framework`;
const plistPath = path.join(paths.templates, 'kraken_bridge.plist');
mkdirp.sync(frameworkPath);
Expand All @@ -314,12 +316,11 @@ task(`build-ios-kraken-lib`, (done) => {
execSync(`strip -S -X -x ${frameworkPath}/kraken_bridge`, { stdio: 'inherit', cwd: targetDynamicSDKPath });
}

const armStaticSDKPath = path.join(paths.sdk, 'build/ios/lib/arm/libkraken_jsc.a');
const arm64StaticSDKPath = path.join(paths.sdk, 'build/ios/lib/arm64/libkraken_jsc.a');
const x64StaticSDKPath = path.join(paths.sdk, 'build/ios/lib/x86_64/libkraken_jsc.a');

const targetStaticSDKPath = `${paths.sdk}/build/ios/framework`;
const armStaticSDKPath = path.join(paths.bridge, 'build/ios/lib/arm/libkraken_jsc.a');
const arm64StaticSDKPath = path.join(paths.bridge, 'build/ios/lib/arm64/libkraken_jsc.a');
const x64StaticSDKPath = path.join(paths.bridge, 'build/ios/lib/x86_64/libkraken_jsc.a');

const targetStaticSDKPath = `${paths.bridge}/build/ios/framework`;
execSync(`libtool -static -o ${targetStaticSDKPath}/libkraken_jsc.a ${armStaticSDKPath} ${arm64StaticSDKPath} ${x64StaticSDKPath}`);
execSync(`pod ipc spec KrakenSDK.podspec > KrakenSDK.podspec.json`, { cwd: targetDynamicSDKPath });
done();
Expand Down Expand Up @@ -377,7 +378,7 @@ task('build-android-kraken-lib', (done) => {
const buildType = buildMode == 'Release' ? 'Relwithdebinfo' : 'Debug';

archs.forEach(arch => {
const soBinaryDirectory = path.join(paths.sdk, `build/android/lib/${arch}`);
const soBinaryDirectory = path.join(paths.bridge, `build/android/lib/${arch}`);

// generate project
execSync(`cmake -DCMAKE_BUILD_TYPE=${buildType} \
Expand Down

0 comments on commit 39ecfab

Please sign in to comment.