Skip to content

Commit 5b5bfb7

Browse files
committed
some more changes for solaris
1 parent 204c7a4 commit 5b5bfb7

2 files changed

Lines changed: 31 additions & 5 deletions

File tree

binding.gyp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
}],
4242
['OS=="solaris" and target_arch=="x64"', {
4343
'javalibdir%': "<!(h=\"`node findJavaHome.js`\" sh -c 'if [ -d \"$h/jre/lib/amd64/classic\" ]; then echo $h/jre/lib/amd64/classic; else echo $h/jre/lib/amd64/server; fi')"
44-
}]
44+
}],
4545
]
4646
},
4747
'targets': [
@@ -89,8 +89,8 @@
8989
'<(javahome)/include/solaris',
9090
],
9191
'libraries': [
92-
'-L<(javalibdir)',
93-
'-Wl,-rpath,<(javalibdir)',
92+
'-L<(javahome)/jre/lib/<(arch)/server/',
93+
'-Wl,-rpath,<(javahome)/jre/lib/<(arch)/server/',
9494
'-ljvm'
9595
]
9696
}

postInstall.js

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
var glob = require('glob');
22
var fs = require('fs');
33
var path = require('path');
4+
var os = require('os');
45

56
require('find-java-home')(function(err, home){
67
var dll;
78
var dylib;
8-
var so;
9+
var so,soFiles;
910
var binary;
1011

1112
if(home){
1213
dll = glob.sync('**/jvm.dll', {cwd: home})[0];
13-
so = glob.sync('**/libjvm.so', {cwd: home})[0];
14+
soFiles = glob.sync('**/libjvm.so', {cwd: home});
1415
dylib = glob.sync('**/libjvm.dylib', {cwd: home})[0];
1516
binary = dll || dylib || so;
1617

18+
so = getCorrectSoForPlatform(soFiles);
19+
1720
fs.writeFileSync(
1821
path.resolve(__dirname, './build/jvm_dll_path.json'),
1922
binary
@@ -25,3 +28,26 @@ require('find-java-home')(function(err, home){
2528
);
2629
}
2730
});
31+
32+
function getCorrectSoForPlatform(soFiles){
33+
34+
var architectureFolderNames = {
35+
'ia32': 'i386',
36+
'x64': 'amd64'
37+
};
38+
39+
if(os.platform() != 'sunos')
40+
return soFiles[0];
41+
42+
var requiredFolderName = architectureFolderNames[os.arch()];
43+
44+
for (var i = 0; i < soFiles.length; i++) {
45+
var so = soFiles[i];
46+
47+
if(so.indexOf('server'))
48+
if(so.indexOf(requiredFolderName))
49+
return so;
50+
}
51+
52+
return so[0];
53+
}

0 commit comments

Comments
 (0)