diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8a65ae81..20d2cbf2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,7 +35,7 @@ jobs: include: - { name: 'Linux', os: 'ubuntu-latest', dx5: false, config: true, build-type: 'Debug', linux: true, werror: true, clang-tidy: true } - { name: 'MSVC (x86)', os: 'windows-latest', dx5: true, config: false, build-type: 'Debug', msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64_x86' } - - { name: 'MSVC (x64)', os: 'windows-latest', dx5: false, config: false, build-type: 'Debug', msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64' } + - { name: 'MSVC (x64)', os: 'windows-latest', dx5: false, config: true, build-type: 'Debug', msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64' } - { name: 'MSVC (arm64)', os: 'windows-latest', dx5: false, config: false, build-type: 'Debug', msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64_arm64' } - { name: 'msys2 mingw32', os: 'windows-latest', dx5: false, config: false, build-type: 'Debug', mingw: true, werror: true, clang-tidy: true, msystem: 'mingw32', msys-env: 'mingw-w64-i686', shell: 'msys2 {0}' } - { name: 'msys2 mingw64', os: 'windows-latest', dx5: false, config: true, build-type: 'Debug', mingw: true, werror: true, clang-tidy: true, msystem: 'mingw64', msys-env: 'mingw-w64-x86_64', shell: 'msys2 {0}' } @@ -60,6 +60,12 @@ jobs: ${{ matrix.msys-env }}-clang-tools-extra ${{ (matrix.config && format('{0}-qt6-base', matrix.msys-env)) || '' }} + - name: Install Qt + if: ${{ !!matrix.msvc && matrix.config }} + uses: jurplel/install-qt-action@v4 + with: + cache: 'true' + - name: Install Linux dependencies (apt-get) if: ${{ matrix.linux }} run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 92b31a20..9faaa1b1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,9 +17,9 @@ jobs: fail-fast: false matrix: include: - - { name: 'Linux', os: 'ubuntu-latest', dx5: false, config: true, build-type: 'Release', linux: true, werror: true, clang-tidy: false } - - { name: 'Windows', os: 'windows-latest', dx5: false, config: false, build-type: 'Release', msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64' } - - { name: 'macOS', os: 'macos-latest', dx5: false, config: true, build-type: 'Release', brew: true, werror: true, clang-tidy: false } + - { name: 'Linux', os: 'ubuntu-latest', dx5: false, config: true, build-type: 'Release', linux: true, werror: true, clang-tidy: false } + - { name: 'Windows', os: 'windows-latest', dx5: false, config: true, build-type: 'Release', msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64' } + - { name: 'macOS', os: 'macos-latest', dx5: false, config: true, build-type: 'Release', brew: true, werror: true, clang-tidy: false } steps: - name: Setup vcvars if: ${{ !!matrix.msvc }} @@ -27,6 +27,12 @@ jobs: with: arch: ${{ matrix.vc-arch }} + - name: Install Qt + if: ${{ !!matrix.msvc && matrix.config }} + uses: jurplel/install-qt-action@v4 + with: + cache: 'true' + - name: Set up MSYS2 if: ${{ !!matrix.msystem }} uses: msys2/setup-msys2@v2 diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d514ef6..e0d401b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -630,6 +630,26 @@ install(TARGETS isle ${install_extra_targets} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) +if (ISLE_BUILD_CONFIG) + find_program(WINDEPLOYQT_EXECUTABLE windeployqt) + if(WINDEPLOYQT_EXECUTABLE) + add_custom_command(TARGET config POST_BUILD + COMMAND "${WINDEPLOYQT_EXECUTABLE}" + "$" + "--no-compiler-runtime" + "--no-opengl-sw" + "--no-system-d3d-compiler" + "--no-translations" + "--no-quick-import" + COMMENT "Running windeployqt with minimal dependencies" + ) + else() + message(WARNING "windeployqt not found.") + endif() + install(TARGETS config + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + ) +endif() if(EMSCRIPTEN) install(FILES "$/isle.js" "$/isle.wasm" DESTINATION "${CMAKE_INSTALL_BINDIR}"