Skip to content

Commit c6758c8

Browse files
authored
Merge pull request #2 from chrisreedio/dev
Dev Changes
2 parents d5542e6 + 9d4e02b commit c6758c8

File tree

10 files changed

+1710
-3528
lines changed

10 files changed

+1710
-3528
lines changed

composer.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
],
1818
"require": {
1919
"php": "^8.1",
20-
"nativephp/php-bin": "*",
20+
"nativephp/php-bin": "dev-main",
2121
"nativephp/laravel": "*",
2222
"spatie/laravel-package-tools": "^1.14.0",
2323
"illuminate/contracts": "^10.0"
@@ -62,13 +62,19 @@
6262
"extra": {
6363
"laravel": {
6464
"providers": [
65-
"Native\\Electron\\ElectronServiceProvider"
65+
"Native\\Electron\\ElectronServiceProvider"
6666
],
6767
"aliases": {
6868
"Updater": "Native\\Electron\\Facades\\Updater"
6969
}
7070
}
7171
},
72+
"repositories": [
73+
{
74+
"type": "vcs",
75+
"url": "https://github.com/chrisreedio/php-bin"
76+
}
77+
],
7278
"minimum-stability": "dev",
7379
"prefer-stable": true
7480
}

config/nativephp.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
'hot_reload' => [
55
base_path('app/Providers/NativeAppServiceProvider.php'),
66
],
7+
'binary_package' => 'vendor/nativephp/php-bin/',
78
];

resources/js/electron-builder.js

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,26 @@ const appAuthor = process.env.NATIVEPHP_APP_AUTHOR;
1313
const phpBinaryPath = process.env.NATIVEPHP_PHP_BINARY_PATH;
1414
const certificatePath = process.env.NATIVEPHP_CERTIFICATE_FILE_PATH;
1515
const isArm64 = process.argv.includes('--arm64');
16+
const isWindows = process.platform === 'win32';
17+
const isDarwin = process.platform === 'darwin';
18+
let binaryArch = process.arch
19+
let phpBinaryFilename = 'php';
20+
if (isWindows) phpBinaryFilename += '.exe';
21+
// Override for Darwin on x64 to use standard 32-bit PHP binary
22+
if (isDarwin && binaryArch == 'x64') binaryArch = 'x86';
1623
let updaterConfig = {};
1724

25+
// console.log('Env Vars: ', process.env)
26+
console.log('Binary Source: ', phpBinaryPath);
27+
console.log('Binary Filename: ', phpBinaryFilename);
28+
29+
const binarySrcDir = join(phpBinaryPath, binaryArch);
30+
const binarySrcExecutable = join(phpBinaryPath, binaryArch, phpBinaryFilename);
31+
// const binaryDest = join(__dirname, 'resources', phpBinaryFilename);
32+
const binaryDestDir = join(__dirname, 'resources/php');
33+
34+
console.log("Arch: ", process.arch)
35+
console.log("Platform: ", process.platform)
1836
try {
1937
updaterConfig = process.env.NATIVEPHP_UPDATER_CONFIG;
2038
updaterConfig = JSON.parse(updaterConfig);
@@ -24,39 +42,43 @@ try {
2442

2543
if (phpBinaryPath) {
2644
try {
27-
copySync(join(phpBinaryPath, (isArm64 ? 'arm64' : 'x86'), 'php'), join(__dirname, 'resources', 'php'));
45+
console.log('Copying PHP file(s) from ' + binarySrcDir + ' to ' + binaryDestDir);
46+
copySync(binarySrcDir, binaryDestDir);
47+
console.log('Copied PHP binary to ', binaryDestDir);
2848
} catch (e) {
29-
console.log('Error copying PHP binary', e);
49+
console.error('Error copying PHP binary', e);
3050
}
3151
}
3252

3353
if (certificatePath) {
3454
try {
35-
copySync(certificatePath, join(__dirname, 'resources', 'cacert.pem'));
55+
let certDest = join(__dirname, 'resources', 'cacert.pem');
56+
copySync(certificatePath, certDest);
57+
console.log('Copied certificate file to', certDest);
3658
} catch (e) {
37-
console.log('Error copying certificate file', e);
59+
console.error('Error copying certificate file', e);
3860
}
3961
}
4062

4163
if (isBuilding) {
4264
console.log('=====================');
4365
if (isArm64) {
4466
console.log('Building for ARM64');
45-
console.log(join(__dirname, '..', '..', 'bin', (isArm64 ? 'arm64' : 'x86'), 'php'));
67+
console.log(join(__dirname, '..', '..', 'bin', binaryArch, phpBinaryFilename));
4668
} else {
4769
console.log('Building for x86');
48-
console.log(join(__dirname, '..', '..', 'bin', (isArm64 ? 'arm64' : 'x86'), 'php'));
70+
console.log(join(__dirname, '..', '..', 'bin', binaryArch, phpBinaryFilename));
4971
}
5072
console.log('=====================');
5173
console.log('updater config', updaterConfig);
5274
console.log('=====================');
5375

5476
try {
5577
removeSync(join(__dirname, 'resources', 'app'));
56-
removeSync(join(__dirname, 'resources', 'php'));
78+
removeSync(binaryDestDir);
5779

58-
let phpBinary = join(phpBinaryPath, (isArm64 ? 'arm64' : 'x86'), 'php');
59-
copySync(phpBinary, join(__dirname, 'resources', 'php'));
80+
// let phpBinary = join(phpBinaryPath, binaryArch, phpBinaryFilename);
81+
copySync(binarySrcDir, binaryDestDir);
6082

6183
// As we can't copy into a subdirectory of ourself we need to copy to a temp directory
6284
let tmpDir = mkdtempSync(join(os.tmpdir(), 'nativephp'));
@@ -106,12 +128,12 @@ if (isBuilding) {
106128
console.log(join(process.env.APP_PATH, 'dist'));
107129
console.log('=====================');
108130

109-
execSync(`${phpBinary} ${join(__dirname, 'resources', 'app', 'artisan')} native:minify ${join(__dirname, 'resources', 'app')}`);
131+
execSync(`${binarySrcExecutable} ${join(__dirname, 'resources', 'app', 'artisan')} native:minify ${join(__dirname, 'resources', 'app')}`);
110132
} catch (e) {
111-
console.log('=====================');
112-
console.log('Error copying app to resources');
113-
console.log(e);
114-
console.log('=====================');
133+
console.error('=====================');
134+
console.error('Error copying app to resources');
135+
console.error(e);
136+
console.error('=====================');
115137
}
116138

117139
}

0 commit comments

Comments
 (0)