diff --git a/.github/install-qt/LICENSE b/.github/install-qt/LICENSE deleted file mode 100644 index b3cc338d..00000000 --- a/.github/install-qt/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2019 jurplel and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/.github/install-qt/README.md b/.github/install-qt/README.md deleted file mode 100644 index ea357064..00000000 --- a/.github/install-qt/README.md +++ /dev/null @@ -1,71 +0,0 @@ -# `install-qt-action` - -Installing Qt on Github Actions workflows manually is the worst. - -You know what's easier than dealing with that? Just using this: -```yml - - name: Install Qt - uses: jurplel/install-qt-action@v1 -``` - -All done. - -## Options - -### `version` -The desired version of Qt to install. - -Default: `5.12.5` (Latest LTS at the time of writing) - -### `host` -This is the host platform of the Qt version you will be installing. It's unlikely that you will need to set this manually if you are just building. - -For example, if you are building on Linux and targeting desktop, you would set host to `linux`. If you are building on Linux and targeting android, you would set host to `linux` also. The host platform is the platform that your application will build on, not its target platform. - -Possible values: `windows`, `mac`, or `linux` - -Defaults to the current platform it is being run on. - - -### `target` -This is the target platform that you will be building for. You will want to set this if you are building for iOS or Android. - -**Please note that iOS builds are supported only on macOS hosts** - -Possible values: `desktop`, `android`, or `ios` - -Default: `desktop` - -### `arch` -This is the target architecture that your program will be built for. This is only used for Windows and Android. - -**Linux x86 packages are not supported by this action.** Qt does not offer pre-built Linux x86 packages. Please consider using your distro's repository or building it manually. - -**Possible values:** - -Windows: `win64_msvc2017_64`, `win64_msvc2015_64`, `win32_msvc2015`, `win32_mingw53`, or `win64_mingw73` - -Android: `android_x86`, `android_armv7` - -**Default values:** - -Windows: `win64_msvc2017_64` - -Android: `android_armv7` - -### `dir` -This is the directory prefix that Qt will be installed to. - -For example, if you set dir to `/example/`, your bin folder will be located at `/example/Qt5.12.5/5.12.5/(your_arch)/bin`. When possible, access your Qt directory through the `Qt5_Dir` environment variable. - -Default: `${RUNNER_WORKSPACE}` (this is one above the starting directory) - -## More info - -The Qt bin directory is added to your `path` environment variable. `Qt5_Dir` is also set appropriately for cmake. - -Big thanks to the [aqtinstall](https://github.com/miurahr/aqtinstall/) developers for making this easy. Please go support them, they did all of the hard work here. - -This action is distributed under the [MIT license](LICENSE). - -By using this action, you agree to the terms of Qt's licensing. See [Qt licensing](https://www.qt.io/licensing/) and [Licenses used by Qt](https://doc.qt.io/qt-5/licenses-used-in-qt.html). diff --git a/.github/install-qt/action.yml b/.github/install-qt/action.yml deleted file mode 100644 index c43915a1..00000000 --- a/.github/install-qt/action.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: 'Install Qt' -description: 'Install Qt on your Github Actions workflows with just one simple action' -author: 'jurplel' -branding: - icon: 'package' - color: 'green' -inputs: - dir: - description: 'Directory to install Qt' - version: - description: 'Version of Qt to install' - default: '5.12.5' - host: - description: 'Host platform' - target: - description: 'Target platform for build' - default: 'desktop' - arch: - description: 'Architecture for Windows/Android' -runs: - using: 'node12' - main: 'lib/main.js' diff --git a/.github/install-qt/package-lock.json b/.github/install-qt/package-lock.json deleted file mode 100644 index 9e2607e3..00000000 --- a/.github/install-qt/package-lock.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "name": "install-qt-action", - "version": "0.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@actions/core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.0.0.tgz", - "integrity": "sha512-aMIlkx96XH4E/2YZtEOeyrYQfhlas9jIRkfGPqMwXD095Rdkzo4lB6ZmbxPQSzD+e1M+Xsm98ZhuSMYGv/AlqA==" - }, - "@actions/exec": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.1.tgz", - "integrity": "sha512-nvFkxwiicvpzNiCBF4wFBDfnBvi7xp/as7LE1hBxBxKG2L29+gkIPBiLKMVORL+Hg3JNf07AKRfl0V5djoypjQ==" - }, - "@types/node": { - "version": "12.6.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.6.9.tgz", - "integrity": "sha512-+YB9FtyxXGyD54p8rXwWaN1EWEyar5L58GlGWgtH2I9rGmLGBQcw63+0jw+ujqVavNuO47S1ByAjm9zdHMnskw==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "typescript": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", - "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - } - } -} diff --git a/.github/install-qt/package.json b/.github/install-qt/package.json deleted file mode 100644 index 7236dfa1..00000000 --- a/.github/install-qt/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "install-qt-action", - "version": "0.0.0", - "private": true, - "description": "Install qt action for github actions", - "main": "lib/main.js", - "scripts": { - "build": "tsc" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/jurplel/install-qt-action.git" - }, - "author": "jurplel", - "license": "MIT", - "dependencies": { - "@actions/core": "^1.0.0", - "@actions/exec": "^1.0.0", - "glob": "^7.0.0" - }, - "devDependencies": { - "@types/node": "^12.0.4", - "typescript": "^3.5.1" - } -} diff --git a/.github/install-qt/src/main.ts b/.github/install-qt/src/main.ts deleted file mode 100644 index d864ce66..00000000 --- a/.github/install-qt/src/main.ts +++ /dev/null @@ -1,75 +0,0 @@ -import * as process from "process"; -import * as glob from "glob"; -import * as core from '@actions/core'; -import * as exec from '@actions/exec'; - -async function run() { - try { - // 7-zip is required, and not included on macOS - if (process.platform == "darwin") { - await exec.exec("brew install p7zip") - } - - await exec.exec("pip3 install aqtinstall"); - - const dir = core.getInput("dir") || process.env.RUNNER_WORKSPACE; - const version = core.getInput("version"); - let host = core.getInput("host"); - let target = core.getInput("target"); - let arch = core.getInput("arch"); - - //set host automatically if omitted - if (!host) { - switch(process.platform) { - case "win32": { - host = "windows"; - break; - } - case "darwin": { - host = "mac"; - break; - } - default: { - host = "linux"; - break; - } - } - } - - //set arch automatically if omitted - if (!arch) { - if (host == "windows") { - arch = "win64_mingw73"; - } else if (host == "android") { - arch = "android_armv7"; - } - } - - //set args - let args = ["-O", `${dir}`, `${version}`, `${host}`, `${target}`]; - if (arch) { - args.push(`${arch}`); - } - - //accomodate for differences in python 3 executable name - let pythonName = "python3"; - if (process.platform == "win32") { - pythonName = "python"; - } - - //run aqtinstall with args - await exec.exec(`${pythonName} -m aqt install`, args); - - //set environment variables - let qtPath = dir + "/Qt" + version + "/" + version; - qtPath = glob.sync(qtPath + '/**/*')[0]; - - core.exportVariable('Qt5_Dir', qtPath); - core.addPath(qtPath + "/bin"); - - } catch (error) { - core.setFailed(error.message); - } -} - -run(); diff --git a/.github/install-qt/tsconfig.json b/.github/install-qt/tsconfig.json deleted file mode 100644 index 960dc9fa..00000000 --- a/.github/install-qt/tsconfig.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "compilerOptions": { - /* Basic Options */ - // "incremental": true, /* Enable incremental compilation */ - "target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ - "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ - // "allowJs": true, /* Allow javascript files to be compiled. */ - // "checkJs": true, /* Report errors in .js files. */ - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - // "declaration": true, /* Generates corresponding '.d.ts' file. */ - // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ - // "sourceMap": true, /* Generates corresponding '.map' file. */ - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "./lib", /* Redirect output structure to the directory. */ - "rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - // "removeComments": true, /* Do not emit comments to output. */ - // "noEmit": true, /* Do not emit outputs. */ - // "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true, /* Enable all strict type-checking options. */ - "noImplicitAny": false, /* Raise error on expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* Enable strict null checks. */ - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ - - /* Additional Checks */ - // "noUnusedLocals": true, /* Report errors on unused locals. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - - /* Module Resolution Options */ - // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - // "types": [], /* Type declaration files to be included in compilation. */ - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - }, - "exclude": ["node_modules", "**/*.test.ts"] -} diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 3ed12520..612fa9d4 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -14,16 +14,15 @@ jobs: - name: Restore Git Submodules run: git submodule update --init # -------------------------------------------------------- - - name: Installing aqtinstall and Qt - run: | - pip3 install aqtinstall - python -m aqt install 5.12.5 windows desktop win64_mingw73 + - name: Install Qt + uses: jurplel/install-qt-action@v1 + with: + arch: win64_mingw73 # -------------------------------------------------------- - name: Build Qv2ray run: | mkdir build cd build - set PATH=..\Qt5.12.5\5.12.5\mingw73_64\bin;..\Qt5.12.5\Tools\mingw73_64\bin;%PATH% qmake .. mingw32-make -j4 - name: Make release package @@ -34,14 +33,13 @@ jobs: copy ..\release\Qv2ray.exe .\ copy ..\..\libs\libcrypto-1_1.dll .\ copy ..\..\libs\libssl-1_1.dll .\ - set PATH=..\..\Qt5.12.5\5.12.5\mingw73_64\bin;..\..\Qt5.12.5\Tools\mingw73_64\bin;%PATH% windeployqt ./Qv2ray.exe cd .. - ..\tools\7z.exe a Qv2ray.zip .\package\* + ..\tools\7z.exe a Qv2ray.zip .\package - name: Upload Artifact uses: actions/upload-artifact@master with: - name: Qv2ray.windows.zip + name: Qv2ray.Win64.zip path: build/Qv2ray.zip - name: Upload binaries to release uses: svenstaro/upload-release-action@v1-release @@ -63,19 +61,8 @@ jobs: - name: Restore Git Submodules run: git submodule update --init # -------------------------------------------------------- - - name: Installing Node - uses: actions/setup-node@v1 - with: - node-version: '10.x' - - - name: "Preparing NPM" - run: | - cd .github/install-qt/ - npm ci - npm run build - - name: Install Qt - uses: ./.github/install-qt/ + uses: jurplel/install-qt-action@v1 # -------------------------------------------------------- - name: Build Qv2ray run: | @@ -114,19 +101,8 @@ jobs: - name: Restore Git Submodules run: git submodule update --init # -------------------------------------------------------- - - name: Installing Node - uses: actions/setup-node@v1 - with: - node-version: '10.x' - - - name: "Preparing NPM" - run: | - cd .github/install-qt/ - npm ci - npm run build - - name: Install Qt - uses: ./.github/install-qt/ + uses: jurplel/install-qt-action@v1 # -------------------------------------------------------- - name: Install libgl-dev and openssl libx11-dev libxkbcommon-x11-dev run: sudo apt install -y libgl-dev openssl libx11-dev libxkbcommon-x11-dev