mirror of
https://github.com/Qv2ray/Qv2ray.git
synced 2025-05-20 02:40:20 +08:00
add, ci: enable Qv2ray QWidget, QML, CLI parallel builds
This commit is contained in:
parent
285acb894f
commit
39c13b8e4b
16
.github/workflows/build-qv2ray-cmake.yml
vendored
16
.github/workflows/build-qv2ray-cmake.yml
vendored
@ -26,6 +26,7 @@ jobs:
|
||||
qt_version: [5.15.0]
|
||||
platform: [ubuntu-16.04, macos-latest, windows-latest]
|
||||
build_type: [RelWithDebInfo, Release]
|
||||
ui_type: [QWidget, QML, CLI]
|
||||
arch: [x86, x64]
|
||||
include:
|
||||
- platform: windows-latest
|
||||
@ -128,6 +129,7 @@ jobs:
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -GNinja \
|
||||
-DQV2RAY_UI_TYPE=${{ matrix.ui_type }} \
|
||||
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 \
|
||||
-DDS_STORE_SCRIPT=ON \
|
||||
@ -147,6 +149,7 @@ jobs:
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -GNinja \
|
||||
-DQV2RAY_UI_TYPE=${{ matrix.ui_type }} \
|
||||
-DCMAKE_INSTALL_PREFIX=./deployment \
|
||||
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
|
||||
cmake --build . --parallel $(nproc)
|
||||
@ -163,6 +166,7 @@ jobs:
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -GNinja \
|
||||
-DQV2RAY_UI_TYPE=${{ matrix.ui_type }} \
|
||||
-DCMAKE_INSTALL_PREFIX=./AppDir/usr \
|
||||
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
|
||||
-DQV2RAY_TRANSLATION_PATH=QApplication::applicationDirPath\(\)+"/../share/qv2ray/lang"
|
||||
@ -195,11 +199,11 @@ jobs:
|
||||
if: matrix.platform == 'ubuntu-16.04'
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: Qv2ray-${{ github.sha }}.linux-${{ matrix.arch }}.qt${{ matrix.qt_version }}-${{ matrix.build_type }}.AppImage
|
||||
name: Qv2ray-${{ github.sha }}.linux-${{ matrix.arch }}-${{ matrix.ui_type }}.qt${{ matrix.qt_version }}-${{ matrix.build_type }}.AppImage
|
||||
path: build/Qv2ray.AppImage
|
||||
- name: Linux - ${{ matrix.qt_version }} - Upload binaries to release
|
||||
uses: svenstaro/upload-release-action@v1-release
|
||||
if: github.event_name == 'release' && matrix.platform == 'ubuntu-16.04' && matrix.qt_version == '5.15.0' && matrix.build_type == 'Release'
|
||||
if: github.event_name == 'release' && matrix.platform == 'ubuntu-16.04' && matrix.ui_type == 'QWidget' && matrix.qt_version == '5.15.0' && matrix.build_type == 'Release'
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: build/Qv2ray.AppImage
|
||||
@ -211,11 +215,11 @@ jobs:
|
||||
if: matrix.platform == 'macos-latest'
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: Qv2ray-${{ github.sha }}.macOS-${{ matrix.arch }}.qt${{ matrix.qt_version }}-${{ matrix.build_type }}.dmg
|
||||
name: Qv2ray-${{ github.sha }}.macOS-${{ matrix.arch }}-${{ matrix.ui_type }}.qt${{ matrix.qt_version }}-${{ matrix.build_type }}.dmg
|
||||
path: Qv2ray.dmg
|
||||
- name: macOS - ${{ matrix.qt_version }} - Upload binaries to release
|
||||
uses: svenstaro/upload-release-action@v1-release
|
||||
if: github.event_name == 'release' && matrix.platform == 'macos-latest' && matrix.qt_version == '5.15.0' && matrix.build_type == 'Release'
|
||||
if: github.event_name == 'release' && matrix.platform == 'macos-latest' && matrix.ui_type == 'QWidget' && matrix.qt_version == '5.15.0' && matrix.build_type == 'Release'
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: Qv2ray.dmg
|
||||
@ -233,11 +237,11 @@ jobs:
|
||||
if: matrix.platform == 'windows-latest'
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: Qv2ray-${{ github.sha }}.Windows-${{ matrix.arch }}.qt${{ matrix.qt_version }}-${{ matrix.build_type }}.7z
|
||||
name: Qv2ray-${{ github.sha }}.Windows-${{ matrix.arch }}-${{ matrix.ui_type }}.qt${{ matrix.qt_version }}-${{ matrix.build_type }}.7z
|
||||
path: release.7z
|
||||
- name: Win-${{ matrix.arch }} - ${{ matrix.qt_version }} - Upload binaries to release
|
||||
uses: svenstaro/upload-release-action@v1-release
|
||||
if: github.event_name == 'release' && matrix.platform == 'windows-latest' && matrix.qt_version == '5.15.0' && matrix.build_type == 'Release'
|
||||
if: github.event_name == 'release' && matrix.platform == 'windows-latest' && matrix.ui_type == 'QWidget' && matrix.qt_version == '5.15.0' && matrix.build_type == 'Release'
|
||||
with:
|
||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
file: release.7z
|
||||
|
@ -123,9 +123,24 @@ if(QV2RAY_HAS_BUILTIN_PLUGINS)
|
||||
endif()
|
||||
|
||||
option(QV2RAY_EMBED_TRANSLATIONS "Embed Translations" OFF)
|
||||
option(QV2RAY_USE_QML "Use QML as Qv2ray GUI" OFF)
|
||||
option(QV2RAY_HAS_SINGLEAPPLICATION "Build With SingleApplication" ON)
|
||||
option(QV2RAY_USE_QWIDGET "Use QWidget as Qv2ray GUI" ON)
|
||||
|
||||
set(QV2RAY_UI_TYPE "QWidget" CACHE STRING "Qv2ray GUI Component")
|
||||
QVLOG(QV2RAY_UI_TYPE)
|
||||
|
||||
if(QV2RAY_UI_TYPE STREQUAL "QWidget")
|
||||
set(QV2RAY_USE_QWIDGET ON)
|
||||
set(QV2RAY_USE_QML OFF)
|
||||
elseif(QV2RAY_UI_TYPE STREQUAL "QML")
|
||||
set(QV2RAY_USE_QWIDGET OFF)
|
||||
set(QV2RAY_USE_QML ON)
|
||||
elseif(QV2RAY_UI_TYPE STREQUAL "CLI")
|
||||
set(QV2RAY_USE_QWIDGET OFF)
|
||||
set(QV2RAY_USE_QML OFF)
|
||||
else()
|
||||
message(FATAL_ERROR "The given QV2RAY_UI_TYPE: ${QV2RAY_UI_TYPE} is invalid, expected: QWidget, QML, CLI")
|
||||
endif()
|
||||
|
||||
if(ANDROID)
|
||||
set(QV2RAY_EMBED_TRANSLATIONS ON)
|
||||
set(QV2RAY_USE_QML ON)
|
||||
|
@ -1 +1 @@
|
||||
6062
|
||||
6063
|
||||
|
@ -4,16 +4,21 @@ Qv2rayCliApplication::Qv2rayCliApplication(int &argc, char *argv[]) : Qv2rayPlat
|
||||
{
|
||||
}
|
||||
|
||||
Qv2raySetupStatus Qv2rayCliApplication::Initialize()
|
||||
QStringList Qv2rayCliApplication::checkPrerequisitesInternal()
|
||||
{
|
||||
return InitializeInternal();
|
||||
return {};
|
||||
}
|
||||
Qv2rayExitCode Qv2rayCliApplication::RunQv2ray()
|
||||
Qv2rayExitReason Qv2rayCliApplication::runQv2rayInternal()
|
||||
{
|
||||
RunInternal();
|
||||
return Qv2rayExitCode::QVEXIT_NORMAL;
|
||||
return (Qv2rayExitReason) exec();
|
||||
}
|
||||
|
||||
void Qv2rayCliApplication::TerminateUI()
|
||||
void Qv2rayCliApplication::terminateUIInternal()
|
||||
{
|
||||
}
|
||||
|
||||
#ifndef QV2RAY_NO_SINGLEAPPLICATON
|
||||
void Qv2rayCliApplication::onMessageReceived(quint32 clientID, QByteArray msg)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
@ -8,14 +8,14 @@ namespace Qv2ray
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit Qv2rayCliApplication(int &argc, char *argv[]);
|
||||
Qv2raySetupStatus Initialize() override;
|
||||
Qv2rayExitCode RunQv2ray() override;
|
||||
QStringList checkPrerequisitesInternal() override;
|
||||
Qv2rayExitReason runQv2rayInternal() override;
|
||||
|
||||
public:
|
||||
void MessageBoxWarn(QWidget *, const QString &, const QString &, MessageOpt = OK) override
|
||||
void MessageBoxWarn(QWidget *, const QString &, const QString &) override
|
||||
{
|
||||
}
|
||||
void MessageBoxInfo(QWidget *, const QString &, const QString &, MessageOpt = OK) override
|
||||
void MessageBoxInfo(QWidget *, const QString &, const QString &) override
|
||||
{
|
||||
}
|
||||
MessageOpt MessageBoxAsk(QWidget *, const QString &, const QString &, const QList<MessageOpt> &) override
|
||||
@ -27,7 +27,7 @@ namespace Qv2ray
|
||||
}
|
||||
|
||||
private:
|
||||
void TerminateUI() override;
|
||||
void terminateUIInternal() override;
|
||||
#ifndef QV2RAY_NO_SINGLEAPPLICATON
|
||||
void onMessageReceived(quint32 clientID, QByteArray msg) override;
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user