Adds qt installer
This commit is contained in:
parent
b6c60a4985
commit
68221becbc
@ -6,12 +6,11 @@ set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
|
||||
|
||||
macro(AddQtSupport addonName)
|
||||
# execute_process(COMMAND node -p "require('@nodegui/qode').qtHome"
|
||||
# WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
# OUTPUT_VARIABLE QT_HOME_DIR
|
||||
# )
|
||||
macro(AddQtSupport addonName)
|
||||
execute_process(COMMAND node -p "require('./scripts/config.js').qtCmakeDir"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE QT_CMAKE_HOME_DIR
|
||||
)
|
||||
|
||||
# if(DEFINED ENV{QT_INSTALL_DIR})
|
||||
# # Allows to use custom Qt installation via QT_INSTALL_DIR env variable
|
||||
@ -19,9 +18,12 @@ macro(AddQtSupport addonName)
|
||||
# set(QT_HOME_DIR "$ENV{QT_INSTALL_DIR}")
|
||||
# endif()
|
||||
|
||||
# string(REPLACE "\n" "" QT_HOME_DIR "${QT_HOME_DIR}")
|
||||
# string(REPLACE "\"" "" QT_HOME_DIR "${QT_HOME_DIR}")
|
||||
set(Qt5_DIR "/Users/atulr/Project/nodegui/nodegui/miniqt/5.15.0/clang_64/lib/cmake/Qt5")
|
||||
string(REPLACE "\n" "" QT_CMAKE_HOME_DIR "${QT_CMAKE_HOME_DIR}")
|
||||
string(REPLACE "\"" "" QT_CMAKE_HOME_DIR "${QT_CMAKE_HOME_DIR}")
|
||||
|
||||
message(STATUS "Using QT installation for ${addonName} QT_CMAKE_HOME_DIR:${QT_CMAKE_HOME_DIR}")
|
||||
|
||||
set(Qt5_DIR ${QT_CMAKE_HOME_DIR})
|
||||
find_package(Qt5 COMPONENTS Widgets Gui Core REQUIRED)
|
||||
|
||||
endmacro(AddQtSupport addonName)
|
||||
|
||||
14
package.json
14
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nodegui/nodegui",
|
||||
"version": "0.13.4",
|
||||
"version": "0.14.0",
|
||||
"description": "A cross platform library to build native desktop apps.",
|
||||
"main": "dist/index.js",
|
||||
"typings": "dist/index.d.ts",
|
||||
@ -8,19 +8,18 @@
|
||||
"license": "MIT",
|
||||
"private": false,
|
||||
"scripts": {
|
||||
"dev": "npm run build && qode dist/demo.js",
|
||||
"build": "tsc && npm run build:addon",
|
||||
"preinstall": "node ./scripts/preinstall.js",
|
||||
"dev": "cross-env npm run build && qode dist/demo.js",
|
||||
"build": "cross-env tsc && npm run build:addon",
|
||||
"postinstall": "cross-env node ./scripts/skip.js || npm run prebuild:install || npm run build:addon",
|
||||
"build:addon": "cross-env CMAKE_BUILD_PARALLEL_LEVEL=8 cmake-js compile",
|
||||
"build:addon": "cross-env CMAKE_BUILD_PARALLEL_LEVEL=8 cmake-js build",
|
||||
"prebuild:install": "prebuild-install --backend=cmake-js --runtime=napi --verbose",
|
||||
"test": "qode ./node_modules/jest/bin/jest -i",
|
||||
"lint:cpp": "clang-format -i --glob=src/cpp/**/*.[h,c]*",
|
||||
"lint:ts": "tsc --noEmit && cross-env eslint './src/**/*.{ts,tsx,js,jsx}' --fix",
|
||||
"docs": "typedoc && node ./website/docs/scripts/fixdocs.js"
|
||||
"docs": "cross-env typedoc && node ./website/docs/scripts/fixdocs.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nodegui/qode": "^1.0.6",
|
||||
"@nodegui/qode": "^2.0.0",
|
||||
"cmake-js": "^6.0.0",
|
||||
"cross-env": "^7.0.0",
|
||||
"cuid": "^2.1.6",
|
||||
@ -29,7 +28,6 @@
|
||||
"prebuild-install": "^5.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@nodegui/qt-installer": "^1.0.0",
|
||||
"@types/bindings": "^1.3.0",
|
||||
"@types/jest": "^25.1.1",
|
||||
"@types/node": "^13.1.2",
|
||||
|
||||
37
scripts/config.js
Normal file
37
scripts/config.js
Normal file
@ -0,0 +1,37 @@
|
||||
const os = require('os');
|
||||
const path = require('path');
|
||||
|
||||
const setupDir = path.resolve(__dirname, '..', 'miniqt');
|
||||
|
||||
const miniQt = {
|
||||
downloadLink: null,
|
||||
qtHome: null,
|
||||
version: '5.15.0',
|
||||
setupDir,
|
||||
};
|
||||
|
||||
switch (os.platform()) {
|
||||
case 'darwin': {
|
||||
miniQt.qtHome = path.resolve(setupDir, miniQt.version, 'clang_64');
|
||||
miniQt.downloadLink = `https://download.qt.io/online/qtsdkrepository/mac_x64/desktop/qt5_5150/qt.qt5.5150.clang_64/5.15.0-0-202002122005qtbase-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z`;
|
||||
break;
|
||||
}
|
||||
case 'win32': {
|
||||
miniQt.qtHome = path.resolve(setupDir, miniQt.version, 'msvc2017_64');
|
||||
miniQt.downloadLink = `https://download.qt.io/online/qtsdkrepository/mac_x64/desktop/qt5_5150/qt.qt5.5150.clang_64/5.15.0-0-202002122005qtbase-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z`;
|
||||
break;
|
||||
}
|
||||
case 'linux': {
|
||||
miniQt.qtHome = path.resolve(setupDir, miniQt.version, 'gcc_64');
|
||||
miniQt.downloadLink = `https://download.qt.io/online/qtsdkrepository/mac_x64/desktop/qt5_5150/qt.qt5.5150.clang_64/5.15.0-0-202002122005qtbase-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z`;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const qtHome = process.env.CUSTOM_QT_DIR ? process.env.CUSTOM_QT_DIR : miniQt.qtHome;
|
||||
|
||||
module.exports = {
|
||||
qtHome,
|
||||
qtCmakeDir: path.resolve(qtHome, 'lib', 'cmake', 'Qt5'),
|
||||
miniQt,
|
||||
};
|
||||
@ -1,13 +1,14 @@
|
||||
const { setupQt } = require('@nodegui/qt-installer');
|
||||
const path = require('path');
|
||||
#!/usr/bin/env node
|
||||
|
||||
const qtDir = path.resolve(__dirname, '..', 'miniqt');
|
||||
const { setupArtifact } = require('@nodegui/artifact-installer');
|
||||
const { miniQt } = require('./config');
|
||||
|
||||
setupQt({
|
||||
qtDir,
|
||||
downloadLink:
|
||||
'https://download.qt.io/online/qtsdkrepository/mac_x64/desktop/qt5_5150/qt.qt5.5150.clang_64/5.15.0-0-202002122005qtbase-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z',
|
||||
osType: 'darwin',
|
||||
setupArtifact({
|
||||
outDir: miniQt.setupDir,
|
||||
id: 'nodegui-mini-qt',
|
||||
displayName: `Minimal Qt ${miniQt.version} installation`,
|
||||
downloadLink: miniQt.downloadLink,
|
||||
}).catch(err => {
|
||||
throw err;
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user