From b56ab042b49e1ad72242d79153edc74fd4f3bc3c Mon Sep 17 00:00:00 2001 From: Mentalflow <312902918@qq.com> Date: Fri, 2 Feb 2024 01:51:13 +0800 Subject: [PATCH] CMakeLists and Workflow: optimize runtime generation. --- .github/workflows/macos-shared.yml | 6 +++--- .github/workflows/macos-static.yml | 6 +++--- .github/workflows/ubuntu-shared.yml | 2 +- .github/workflows/ubuntu-static.yml | 2 +- example/CMakeLists.txt | 8 +++++++- scripts/windows-mingw-publish.ps1 | 2 +- scripts/windows-publish.ps1 | 2 +- 7 files changed, 17 insertions(+), 11 deletions(-) diff --git a/.github/workflows/macos-shared.yml b/.github/workflows/macos-shared.yml index da1bbe3..d274cf5 100644 --- a/.github/workflows/macos-shared.yml +++ b/.github/workflows/macos-shared.yml @@ -57,19 +57,19 @@ jobs: # 先删除所有dSYM文件,减少包的体积 sudo find /Users/runner/work/RibbonUI/Qt/6.5.3/macos/qml -name "*.dSYM" | xargs rm -r # 拷贝依赖 - sudo macdeployqt /Users/runner/work/RibbonUI/RibbonUI/build/example/${targetName}.app -qmldir=. -verbose=1 -dmg + sudo macdeployqt /Users/runner/work/RibbonUI/RibbonUI/build/app/release/${targetName}.app -qmldir=. -verbose=1 -dmg - uses: actions/upload-artifact@v2 with: name: ${{ env.targetName }}_${{ matrix.os }}_${{matrix.qt_ver}}_shared.zip - path: /Users/runner/work/RibbonUI/RibbonUI/build/example/${{ env.targetName }}.dmg + path: /Users/runner/work/RibbonUI/RibbonUI/build/app/release/${{ env.targetName }}.dmg - name: uploadRelease if: startsWith(github.event.ref, 'refs/tags/') uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: /Users/runner/work/RibbonUI/RibbonUI/build/example/${{ env.targetName }}.dmg + file: /Users/runner/work/RibbonUI/RibbonUI/build/app/release/${{ env.targetName }}.dmg asset_name: ${{ env.targetName }}_${{ github.ref_name }}_${{ matrix.os }}_Qt${{ matrix.qt_ver }}_shared.dmg tag: ${{ github.ref }} overwrite: true diff --git a/.github/workflows/macos-static.yml b/.github/workflows/macos-static.yml index beb6e3f..68d3e61 100644 --- a/.github/workflows/macos-static.yml +++ b/.github/workflows/macos-static.yml @@ -57,19 +57,19 @@ jobs: # 先删除所有dSYM文件,减少包的体积 sudo find /Users/runner/work/RibbonUI/Qt/6.5.3/macos/qml -name "*.dSYM" | xargs rm -r # 拷贝依赖 - sudo macdeployqt /Users/runner/work/RibbonUI/RibbonUI/build/example/${targetName}.app -qmldir=. -verbose=1 -dmg + sudo macdeployqt /Users/runner/work/RibbonUI/RibbonUI/build/app/release/${targetName}.app -qmldir=. -verbose=1 -dmg - uses: actions/upload-artifact@v2 with: name: ${{ env.targetName }}_${{ matrix.os }}_${{matrix.qt_ver}}_static.zip - path: /Users/runner/work/RibbonUI/RibbonUI/build/example/${{ env.targetName }}.dmg + path: /Users/runner/work/RibbonUI/RibbonUI/build/app/release/${{ env.targetName }}.dmg - name: uploadRelease if: startsWith(github.event.ref, 'refs/tags/') uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} - file: /Users/runner/work/RibbonUI/RibbonUI/build/example/${{ env.targetName }}.dmg + file: /Users/runner/work/RibbonUI/RibbonUI/build/app/release/${{ env.targetName }}.dmg asset_name: ${{ env.targetName }}_${{ github.ref_name }}_${{ matrix.os }}_Qt${{ matrix.qt_ver }}_static.dmg tag: ${{ github.ref }} overwrite: true diff --git a/.github/workflows/ubuntu-shared.yml b/.github/workflows/ubuntu-shared.yml index 7ad57fd..66dc834 100644 --- a/.github/workflows/ubuntu-shared.yml +++ b/.github/workflows/ubuntu-shared.yml @@ -73,7 +73,7 @@ jobs: # make sure Qt plugin finds QML sources so it can deploy the imported files export QML_SOURCES_PATHS=./ # 拷贝依赖 - linuxdeploy-x86_64.AppImage --plugin=qt --output=appimage --create-desktop-file --icon-file=${targetName}.svg --executable=/home/runner/work/RibbonUI/RibbonUI/build/example/${targetName} --appdir /home/runner/work/RibbonUI/RibbonUI/build/example/ + linuxdeploy-x86_64.AppImage --plugin=qt --output=appimage --create-desktop-file --icon-file=${targetName}.svg --executable=/home/runner/work/RibbonUI/RibbonUI/build/app/release/${targetName} --appdir /home/runner/work/RibbonUI/RibbonUI/build/app/release/ mv ${{ env.targetName }}-*.AppImage ${{ env.targetName }}_${{ matrix.os }}_${{matrix.qt_ver}}_shared.AppImage - uses: actions/upload-artifact@v2 diff --git a/.github/workflows/ubuntu-static.yml b/.github/workflows/ubuntu-static.yml index 15ebbfb..997dd97 100644 --- a/.github/workflows/ubuntu-static.yml +++ b/.github/workflows/ubuntu-static.yml @@ -73,7 +73,7 @@ jobs: # make sure Qt plugin finds QML sources so it can deploy the imported files export QML_SOURCES_PATHS=./ # 拷贝依赖 - linuxdeploy-x86_64.AppImage --plugin=qt --output=appimage --create-desktop-file --icon-file=${targetName}.svg --executable=/home/runner/work/RibbonUI/RibbonUI/build/example/${targetName} --appdir /home/runner/work/RibbonUI/RibbonUI/build/example/ + linuxdeploy-x86_64.AppImage --plugin=qt --output=appimage --create-desktop-file --icon-file=${targetName}.svg --executable=/home/runner/work/RibbonUI/RibbonUI/build/app/release/${targetName} --appdir /home/runner/work/RibbonUI/RibbonUI/build/app/release/ mv ${{ env.targetName }}-*.AppImage ${{ env.targetName }}_${{ matrix.os }}_Qt${{ matrix.qt_ver }}_static.AppImage - uses: actions/upload-artifact@v2 diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index 4f02a6c..6e02905 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -20,6 +20,12 @@ find_package(Qt6 COMPONENTS Quick REQUIRED) set(sources_files example.cpp) +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/app/debug) +else() + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/app/release) +endif() + if (WIN32) set(app_icon_resource_windows "${CMAKE_CURRENT_SOURCE_DIR}/resources/icon.rc") qt_add_executable(${PROJECT_NAME} @@ -37,7 +43,7 @@ if (WIN32) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${DLL_FILES} - "${CMAKE_BINARY_DIR}${PATH_SEPARATOR}example" + ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ) elseif(APPLE) set(MACOSX_BUNDLE_ICON_FILE AppIcon) diff --git a/scripts/windows-mingw-publish.ps1 b/scripts/windows-mingw-publish.ps1 index b30fc9a..3d800f0 100644 --- a/scripts/windows-mingw-publish.ps1 +++ b/scripts/windows-mingw-publish.ps1 @@ -17,7 +17,7 @@ function Main() { New-Item -ItemType Directory $archiveName # 拷贝exe - Copy-Item D:\a\RibbonUI\RibbonUI\build\example\* $archiveName\ -Force -Recurse | Out-Null + Copy-Item D:\a\RibbonUI\RibbonUI\build\app\release\* $archiveName\ -Force -Recurse | Out-Null # 拷贝依赖 windeployqt --qmldir . --plugindir $archiveName\plugins --no-translations --compiler-runtime $archiveName\$targetName # 删除不必要的文件 diff --git a/scripts/windows-publish.ps1 b/scripts/windows-publish.ps1 index d0d2ac2..a32e29f 100644 --- a/scripts/windows-publish.ps1 +++ b/scripts/windows-publish.ps1 @@ -27,7 +27,7 @@ function Main() { New-Item -ItemType Directory $archiveName # 拷贝exe - Copy-Item D:\a\RibbonUI\RibbonUI\build\example\* $archiveName\ -Force -Recurse | Out-Null + Copy-Item D:\a\RibbonUI\RibbonUI\build\app\release\* $archiveName\ -Force -Recurse | Out-Null # 拷贝依赖 windeployqt --qmldir . --plugindir $archiveName\plugins --no-translations --compiler-runtime $archiveName\$targetName # 删除不必要的文件