Skip to content

Commit 4c7ec8d

Browse files
committed
.
1 parent da42605 commit 4c7ec8d

8 files changed

Lines changed: 42 additions & 10 deletions

File tree

cppjs-core/cpp.js/src/actions/createLib.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export default function createLib(target, fileType, options = {}) {
4545
const ldFlags = Object.values(depPaths).filter(d => d.libPath).map((d) => `-L${d.libPath}`);
4646
let dependLibs = '';
4747
if (state.config.build?.buildType === 'configure') {
48-
dependLibs = Object.keys(depPaths).filter(d => d).map((d) => `-l${d}`).join(' ');
48+
dependLibs = Object.keys(depPaths).filter(d => d && d !== 'cmake').map((d) => `-l${d}`).join(' ');
4949
}
5050

5151
const extraLibs = getExtraLibs ? getExtraLibs(target) : [];
@@ -69,7 +69,7 @@ export default function createLib(target, fileType, options = {}) {
6969
buildEnv.params.push('-e', `CFLAGS=${cFlags.join(' ')}`);
7070
buildEnv.params.push('-e', `CXXFLAGS=${cFlags.join(' ')}`);
7171
buildEnv.params.push('-e', `LDFLAGS=${ldFlags.join(' ')} ${extraLibs.join(' ')}`);
72-
// buildEnv.params.push('-e', `LIBS=${dependLibs} ${extraLibs.join(' ')}`);
72+
buildEnv.params.push('-e', `LIBS=${dependLibs} ${extraLibs.join(' ')}`);
7373

7474
let configBuildEnv = state.config.build.env;
7575
if (configBuildEnv && typeof configBuildEnv === 'function') {

cppjs-core/cpp.js/src/bin.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ program.parse(process.argv);
6060
switch (program.args[0]) {
6161
case 'build': {
6262
const targetParams = commandBuild.opts();
63+
if (targetParams.platform === 'wasm' && targetParams.arch === 'all') {
64+
targetParams.arch = 'wasm32';
65+
}
6366
if (state.config.build.withBuildConfig) {
6467
buildExternal(targetParams);
6568
} else {
@@ -253,7 +256,7 @@ async function buildExternal(targetParams) {
253256
buildLib(targetParams);
254257

255258
if (copyToDist) {
256-
const targetPath = `${state.config.paths.output}/prebuilt/${targetParams.platform}-${targetParams.arch}-${targetParams.runtime}-${targetParams.buildType}`;
259+
const targets = getBuildTargets(targetParams);
257260
Object.entries(copyToDist).forEach(([key, value]) => {
258261
const values = [];
259262
if (Array.isArray(value)) {
@@ -262,10 +265,12 @@ async function buildExternal(targetParams) {
262265
values.push(value);
263266
}
264267
values.forEach(v => {
265-
const assetPath = `${targetPath}/${v}`;
266-
if (!fs.existsSync(assetPath)) {
267-
fs.copyFileSync(`${state.config.paths.project}/${key}`, assetPath);
268-
}
268+
targets.forEach(target => {
269+
const assetPath = `${state.config.paths.output}/prebuilt/${target.path}/${v}`;
270+
if (!fs.existsSync(assetPath)) {
271+
fs.copyFileSync(`${state.config.paths.project}/${key}`, assetPath);
272+
}
273+
});
269274
});
270275
});
271276
}

cppjs-packages/cppjs-package-gdal/cppjs-package-gdal-wasm/cppjs.build.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,16 @@ export default {
3131
replacement: 'add_library(${GDAL_LIB_TARGET_NAME} gcore/gdal.h gcore/gdal_empty_file.cpp)',
3232
paths: ['gdal.cmake'],
3333
},
34+
{
35+
regex: 'CPL_CPUID\\(1, cpuinfo\\);',
36+
replacement: '#ifdef __wasm__\n cpuinfo[0]=0;cpuinfo[1]=0;cpuinfo[2]=0;cpuinfo[3]=0;\n#else\n CPL_CPUID(1, cpuinfo);\n#endif',
37+
paths: ['port/cpl_cpu_features.cpp'],
38+
},
39+
{
40+
regex: '__asm__\\("xgetbv" : "=a"\\(nXCRLow\\), "=d"\\(nXCRHigh\\) : "c"\\(0\\)\\);',
41+
replacement: '#ifdef __wasm__\n nXCRLow = 0; nXCRHigh = 0;\n#else\n $&\n#endif',
42+
paths: ['port/cpl_cpu_features.cpp'],
43+
},
3444
],
3545
buildType: 'cmake',
3646
getBuildParams: (target, depPaths) => [

cppjs-packages/cppjs-package-geotiff/cppjs-package-geotiff-ios/cppjs.build.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const platformBuild = {
44
};
55

66
const platformExtraLibs = {
7-
'ios-iphonesimulator': ['-lstdc++'],
7+
'ios': ['-lc++'],
88
};
99

1010
export default {

cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-android/cppjs.build.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ export default {
1717
},
1818
],
1919
buildType: 'configure',
20-
getBuildParams: (target) => platformBuild[`${target.platform}-${target.arch}`],
20+
getBuildParams: (target) => [
21+
...platformBuild[`${target.platform}-${target.arch}`],
22+
...(target.runtime === 'mt' ? ['--enable-threadsafe'] : []),
23+
],
2124
env: [
2225
'CFLAGS="-fPIE -fPIC -DSQLITE_NOHAVE_SYSTEM -DSQLITE_DISABLE_LFS -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_NORMALIZE -DSQLITE_ENABLE_COLUMN_METADATA -DHAVE_GETHOSTUUID=0 -DSQLITE_ENABLE_RTREE=1"',
2326
'LDFLAGS="-pie -Wl,-soname,libsqlite3.so"',

cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-ios/cppjs.build.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export default {
1212
buildType: 'configure',
1313
getBuildParams: (target) => [
1414
...(platformBuild[`${target.platform}-${target.arch}`] || []),
15+
...(target.runtime === 'mt' ? ['--enable-threadsafe'] : []),
1516
],
1617
env: [
1718
'CFLAGS="-DSQLITE_NOHAVE_SYSTEM -DSQLITE_DISABLE_LFS -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_NORMALIZE -DSQLITE_ENABLE_COLUMN_METADATA -DHAVE_GETHOSTUUID=0 -DSQLITE_ENABLE_RTREE=1"',

cppjs-packages/cppjs-package-sqlite3/cppjs-package-sqlite3-wasm/cppjs.build.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export default {
55
return `https://www.sqlite.org/2025/sqlite-autoconf-${VERSION}.tar.gz`;
66
},
77
buildType: 'configure',
8-
getBuildParams: () => ['--disable-shared', '--host=wasm32-unknown-emscripten'],
8+
getBuildParams: (target) => ['--disable-shared', '--host=wasm32-unknown-emscripten', ...(target.runtime === 'mt' ? ['--enable-threadsafe'] : [])],
99
env: [
1010
'CFLAGS="-DSQLITE_NOHAVE_SYSTEM -DSQLITE_DISABLE_LFS -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_NORMALIZE -DSQLITE_ENABLE_COLUMN_METADATA -DHAVE_GETHOSTUUID=0 -DSQLITE_ENABLE_RTREE=1"',
1111
],
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
require "json"
2+
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
3+
4+
Pod::Spec.new do |s|
5+
s.module_name = "z"
6+
s.name = "cppjs-package-zlib"
7+
s.version = package["nativeVersion"]
8+
s.summary = "A Massively Spiffy Yet Delicately Unobtrusive Compression Library"
9+
s.homepage = "https://www.zlib.net/"
10+
s.author = "ZLIB Authors"
11+
s.source = { :http => "https://cpp.js.org" }
12+
s.vendored_frameworks = 'z.xcframework'
13+
end

0 commit comments

Comments
 (0)