diff --git a/.github/actions/install-dependencies/action.yml b/.github/actions/install-dependencies/action.yml index 24979ab6f..bb1ba2074 100644 --- a/.github/actions/install-dependencies/action.yml +++ b/.github/actions/install-dependencies/action.yml @@ -30,7 +30,7 @@ runs: if: ${{ runner.os != 'Windows' }} run: | if [ "$RUNNER_OS" == "macOS" ]; then - brew install googletest openssl --quiet + brew install googletest openssl doxygen --quiet elif [ "$RUNNER_OS" == "Linux" ]; then if [ ${{inputs.like}} == "debian" ]; then apt update -qqq > /dev/null @@ -38,17 +38,17 @@ runs: xorg-dev libx11-dev libxtst-dev libssl-dev \ libglib2.0-dev libxkbfile-dev qt6-base-dev qt6-tools-dev \ libgtk-3-dev libgtest-dev libgmock-dev \ - libei-dev libportal-dev help2man -y >/dev/null + libei-dev libportal-dev help2man doxygen -y >/dev/null elif [ ${{inputs.like}} == "fedora" ]; then dnf install -y cmake make ninja-build gcc-c++ rpm-build openssl-devel \ glib2-devel libXtst-devel libxkbfile-devel qt6-qtbase-devel qt6-qttools-devel \ - gtk3-devel gtest-devel gmock-devel libei-devel libportal-devel help2man + gtk3-devel gtest-devel gmock-devel libei-devel libportal-devel help2man doxygen elif [ ${{inputs.like}} == "suse" ]; then zypper refresh zypper install -y --force-resolution \ cmake make ninja gcc-c++ rpm-build libopenssl-devel \ glib2-devel libXtst-devel libxkbfile-devel qt6-base-devel qt6-tools-devel \ - qt6-linguist-devel gtk3-devel \ + qt6-linguist-devel gtk3-devel doxygen \ googletest-devel googlemock-devel libei-devel libportal-devel help2man elif [ ${{ inputs.like }} == "arch" ]; then pacman -Syu --noconfirm base-devel cmake ninja \ @@ -83,6 +83,22 @@ runs: token: ${{ github.token }} revision: master + - name: Cache Chocolatey + id: cache-choco + if: (runner.os == 'Windows') + uses: actions/cache@v4 + with: + path: | + C:/ProgramData/chocolatey/bin/ + C:/ProgramData/chocolatey/lib/doxygen.install + C:/Program*/doxygen/ + key: cache-chocolatey${{ matrix.config.arch }}-doxygen + + - name: Install doxygen (windows) + if: ((runner.os == 'Windows') && (steps.cache-choco.outputs.cache-hit != 'true')) + shell: bash + run: choco install doxygen.install + - name: Install Wix if: ${{ runner.os == 'Windows' }} run: | @@ -91,3 +107,4 @@ runs: wix extension add --global WixToolset.Util.wixext/5.0.2 wix extension add --global WixToolset.Firewall.wixext/5.0.2 shell: pwsh + diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 795c09818..937d0b72e 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -268,6 +268,11 @@ jobs: - name: Get version uses: ./.github/actions/get-version + - name: Update Windows Paths + if: (runner.os == 'Windows') + shell: pwsh + run: echo "C:\Program Files\doxygen\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + - name: Configure run: ${{env.CMAKE_CONFIGURE}} ${{ matrix.target.config-args }} ${{ steps.get-deps.outputs.vcpkg-cmake-config }} -DPACKAGE_VERSION_LABEL="${{env.DESKFLOW_PACKAGE_VERSION}}" @@ -347,7 +352,7 @@ jobs: run: | pkg install -y cmake ninja gmake gcc12 openssl glib \ libX11 libXtst libxkbfile qt6-base qt6-tools gtk3 \ - googletest pkgconf libei libportal + googletest pkgconf libei libportal doxygen ${{env.CMAKE_CONFIGURE}} -G Ninja cmake --build build -j16 # Integration tests are flakey by nature, make them optional. diff --git a/CMakeLists.txt b/CMakeLists.txt index 6999c0989..9c63439cb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -167,6 +167,7 @@ include(GNUInstallDirs) if (WIN32) set(CMAKE_INSTALL_BINDIR .) set(CMAKE_INSTALL_LIBDIR .) + set(CMAKE_INSTALL_DOCDIR docs) set(CMAKE_INSTALL_LICENSE_DIR .) set(CMAKE_INSTALL_I18N_DIR translations) elseif(BUILD_OSX_BUNDLE) diff --git a/docs/user/CMakeLists.txt b/docs/user/CMakeLists.txt index ec51728a7..396ad1735 100644 --- a/docs/user/CMakeLists.txt +++ b/docs/user/CMakeLists.txt @@ -16,5 +16,4 @@ target_sources(user-docs PRIVATE install( DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html" DESTINATION ${CMAKE_INSTALL_DOCDIR} - COMPONENT deskflow_user_docs )