Skip to content
This repository was archived by the owner on Feb 14, 2022. It is now read-only.

Commit 05ffc61

Browse files
author
Simon Hofmann
committed
Added cleanup method for existing installs with version missmatch
1 parent f2293cb commit 05ffc61

File tree

5 files changed

+25
-8
lines changed

5 files changed

+25
-8
lines changed

build/constants.js

+1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ exports.defaultCmakeFlags = [
7575
"-DBUILD_opencv_xobjdetect=OFF",
7676
"-DBUILD_opencv_xphoto=OFF",
7777
// Custom config
78+
"-DOPENCV_FORCE_3RDPARTY_BUILD=ON",
7879
"-DBUILD_PNG=ON",
7980
"-DBUILD_TIFF=ON",
8081
"-DBUILD_JASPER=ON",

build/setupOpencv.js

+15-6
Original file line numberDiff line numberDiff line change
@@ -212,22 +212,31 @@ function installOpenCV() {
212212
return __generator(this, function (_a) {
213213
switch (_a.label) {
214214
case 0:
215-
if (!fs_extra_1.existsSync(dirs_1.dirs.opencvInstallRoot)) return [3 /*break*/, 1];
215+
if (!fs_extra_1.existsSync(dirs_1.dirs.opencvInstallRoot)) return [3 /*break*/, 4];
216216
log.info("Directory " + dirs_1.dirs.opencvInstallRoot + " already exists, assuming existing installation.");
217-
log.info("Remove the existing directory to force a clean install.");
218-
return [3 /*break*/, 3];
217+
if (!(readVersionInfo() === null || readVersionInfo() !== getPackageVersion())) return [3 /*break*/, 2];
218+
log.info("Discovered version missmatch. Have: " + readVersionInfo() + " Want: " + getPackageVersion());
219+
log.info("Removing previous installation.");
220+
return [4 /*yield*/, utils_1.exec(getRmDirCmd(dirs_1.dirs.opencvInstallRoot))];
219221
case 1:
222+
_a.sent();
223+
return [3 /*break*/, 3];
224+
case 2:
225+
log.info("Remove the existing directory to force a clean install.");
226+
_a.label = 3;
227+
case 3: return [3 /*break*/, 6];
228+
case 4:
220229
log.info("Installing to " + dirs_1.dirs.opencvInstallRoot, "");
221230
return [4 /*yield*/, fs_extra_1.copy(dirs_1.dirs.opencvRoot, dirs_1.dirs.opencvInstallRoot, {
222231
recursive: true,
223232
errorOnExist: true,
224233
overwrite: false
225234
})];
226-
case 2:
235+
case 5:
227236
_a.sent();
228237
writeVersionInfo(getPackageVersion());
229-
_a.label = 3;
230-
case 3: return [2 /*return*/];
238+
_a.label = 6;
239+
case 6: return [2 /*return*/];
231240
}
232241
});
233242
});

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nut-tree/opencv-build",
3-
"version": "3.4.6-beta28",
3+
"version": "3.4.6-beta31",
44
"description": "A simple script to auto build recent OpenCV + contrib version via npm. Base on [justadudewhohacks/npm-opencv-build](https://github.com/justadudewhohacks/npm-opencv-build)",
55
"main": "./build/index.js",
66
"scripts": {

src/constants.ts

+1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ export const defaultCmakeFlags = [
7979
"-DBUILD_opencv_xobjdetect=OFF",
8080
"-DBUILD_opencv_xphoto=OFF",
8181
// Custom config
82+
"-DOPENCV_FORCE_3RDPARTY_BUILD=ON",
8283
"-DBUILD_PNG=ON",
8384
"-DBUILD_TIFF=ON",
8485
"-DBUILD_JASPER=ON",

src/setupOpencv.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,13 @@ export async function setupOpencv() {
131131
export async function installOpenCV() {
132132
if (existsSync(dirs.opencvInstallRoot)) {
133133
log.info(`Directory ${dirs.opencvInstallRoot} already exists, assuming existing installation.`);
134-
log.info(`Remove the existing directory to force a clean install.`);
134+
if (readVersionInfo() === null || readVersionInfo() !== getPackageVersion()) {
135+
log.info(`Discovered version missmatch. Have: ${readVersionInfo()} Want: ${getPackageVersion()}`);
136+
log.info(`Removing previous installation.`);
137+
await exec(getRmDirCmd(dirs.opencvInstallRoot));
138+
} else {
139+
log.info(`Remove the existing directory to force a clean install.`);
140+
}
135141
} else {
136142
log.info(`Installing to ${dirs.opencvInstallRoot}`, "");
137143
await copy(dirs.opencvRoot, dirs.opencvInstallRoot, {

0 commit comments

Comments
 (0)