diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 21d298b65..f00cefc53 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,77 +5,50 @@ on: pull_request: branches: [ master ] +env: + QtVersion: 6.2.4 + QtTools: 'desktop,tools_ifw,qt.tools.ifw.43' + QtKey: "6.2.4-ifw_43" + BuildType: RelWithDebInfo + ff7tkVersion: continuous + jobs: main_build: name: ${{ matrix.config.name }} runs-on: ${{ matrix.config.os }} - env: - BUILD_TYPE: RelWithDebInfo - Qt_Tools: 'desktop,tools_ifw,qt.tools.ifw.43' - Qt_Tools_Key: "ifw_43" strategy: fail-fast: false matrix: config: - { - name: "Linux-Qt5-amd64" - , os: ubuntu-18.04 - , QT_VERSION: 5.15.2, QT_INST_DIR: /opt, Qt_TOOL_PATH: "/opt/Qt/Tools/QtInstallerFramework/4.3" - , extraCmakeConfig: "-DQT_DEFAULT_MAJOR_VERSION=5" - , packageName: ff7tk-continuous-Qt5-Linux - , releasePackage: "ff7tk-continuous-Qt5-Linux.tar.xz" - } - - { - name: "Linux-Qt6-amd64" + name: "Linux-amd64" , os: ubuntu-20.04 - , QT_VERSION: 6.2.4, QT_INST_DIR: /opt, QT_MODULES: qt5compat, Qt_TOOL_PATH: "/opt/Qt/Tools/QtInstallerFramework/4.3" - , extraCmakeConfig: "-DQT_DEFAULT_MAJOR_VERSION=6" - , packageName: ff7tk-continuous-Qt6-Linux - , linuxDeployQtPath: "export PATH=$PATH:/opt/Qt/6.2.4/gcc_64/libexec" - , releasePackage: "ff7tk-continuous-Qt6-Linux.tar.xz" + , QT_INST_DIR: /opt, Qt_TOOL_PATH: "/opt/Qt/Tools/QtInstallerFramework/4.3" + , packageName: "ff7tk-continuous-linux-amd64" } - { - name: "MacOS-Qt5-amd64" + name: "MacOS-amd64" , os: macos-10.15 - , QT_VERSION: 5.15.2, QT_INST_DIR: /Users/runner, Qt_TOOL_PATH: "/Users/runner/Qt/Tools/QtInstallerFramework/4.3" - , extraCmakeConfig: "-DQT_DEFAULT_MAJOR_VERSION=5" - } - - { - name: "MacOS-Qt6-amd64" - , os: macos-10.15 - , QT_VERSION: 6.2.4, QT_INST_DIR: /Users/runner, QT_MODULES: qt5compat, Qt_TOOL_PATH: "/Users/runner/Qt/Tools/QtInstallerFramework/4.3" - , extraCmakeConfig: "-DQT_DEFAULT_MAJOR_VERSION=6" - } - - { - name: "Windows-Qt5-x64", WIN_ARCH: "x64" - , os: windows-2019 - , QT_VERSION: 5.15.2, QT_INST_DIR: "C:/", QT_ARCH: win64_msvc2019_64, Qt_TOOL_PATH: "C:/Qt/Tools/QtInstallerFramework/4.3" - , extraCmakeConfig: "-DZLIB_ROOT=C:/zlib -G Ninja -DQT_DEFAULT_MAJOR_VERSION=5" + , QT_INST_DIR: /Users/runner, Qt_TOOL_PATH: "/Users/runner/Qt/Tools/QtInstallerFramework/4.3" } - { - name: "Windows-Qt6-x64", WIN_ARCH: "x64" + name: "Windows-x64" , os: windows-2019 - , QT_VERSION: 6.2.4, QT_INST_DIR: "C:/", QT_ARCH: win64_msvc2019_64, QT_MODULES: qt5compat, Qt_TOOL_PATH: "C:/Qt/Tools/QtInstallerFramework/4.3" - , extraCmakeConfig: "-DZLIB_ROOT=C:/zlib -G Ninja -DQT_DEFAULT_MAJOR_VERSION=6" + , QT_INST_DIR: "C:", Qt_TOOL_PATH: "C:/Qt/Tools/QtInstallerFramework/4.3" + , extraCmakeConfig: "-DZLIB_ROOT=C:/zlib -G Ninja" } - - { - name: "Windows-Qt5-x86" - , os: windows-2019, WIN_ARCH: "amd64_x86" - , QT_VERSION: 5.15.2, QT_INST_DIR: "C:/", QT_ARCH: win32_msvc2019, Qt_TOOL_PATH: "C:/Qt/Tools/QtInstallerFramework/4.3" - , extraCmakeConfig: "-DZLIB_ROOT=C:/zlib -G Ninja -DQT_DEFAULT_MAJOR_VERSION=5" - } - steps: - uses: actions/checkout@v3 with: fetch-depth: 0 + - run: git fetch --tags --force - name: Cache Qt id: cache-qt uses: actions/cache@v2 with: path: ${{matrix.config.QT_INST_DIR}}/Qt - key: ${{ runner.os }}${{ matrix.config.WIN_ARCH }}-qt-${{ matrix.config.QT_VERSION }}-${{ env.Qt_Tools_Key }} + key: ${{ runner.os }}${{ matrix.config.WIN_ARCH }}-qt-${{ env.QtKey }} - name: Cache Zlib id: cache-zlib @@ -101,8 +74,6 @@ jobs: - name: Env Script (Windows) uses: ilammy/msvc-dev-cmd@v1 if: runner.os == 'Windows' - with: - arch: ${{matrix.config.WIN_ARCH}} - name: Install Dependencies if: ((runner.os == 'Windows') && (steps.cache-choco.outputs.cache-hit != 'true')) || (runner.os != 'Windows') @@ -122,18 +93,17 @@ jobs: aqtversion: ==2.0.0 py7zrversion: ==0.16.2 dir: ${{matrix.config.QT_INST_DIR}} - arch: ${{ matrix.config.QT_ARCH }} - version: ${{ matrix.config.QT_VERSION }} - modules: ${{ matrix.config.QT_MODULES }} + version: ${{ env.QtVersion }} + modules: qt5compat cached: ${{ steps.cache-qt.outputs.cache-hit }} - tools: ${{env.Qt_Tools}} + tools: ${{env.QtTools}} - name: Install Zlib (Windows) if: (runner.os == 'Windows') && (steps.cache-zlib.outputs.cache-hit != 'true') run: | git clone -q --branch=v1.2.11 https://github.com/madler/zlib ${{github.workspace}}\zlib-git - cmake -S${{github.workspace}}\zlib-git -B${{github.workspace}}\zlib-git\build -G Ninja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX=C:/zlib - cmake --build ${{github.workspace}}\zlib-git\build --config ${{env.BUILD_TYPE}} + cmake -S${{github.workspace}}\zlib-git -B${{github.workspace}}\zlib-git\build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=C:/zlib + cmake --build ${{github.workspace}}\zlib-git\build --config Release cmake --install ${{github.workspace}}\zlib-git\build --strip mkdir D:\a\ff7tk\ff7tk\build\src\utils copy "C:\zlib\bin\zlib.dll" D:\a\ff7tk\ff7tk\build\src\utils @@ -141,8 +111,8 @@ jobs: - name: Build ff7tk id: main_build run: | - cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_DEMOS=ON -DCPACK_PACKAGE_VERSION=continuous -DCPACK_IFW_ROOT=${{matrix.config.Qt_TOOL_PATH}} ${{matrix.config.extraCmakeConfig}} - cmake --build build --config ${{env.BUILD_TYPE}} --target package + cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=${{env.BuildType}} -DBUILD_DEMOS=ON -DCPACK_PACKAGE_VERSION=${{env.ff7tkVersion}} -DQT_DEFAULT_MAJOR_VERSION=6 -DCPACK_IFW_ROOT=${{matrix.config.Qt_TOOL_PATH}} ${{matrix.config.extraCmakeConfig}} + cmake --build build --config ${{env.BuildType}} --target package - name: Deployment (Linux) if: runner.os == 'Linux' @@ -155,8 +125,9 @@ jobs: wget -qc "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage" chmod a+x linuxdeploy*.AppImage rm -rf ff7tk/usr/share/applications ff7tk/usr/share/pixmaps - export VERSION=continuous + export VERSION=${{env.ff7tkVersion}} export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${{matrix.config.packageName}}/usr/lib + export PATH=$PATH:${{matrix.config.QT_INST_DIR}}/Qt/${{ env.QtVersion }}/gcc_64/libexec ${{matrix.config.linuxDeployQtPath}} ./linuxdeploy-x86_64.AppImage --appdir=widgetGallery --plugin=qt --output appimage \ -e ${{matrix.config.packageName}}/usr/bin/ff7tkWidgetGallery \ @@ -171,10 +142,10 @@ jobs: mv ff7tk/usr/COPYING.TXT ${{matrix.config.packageName}}/ mv ff7tk/ ${{matrix.config.packageName}} rm -rf ${{matrix.config.packageName}}/usr - tar -zcvf build/${{ matrix.config.releasePackage}} ${{matrix.config.packageName}} + tar -zcvf build/${{ matrix.config.packageName}}.tar.xz ${{matrix.config.packageName}} - name: Deploy Pages - if: runner.os == 'Linux' && github.ref == 'refs/heads/master' && matrix.config.QT_VERSION == '5.15.2' + if: runner.os == 'Linux' && github.ref == 'refs/heads/master' uses: JamesIves/github-pages-deploy-action@4.1.4 with: branch: gh-pages @@ -195,30 +166,19 @@ jobs: matrix: config: - { - name: "Linux-Qt6-aarch64" - , qt: 6, qtString: "Qt6", cmakeExtraConfig: "-DQT_DEFAULT_MAJOR_VERSION=6" + name: "Linux-aarch64" , arch: aarch64, distro: archarm_latest } - { - name: "Linux-Qt6-armv7" - , qt: 6, qtString: "Qt6", cmakeExtraConfig: "-DQT_DEFAULT_MAJOR_VERSION=6 -DDOCS=OFF" + name: "Linux-armv7" , arch: armv7, distro: archarm_latest + , cmakeExtraConfig: "-DDOCS=OFF" } - - { - name: "Linux-Qt5-aarch64" - , qt: 5, qtString: "Qt5", cmakeExtraConfig: "-DQT_DEFAULT_MAJOR_VERSION=5" - , arch: aarch64, distro: bullseye - } - - { - name: "Linux-Qt5-armv7" - , qt: 5, qtString: "Qt5", cmakeExtraConfig: "-DQT_DEFAULT_MAJOR_VERSION=5" - , arch: armv7, distro: bullseye - } - steps: - uses: actions/checkout@v3 with: fetch-depth: 0 + - run: git fetch --tags --force - uses: uraimo/run-on-arch-action@v2.1.1 name: Build artifact id: build @@ -230,23 +190,12 @@ jobs: dockerRunArgs: --volume "${PWD}/artifacts:/artifacts" shell: /bin/sh install: | - case "${{ matrix.config.distro }}" in - bullseye) - apt-get update -y - apt-get upgrade -y - apt-get install -y build-essential git zlib1g-dev wget doxygen graphviz qtbase5-dev libqt5svg5-dev qttools5-dev-tools qtbase5-dev-tools qt5-qmake qtdeclarative5-dev devscripts libssl-dev qttools5-dev qtquickcontrols2-5-dev - wget https://github.com/sithlord48/fresh-debian-cmake/releases/download/3.22.1/cmake-3.22.1-bullseye_${{matrix.config.arch}}.tar.gz - tar -xf cmake-3.22.1-bullseye_${{matrix.config.arch}}.tar.gz --strip-components=3 --one-top-level=/usr - ;; - arch*) pacman -Syu --noconfirm pacman -S base-devel cmake git zlib wget doxygen qt6-tools qt6-base qt6-5compat qt6-declarative qt6-svg clang graphviz --noconfirm - ;; - esac run: | - cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_DEMOS=ON -DCPACK_PACKAGE_VERSION=continuous ${{matrix.config.cmakeExtraConfig}} - cmake --build build --config Release --target package + cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=${{env.BuildType}} -DBUILD_DEMOS=ON -DCPACK_PACKAGE_VERSION=${{env.ff7tkVersion}} -DQT_DEFAULT_MAJOR_VERSION=6 ${{matrix.config.cmakeExtraConfig}} + cmake --build build --config ${{env.BuildType}} --target package mv build/ff7tk* /artifacts/ rm /artifacts/ff7tk.pc diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 934b962f9..e769d5750 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,74 +3,48 @@ on: push: tags: - 'v*' +env: + QtVersion: 6.2.4 + QtTools: 'desktop,tools_ifw,qt.tools.ifw.43' + QtKey: "6.2.4-ifw_43" + BuildType: RelWithDebInfo jobs: main_build: name: ${{ matrix.config.name }} runs-on: ${{ matrix.config.os }} - env: - BUILD_TYPE: RelWithDebInfo - Qt_Tools: 'desktop,tools_ifw,qt.tools.ifw.43' - Qt_Tools_Key: "ifw_43" strategy: fail-fast: false matrix: config: - { - name: "Linux-Qt5-amd64" - , os: ubuntu-18.04 - , QT_VERSION: 5.15.2, QT_INST_DIR: /opt, Qt_TOOL_PATH: "/opt/Qt/Tools/QtInstallerFramework/4.3" - , extraCmakeConfig: "-DQT_DEFAULT_MAJOR_VERSION=5" - } - - { - name: "Linux-Qt6-amd64" + name: "Linux-amd64" , os: ubuntu-20.04 - , QT_VERSION: 6.2.4, QT_INST_DIR: /opt, QT_MODULES: qt5compat, Qt_TOOL_PATH: "/opt/Qt/Tools/QtInstallerFramework/4.3" - , extraCmakeConfig: "-DQT_DEFAULT_MAJOR_VERSION=6" - } - - { - name: "MacOS-Qt5-amd64" - , os: macos-10.15 - , QT_VERSION: 5.15.2, QT_INST_DIR: /Users/runner, Qt_TOOL_PATH: "/Users/runner/Qt/Tools/QtInstallerFramework/4.3" - , extraCmakeConfig: "-DQT_DEFAULT_MAJOR_VERSION=5" + , QT_INST_DIR: /opt, Qt_TOOL_PATH: "/opt/Qt/Tools/QtInstallerFramework/4.3" } - { - name: "MacOS-Qt6-amd64" + name: "MacOS-amd64" , os: macos-10.15 - , QT_VERSION: 6.2.4, QT_INST_DIR: /Users/runner, QT_MODULES: qt5compat, Qt_TOOL_PATH: "/Users/runner/Qt/Tools/QtInstallerFramework/4.3" - , extraCmakeConfig: "-DQT_DEFAULT_MAJOR_VERSION=6" + , QT_INST_DIR: /Users/runner, Qt_TOOL_PATH: "/Users/runner/Qt/Tools/QtInstallerFramework/4.3" } - { - name: "Windows-Qt5-x64", WIN_ARCH: "x64" + name: "Windows-x64" , os: windows-2019 - , QT_VERSION: 5.15.2, QT_INST_DIR: "C:/", QT_ARCH: win64_msvc2019_64, Qt_TOOL_PATH: "C:/Qt/Tools/QtInstallerFramework/4.3" - , extraCmakeConfig: "-DZLIB_ROOT=C:/zlib -G Ninja -DQT_DEFAULT_MAJOR_VERSION=5" - } - - { - name: "Windows-Qt6-x64", WIN_ARCH: "x64" - , os: windows-2019 - , QT_VERSION: 6.2.4, QT_INST_DIR: "C:/", QT_ARCH: win64_msvc2019_64, QT_MODULES: qt5compat, Qt_TOOL_PATH: "C:/Qt/Tools/QtInstallerFramework/4.3" - , extraCmakeConfig: "-DZLIB_ROOT=C:/zlib -G Ninja -DQT_DEFAULT_MAJOR_VERSION=6" - } - - { - name: "Windows-Qt5-x86" - , os: windows-2019, WIN_ARCH: "amd64_x86" - , QT_VERSION: 5.15.2, QT_INST_DIR: "C:/", QT_ARCH: win32_msvc2019, Qt_TOOL_PATH: "C:/Qt/Tools/QtInstallerFramework/4.3" - , extraCmakeConfig: "-DZLIB_ROOT=C:/zlib -G Ninja -DQT_DEFAULT_MAJOR_VERSION=5" + , QT_INST_DIR: "C:", Qt_TOOL_PATH: "C:/Qt/Tools/QtInstallerFramework/4.3" + , extraCmakeConfig: "-DZLIB_ROOT=C:/zlib -G Ninja" } steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - - run: git fetch - + - run: git fetch --tags --force - name: Cache Qt id: cache-qt uses: actions/cache@v2 with: path: ${{matrix.config.QT_INST_DIR}}/Qt - key: ${{ runner.os }}${{ matrix.config.WIN_ARCH }}-qt-${{ matrix.config.QT_VERSION }}-${{ env.Qt_Tools_Key }} + key: ${{ runner.os }}${{ matrix.config.WIN_ARCH }}-qt-${{ env.QtKey }} - name: Cache Zlib id: cache-zlib @@ -96,14 +70,12 @@ jobs: - name: Env Script (Windows) uses: ilammy/msvc-dev-cmd@v1 if: runner.os == 'Windows' - with: - arch: ${{matrix.config.WIN_ARCH}} - name: Install Dependencies if: ((runner.os == 'Windows') && (steps.cache-choco.outputs.cache-hit != 'true')) || (runner.os != 'Windows') shell: bash run: | - if [ "$RUNNER_OS" == "Linux" ]; thenQt_Tools: tools_ifw + if [ "$RUNNER_OS" == "Linux" ]; then sudo apt-get update > /dev/null && sudo apt-get install -qqq doxygen graphviz devscripts > /dev/null elif [ "$RUNNER_OS" == "Windows" ]; then choco install ninja doxygen.install graphviz --ignore-checksums @@ -117,27 +89,34 @@ jobs: aqtversion: ==2.0.0 py7zrversion: ==0.16.2 dir: ${{matrix.config.QT_INST_DIR}} - arch: ${{ matrix.config.QT_ARCH }} - version: ${{ matrix.config.QT_VERSION }} - modules: ${{ matrix.config.QT_MODULES }} + version: ${{ env.QtVersion }} + modules: qt5compat cached: ${{ steps.cache-qt.outputs.cache-hit }} - tools: ${{env.Qt_Tools}} + tools: ${{env.QtTools}} - name: Install Zlib (Windows) if: (runner.os == 'Windows') && (steps.cache-zlib.outputs.cache-hit != 'true') run: | git clone -q --branch=v1.2.11 https://github.com/madler/zlib ${{github.workspace}}\zlib-git - cmake -S${{github.workspace}}\zlib-git -B${{github.workspace}}\zlib-git\build -G Ninja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX=C:/zlib - cmake --build ${{github.workspace}}\zlib-git\build --config ${{env.BUILD_TYPE}} + cmake -S${{github.workspace}}\zlib-git -B${{github.workspace}}\zlib-git\build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=C:/zlib + cmake --build ${{github.workspace}}\zlib-git\build --config Release cmake --install ${{github.workspace}}\zlib-git\build --strip mkdir D:\a\ff7tk\ff7tk\build\src\utils copy "C:\zlib\bin\zlib.dll" D:\a\ff7tk\ff7tk\build\src\utils - name: Build ff7tk id: main_build + shell: bash run: | - cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_DEMOS=ON -DCPACK_IFW_ROOT=${{matrix.config.Qt_TOOL_PATH}} ${{matrix.config.extraCmakeConfig}} - cmake --build build --config ${{env.BUILD_TYPE}} --target package + cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=${{env.BuildType}} -DBUILD_DEMOS=ON -DQT_DEFAULT_MAJOR_VERSION=6 -DCPACK_IFW_ROOT=${{matrix.config.Qt_TOOL_PATH}} ${{matrix.config.extraCmakeConfig}} + cmake --build build --config ${{env.BuildType}} --target package + + - name: Deploy Pages + if: runner.os == 'Linux' && github.ref == 'refs/heads/master' + uses: JamesIves/github-pages-deploy-action@4.1.4 + with: + branch: gh-pages + folder: build/docs/html - name: Upload uses: actions/upload-artifact@v2 @@ -154,30 +133,19 @@ jobs: matrix: config: - { - name: "Linux-Qt6-aarch64" - , qt: 6, qtString: "Qt6", cmakeExtraConfig: "-DQT_DEFAULT_MAJOR_VERSION=6" + name: "Linux-aarch64" , arch: aarch64, distro: archarm_latest } - { - name: "Linux-Qt6-armv7" - , qt: 6, qtString: "Qt6", cmakeExtraConfig: "-DQT_DEFAULT_MAJOR_VERSION=6 -DDOCS=OFF" + name: "Linux-armv7" , arch: armv7, distro: archarm_latest + , cmakeExtraConfig: "-DDOCS=OFF" } - - { - name: "Linux-Qt5-aarch64" - , qt: 5, qtString: "Qt5", cmakeExtraConfig: "-DQT_DEFAULT_MAJOR_VERSION=5" - , arch: aarch64, distro: bullseye - } - - { - name: "Linux-Qt5-armv7" - , qt: 5, qtString: "Qt5", cmakeExtraConfig: "-DQT_DEFAULT_MAJOR_VERSION=5" - , arch: armv7, distro: bullseye - } - steps: - uses: actions/checkout@v3 with: fetch-depth: 0 + - run: git fetch --tags --force - uses: uraimo/run-on-arch-action@v2.1.1 name: Build artifact id: build @@ -189,23 +157,12 @@ jobs: dockerRunArgs: --volume "${PWD}/artifacts:/artifacts" shell: /bin/sh install: | - case "${{ matrix.config.distro }}" in - bullseye) - apt-get update -y - apt-get upgrade -y - apt-get install -y build-essential git zlib1g-dev wget doxygen graphviz qtbase5-dev libqt5svg5-dev qttools5-dev-tools qtbase5-dev-tools qt5-qmake qtdeclarative5-dev devscripts libssl-dev qttools5-dev qtquickcontrols2-5-dev - wget https://github.com/sithlord48/fresh-debian-cmake/releases/download/3.22.1/cmake-3.22.1-bullseye_${{matrix.config.arch}}.tar.gz - tar -xf cmake-3.22.1-bullseye_${{matrix.config.arch}}.tar.gz --strip-components=3 --one-top-level=/usr - ;; - arch*) pacman -Syu --noconfirm pacman -S base-devel cmake git zlib wget doxygen qt6-tools qt6-base qt6-5compat qt6-declarative qt6-svg clang graphviz --noconfirm - ;; - esac run: | - cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_DEMOS=ON ${{matrix.config.cmakeExtraConfig}} - cmake --build build --config Release --target package + cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=${{env.BuildType}} -DBUILD_DEMOS=ON -DQT_DEFAULT_MAJOR_VERSION=6 ${{matrix.config.cmakeExtraConfig}} + cmake --build build --config ${{env.BuildType}} --target package mv build/ff7tk* /artifacts/ rm /artifacts/ff7tk.pc diff --git a/CMakeLists.txt b/CMakeLists.txt index a4de5b29f..f271057b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.21) cmake_policy(SET CMP0074 NEW) #Version will be written by tag v1.2.2-4 -project(ff7tk VERSION 0.81.0.0 DESCRIPTION "Work with Final Fantasy 7 game data") +project(ff7tk VERSION 0.82.0.0 DESCRIPTION "Work with Final Fantasy 7 game data") #Prevent In-sourcebuild if(CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR) @@ -20,15 +20,10 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_BUILD_PARALLEL_LEVEL ON) -if(NOT QT_DEFAULT_MAJOR_VERSION) - set(QT_DEFAULT_MAJOR_VERSION 5 CACHE STRING "" FORCE) -endif() +#Needed For Qt5/ Qt6 Mixed Environments +set(QT_DEFAULT_MAJOR_VERSION 6) -if (${QT_DEFAULT_MAJOR_VERSION} MATCHES "5") - set(REQUIRED_QT_VERSION 5.15.2) -elseif (${QT_DEFAULT_MAJOR_VERSION} MATCHES "6") - set(REQUIRED_QT_VERSION 6.2.0) -endif() +set(REQUIRED_QT_VERSION 6.2.0) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "" FORCE) @@ -66,7 +61,7 @@ ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git) #SET FF7TK_VERSION Used for user facing strings and package version string set(FF7TK_VERSION "${CMAKE_PROJECT_VERSION_MAJOR}.${CMAKE_PROJECT_VERSION_MINOR}") -if(NOT CMAKE_PROJECT_VERSION_MAJOR EQUAL 0) +if(NOT CMAKE_PROJECT_VERSION_PATCH EQUAL 0) string(APPEND FF7TK_VERSION ".${CMAKE_PROJECT_VERSION_PATCH}") endif() if(NOT CMAKE_PROJECT_VERSION_TWEAK EQUAL 0) @@ -75,8 +70,8 @@ endif() MESSAGE(STATUS "Building FF7TK: ${FF7TK_VERSION}") #Qt Info to get deploy app -find_package(Qt${QT_DEFAULT_MAJOR_VERSION} REQUIRED COMPONENTS Core) -get_target_property(qmake_executable Qt${QT_DEFAULT_MAJOR_VERSION}::qmake IMPORTED_LOCATION) +find_package(Qt6 REQUIRED COMPONENTS Core) +get_target_property(qmake_executable Qt6::qmake IMPORTED_LOCATION) get_filename_component(_qt_bin_dir "${qmake_executable}" DIRECTORY) if(WIN32 OR APPLE) if(WIN32) diff --git a/demos/ff7tkQmlGallery/main.cpp b/demos/ff7tkQmlGallery/main.cpp index 0f67f27e1..aec868597 100644 --- a/demos/ff7tkQmlGallery/main.cpp +++ b/demos/ff7tkQmlGallery/main.cpp @@ -25,10 +25,6 @@ int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); -#if (QT_VERSION_MAJOR < 6) - QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - app.setAttribute(Qt::AA_UseHighDpiPixmaps, true); -#endif qmlRegisterSingletonType("org.ff7tk", 1, 0, "FF7Text", [](QQmlEngine *engine, QJSEngine *jsEngine) -> QObject * { return FF7Text::qmlSingletonRegister(engine, jsEngine); @@ -42,6 +38,7 @@ int main(int argc, char *argv[]) QQmlApplicationEngine engine; engine.rootContext()->setContextProperty("ff7tkVersion", versionString); engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); + if (engine.rootObjects().isEmpty()) { return -1; } diff --git a/demos/ff7tkWidgetGallery/main.cpp b/demos/ff7tkWidgetGallery/main.cpp index 59934c9c0..8bcc664e2 100644 --- a/demos/ff7tkWidgetGallery/main.cpp +++ b/demos/ff7tkWidgetGallery/main.cpp @@ -20,10 +20,6 @@ int main(int argc, char *argv[]) { QApplication a(argc, argv); -#if (QT_VERSION_MAJOR < 6) - QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - a.setAttribute(Qt::AA_UseHighDpiPixmaps, true); -#endif MainWindow w; w.show(); diff --git a/demos/ff7tkWidgetGallery/mainwindow.cpp b/demos/ff7tkWidgetGallery/mainwindow.cpp index fe2a41372..8c31ec843 100644 --- a/demos/ff7tkWidgetGallery/mainwindow.cpp +++ b/demos/ff7tkWidgetGallery/mainwindow.cpp @@ -30,6 +30,7 @@ MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWin { ui->setupUi(this); setWindowTitle(QStringLiteral("ff7tkWidgetGallery-%1").arg(ff7tk_version())); + hideAllBoxes(); ListPHS = new PhsListWidget(this); diff --git a/docs/build.md b/docs/build.md index 544a5e236..e7cf76bb5 100644 --- a/docs/build.md +++ b/docs/build.md @@ -2,7 +2,7 @@ To build ff7tk you will a minimum of: - [cmake] 3.21+ - - [Qt] 5.15.2 or 6.2.0+ + - [Qt] 6.2.0+ - [zlib] @@ -20,7 +20,7 @@ ff7tk Supports Several Build options Build Options: Option | Description | Default Value | Addtional Requirments | :-----------------------:|:---------------------------------------:|:------------------:|:---------------------:| -QT_DEFAULT_MAJOR_VERSION | The Major Version of Qt to use | 5 | | +QT_DEFAULT_MAJOR_VERSION | The Major Version of Qt to use | 6 | | CMAKE_BUILD_TYPE | Type of Build that is produced | ReleaseWithDebInfo | | DOCS | Build Documentation. | ON | [doxygen] | BUILD_TESTING | Build and run unit tests | ON | | diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt index 5ddac234c..2abc1f9da 100644 --- a/lang/CMakeLists.txt +++ b/lang/CMakeLists.txt @@ -1,9 +1,6 @@ set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM 1) -find_package(Qt${QT_DEFAULT_MAJOR_VERSION} REQUIRED NO_MODULE COMPONENTS - Core - LinguistTools -) +find_package(Qt6LinguistTools) set(ff7tk_TRS ff7tk_de.ts diff --git a/packaging/CMakeLists.txt b/packaging/CMakeLists.txt index ed9ee011e..fac64b317 100644 --- a/packaging/CMakeLists.txt +++ b/packaging/CMakeLists.txt @@ -32,7 +32,7 @@ if (NOT CPACK_PACKAGE_VERSION ) set(CPACK_PACKAGE_VERSION ${FF7TK_VERSION}) endif() -set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Qt${QT_DEFAULT_MAJOR_VERSION}) +set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}) set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING.TXT") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/preBuildCPack.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/preBuildCPack.cmake @ONLY) @@ -148,7 +148,7 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Linux") endif() if(EXISTS "/usr/bin/rpmbuild") list(APPEND CPACK_GENERATOR "RPM") - set(CPACK_RPM_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Qt${QT_DEFAULT_MAJOR_VERSION}-${CMAKE_SYSTEM_PROCESSOR}.rpm") + set(CPACK_RPM_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CMAKE_SYSTEM_PROCESSOR}.rpm") endif() else() set(OS_STRING ${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR}) @@ -159,7 +159,7 @@ if (CPACK_IFW_FRAMEWORK_VERSION) list(APPEND CPACK_PACKAGE_EXECUTABLES "ff7tk-install-tool;Modify ff7tk Install") endif() -set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-Qt${QT_DEFAULT_MAJOR_VERSION}-${OS_STRING}") +set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${OS_STRING}") #Source Package set(CPACK_SOURCE_IGNORE_FILES "build" .directory .git* ) diff --git a/packaging/cpackOptions.cmake.in b/packaging/cpackOptions.cmake.in index 858efcb52..0347946cb 100644 --- a/packaging/cpackOptions.cmake.in +++ b/packaging/cpackOptions.cmake.in @@ -21,8 +21,8 @@ endforeach() # For all targets a qml dir will be guessed based on the name of the target function(run_windeploy_qt target) cmake_path(GET target STEM targetName) - if(EXISTS ${BASE_SOURCE_DIR}/${targetName}) - set(qml_import_dir ${BASE_SOURCE_DIR}/${targetName}) + if(EXISTS ${BASE_SOURCE_DIR}/demos/${targetName}) + set(qml_import_dir ${BASE_SOURCE_DIR}/demos/${targetName}) else() if(targetName MATCHES "^?(lib)ff7tk$") set(qml_import_dir ${BASE_SOURCE_DIR}/src/data) @@ -68,6 +68,5 @@ if(CPACK_GENERATOR MATCHES IFW) endif() if(CPACK_GENERATOR MATCHES DEB) - set(CPACK_PACKAGE_VERSION @CMAKE_PROJECT_VERSION@.Qt@QT_DEFAULT_MAJOR_VERSION@) + set(CPACK_PACKAGE_VERSION @CMAKE_PROJECT_VERSION@) endif() - diff --git a/src/data/CMakeLists.txt b/src/data/CMakeLists.txt index a35e4af19..b2fa84119 100644 --- a/src/data/CMakeLists.txt +++ b/src/data/CMakeLists.txt @@ -1,14 +1,11 @@ -find_package(Qt${QT_DEFAULT_MAJOR_VERSION} REQUIRED NO_MODULE COMPONENTS +find_package(Qt6 REQUIRED NO_MODULE COMPONENTS Core + Core5Compat + Svg Quick Xml - Svg ) -if(${QT_DEFAULT_MAJOR_VERSION} MATCHES "6") - find_package(Qt6 COMPONENTS Core5Compat REQUIRED) -endif() - configure_file(ff7tkAbout.h.in ${CMAKE_CURRENT_BINARY_DIR}/ff7tkAbout.h @ONLY) add_subdirectory(crypto) @@ -47,17 +44,8 @@ set (ff7tk_PublicLIBLINKS ) set (ff7tk_PrivateLIBLINKS + Qt::Core5Compat CRYPTO ) -if(${QT_DEFAULT_MAJOR_VERSION} EQUAL "6") - list(APPEND ff7tk_PrivateLIBLINKS Qt6::Core5Compat) -endif() - MAKE_LIBRARY(ff7tk ff7tk) - -if(WIN32 AND CMAKE_COMPILER_IS_GNUCC) - target_compile_options(ff7tk PRIVATE -mno-ms-bitfields) -elseif(APPLE) - target_compile_options(ff7tk PRIVATE -stdlib=libc++) -endif() diff --git a/src/data/FF7Char.h b/src/data/FF7Char.h index 744575665..957be6305 100644 --- a/src/data/FF7Char.h +++ b/src/data/FF7Char.h @@ -27,10 +27,6 @@ class QIcon; class QQmlEngine; class QJSEngine; -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - class QStringList; -#endif - /*! \class FF7Char * \brief Data and Enums for Characters in Final Fantasy 7 */ diff --git a/src/data/FF7FieldItemList.h b/src/data/FF7FieldItemList.h index be3b6629b..939ecb05f 100644 --- a/src/data/FF7FieldItemList.h +++ b/src/data/FF7FieldItemList.h @@ -22,10 +22,6 @@ #include #endif -#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) - class QStringList; -#endif - class QQmlEngine; class QJSEngine; diff --git a/src/data/ff7tkConfig.cmake.in b/src/data/ff7tkConfig.cmake.in index e6c8cee5e..84105668e 100644 --- a/src/data/ff7tkConfig.cmake.in +++ b/src/data/ff7tkConfig.cmake.in @@ -1,15 +1,12 @@ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) -find_dependency(Qt@QT_DEFAULT_MAJOR_VERSION@ "@REQUIRED_QT_VERSION@" COMPONENTS +find_dependency(Qt6 "@REQUIRED_QT_VERSION@" COMPONENTS Core Svg Quick Xml + Core5Compat ) -if(@QT_DEFAULT_MAJOR_VERSION@ MATCHES "6") - find_package(Qt6 COMPONENTS Core5Compat REQUIRED) -endif() - include("${CMAKE_CURRENT_LIST_DIR}/ff7tkTargets.cmake") diff --git a/src/formats/CMakeLists.txt b/src/formats/CMakeLists.txt index 4a27a8e6d..a1e28d821 100644 --- a/src/formats/CMakeLists.txt +++ b/src/formats/CMakeLists.txt @@ -1,4 +1,4 @@ -find_package(Qt${QT_DEFAULT_MAJOR_VERSION} REQUIRED NO_MODULE COMPONENTS +find_package(Qt6 REQUIRED NO_MODULE COMPONENTS Core ) diff --git a/src/formats/Lgp.h b/src/formats/Lgp.h index 2755f6bde..56be543d1 100644 --- a/src/formats/Lgp.h +++ b/src/formats/Lgp.h @@ -24,10 +24,6 @@ #include "Archive.h" #include "ff7tkformats_export.h" -#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) -#define QMultiHashIterator QHashIterator -#endif - class LgpHeaderEntry; class LgpToc; class Lgp; diff --git a/src/formats/ff7tkFormatsConfig.cmake.in b/src/formats/ff7tkFormatsConfig.cmake.in index ae1618ba8..d848e078b 100644 --- a/src/formats/ff7tkFormatsConfig.cmake.in +++ b/src/formats/ff7tkFormatsConfig.cmake.in @@ -1,5 +1,5 @@ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) -find_dependency(Qt@QT_DEFAULT_MAJOR_VERSION@ "@REQUIRED_QT_VERSION@" COMPONENTS Core) +find_dependency(Qt6 "@REQUIRED_QT_VERSION@" COMPONENTS Core) include("${CMAKE_CURRENT_LIST_DIR}/ff7tkTargets.cmake") diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 6b8b72368..63ef8d315 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -1,4 +1,4 @@ -find_package(Qt${QT_DEFAULT_MAJOR_VERSION} REQUIRED NO_MODULE COMPONENTS +find_package(Qt6 REQUIRED NO_MODULE COMPONENTS Core Gui ) diff --git a/src/utils/ff7tkUtilsConfig.cmake.in b/src/utils/ff7tkUtilsConfig.cmake.in index 77fda6456..9db534998 100644 --- a/src/utils/ff7tkUtilsConfig.cmake.in +++ b/src/utils/ff7tkUtilsConfig.cmake.in @@ -1,7 +1,7 @@ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) -find_dependency(Qt@QT_DEFAULT_MAJOR_VERSION@ "@REQUIRED_QT_VERSION@" COMPONENTS Core Gui) +find_dependency(Qt6 "@REQUIRED_QT_VERSION@" COMPONENTS Core Gui) find_dependency(ZLIB) include("${CMAKE_CURRENT_LIST_DIR}/ff7tkTargets.cmake") diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt index 089206d45..e8032343a 100644 --- a/src/widgets/CMakeLists.txt +++ b/src/widgets/CMakeLists.txt @@ -1,4 +1,4 @@ -find_package(Qt${QT_DEFAULT_MAJOR_VERSION} REQUIRED NO_MODULE COMPONENTS +find_package(Qt6 REQUIRED NO_MODULE COMPONENTS Core Widgets Gui diff --git a/src/widgets/ff7tkWidgetsConfig.cmake.in b/src/widgets/ff7tkWidgetsConfig.cmake.in index b13cad4b6..776cd90c6 100644 --- a/src/widgets/ff7tkWidgetsConfig.cmake.in +++ b/src/widgets/ff7tkWidgetsConfig.cmake.in @@ -1,7 +1,7 @@ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) -find_dependency(Qt@QT_DEFAULT_MAJOR_VERSION@ "@REQUIRED_QT_VERSION@" COMPONENTS +find_dependency(Qt6 "@REQUIRED_QT_VERSION@" COMPONENTS Core Gui Widgets diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 1a6612c4e..e86704b7f 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -21,7 +21,7 @@ macro (MAKE_TEST NAME FILE) set_property(GLOBAL APPEND PROPERTY ff7tk_tests ${NAME}) endmacro() -find_package(Qt${QT_DEFAULT_MAJOR_VERSION} REQUIRED NO_MODULE COMPONENTS +find_package(Qt6 REQUIRED NO_MODULE COMPONENTS Test ) diff --git a/unittests/data/FF7Save_test.cpp b/unittests/data/FF7Save_test.cpp index 9ea7f052e..93a878e29 100644 --- a/unittests/data/FF7Save_test.cpp +++ b/unittests/data/FF7Save_test.cpp @@ -97,16 +97,9 @@ void FF7Save_Test::test_psxExport() void FF7Save_Test::test_psxDesc() { -#if (defined(Q_OS_WIN) && (QT_VERSION_MAJOR < 6)) - QEXPECT_FAIL("", qt5Warning.toUtf8().constData(), Continue); -#endif - QCOMPARE(ff7save->psxDesc(0), QStringLiteral("FF7/SAVE15/99:28")); QString desc = QStringLiteral("FVFVFVFVFVFVFVFV"); ff7save->setPsxDesc(desc, 0); -#if (defined(Q_OS_WIN) && (QT_VERSION_MAJOR < 6)) - QEXPECT_FAIL("", qt5Warning.toUtf8().constData(), Continue); -#endif QCOMPARE(ff7save->psxDesc(0), desc); } diff --git a/unittests/data/FF7Text_test.cpp b/unittests/data/FF7Text_test.cpp index dce927214..d2793eb9a 100644 --- a/unittests/data/FF7Text_test.cpp +++ b/unittests/data/FF7Text_test.cpp @@ -26,9 +26,6 @@ void FF7Text_Test::test_toPCENG() QCOMPARE(FF7Text::toPC(range3x), range3xE); QCOMPARE(FF7Text::toPC(range4x), range4xE); QCOMPARE(FF7Text::toPC(range5x), range5xE); -#if (defined(Q_OS_WIN) && (QT_VERSION_MAJOR < 6)) - qWarning() << qt5Warning; -#else QCOMPARE(FF7Text::toPC(range6x), range6xE); QCOMPARE(FF7Text::toPC(range7x), range7xE); QCOMPARE(FF7Text::toPC(range8x), range8xE); @@ -39,7 +36,6 @@ void FF7Text_Test::test_toPCENG() QCOMPARE(FF7Text::toPC(rangeDx), rangeDxE); QCOMPARE(FF7Text::toPC(rangeEx), rangeExE); QCOMPARE(FF7Text::toPC(rangeFx), rangeFxE); -#endif } void FF7Text_Test::test_toFF7ENG() @@ -53,9 +49,6 @@ void FF7Text_Test::test_toFF7ENG() QByteArray temp = range5x; temp.replace('\x5F', '\x00'); QCOMPARE(FF7Text::toFF7(range5xE), temp); -#if (defined(Q_OS_WIN) && (QT_VERSION_MAJOR < 6)) - qWarning() << qt5Warning; -#else QCOMPARE(FF7Text::toFF7(range6xE), range6x); QCOMPARE(FF7Text::toFF7(range7xE), range7x); QCOMPARE(FF7Text::toFF7(range8xE), range8x); @@ -75,7 +68,6 @@ void FF7Text_Test::test_toFF7ENG() QCOMPARE(FF7Text::toFF7(rangeExE), temp); temp = QByteArray::fromRawData("\x00\x00\x00\x00\x00\x00\x00\x00\x00", 9); QCOMPARE(FF7Text::toFF7(rangeFxE), temp); -#endif } void FF7Text_Test::test_setJapanese() { @@ -85,9 +77,6 @@ void FF7Text_Test::test_setJapanese() void FF7Text_Test::test_toPCJPN() { -#if (defined(Q_OS_WIN) && (QT_VERSION_MAJOR < 6)) - qWarning() << qt5Warning; -#else QCOMPARE(FF7Text::toPC(range0x), range0xJ); QCOMPARE(FF7Text::toPC(range1x), range1xJ); QCOMPARE(FF7Text::toPC(range2x), range2xJ); @@ -175,14 +164,10 @@ void FF7Text_Test::test_toPCJPN() QCOMPARE(FF7Text::toPC(rangeFEBx), rangeFEBxJ); QCOMPARE(FF7Text::toPC(rangeFECx), rangeFECxJ); QCOMPARE(FF7Text::toPC(rangeFEDx), rangeFEDxJ); -#endif } void FF7Text_Test::test_toFF7JPN() { -#if (defined(Q_OS_WIN) && (QT_VERSION_MAJOR < 6)) - qWarning() << qt5Warning; -#else QCOMPARE(FF7Text::toFF7(range0xJ), range0x); QCOMPARE(FF7Text::toFF7(range1xJ), range1x); QCOMPARE(FF7Text::toFF7(range2xJ), range2x); @@ -272,7 +257,6 @@ void FF7Text_Test::test_toFF7JPN() QCOMPARE(FF7Text::toFF7(rangeFEBxJ), rangeFEBx); QCOMPARE(FF7Text::toFF7(rangeFECxJ), rangeFECx); QCOMPARE(FF7Text::toFF7(rangeFEDxJ), rangeFEDx); -#endif } QTEST_MAIN(FF7Text_Test)