diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 13720b2..c2a61f8 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -10,7 +10,7 @@ on: jobs: build-sdist: name: 🐍 Packaging - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 # Builds wheels on all supported platforms using cibuildwheel. # The wheels are uploaded as GitHub artifacts `dev-cibw-*` or `cibw-*`, depending on whether the workflow is triggered from a PR or a release, respectively. @@ -28,7 +28,7 @@ jobs: windows-2022, windows-11-arm, ] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 with: runs-on: ${{ matrix.runs-on }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0144cab..01cb6b8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ concurrency: jobs: change-detection: name: 🔍 Change - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-change-detection.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-change-detection.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 cpp-tests-ubuntu: name: 🇨‌ Test 🐧 @@ -32,7 +32,7 @@ jobs: - runs-on: ubuntu-24.04 compiler: gcc preset: debug - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-ubuntu.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -52,7 +52,7 @@ jobs: - runs-on: macos-26 compiler: clang preset: debug - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-macos.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -72,7 +72,7 @@ jobs: - runs-on: windows-2022 compiler: msvc preset: debug-windows - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-tests-windows.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 with: runs-on: ${{ matrix.runs-on }} compiler: ${{ matrix.compiler }} @@ -82,7 +82,7 @@ jobs: name: 🇨‌ Lint needs: change-detection if: fromJSON(needs.change-detection.outputs.run-cpp-linter) - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-linter.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-cpp-linter.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 with: build-project: true clang-version: 20 @@ -106,7 +106,7 @@ jobs: macos-26-intel, windows-2022, ] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-tests.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 with: runs-on: ${{ matrix.runs-on }} @@ -114,7 +114,7 @@ jobs: name: 🐍 Coverage needs: [change-detection, python-tests] if: fromJSON(needs.change-detection.outputs.run-python-tests) - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-coverage.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-coverage.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 permissions: contents: read id-token: write @@ -122,8 +122,8 @@ jobs: python-linter: name: 🐍 Lint needs: change-detection - if: fromJSON(needs.change-detection.outputs.run-python-tests) - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-linter.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + if: fromJSON(needs.change-detection.outputs.run-python-linter) + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-linter.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 with: check-stubs: true enable-ty: true @@ -133,7 +133,7 @@ jobs: name: 🚀 CD needs: change-detection if: fromJSON(needs.change-detection.outputs.run-cd) - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-sdist.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 build-wheel: name: 🚀 CD @@ -151,7 +151,7 @@ jobs: windows-2022, windows-11-arm, ] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-python-packaging-wheel-cibuildwheel.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 with: runs-on: ${{ matrix.runs-on }} @@ -186,7 +186,11 @@ jobs: }} ${{ !fromJSON(needs.change-detection.outputs.run-python-tests) - && 'python-tests,python-coverage,python-linter,' || '' + && 'python-tests,python-coverage,' || '' + }} + ${{ + !fromJSON(needs.change-detection.outputs.run-python-linter) + && 'python-linter,' || '' }} ${{ !fromJSON(needs.change-detection.outputs.run-cd) diff --git a/.github/workflows/update-mqt-core.yml b/.github/workflows/update-mqt-core.yml index ce5614c..f5d49f0 100644 --- a/.github/workflows/update-mqt-core.yml +++ b/.github/workflows/update-mqt-core.yml @@ -21,7 +21,7 @@ concurrency: jobs: update-mqt-core: name: ⬆️ Update MQT Core - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-mqt-core-update.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-mqt-core-update.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 with: update-to-head: ${{ github.event.inputs.update-to-head == 'true' }} secrets: diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml index d4f8e9d..2834802 100644 --- a/.github/workflows/upstream.yml +++ b/.github/workflows/upstream.yml @@ -19,7 +19,7 @@ jobs: fail-fast: false matrix: runs-on: [ubuntu-24.04, macos-26, windows-2022] - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream-tests.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream-tests.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 with: runs-on: ${{ matrix.runs-on }} setup-z3: true @@ -28,7 +28,7 @@ jobs: name: Create issue on failure needs: qiskit-upstream-tests if: ${{ always() }} - uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream-issue.yml@b17932e07095e11c8f8c0d74298bbcde43f77a15 # v2.1.1 + uses: munich-quantum-toolkit/workflows/.github/workflows/reusable-qiskit-upstream-issue.yml@e7f84f39ce2d3b6c5d1d04526b8f94f98e455143 # v2.2.0 with: tests-result: ${{ needs.qiskit-upstream-tests.result }} permissions: diff --git a/cmake/ExternalDependencies.cmake b/cmake/ExternalDependencies.cmake index facb772..70fd171 100644 --- a/cmake/ExternalDependencies.cmake +++ b/cmake/ExternalDependencies.cmake @@ -43,17 +43,12 @@ FetchContent_Declare( Eigen3 GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git GIT_TAG ${EIGEN_VERSION} - GIT_SHALLOW TRUE) + GIT_SHALLOW TRUE + # null is a non-existent subdirectory in Eigen3's repository, so add_subdirectory() becomes a + # no-op. This stops Eigen3's own CMakeLists.txt from running, which is only relevant for its + # documentation and tests. + SOURCE_SUBDIR null) list(APPEND FETCH_PACKAGES Eigen3) -set(EIGEN_BUILD_TESTING - OFF - CACHE BOOL "Disable testing for Eigen") -set(BUILD_TESTING - OFF - CACHE BOOL "Disable general testing") -set(EIGEN_BUILD_DOC - OFF - CACHE BOOL "Disable documentation build for Eigen") if(BUILD_MQT_DEBUGGER_TESTS) set(gtest_force_shared_crt @@ -70,5 +65,8 @@ endif() # Make all declared dependencies available. FetchContent_MakeAvailable(${FETCH_PACKAGES}) +add_library(Eigen3::Eigen INTERFACE IMPORTED) +set_target_properties(Eigen3::Eigen PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${eigen3_SOURCE_DIR}") + # Hide Eigen3 warnings get_target_property(Eigen3_Includes Eigen3::Eigen INTERFACE_INCLUDE_DIRECTORIES)