Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 19 additions & 12 deletions .github/workflows/macOS.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,38 @@
name: macOS
on: [push]
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:

env:
targetName: danmaQ
jobs:
build:
name: Build
runs-on: macos-10.15
runs-on: macos-latest
steps:
- name: Install Qt
uses: jurplel/install-qt-action@v2
uses: jurplel/install-qt-action@v4
with:
version: 5.15.2
modules: 'qtwebengine'
cached: 'false'
- uses: actions/checkout@v2
version: 6.8.2
modules: "qtwebengine qtwebchannel qtpositioning" # latter two are required by webengine
cache: true
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Build MacOS
run: |
cmake . && make translations
cmake -B build -DCMAKE_INSTALL_PREFIX=/app -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release
cd build && make dmg
- uses: actions/upload-artifact@v2
cmake -B build -DCMAKE_INSTALL_PREFIX=/app -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DQT_DEBUG_FIND_PACKAGE=ON
cd build && make dmg
- uses: actions/upload-artifact@v4
with:
name: ${{ env.targetName }}.macos.amd64.dmg
path: build/${{ env.targetName }}.dmg
- name: uploadRelease
- name: Update to release
if: startsWith(github.event.ref, 'refs/tags/')
uses: svenstaro/upload-release-action@v2
with:
Expand Down
71 changes: 44 additions & 27 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
name: Ubuntu
on: [push]
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:

env:
targetName: danmaQ
jobs:
Expand All @@ -8,38 +16,47 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04]
qt_ver: [5.15.2]
os: [ubuntu-latest]
qt_ver: [6.8.2]
qt_arch: [gcc_64]
steps:
- name: Install Qt
uses: jurplel/install-qt-action@v2
uses: jurplel/install-qt-action@v4
with:
version: ${{ matrix.qt_ver }}
modules: 'qtcharts qtwebengine'
cached: 'false'
- name: ubuntu install
run: sudo apt-get install -y libqt5x11extras5-dev cmake flatpak flatpak-builder
- uses: actions/checkout@v2
modules: "qtwebengine qtwebchannel qtpositioning" # latter two are required by webengine
cache: true
- name: Install other dependencies
run: sudo apt-get install -y cmake ninja-build flatpak flatpak-builder
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: build flatpak
- name: Build native
run: |
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install flathub org.kde.Sdk//5.15 io.qt.qtwebengine.BaseApp//5.15 -y
sudo flatpak-builder --repo=repo --force-clean build-dir org.tuna.danmaQ.local.json
sudo flatpak build-bundle repo danmaQ.flatpak org.tuna.danmaQ
working-directory: flatpak
- uses: actions/upload-artifact@v2
cmake -B build -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -GNinja -DQT_DEBUG_FIND_PACKAGE=ON
cmake --build build
- name: Upload build result
uses: actions/upload-artifact@v4
with:
name: ${{ env.targetName }}.linux.amd64.flatpak
path: flatpak/danmaQ.flatpak
- name: uploadRelease
if: startsWith(github.event.ref, 'refs/tags/')
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: flatpak/danmaQ.flatpak
asset_name: ${{ env.targetName }}.linux.amd64.flatpak
tag: ${{ github.ref }}
overwrite: true
name: ${{ env.targetName }}.linux.amd64
path: build/src/danmaQ
# - name: Build flatpak
# run: |
# sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# sudo flatpak install flathub org.kde.Sdk//5.15 io.qt.qtwebengine.BaseApp//5.15 -y
# sudo flatpak-builder --repo=repo --force-clean build-dir org.tuna.danmaQ.local.json
# sudo flatpak build-bundle repo danmaQ.flatpak org.tuna.danmaQ
# working-directory: flatpak
# - uses: actions/upload-artifact@v4
# with:
# name: ${{ env.targetName }}.linux.amd64.flatpak
# path: flatpak/danmaQ.flatpak
# - name: Update to release
# if: startsWith(github.event.ref, 'refs/tags/')
# uses: svenstaro/upload-release-action@v2
# with:
# repo_token: ${{ secrets.GITHUB_TOKEN }}
# file: flatpak/danmaQ.flatpak
# asset_name: ${{ env.targetName }}.linux.amd64.flatpak
# tag: ${{ github.ref }}
# overwrite: true
38 changes: 23 additions & 15 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
@@ -1,49 +1,57 @@
name: Windows
on: [push]
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:

env:
targetName: danmaQ
jobs:
build:
name: Build
runs-on: windows-2019
runs-on: windows-latest
strategy:
matrix:
include:
- qt_ver: 5.15.2
qt_arch: win64_msvc2019_64
- qt_ver: 6.8.2
qt_arch: win64_msvc2022_64
msvc_arch: x64
qt_arch_install: msvc2019_64
steps:
- name: Install Qt
uses: jurplel/install-qt-action@v2.13.0
uses: jurplel/install-qt-action@v4
with:
version: ${{ matrix.qt_ver }}
modules: 'qtwebengine'
modules: "qtwebengine qtwebchannel qtpositioning" # latter two are required by webengine
arch: ${{ matrix.qt_arch }}
- uses: actions/checkout@v2
cache: true
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: MSVC Build
id: build
shell: cmd
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.msvc_arch }}
cmake -B . -DCMAKE_INSTALL_PREFIX=/app -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release
msbuild ALL_BUILD.vcxproj
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.msvc_arch }}
cmake -B build -DCMAKE_INSTALL_PREFIX=/app -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DQT_DEBUG_FIND_PACKAGE=ON
cmake --build build
- name: Package Qt
env:
VCINSTALLDIR: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC'
VCINSTALLDIR: 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC'
shell: pwsh
run: |
New-Item -ItemType Directory ${env:targetName}
Copy-Item src\Debug\${{ env.targetName }}.exe ${env:targetName}\
Copy-Item build\src\Debug\${{ env.targetName }}.exe ${env:targetName}\
windeployqt ${env:targetName}\${env:targetName}.exe
Compress-Archive -Path ${env:targetName} ${env:targetName}'.zip'
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
with:
name: ${{ env.targetName }}.win.${{ matrix.msvc_arch }}.zip
path: ${{ env.targetName }}.zip
- name: Upload Release
- name: Update to release
if: startsWith(github.event.ref, 'refs/tags/')
uses: svenstaro/upload-release-action@v2
with:
Expand Down
12 changes: 0 additions & 12 deletions .travisci/.travis.sh

This file was deleted.

18 changes: 0 additions & 18 deletions .travisci/Dockerfile.debian

This file was deleted.

14 changes: 0 additions & 14 deletions .travisci/Dockerfile.fedora

This file was deleted.

15 changes: 0 additions & 15 deletions .travisci/Dockerfile.leap

This file was deleted.

17 changes: 0 additions & 17 deletions .travisci/Dockerfile.ubuntu

This file was deleted.

33 changes: 6 additions & 27 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,47 +1,26 @@
cmake_minimum_required(VERSION 2.8.12)
cmake_minimum_required(VERSION 3.16)

PROJECT(danmaQ)

option(ENABLE_TEST "Enable test program build" Off)

set(VERSION "0.3.0")

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_EXPORT_COMPILE_COMMANDS True)

IF (WIN32 AND NOT MINGW AND NOT CYGWIN)
set(CMAKE_PREFIX_PATH "$ENV{QTDIR} ${CMAKE_PREFIX_PATH}")
ENDIF()

# From https://github.com/Homebrew/homebrew-core/issues/8392
if(APPLE)
if(EXISTS /usr/local/opt/qt5)
# Because Qt5 is key-only, Homebrew installs Qt5 in
# /usr/local/qt5, ensure it can be found by CMake since
# it is not in the default /usr/local prefix.
list(APPEND CMAKE_PREFIX_PATH "/usr/local/opt/qt5")
set(CMAKE_MACDEPLOYQT_PATH "/usr/local/opt/qt5/bin/macdeployqt")
set(CMAKE_MACOSX_RPATH 1)
# set (_frameworks ${CMAKE_FRAMEWORK_PATH} $ENV{CMAKE_FRAMEWORK_PATH} ~/Library/Frameworks /usr/local/Frameworks ${CMAKE_SYSTEM_FRAMEWORK_PATH})
# list (REMOVE_DUPLICATES _frameworks)
set(CMAKE_INSTALL_RPATH "$INSTALL_DIR/lib")
# set(CMAKE_INSTALL_RPATH_USE_LINK_PATH 1)
else()
set(CMAKE_MACDEPLOYQT_PATH "macdeployqt")
endif()
endif()

find_package(Qt5Core)
find_package(Qt5Widgets)
find_package(Qt5Network)
find_package(Qt5WebEngineWidgets)
find_package(Qt6 REQUIRED COMPONENTS Core Widgets Network WebEngineWidgets LinguistTools)

IF (UNIX)
set(CMAKE_CXX_FLAGS "-Wall ${CMAKE_CXX_FLAGS}")
ENDIF ()

IF (WIN32 AND NOT MINGW AND NOT CYGWIN)
set(CMAKE_CXX_FLAGS "/permissive- /MP ${CMAKE_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS "/permissive- /MP /DNOMINMAX ${CMAKE_CXX_FLAGS}")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS /ENTRY:\"mainCRTStartup\"")
ENDIF()

Expand Down Expand Up @@ -71,14 +50,14 @@ if (APPLE)
COMMAND mkdir -p ${CMAKE_PROJECT_NAME}.app/Contents/Resources
COMMAND touch ${CMAKE_PROJECT_NAME}.app/Contents/Resources/empty.lproj
COMMAND cp Icon.icns ${CMAKE_PROJECT_NAME}.app/Contents/Resources/
COMMAND ${CMAKE_MACDEPLOYQT_PATH} ${CMAKE_PROJECT_NAME}.app -no-strip
COMMAND macdeployqt ${CMAKE_PROJECT_NAME}.app -no-strip
DEPENDS ${CMAKE_BINARY_DIR}/src/${CMAKE_PROJECT_NAME}
DEPENDS ${CMAKE_BINARY_DIR}/Icon.icns
OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.app
)
add_custom_command(
COMMAND cp -r ${CMAKE_PROJECT_NAME}.app ${CMAKE_PROJECT_NAME}.app.bak
COMMAND ${CMAKE_MACDEPLOYQT_PATH} ${CMAKE_PROJECT_NAME}.app -dmg
COMMAND macdeployqt ${CMAKE_PROJECT_NAME}.app -dmg
COMMAND rm -rf ${CMAKE_PROJECT_NAME}.app
COMMAND mv ${CMAKE_PROJECT_NAME}.app.bak ${CMAKE_PROJECT_NAME}.app
DEPENDS ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.app
Expand Down
Loading