From e2e2b3db6f6e0a9543f51b12b6b12ffe1c20dd0f Mon Sep 17 00:00:00 2001 From: Alexis Montoison Date: Thu, 31 Jul 2025 23:18:48 -0500 Subject: [PATCH 01/26] [CI] Compile Uno with HiGHS --- .github/workflows/build-macos.yml | 23 ++++++++++++++++++---- .github/workflows/build-msvc.yml | 4 ++++ .github/workflows/build-windows.yml | 17 ++++++++++++++-- .github/workflows/unit-tests-linux.yml | 27 ++++++++++++++++++++------ 4 files changed, 59 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 326746eae..2cd799813 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -27,10 +27,18 @@ jobs: # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: - os: [macos-14] - architecture: [x64, arm64] + # we want the combination (macos-13, x64) + (macos-latest, arm64) + os: [macos-13, macos-latest] + architecture: [arm64, x64] compiler: [gcc] + exclude: + # macos-latest only works with arm64 architecture + - os: macos-latest + architecture: x64 + - os: macos-13 + architecture: arm64 steps: - name: Checkout repository @@ -41,6 +49,7 @@ jobs: run: | VERSION_BQPD="1.0.0" VERSION_MUMPS="5.8.0" + VERSION_HIGHS="1.11.0" if [[ "${{matrix.architecture}}" == "x64" ]]; then PLATFORM="x86_64-apple-darwin" else @@ -48,9 +57,12 @@ jobs: fi wget https://github.com/leyffer/BQPD_jll.jl/releases/download/BQPD-v${VERSION_BQPD}%2B0/BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz wget https://github.com/amontoison/MUMPS_static_jll.jl/releases/download/MUMPS_static-v${VERSION_MUMPS}%2B0/MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz + wget https://github.com/amontoison/HiGHS_static_jll.jl/releases/download/HiGHS_static-v${VERSION_HIGHS}%2B0/HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz mkdir deps + mkdir deps/highs tar -xzvf BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz -C deps tar -xzvf MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz -C deps + tar -xzvf HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz -C deps/highs - name: Install Fortran compiler uses: fortran-lang/setup-fortran@main @@ -71,9 +83,12 @@ jobs: -DMUMPS_COMMON_LIBRARY=${{github.workspace}}/deps/lib/libmumps_common.a \ -DMUMPS_PORD_LIBRARY=${{github.workspace}}/deps/lib/libpord.a \ -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}/deps/lib/libmpiseq.a \ + -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \ -DBLAS_LIBRARIES=${{github.workspace}}/deps/lib/libblas.a \ - -DLAPACK_LIBRARIES=${{github.workspace}}/deps/lib/liblapack.a + -DLAPACK_LIBRARIES=${{github.workspace}}/deps/lib/liblapack.a \ + -DBUILD_STATIC_LIBS=ON \ + -DBUILD_SHARED_LIBS=ON . - name: Build # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j4 + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} \ No newline at end of file diff --git a/.github/workflows/build-msvc.yml b/.github/workflows/build-msvc.yml index e5d9a0b08..12a82eb6a 100644 --- a/.github/workflows/build-msvc.yml +++ b/.github/workflows/build-msvc.yml @@ -43,6 +43,7 @@ jobs: run: | VERSION_BQPD="1.0.0" VERSION_MUMPS="5.8.0" + VERSION_HIGHS="1.11.0" if [[ "${{matrix.architecture}}" == "x64" ]]; then PLATFORM="x86_64-w64-mingw32" else @@ -51,9 +52,11 @@ jobs: choco install wget wget https://github.com/leyffer/BQPD_jll.jl/releases/download/BQPD-v${VERSION_BQPD}%2B0/BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz wget https://github.com/amontoison/MUMPS_static_jll.jl/releases/download/MUMPS_static-v${VERSION_MUMPS}%2B0/MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz + wget https://github.com/amontoison/HiGHS_static_jll.jl/releases/download/HiGHS_static-v${VERSION_HIGHS}%2B0/HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz mkdir deps tar -xzvf BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz -C deps tar -xzvf MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz -C deps + tar -xzvf HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz -C deps - name: Install Fortran compiler uses: fortran-lang/setup-fortran@main @@ -80,6 +83,7 @@ jobs: -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}\deps\lib\libmpiseq.a ^ -DBLAS_LIBRARIES=${{github.workspace}}\deps\lib\libblas.a ^ -DLAPACK_LIBRARIES=${{github.workspace}}\deps\lib\liblapack.a ^ + -DHIGHS_DIR=${{github.workspace}}\deps ^ -DBUILD_STATIC_LIBS=ON ^ -DBUILD_SHARED_LIBS=OFF . ) else ( diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 0dee53e60..c6370e251 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -27,9 +27,11 @@ jobs: # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: os: [windows-latest] architecture: [x64] + compiler: [mingw] steps: - name: Checkout repository @@ -40,13 +42,21 @@ jobs: run: | VERSION_BQPD="1.0.0" VERSION_MUMPS="5.8.0" - PLATFORM="x86_64-w64-mingw32" + VERSION_HIGHS="1.11.0" + if [[ "${{matrix.architecture}}" == "x64" ]]; then + PLATFORM="x86_64-w64-mingw32" + else + PLATFORM="i686-w64-mingw32" + fi choco install wget wget https://github.com/leyffer/BQPD_jll.jl/releases/download/BQPD-v${VERSION_BQPD}%2B0/BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz wget https://github.com/amontoison/MUMPS_static_jll.jl/releases/download/MUMPS_static-v${VERSION_MUMPS}%2B0/MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz + wget https://github.com/amontoison/HiGHS_static_jll.jl/releases/download/HiGHS_static-v${VERSION_HIGHS}%2B0/HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz mkdir deps + mkdir deps/highs tar -xzvf BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz -C deps tar -xzvf MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz -C deps + tar -xzvf HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz -C deps/highs - name: add MinGW64 directory to path run: echo "C:\tools\msys64\mingw64\bin" >> "$GITHUB_PATH" @@ -66,7 +76,10 @@ jobs: -DMUMPS_PORD_LIBRARY=${{github.workspace}}\deps\lib\libpord.a ^ -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}\deps\lib\libmpiseq.a ^ -DBLAS_LIBRARIES=${{github.workspace}}\deps\lib\libblas.a ^ - -DLAPACK_LIBRARIES=${{github.workspace}}\deps\lib\liblapack.a . + -DLAPACK_LIBRARIES=${{github.workspace}}\deps\lib\liblapack.a ^ + -DHIGHS_DIR=${{github.workspace}}\deps\highs\lib\cmake\highs ^ + -DBUILD_STATIC_LIBS=ON ^ + -DBUILD_SHARED_LIBS=ON . - name: Build # Build your program with the given configuration diff --git a/.github/workflows/unit-tests-linux.yml b/.github/workflows/unit-tests-linux.yml index f5c774961..b9b957f96 100644 --- a/.github/workflows/unit-tests-linux.yml +++ b/.github/workflows/unit-tests-linux.yml @@ -1,6 +1,6 @@ # This starter workflow is for a CMake project running on a single platform. There is a different starter workflow if you need cross-platform coverage. # See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-multi-platform.yml -name: Unit tests on Linux +name: Unit tests on Ubuntu on: push: @@ -33,21 +33,35 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: Bacondish2023/setup-googletest@v1 - with: - tag: v1.14.0 + + - name: Install googletest + run: | + sudo apt-get install -y libgtest-dev cmake + mkdir -p $HOME/build + cd $HOME/build + sudo cmake /usr/src/googletest/googletest + sudo make + sudo cp lib/libgtest* /usr/lib/ + cd .. + sudo rm -rf build + sudo mkdir /usr/local/lib/googletest + sudo ln -s /usr/lib/libgtest.a /usr/local/lib/googletest/libgtest.a + sudo ln -s /usr/lib/libgtest_main.a /usr/local/lib/googletest/libgtest_main.a - name: Download dependencies (BQPD and MUMPS_static) shell: bash run: | VERSION_BQPD="1.0.0" VERSION_MUMPS="5.8.0" + VERSION_HIGHS="1.11.0" PLATFORM="x86_64-linux-gnu" wget https://github.com/leyffer/BQPD_jll.jl/releases/download/BQPD-v${VERSION_BQPD}%2B0/BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz wget https://github.com/amontoison/MUMPS_static_jll.jl/releases/download/MUMPS_static-v${VERSION_MUMPS}%2B0/MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz + wget https://github.com/amontoison/HiGHS_static_jll.jl/releases/download/HiGHS_static-v${VERSION_HIGHS}%2B0/HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz mkdir deps tar -xzvf BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz -C deps tar -xzvf MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz -C deps + tar -xzvf HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz -C deps - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. @@ -64,8 +78,9 @@ jobs: -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}/deps/lib/libmpiseq.a \ -DBLAS_LIBRARIES=${{github.workspace}}/deps/lib/libblas.a \ -DLAPACK_LIBRARIES=${{github.workspace}}/deps/lib/liblapack.a \ + -DHIGHS_DIR=${{github.workspace}}/deps \ -DBUILD_STATIC_LIBS=ON \ - -DBUILD_SHARED_LIBS=OFF . + -DBUILD_SHARED_LIBS=ON . - name: Build # Build your program with the given configuration @@ -74,4 +89,4 @@ jobs: - name: Test working-directory: ${{github.workspace}}/build # Execute unit tests - run: ./run_unotest + run: ./run_unotest \ No newline at end of file From fe6239abfda3cfb9a798abc494825fda46bf48e3 Mon Sep 17 00:00:00 2001 From: Alexis Montoison Date: Thu, 31 Jul 2025 23:28:35 -0500 Subject: [PATCH 02/26] Put paths in quote on Windows --- .github/workflows/build-msvc.yml | 22 +++++++++++----------- .github/workflows/build-windows.yml | 22 +++++++++++----------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/build-msvc.yml b/.github/workflows/build-msvc.yml index 12a82eb6a..73681f669 100644 --- a/.github/workflows/build-msvc.yml +++ b/.github/workflows/build-msvc.yml @@ -73,17 +73,17 @@ jobs: -DCMAKE_C_COMPILER=cl ^ -DCMAKE_CXX_COMPILER=cl ^ -DCMAKE_Fortran_COMPILER=ifx ^ - -DMUMPS_INCLUDE_DIR=${{github.workspace}}\deps\include ^ - -DMETIS_INCLUDE_DIR=${{github.workspace}}\deps\include ^ - -DBQPD=${{github.workspace}}\deps\lib\libbqpd.a ^ - -DMETIS_LIBRARY=${{github.workspace}}\deps\lib\libmetis.a ^ - -DMUMPS_LIBRARY=${{github.workspace}}\deps\lib\libdmumps.a ^ - -DMUMPS_COMMON_LIBRARY=${{github.workspace}}\deps\lib\libmumps_common.a ^ - -DMUMPS_PORD_LIBRARY=${{github.workspace}}\deps\lib\libpord.a ^ - -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}\deps\lib\libmpiseq.a ^ - -DBLAS_LIBRARIES=${{github.workspace}}\deps\lib\libblas.a ^ - -DLAPACK_LIBRARIES=${{github.workspace}}\deps\lib\liblapack.a ^ - -DHIGHS_DIR=${{github.workspace}}\deps ^ + -DMUMPS_INCLUDE_DIR="${{github.workspace}}\deps\include" ^ + -DMETIS_INCLUDE_DIR="${{github.workspace}}\deps\include" ^ + -DBQPD="${{github.workspace}}\deps\lib\libbqpd.a" ^ + -DMETIS_LIBRARY="${{github.workspace}}\deps\lib\libmetis.a" ^ + -DMUMPS_LIBRARY="${{github.workspace}}\deps\lib\libdmumps.a" ^ + -DMUMPS_COMMON_LIBRARY="${{github.workspace}}\deps\lib\libmumps_common.a" ^ + -DMUMPS_PORD_LIBRARY="${{github.workspace}}\deps\lib\libpord.a" ^ + -DMUMPS_MPISEQ_LIBRARY="${{github.workspace}}\deps\lib\libmpiseq.a" ^ + -DBLAS_LIBRARIES="${{github.workspace}}\deps\lib\libblas.a" ^ + -DLAPACK_LIBRARIES="${{github.workspace}}\deps\lib\liblapack.a" ^ + -DHIGHS_DIR="${{github.workspace}}\deps" ^ -DBUILD_STATIC_LIBS=ON ^ -DBUILD_SHARED_LIBS=OFF . ) else ( diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index c6370e251..03cf1d091 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -67,17 +67,17 @@ jobs: cmake -G "MinGW Makefiles" ^ -B ${{github.workspace}}\build ^ -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} ^ - -DMUMPS_INCLUDE_DIR=${{github.workspace}}\deps\include ^ - -DMETIS_INCLUDE_DIR=${{github.workspace}}\deps\include ^ - -DBQPD=${{github.workspace}}\deps\lib\libbqpd.a ^ - -DMETIS_LIBRARY=${{github.workspace}}\deps\lib\libmetis.a ^ - -DMUMPS_LIBRARY=${{github.workspace}}\deps\lib\libdmumps.a ^ - -DMUMPS_COMMON_LIBRARY=${{github.workspace}}\deps\lib\libmumps_common.a ^ - -DMUMPS_PORD_LIBRARY=${{github.workspace}}\deps\lib\libpord.a ^ - -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}\deps\lib\libmpiseq.a ^ - -DBLAS_LIBRARIES=${{github.workspace}}\deps\lib\libblas.a ^ - -DLAPACK_LIBRARIES=${{github.workspace}}\deps\lib\liblapack.a ^ - -DHIGHS_DIR=${{github.workspace}}\deps\highs\lib\cmake\highs ^ + -DMUMPS_INCLUDE_DIR="${{github.workspace}}\deps\include" ^ + -DMETIS_INCLUDE_DIR="${{github.workspace}}\deps\include" ^ + -DBQPD="${{github.workspace}}\deps\lib\libbqpd.a" ^ + -DMETIS_LIBRARY="${{github.workspace}}\deps\lib\libmetis.a" ^ + -DMUMPS_LIBRARY="${{github.workspace}}\deps\lib\libdmumps.a" ^ + -DMUMPS_COMMON_LIBRARY="${{github.workspace}}\deps\lib\libmumps_common.a" ^ + -DMUMPS_PORD_LIBRARY="${{github.workspace}}\deps\lib\libpord.a" ^ + -DMUMPS_MPISEQ_LIBRARY="${{github.workspace}}\deps\lib\libmpiseq.a" ^ + -DBLAS_LIBRARIES="${{github.workspace}}\deps\lib\libblas.a" ^ + -DLAPACK_LIBRARIES="${{github.workspace}}\deps\lib\liblapack.a" ^ + -DHIGHS_DIR="${{github.workspace}}\deps\highs\lib\cmake\highs" ^ -DBUILD_STATIC_LIBS=ON ^ -DBUILD_SHARED_LIBS=ON . From ac140b0fd2d7235fdbc6937caa267fb6b99beb85 Mon Sep 17 00:00:00 2001 From: Alexis Montoison Date: Thu, 31 Jul 2025 23:36:11 -0500 Subject: [PATCH 03/26] Put paths in quote on Windows --- .github/workflows/build-windows.yml | 32 ++++++++++++++--------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 03cf1d091..810c50cfd 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -62,23 +62,23 @@ jobs: run: echo "C:\tools\msys64\mingw64\bin" >> "$GITHUB_PATH" - name: Configure CMake - shell: cmd + shell: bash run: | - cmake -G "MinGW Makefiles" ^ - -B ${{github.workspace}}\build ^ - -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} ^ - -DMUMPS_INCLUDE_DIR="${{github.workspace}}\deps\include" ^ - -DMETIS_INCLUDE_DIR="${{github.workspace}}\deps\include" ^ - -DBQPD="${{github.workspace}}\deps\lib\libbqpd.a" ^ - -DMETIS_LIBRARY="${{github.workspace}}\deps\lib\libmetis.a" ^ - -DMUMPS_LIBRARY="${{github.workspace}}\deps\lib\libdmumps.a" ^ - -DMUMPS_COMMON_LIBRARY="${{github.workspace}}\deps\lib\libmumps_common.a" ^ - -DMUMPS_PORD_LIBRARY="${{github.workspace}}\deps\lib\libpord.a" ^ - -DMUMPS_MPISEQ_LIBRARY="${{github.workspace}}\deps\lib\libmpiseq.a" ^ - -DBLAS_LIBRARIES="${{github.workspace}}\deps\lib\libblas.a" ^ - -DLAPACK_LIBRARIES="${{github.workspace}}\deps\lib\liblapack.a" ^ - -DHIGHS_DIR="${{github.workspace}}\deps\highs\lib\cmake\highs" ^ - -DBUILD_STATIC_LIBS=ON ^ + cmake -G "MinGW Makefiles" \ + -B "${{github.workspace}}/build" \ + -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ + -DMUMPS_INCLUDE_DIR="${{github.workspace}}/deps/include" \ + -DMETIS_INCLUDE_DIR="${{github.workspace}}/deps/include" \ + -DBQPD="${{github.workspace}}/deps/lib/libbqpd.a" \ + -DMETIS_LIBRARY="${{github.workspace}}/deps/lib/libmetis.a" \ + -DMUMPS_LIBRARY="${{github.workspace}}/deps/lib/libdmumps.a" \ + -DMUMPS_COMMON_LIBRARY="${{github.workspace}}/deps/lib/libmumps_common.a" \ + -DMUMPS_PORD_LIBRARY="${{github.workspace}}/deps/lib/libpord.a" \ + -DMUMPS_MPISEQ_LIBRARY="${{github.workspace}}/deps/lib/libmpiseq.a" \ + -DBLAS_LIBRARIES="${{github.workspace}}/deps/lib/libblas.a" \ + -DLAPACK_LIBRARIES="${{github.workspace}}/deps/lib/liblapack.a" \ + -DHIGHS_DIR="${{github.workspace}}/deps/highs/lib/cmake/highs" \ + -DBUILD_STATIC_LIBS=ON \ -DBUILD_SHARED_LIBS=ON . - name: Build From a201db001cd2f9d33d62b83c54faa585bdcb89e8 Mon Sep 17 00:00:00 2001 From: Alexis Montoison Date: Thu, 31 Jul 2025 23:44:30 -0500 Subject: [PATCH 04/26] Put paths in quote on Windows --- .github/workflows/build-windows.yml | 30 ++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 810c50cfd..3e64a6ef2 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -61,26 +61,30 @@ jobs: - name: add MinGW64 directory to path run: echo "C:\tools\msys64\mingw64\bin" >> "$GITHUB_PATH" + - name: add WORKSPACE directory to path + run: echo "WORKSPACE=D:/a/Uno/Uno" >> "$GITHUB_PATH" + - name: Configure CMake shell: bash run: | cmake -G "MinGW Makefiles" \ - -B "${{github.workspace}}/build" \ + -B "${WORKSPACE}/build" \ -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ - -DMUMPS_INCLUDE_DIR="${{github.workspace}}/deps/include" \ - -DMETIS_INCLUDE_DIR="${{github.workspace}}/deps/include" \ - -DBQPD="${{github.workspace}}/deps/lib/libbqpd.a" \ - -DMETIS_LIBRARY="${{github.workspace}}/deps/lib/libmetis.a" \ - -DMUMPS_LIBRARY="${{github.workspace}}/deps/lib/libdmumps.a" \ - -DMUMPS_COMMON_LIBRARY="${{github.workspace}}/deps/lib/libmumps_common.a" \ - -DMUMPS_PORD_LIBRARY="${{github.workspace}}/deps/lib/libpord.a" \ - -DMUMPS_MPISEQ_LIBRARY="${{github.workspace}}/deps/lib/libmpiseq.a" \ - -DBLAS_LIBRARIES="${{github.workspace}}/deps/lib/libblas.a" \ - -DLAPACK_LIBRARIES="${{github.workspace}}/deps/lib/liblapack.a" \ - -DHIGHS_DIR="${{github.workspace}}/deps/highs/lib/cmake/highs" \ + -DMUMPS_INCLUDE_DIR="${WORKSPACE}/deps/include" \ + -DMETIS_INCLUDE_DIR="${WORKSPACE}/deps/include" \ + -DBQPD="${WORKSPACE}/deps/lib/libbqpd.a" \ + -DMETIS_LIBRARY="${WORKSPACE}/deps/lib/libmetis.a" \ + -DMUMPS_LIBRARY="${WORKSPACE}/deps/lib/libdmumps.a" \ + -DMUMPS_COMMON_LIBRARY="${WORKSPACE}/deps/lib/libmumps_common.a" \ + -DMUMPS_PORD_LIBRARY="${WORKSPACE}/deps/lib/libpord.a" \ + -DMUMPS_MPISEQ_LIBRARY="${WORKSPACE}/deps/lib/libmpiseq.a" \ + -DBLAS_LIBRARIES="${WORKSPACE}/deps/lib/libblas.a" \ + -DLAPACK_LIBRARIES="${WORKSPACE}/deps/lib/liblapack.a" \ + -DHIGHS_DIR="${WORKSPACE}/deps/highs/lib/cmake/highs" \ -DBUILD_STATIC_LIBS=ON \ -DBUILD_SHARED_LIBS=ON . - name: Build + shell: bash # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + run: cmake --build ${WORKSPACE}/build --config ${{env.BUILD_TYPE}} From 55dfdfb289204da9fe5bcf514c90b9ba8778eea1 Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Thu, 28 Aug 2025 10:56:56 +0200 Subject: [PATCH 05/26] Updated build-windows.yml --- .github/workflows/build-windows.yml | 38 +++++++++++++---------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 3e64a6ef2..788598950 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -31,7 +31,6 @@ jobs: matrix: os: [windows-latest] architecture: [x64] - compiler: [mingw] steps: - name: Checkout repository @@ -61,30 +60,27 @@ jobs: - name: add MinGW64 directory to path run: echo "C:\tools\msys64\mingw64\bin" >> "$GITHUB_PATH" - - name: add WORKSPACE directory to path - run: echo "WORKSPACE=D:/a/Uno/Uno" >> "$GITHUB_PATH" - - name: Configure CMake - shell: bash + shell: cmd run: | - cmake -G "MinGW Makefiles" \ - -B "${WORKSPACE}/build" \ - -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ - -DMUMPS_INCLUDE_DIR="${WORKSPACE}/deps/include" \ - -DMETIS_INCLUDE_DIR="${WORKSPACE}/deps/include" \ - -DBQPD="${WORKSPACE}/deps/lib/libbqpd.a" \ - -DMETIS_LIBRARY="${WORKSPACE}/deps/lib/libmetis.a" \ - -DMUMPS_LIBRARY="${WORKSPACE}/deps/lib/libdmumps.a" \ - -DMUMPS_COMMON_LIBRARY="${WORKSPACE}/deps/lib/libmumps_common.a" \ - -DMUMPS_PORD_LIBRARY="${WORKSPACE}/deps/lib/libpord.a" \ - -DMUMPS_MPISEQ_LIBRARY="${WORKSPACE}/deps/lib/libmpiseq.a" \ - -DBLAS_LIBRARIES="${WORKSPACE}/deps/lib/libblas.a" \ - -DLAPACK_LIBRARIES="${WORKSPACE}/deps/lib/liblapack.a" \ - -DHIGHS_DIR="${WORKSPACE}/deps/highs/lib/cmake/highs" \ - -DBUILD_STATIC_LIBS=ON \ + cmake -G "MinGW Makefiles" ^ + -B "${{github.workspace}}\build" ^ + -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} ^ + -DMUMPS_INCLUDE_DIR="${{github.workspace}}\deps\include" ^ + -DMETIS_INCLUDE_DIR="${{github.workspace}}\deps\include" ^ + -DBQPD="${{github.workspace}}\deps\lib\libbqpd.a" ^ + -DMETIS_LIBRARY="${{github.workspace}}\deps\lib\libmetis.a" ^ + -DMUMPS_LIBRARY="${{github.workspace}}\deps\lib\libdmumps.a" ^ + -DMUMPS_COMMON_LIBRARY="${{github.workspace}}\deps\lib\libmumps_common.a" ^ + -DMUMPS_PORD_LIBRARY="${{github.workspace}}\deps\lib\libpord.a" ^ + -DMUMPS_MPISEQ_LIBRARY="${{github.workspace}}\deps\lib\libmpiseq.a" ^ + -DBLAS_LIBRARIES="${{github.workspace}}\deps\lib\libblas.a" ^ + -DLAPACK_LIBRARIES="${{github.workspace}}\deps\lib\liblapack.a" ^ + -DHIGHS_DIR="${{github.workspace}}\deps\highs\lib\cmake\highs" ^ + -DBUILD_STATIC_LIBS=ON ^ -DBUILD_SHARED_LIBS=ON . - name: Build shell: bash # Build your program with the given configuration - run: cmake --build ${WORKSPACE}/build --config ${{env.BUILD_TYPE}} + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} From 850e0afc9615bd38ea0ad8e480d8ffafa18c5966 Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Thu, 28 Aug 2025 10:58:58 +0200 Subject: [PATCH 06/26] Removed "" --- .github/workflows/build-windows.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 788598950..a315f975c 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -64,19 +64,19 @@ jobs: shell: cmd run: | cmake -G "MinGW Makefiles" ^ - -B "${{github.workspace}}\build" ^ + -B ${{github.workspace}}\build ^ -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} ^ - -DMUMPS_INCLUDE_DIR="${{github.workspace}}\deps\include" ^ - -DMETIS_INCLUDE_DIR="${{github.workspace}}\deps\include" ^ - -DBQPD="${{github.workspace}}\deps\lib\libbqpd.a" ^ - -DMETIS_LIBRARY="${{github.workspace}}\deps\lib\libmetis.a" ^ - -DMUMPS_LIBRARY="${{github.workspace}}\deps\lib\libdmumps.a" ^ - -DMUMPS_COMMON_LIBRARY="${{github.workspace}}\deps\lib\libmumps_common.a" ^ - -DMUMPS_PORD_LIBRARY="${{github.workspace}}\deps\lib\libpord.a" ^ - -DMUMPS_MPISEQ_LIBRARY="${{github.workspace}}\deps\lib\libmpiseq.a" ^ - -DBLAS_LIBRARIES="${{github.workspace}}\deps\lib\libblas.a" ^ - -DLAPACK_LIBRARIES="${{github.workspace}}\deps\lib\liblapack.a" ^ - -DHIGHS_DIR="${{github.workspace}}\deps\highs\lib\cmake\highs" ^ + -DMUMPS_INCLUDE_DIR=${{github.workspace}}\deps\include ^ + -DMETIS_INCLUDE_DIR=${{github.workspace}}\deps\include ^ + -DBQPD=${{github.workspace}}\deps\lib\libbqpd.a ^ + -DMETIS_LIBRARY=${{github.workspace}}\deps\lib\libmetis.a ^ + -DMUMPS_LIBRARY=${{github.workspace}}\deps\lib\libdmumps.a ^ + -DMUMPS_COMMON_LIBRARY=${{github.workspace}}\deps\lib\libmumps_common.a ^ + -DMUMPS_PORD_LIBRARY=${{github.workspace}}\deps\lib\libpord.a ^ + -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}\deps\lib\libmpiseq.a ^ + -DBLAS_LIBRARIES=${{github.workspace}}\deps\lib\libblas.a ^ + -DLAPACK_LIBRARIES=${{github.workspace}}\deps\lib\liblapack.a ^ + -DHIGHS_DIR=${{github.workspace}}\deps\highs\lib\cmake\highs ^ -DBUILD_STATIC_LIBS=ON ^ -DBUILD_SHARED_LIBS=ON . From aca90101cfc5c2d1fd24768759422862a55def60 Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Thu, 28 Aug 2025 11:01:27 +0200 Subject: [PATCH 07/26] Fixed build-windows.yml --- .github/workflows/build-windows.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index a315f975c..0aa926b38 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -81,6 +81,5 @@ jobs: -DBUILD_SHARED_LIBS=ON . - name: Build - shell: bash # Build your program with the given configuration run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} From d3a9c338c8c0721cd4a01651f571eb59c21f4ebf Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Thu, 28 Aug 2025 11:05:53 +0200 Subject: [PATCH 08/26] Trying a different path for highs in build-macos.yml --- .github/workflows/build-macos.yml | 13 +++---------- .github/workflows/build-windows.yml | 2 +- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 2cd799813..c2348844e 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -29,16 +29,9 @@ jobs: strategy: fail-fast: false matrix: - # we want the combination (macos-13, x64) + (macos-latest, arm64) - os: [macos-13, macos-latest] - architecture: [arm64, x64] + os: [macos-13] + architecture: [x64] compiler: [gcc] - exclude: - # macos-latest only works with arm64 architecture - - os: macos-latest - architecture: x64 - - os: macos-13 - architecture: arm64 steps: - name: Checkout repository @@ -83,7 +76,7 @@ jobs: -DMUMPS_COMMON_LIBRARY=${{github.workspace}}/deps/lib/libmumps_common.a \ -DMUMPS_PORD_LIBRARY=${{github.workspace}}/deps/lib/libpord.a \ -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}/deps/lib/libmpiseq.a \ - -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \ + -DHIGHS_DIR=${{github.workspace}}/deps/highs \ -DBLAS_LIBRARIES=${{github.workspace}}/deps/lib/libblas.a \ -DLAPACK_LIBRARIES=${{github.workspace}}/deps/lib/liblapack.a \ -DBUILD_STATIC_LIBS=ON \ diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 0aa926b38..de405cbfc 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -82,4 +82,4 @@ jobs: - name: Build # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j4 From 3bb46f748d9fcb7677ad4b291b85ec3a94bde7fb Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Thu, 28 Aug 2025 11:10:45 +0200 Subject: [PATCH 09/26] Fixed path to highs, temporarily removed blas and lapack --- .github/workflows/build-macos.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index c2348844e..5692fac37 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -76,12 +76,10 @@ jobs: -DMUMPS_COMMON_LIBRARY=${{github.workspace}}/deps/lib/libmumps_common.a \ -DMUMPS_PORD_LIBRARY=${{github.workspace}}/deps/lib/libpord.a \ -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}/deps/lib/libmpiseq.a \ - -DHIGHS_DIR=${{github.workspace}}/deps/highs \ - -DBLAS_LIBRARIES=${{github.workspace}}/deps/lib/libblas.a \ - -DLAPACK_LIBRARIES=${{github.workspace}}/deps/lib/liblapack.a \ + -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \ -DBUILD_STATIC_LIBS=ON \ -DBUILD_SHARED_LIBS=ON . - name: Build # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} \ No newline at end of file + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j4 \ No newline at end of file From e898b665c7c6a3279c4e5d67e1e1d59a57ce0fbb Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Thu, 28 Aug 2025 11:24:12 +0200 Subject: [PATCH 10/26] Fixed path in build-macos.yml and unit-tests-linux.yml, removed blas and lapack in build-windows.yml --- .github/workflows/build-macos.yml | 2 ++ .github/workflows/build-windows.yml | 2 -- .github/workflows/unit-tests-linux.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 5692fac37..8871bfc9c 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -77,6 +77,8 @@ jobs: -DMUMPS_PORD_LIBRARY=${{github.workspace}}/deps/lib/libpord.a \ -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}/deps/lib/libmpiseq.a \ -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \ + -DBLAS_LIBRARIES=${{github.workspace}}/deps/lib/libblas.a \ + -DLAPACK_LIBRARIES=${{github.workspace}}/deps/lib/liblapack.a \ -DBUILD_STATIC_LIBS=ON \ -DBUILD_SHARED_LIBS=ON . diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index de405cbfc..88d0f4865 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -74,8 +74,6 @@ jobs: -DMUMPS_COMMON_LIBRARY=${{github.workspace}}\deps\lib\libmumps_common.a ^ -DMUMPS_PORD_LIBRARY=${{github.workspace}}\deps\lib\libpord.a ^ -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}\deps\lib\libmpiseq.a ^ - -DBLAS_LIBRARIES=${{github.workspace}}\deps\lib\libblas.a ^ - -DLAPACK_LIBRARIES=${{github.workspace}}\deps\lib\liblapack.a ^ -DHIGHS_DIR=${{github.workspace}}\deps\highs\lib\cmake\highs ^ -DBUILD_STATIC_LIBS=ON ^ -DBUILD_SHARED_LIBS=ON . diff --git a/.github/workflows/unit-tests-linux.yml b/.github/workflows/unit-tests-linux.yml index b9b957f96..ea4c6c83a 100644 --- a/.github/workflows/unit-tests-linux.yml +++ b/.github/workflows/unit-tests-linux.yml @@ -61,7 +61,7 @@ jobs: mkdir deps tar -xzvf BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz -C deps tar -xzvf MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz -C deps - tar -xzvf HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz -C deps + tar -xzvf HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz -C deps/highs - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. @@ -78,7 +78,7 @@ jobs: -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}/deps/lib/libmpiseq.a \ -DBLAS_LIBRARIES=${{github.workspace}}/deps/lib/libblas.a \ -DLAPACK_LIBRARIES=${{github.workspace}}/deps/lib/liblapack.a \ - -DHIGHS_DIR=${{github.workspace}}/deps \ + -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \ -DBUILD_STATIC_LIBS=ON \ -DBUILD_SHARED_LIBS=ON . From ae9288eb1273b3be5c501921aa60d6e691c26980 Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Thu, 28 Aug 2025 11:25:50 +0200 Subject: [PATCH 11/26] Fixed unit-tests-linux.yml --- .github/workflows/unit-tests-linux.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/unit-tests-linux.yml b/.github/workflows/unit-tests-linux.yml index ea4c6c83a..df6f06452 100644 --- a/.github/workflows/unit-tests-linux.yml +++ b/.github/workflows/unit-tests-linux.yml @@ -59,6 +59,7 @@ jobs: wget https://github.com/amontoison/MUMPS_static_jll.jl/releases/download/MUMPS_static-v${VERSION_MUMPS}%2B0/MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz wget https://github.com/amontoison/HiGHS_static_jll.jl/releases/download/HiGHS_static-v${VERSION_HIGHS}%2B0/HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz mkdir deps + mkdir deps/highs tar -xzvf BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz -C deps tar -xzvf MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz -C deps tar -xzvf HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz -C deps/highs From c52f0c4d0db7ebc574c61a42268536d80f026ad8 Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Thu, 28 Aug 2025 11:55:31 +0200 Subject: [PATCH 12/26] Replaced GCC with Clang in build-macos.yml --- .github/workflows/build-macos.yml | 6 +++--- .github/workflows/build-windows.yml | 2 ++ .github/workflows/unit-tests-linux.yml | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 8871bfc9c..4eadd918d 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -31,7 +31,7 @@ jobs: matrix: os: [macos-13] architecture: [x64] - compiler: [gcc] + compiler: [clang] steps: - name: Checkout repository @@ -60,8 +60,8 @@ jobs: - name: Install Fortran compiler uses: fortran-lang/setup-fortran@main with: - compiler: 'gcc' - version: '13' + compiler: 'lfortran' + version: '0.45.0' - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 88d0f4865..8e3f8903f 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -75,6 +75,8 @@ jobs: -DMUMPS_PORD_LIBRARY=${{github.workspace}}\deps\lib\libpord.a ^ -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}\deps\lib\libmpiseq.a ^ -DHIGHS_DIR=${{github.workspace}}\deps\highs\lib\cmake\highs ^ + -DBLAS_LIBRARIES=${{github.workspace}}\deps\lib\libblas.a ^ + -DLAPACK_LIBRARIES=${{github.workspace}}\deps\lib\liblapack.a ^ -DBUILD_STATIC_LIBS=ON ^ -DBUILD_SHARED_LIBS=ON . diff --git a/.github/workflows/unit-tests-linux.yml b/.github/workflows/unit-tests-linux.yml index df6f06452..f0b32c4bf 100644 --- a/.github/workflows/unit-tests-linux.yml +++ b/.github/workflows/unit-tests-linux.yml @@ -85,7 +85,7 @@ jobs: - name: Build # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --target run_unotest --config ${{env.BUILD_TYPE}} + run: cmake --build ${{github.workspace}}/build --target run_unotest --config ${{env.BUILD_TYPE}} -j4 - name: Test working-directory: ${{github.workspace}}/build From d4027a504529f11bcff7689ccc572e8e99f499f1 Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Thu, 28 Aug 2025 12:10:59 +0200 Subject: [PATCH 13/26] Reverted to GCC --- .github/workflows/build-macos.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 4eadd918d..8871bfc9c 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -31,7 +31,7 @@ jobs: matrix: os: [macos-13] architecture: [x64] - compiler: [clang] + compiler: [gcc] steps: - name: Checkout repository @@ -60,8 +60,8 @@ jobs: - name: Install Fortran compiler uses: fortran-lang/setup-fortran@main with: - compiler: 'lfortran' - version: '0.45.0' + compiler: 'gcc' + version: '13' - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. From 66124202e9add1e600915e7cb570fa653de29b5f Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Wed, 8 Oct 2025 10:40:37 +0200 Subject: [PATCH 14/26] Trying different path for HIGHS_DIR (had something similar when Sven visited) --- .github/workflows/build-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 8871bfc9c..049a4a4e3 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -76,7 +76,7 @@ jobs: -DMUMPS_COMMON_LIBRARY=${{github.workspace}}/deps/lib/libmumps_common.a \ -DMUMPS_PORD_LIBRARY=${{github.workspace}}/deps/lib/libpord.a \ -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}/deps/lib/libmpiseq.a \ - -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \ + -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib \ -DBLAS_LIBRARIES=${{github.workspace}}/deps/lib/libblas.a \ -DLAPACK_LIBRARIES=${{github.workspace}}/deps/lib/liblapack.a \ -DBUILD_STATIC_LIBS=ON \ From 1c00c615469ed46babb2883a042ab11d04b8118e Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Wed, 8 Oct 2025 10:48:36 +0200 Subject: [PATCH 15/26] Nope. Reverting --- .github/workflows/build-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 049a4a4e3..8871bfc9c 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -76,7 +76,7 @@ jobs: -DMUMPS_COMMON_LIBRARY=${{github.workspace}}/deps/lib/libmumps_common.a \ -DMUMPS_PORD_LIBRARY=${{github.workspace}}/deps/lib/libpord.a \ -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}/deps/lib/libmpiseq.a \ - -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib \ + -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \ -DBLAS_LIBRARIES=${{github.workspace}}/deps/lib/libblas.a \ -DLAPACK_LIBRARIES=${{github.workspace}}/deps/lib/liblapack.a \ -DBUILD_STATIC_LIBS=ON \ From d699e2c6674ab3e4f3a25a705e73b4c0def10800 Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Thu, 16 Oct 2025 19:59:27 +0200 Subject: [PATCH 16/26] build-macos.yml: trying on macOS arm64 with Clang --- .github/workflows/build-macos.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 8871bfc9c..7acf30ed3 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -29,9 +29,9 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-13] - architecture: [x64] - compiler: [gcc] + os: [macos-latest] + architecture: [arm64] + compiler: [clang] steps: - name: Checkout repository @@ -84,4 +84,4 @@ jobs: - name: Build # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j4 \ No newline at end of file + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} -j4 From bc4709872e07dc715fc502e0a013d17b0d7bec45 Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Thu, 16 Oct 2025 20:03:39 +0200 Subject: [PATCH 17/26] build-macos.yml: set Clang as C/C++ compiler --- .github/workflows/build-macos.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 7acf30ed3..62328eb14 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -68,6 +68,8 @@ jobs: # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type run: | cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ + -DCMAKE_C_COMPILER=clang \ + -DCMAKE_CPP_COMPILER=clang++ \ -DMUMPS_INCLUDE_DIR=${{github.workspace}}/deps/include \ -DMETIS_INCLUDE_DIR=${{github.workspace}}/deps/include \ -DBQPD=${{github.workspace}}/deps/lib/libbqpd.a \ From 2608427f43cbcef03d40afb5f206e7f7bdbca6c4 Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Thu, 16 Oct 2025 20:07:00 +0200 Subject: [PATCH 18/26] build-macos.yml: fixed typo --- .github/workflows/build-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 62328eb14..3eb1caab8 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -69,7 +69,7 @@ jobs: run: | cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ -DCMAKE_C_COMPILER=clang \ - -DCMAKE_CPP_COMPILER=clang++ \ + -DCMAKE_CXX_COMPILER=clang++ \ -DMUMPS_INCLUDE_DIR=${{github.workspace}}/deps/include \ -DMETIS_INCLUDE_DIR=${{github.workspace}}/deps/include \ -DBQPD=${{github.workspace}}/deps/lib/libbqpd.a \ From 403255772123ec8d8153342ccc220ff2510b0f2b Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Thu, 16 Oct 2025 20:10:32 +0200 Subject: [PATCH 19/26] build-macos.yml: trying without MUMPS --- .github/workflows/build-macos.yml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 3eb1caab8..7b23726e3 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -41,7 +41,6 @@ jobs: shell: bash run: | VERSION_BQPD="1.0.0" - VERSION_MUMPS="5.8.0" VERSION_HIGHS="1.11.0" if [[ "${{matrix.architecture}}" == "x64" ]]; then PLATFORM="x86_64-apple-darwin" @@ -49,12 +48,10 @@ jobs: PLATFORM="aarch64-apple-darwin" fi wget https://github.com/leyffer/BQPD_jll.jl/releases/download/BQPD-v${VERSION_BQPD}%2B0/BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz - wget https://github.com/amontoison/MUMPS_static_jll.jl/releases/download/MUMPS_static-v${VERSION_MUMPS}%2B0/MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz wget https://github.com/amontoison/HiGHS_static_jll.jl/releases/download/HiGHS_static-v${VERSION_HIGHS}%2B0/HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz mkdir deps mkdir deps/highs tar -xzvf BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz -C deps - tar -xzvf MUMPS_static.v${VERSION_MUMPS}.$PLATFORM-libgfortran5.tar.gz -C deps tar -xzvf HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz -C deps/highs - name: Install Fortran compiler @@ -70,17 +67,8 @@ jobs: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ - -DMUMPS_INCLUDE_DIR=${{github.workspace}}/deps/include \ - -DMETIS_INCLUDE_DIR=${{github.workspace}}/deps/include \ -DBQPD=${{github.workspace}}/deps/lib/libbqpd.a \ - -DMETIS_LIBRARY=${{github.workspace}}/deps/lib/libmetis.a \ - -DMUMPS_LIBRARY=${{github.workspace}}/deps/lib/libdmumps.a \ - -DMUMPS_COMMON_LIBRARY=${{github.workspace}}/deps/lib/libmumps_common.a \ - -DMUMPS_PORD_LIBRARY=${{github.workspace}}/deps/lib/libpord.a \ - -DMUMPS_MPISEQ_LIBRARY=${{github.workspace}}/deps/lib/libmpiseq.a \ -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \ - -DBLAS_LIBRARIES=${{github.workspace}}/deps/lib/libblas.a \ - -DLAPACK_LIBRARIES=${{github.workspace}}/deps/lib/liblapack.a \ -DBUILD_STATIC_LIBS=ON \ -DBUILD_SHARED_LIBS=ON . From 38584fa72d7c6c83e5fa9ab76924cc04aa46cd80 Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Fri, 17 Oct 2025 14:29:27 +0200 Subject: [PATCH 20/26] build-macos.yml: need macOS 14 for Fortran action --- .github/workflows/build-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 7b23726e3..d8f607144 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -29,7 +29,7 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-latest] + os: [macos-14] architecture: [arm64] compiler: [clang] From befc1404dd2e696e69dd743fd689e1d25bb474ad Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Fri, 17 Oct 2025 14:33:20 +0200 Subject: [PATCH 21/26] build-macos.yml: set explicit Fortran compiler --- .github/workflows/build-macos.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index d8f607144..654f703f8 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -67,6 +67,7 @@ jobs: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ + -DCMAKE_Fortran_COMPILER=fc \ -DBQPD=${{github.workspace}}/deps/lib/libbqpd.a \ -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \ -DBUILD_STATIC_LIBS=ON \ From 412323d2696e675dba7a018ad48e2a632c137ea4 Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Fri, 17 Oct 2025 14:36:25 +0200 Subject: [PATCH 22/26] Trying lfortran --- .github/workflows/build-macos.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 654f703f8..708e7be71 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -57,8 +57,8 @@ jobs: - name: Install Fortran compiler uses: fortran-lang/setup-fortran@main with: - compiler: 'gcc' - version: '13' + compiler: 'lfortran' + version: '0.45.0' - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. From ff9b17cc67f85e3cd18a2424c28bbaa83ed78306 Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Fri, 17 Oct 2025 14:39:49 +0200 Subject: [PATCH 23/26] Trying explicit lfortran command --- .github/workflows/build-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 708e7be71..5be8a0e17 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -67,7 +67,7 @@ jobs: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_Fortran_COMPILER=fc \ + -DCMAKE_Fortran_COMPILER=lfortran \ -DBQPD=${{github.workspace}}/deps/lib/libbqpd.a \ -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \ -DBUILD_STATIC_LIBS=ON \ From ecd6b483ba2b299f8030fa04fefefba546440aae Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Fri, 17 Oct 2025 14:44:19 +0200 Subject: [PATCH 24/26] Trying intel-classic (ifort) --- .github/workflows/build-macos.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 5be8a0e17..8573dfe27 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -57,8 +57,8 @@ jobs: - name: Install Fortran compiler uses: fortran-lang/setup-fortran@main with: - compiler: 'lfortran' - version: '0.45.0' + compiler: 'intel-classic' + version: '2021.10' - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. @@ -67,7 +67,7 @@ jobs: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_Fortran_COMPILER=lfortran \ + -DCMAKE_Fortran_COMPILER=ifort \ -DBQPD=${{github.workspace}}/deps/lib/libbqpd.a \ -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \ -DBUILD_STATIC_LIBS=ON \ From fd152774da0272c62eab0a3e72491da3f2c57446 Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Fri, 17 Oct 2025 14:52:14 +0200 Subject: [PATCH 25/26] Trying with GCC 15...... --- .github/workflows/build-macos.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 8573dfe27..749ba6b10 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -57,8 +57,8 @@ jobs: - name: Install Fortran compiler uses: fortran-lang/setup-fortran@main with: - compiler: 'intel-classic' - version: '2021.10' + compiler: 'gcc' + version: '15' - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. @@ -67,7 +67,7 @@ jobs: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_Fortran_COMPILER=ifort \ + -DCMAKE_Fortran_COMPILER=gfortran \ -DBQPD=${{github.workspace}}/deps/lib/libbqpd.a \ -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \ -DBUILD_STATIC_LIBS=ON \ From f8eca9dfd053542ea00ee3c5888aac0cabc968f6 Mon Sep 17 00:00:00 2001 From: Charlie Vanaret Date: Fri, 17 Oct 2025 15:45:47 +0200 Subject: [PATCH 26/26] Removed BQPD --- .github/workflows/build-macos.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 749ba6b10..96e488de2 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -40,26 +40,17 @@ jobs: - name: Download dependencies shell: bash run: | - VERSION_BQPD="1.0.0" VERSION_HIGHS="1.11.0" if [[ "${{matrix.architecture}}" == "x64" ]]; then PLATFORM="x86_64-apple-darwin" else PLATFORM="aarch64-apple-darwin" fi - wget https://github.com/leyffer/BQPD_jll.jl/releases/download/BQPD-v${VERSION_BQPD}%2B0/BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz wget https://github.com/amontoison/HiGHS_static_jll.jl/releases/download/HiGHS_static-v${VERSION_HIGHS}%2B0/HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz mkdir deps mkdir deps/highs - tar -xzvf BQPD.v${VERSION_BQPD}.$PLATFORM-libgfortran5.tar.gz -C deps tar -xzvf HiGHS_static.v${VERSION_HIGHS}.$PLATFORM-libgfortran5.tar.gz -C deps/highs - - name: Install Fortran compiler - uses: fortran-lang/setup-fortran@main - with: - compiler: 'gcc' - version: '15' - - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type @@ -67,8 +58,6 @@ jobs: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ - -DCMAKE_Fortran_COMPILER=gfortran \ - -DBQPD=${{github.workspace}}/deps/lib/libbqpd.a \ -DHIGHS_DIR=${{github.workspace}}/deps/highs/lib/cmake/highs \ -DBUILD_STATIC_LIBS=ON \ -DBUILD_SHARED_LIBS=ON .