From b5d181af53be6ea21cf4206842a9dcf372df8ae8 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 10:32:25 +0200 Subject: [PATCH 01/26] Add Action for MacOS installation --- .github/workflows/build-and-test-macos.yml | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .github/workflows/build-and-test-macos.yml diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml new file mode 100644 index 00000000..bcec03a7 --- /dev/null +++ b/.github/workflows/build-and-test-macos.yml @@ -0,0 +1,61 @@ +name: Build and Test Python bindings on macOS +on: + push: + branches-ignore: + - '**' + workflow_dispatch: + +jobs: + build: + name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} + runs-on: [self-hosted, macOS] + strategy: + fail-fast: false + matrix: + include: + - CONFIG: MPIPETSc + CXX: 'clang++' + TYPE: Debug + steps: + - name: Generate build directory + run: mkdir -p build + - name: Configure + working-directory: build + env: + CXX: ${{ matrix.CXX }} + CXXFLAGS: "-Wall" + MPI: ${{ contains(matrix.CONFIG, 'MPI') }} + PETSc: ${{ contains(matrix.CONFIG, 'PETSc') }} + run: | + cmake --version + cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=${{ matrix.TYPE }} -DPRECICE_MPICommunication=${{ env.MPI }} -DPRECICE_PETScMapping=${{ env.PETSc }} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. + - uses: actions/upload-artifact@v2 + if: failure() + with: + name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CMakeCache + path: build/CMakeCache.txt + - uses: actions/upload-artifact@v2 + if: failure() + with: + name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CMakeLogs + path: 'build/CMakeFiles/*.log' + - uses: actions/upload-artifact@v2 + if: failure() + with: + name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CompileCommands + path: build/compile_commands.json + - name: Compile + working-directory: build + run: | + make -j $(sysctl -n hw.ncpu) + - uses: actions/upload-artifact@v2 + if: failure() + with: + name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} TestOutput + path: build/TestOutput/ + - name: Install & upgrade pip3 + run: python -m ensurepip --upgrade + - name: Run pip install + run: pip3 install --user . + - name: Run pip install + run: python3 -c "import precice" \ No newline at end of file From 1c2727f83bf6fc2e0ea35271043e1481a6ac96fd Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 10:41:27 +0200 Subject: [PATCH 02/26] Update runs-on target --- .github/workflows/build-and-test-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index bcec03a7..c07a4cca 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -8,7 +8,7 @@ on: jobs: build: name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} - runs-on: [self-hosted, macOS] + runs-on: macos-11 strategy: fail-fast: false matrix: From 122d8531e3aaa0c9a5c7fe0ff982d8c6d8886514 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 10:42:43 +0200 Subject: [PATCH 03/26] Update action triggers --- .github/workflows/build-and-test-macos.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index c07a4cca..cb1da7b7 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -1,9 +1,11 @@ name: Build and Test Python bindings on macOS on: push: - branches-ignore: - - '**' - workflow_dispatch: + branches: + - "*" + pull_request: + branches: + - "*" jobs: build: From 488ee9f1551d8e2a911ab774477c164a18a6e76d Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 10:53:25 +0200 Subject: [PATCH 04/26] Checkout preCICE --- .github/workflows/build-and-test-macos.yml | 91 ++++++++++++---------- 1 file changed, 49 insertions(+), 42 deletions(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index cb1da7b7..d8923081 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -19,45 +19,52 @@ jobs: CXX: 'clang++' TYPE: Debug steps: - - name: Generate build directory - run: mkdir -p build - - name: Configure - working-directory: build - env: - CXX: ${{ matrix.CXX }} - CXXFLAGS: "-Wall" - MPI: ${{ contains(matrix.CONFIG, 'MPI') }} - PETSc: ${{ contains(matrix.CONFIG, 'PETSc') }} - run: | - cmake --version - cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=${{ matrix.TYPE }} -DPRECICE_MPICommunication=${{ env.MPI }} -DPRECICE_PETScMapping=${{ env.PETSc }} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. - - uses: actions/upload-artifact@v2 - if: failure() - with: - name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CMakeCache - path: build/CMakeCache.txt - - uses: actions/upload-artifact@v2 - if: failure() - with: - name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CMakeLogs - path: 'build/CMakeFiles/*.log' - - uses: actions/upload-artifact@v2 - if: failure() - with: - name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CompileCommands - path: build/compile_commands.json - - name: Compile - working-directory: build - run: | - make -j $(sysctl -n hw.ncpu) - - uses: actions/upload-artifact@v2 - if: failure() - with: - name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} TestOutput - path: build/TestOutput/ - - name: Install & upgrade pip3 - run: python -m ensurepip --upgrade - - name: Run pip install - run: pip3 install --user . - - name: Run pip install - run: python3 -c "import precice" \ No newline at end of file + - name: Check out preCICE + uses: actions/checkout@v3 + with: + name: precice/precice + ref: 'master' + - name: Generate build directory + run: | + ls -lah + mkdir -p precice/build + - name: Configure + working-directory: precice/build + env: + CXX: ${{ matrix.CXX }} + CXXFLAGS: "-Wall" + MPI: ${{ contains(matrix.CONFIG, 'MPI') }} + PETSc: ${{ contains(matrix.CONFIG, 'PETSc') }} + run: | + cmake --version + cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=${{ matrix.TYPE }} -DPRECICE_MPICommunication=${{ env.MPI }} -DPRECICE_PETScMapping=${{ env.PETSc }} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. + - uses: actions/upload-artifact@v2 + if: failure() + with: + name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CMakeCache + path: precice/build/CMakeCache.txt + - uses: actions/upload-artifact@v2 + if: failure() + with: + name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CMakeLogs + path: 'precice/build/CMakeFiles/*.log' + - uses: actions/upload-artifact@v2 + if: failure() + with: + name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CompileCommands + path: precice/build/compile_commands.json + - name: Compile + working-directory: build + run: | + make -j $(sysctl -n hw.ncpu) + - uses: actions/upload-artifact@v2 + if: failure() + with: + name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} TestOutput + path: precice/build/TestOutput/ + - name: Install & upgrade pip3 + run: python -m ensurepip --upgrade + - name: Run pip install + run: pip3 install --user . + - name: Run pip install + run: python3 -c "import precice" \ No newline at end of file From 5fedacdfebf39d6911b5a8a648c038d9d5b5fd02 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 11:50:02 +0200 Subject: [PATCH 05/26] Add checkout of Python bindings repository --- .github/workflows/build-and-test-macos.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index d8923081..2dd1c391 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -24,6 +24,7 @@ jobs: with: name: precice/precice ref: 'master' + path: 'precice' - name: Generate build directory run: | ls -lah @@ -62,6 +63,8 @@ jobs: with: name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} TestOutput path: precice/build/TestOutput/ + - name: Check out Python bindings Repository + uses: actions/checkout@v3 - name: Install & upgrade pip3 run: python -m ensurepip --upgrade - name: Run pip install From dcd64d42bd3dc7af3bd8eb053aa0dda723e322dd Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 11:52:06 +0200 Subject: [PATCH 06/26] Fix YAML file formatting --- .github/workflows/build-and-test-macos.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index 2dd1c391..b54621b3 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -27,8 +27,8 @@ jobs: path: 'precice' - name: Generate build directory run: | - ls -lah - mkdir -p precice/build + ls -lah + mkdir -p precice/build - name: Configure working-directory: precice/build env: From 5657e8523bdf1723702cd48caab4d2bb8de2ba74 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 11:53:14 +0200 Subject: [PATCH 07/26] Print directories --- .github/workflows/build-and-test-macos.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index b54621b3..c38b5834 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -28,6 +28,7 @@ jobs: - name: Generate build directory run: | ls -lah + ls -lah precice mkdir -p precice/build - name: Configure working-directory: precice/build From f3ad4d71cebbbb40ec29bd0efe3834a55d2bf7c0 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 11:54:48 +0200 Subject: [PATCH 08/26] Change preCICE checkout routine --- .github/workflows/build-and-test-macos.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index c38b5834..57951cca 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -24,7 +24,6 @@ jobs: with: name: precice/precice ref: 'master' - path: 'precice' - name: Generate build directory run: | ls -lah @@ -64,8 +63,6 @@ jobs: with: name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} TestOutput path: precice/build/TestOutput/ - - name: Check out Python bindings Repository - uses: actions/checkout@v3 - name: Install & upgrade pip3 run: python -m ensurepip --upgrade - name: Run pip install From bc72ab0b82666d9c060af358cd74112ec488b728 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 11:56:55 +0200 Subject: [PATCH 09/26] Change preCICE repo checkout path --- .github/workflows/build-and-test-macos.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index 57951cca..459ce02c 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -24,13 +24,14 @@ jobs: with: name: precice/precice ref: 'master' + path: 'precice-repo' - name: Generate build directory run: | ls -lah - ls -lah precice - mkdir -p precice/build + ls -lah precice-repo + mkdir -p precice-repo/build - name: Configure - working-directory: precice/build + working-directory: precice-repo/build env: CXX: ${{ matrix.CXX }} CXXFLAGS: "-Wall" @@ -43,17 +44,17 @@ jobs: if: failure() with: name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CMakeCache - path: precice/build/CMakeCache.txt + path: precice-repo/build/CMakeCache.txt - uses: actions/upload-artifact@v2 if: failure() with: name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CMakeLogs - path: 'precice/build/CMakeFiles/*.log' + path: 'precice-repo/build/CMakeFiles/*.log' - uses: actions/upload-artifact@v2 if: failure() with: name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CompileCommands - path: precice/build/compile_commands.json + path: precice-repo/build/compile_commands.json - name: Compile working-directory: build run: | @@ -62,7 +63,7 @@ jobs: if: failure() with: name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} TestOutput - path: precice/build/TestOutput/ + path: precice-repo/build/TestOutput/ - name: Install & upgrade pip3 run: python -m ensurepip --upgrade - name: Run pip install From 94a7463522a8f743bac405d5be8c5ba591339a89 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 11:58:36 +0200 Subject: [PATCH 10/26] Actually checkout correct preCICE repository --- .github/workflows/build-and-test-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index 459ce02c..c61a9051 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -22,7 +22,7 @@ jobs: - name: Check out preCICE uses: actions/checkout@v3 with: - name: precice/precice + repository: precice/precice ref: 'master' path: 'precice-repo' - name: Generate build directory From 921d4f665741e5da24e80d5a49a979cd59234a8c Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 11:59:14 +0200 Subject: [PATCH 11/26] Checkout preCICE bindings --- .github/workflows/build-and-test-macos.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index c61a9051..2a8b196c 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -64,6 +64,8 @@ jobs: with: name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} TestOutput path: precice-repo/build/TestOutput/ + - name: Check out Python Bindings + uses: actions/checkout@v3 - name: Install & upgrade pip3 run: python -m ensurepip --upgrade - name: Run pip install From 0916d471d5259f5f492f931f1355b1eb572555ce Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 12:03:29 +0200 Subject: [PATCH 12/26] Install preCICE dependencies --- .github/workflows/build-and-test-macos.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index 2a8b196c..ef8934df 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -10,7 +10,7 @@ on: jobs: build: name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} - runs-on: macos-11 + runs-on: macos-latest strategy: fail-fast: false matrix: @@ -19,6 +19,8 @@ jobs: CXX: 'clang++' TYPE: Debug steps: + - name: Install preCICE dependencies + run: brew install cmake eigen libxml2 boost petsc openmpi python3 numpy - name: Check out preCICE uses: actions/checkout@v3 with: From 9716e02f2babf48d8e3323de52379cd457ac42ef Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 12:09:26 +0200 Subject: [PATCH 13/26] Fix working dir for build phase --- .github/workflows/build-and-test-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index ef8934df..bfab6a20 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -58,7 +58,7 @@ jobs: name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CompileCommands path: precice-repo/build/compile_commands.json - name: Compile - working-directory: build + working-directory: precice-repo/build run: | make -j $(sysctl -n hw.ncpu) - uses: actions/upload-artifact@v2 From 31ed091a60725bf54a4d361e1a842f61b3b9f1ee Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 14:06:44 +0200 Subject: [PATCH 14/26] Install preCICE to /usr/local --- .github/workflows/build-and-test-macos.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index bfab6a20..6da1fb3e 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -41,7 +41,7 @@ jobs: PETSc: ${{ contains(matrix.CONFIG, 'PETSc') }} run: | cmake --version - cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=${{ matrix.TYPE }} -DPRECICE_MPICommunication=${{ env.MPI }} -DPRECICE_PETScMapping=${{ env.PETSc }} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. + cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=${{ matrix.TYPE }} -DPRECICE_MPICommunication=${{ env.MPI }} -DPRECICE_PETScMapping=${{ env.PETSc }} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. - uses: actions/upload-artifact@v2 if: failure() with: @@ -69,8 +69,8 @@ jobs: - name: Check out Python Bindings uses: actions/checkout@v3 - name: Install & upgrade pip3 - run: python -m ensurepip --upgrade + run: python3 -m ensurepip --upgrade - name: Run pip install run: pip3 install --user . - - name: Run pip install + - name: Import Python Bindings run: python3 -c "import precice" \ No newline at end of file From a5a68c88240a0afd9994a2b8357f9946a139efe8 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 14:34:30 +0200 Subject: [PATCH 15/26] Export CPATH --- .github/workflows/build-and-test-macos.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index 6da1fb3e..492eee42 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -41,7 +41,7 @@ jobs: PETSc: ${{ contains(matrix.CONFIG, 'PETSc') }} run: | cmake --version - cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=${{ matrix.TYPE }} -DPRECICE_MPICommunication=${{ env.MPI }} -DPRECICE_PETScMapping=${{ env.PETSc }} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. + cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=${{ matrix.TYPE }} -DPRECICE_MPICommunication=${{ env.MPI }} -DPRECICE_PETScMapping=${{ env.PETSc }} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. - uses: actions/upload-artifact@v2 if: failure() with: @@ -71,6 +71,8 @@ jobs: - name: Install & upgrade pip3 run: python3 -m ensurepip --upgrade - name: Run pip install - run: pip3 install --user . + run: | + export CPLUS_INCLUDE_PATH="/usr/include" + pip3 install --user . - name: Import Python Bindings run: python3 -c "import precice" \ No newline at end of file From 6120046699c4e875728964b7b41338f61c7960a6 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 14:35:32 +0200 Subject: [PATCH 16/26] Rename action --- .github/workflows/build-and-test-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index 492eee42..3003c91d 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -1,4 +1,4 @@ -name: Build and Test Python bindings on macOS +name: Build and Test (macOS) on: push: branches: From 0968261b0c2c3e5d9032b413e30d94893bacc502 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 14:51:42 +0200 Subject: [PATCH 17/26] Actually install preCICE --- .github/workflows/build-and-test-macos.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index 3003c91d..17f319cd 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -57,10 +57,11 @@ jobs: with: name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CompileCommands path: precice-repo/build/compile_commands.json - - name: Compile + - name: Compile and install working-directory: precice-repo/build run: | make -j $(sysctl -n hw.ncpu) + make install - uses: actions/upload-artifact@v2 if: failure() with: @@ -72,7 +73,6 @@ jobs: run: python3 -m ensurepip --upgrade - name: Run pip install run: | - export CPLUS_INCLUDE_PATH="/usr/include" pip3 install --user . - name: Import Python Bindings run: python3 -c "import precice" \ No newline at end of file From c03c333ad1d1dbc2e8dbdf167a0c328621a3ef50 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 15:12:44 +0200 Subject: [PATCH 18/26] Install into /usr/local --- .github/workflows/build-and-test-macos.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index 17f319cd..33dd70db 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -32,7 +32,7 @@ jobs: ls -lah ls -lah precice-repo mkdir -p precice-repo/build - - name: Configure + - name: Configure preCICE working-directory: precice-repo/build env: CXX: ${{ matrix.CXX }} @@ -41,7 +41,7 @@ jobs: PETSc: ${{ contains(matrix.CONFIG, 'PETSc') }} run: | cmake --version - cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=${{ matrix.TYPE }} -DPRECICE_MPICommunication=${{ env.MPI }} -DPRECICE_PETScMapping=${{ env.PETSc }} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. + cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=${{ matrix.TYPE }} -DPRECICE_MPICommunication=${{ env.MPI }} -DPRECICE_PETScMapping=${{ env.PETSc }} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. - uses: actions/upload-artifact@v2 if: failure() with: @@ -57,7 +57,7 @@ jobs: with: name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} CompileCommands path: precice-repo/build/compile_commands.json - - name: Compile and install + - name: Compile and install preCICE working-directory: precice-repo/build run: | make -j $(sysctl -n hw.ncpu) @@ -67,12 +67,12 @@ jobs: with: name: ${{ format('{0} {1} {2}', matrix.CXX, matrix.CONFIG, matrix.TYPE) }} TestOutput path: precice-repo/build/TestOutput/ - - name: Check out Python Bindings + - name: Check out Python binding repository uses: actions/checkout@v3 - name: Install & upgrade pip3 run: python3 -m ensurepip --upgrade - - name: Run pip install + - name: Install bindings using pip run: | pip3 install --user . - - name: Import Python Bindings + - name: Import Python bindings run: python3 -c "import precice" \ No newline at end of file From 4af497b0e210748d125fe3c2ffd7afffbd1b3a59 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 15:32:21 +0200 Subject: [PATCH 19/26] Export CPLUS_INCLUDE_PATH --- .github/workflows/build-and-test-macos.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index 33dd70db..ef9f8130 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -73,6 +73,7 @@ jobs: run: python3 -m ensurepip --upgrade - name: Install bindings using pip run: | + export CPLUS_INCLUDE_PATH="/usr/local/include":${CPLUS_INCLUDE_PATH} pip3 install --user . - name: Import Python bindings run: python3 -c "import precice" \ No newline at end of file From 893d5a80b8786e1ab481cde9e8a73f451c466705 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 16:07:57 +0200 Subject: [PATCH 20/26] Export DYLD_LIBRARY_PATH --- .github/workflows/build-and-test-macos.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index ef9f8130..b44db6b1 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -74,6 +74,7 @@ jobs: - name: Install bindings using pip run: | export CPLUS_INCLUDE_PATH="/usr/local/include":${CPLUS_INCLUDE_PATH} + export DYLD_LIBRARY_PATH="/usr/local/lib":${DYLD_LIBRARY_PATH} pip3 install --user . - name: Import Python bindings run: python3 -c "import precice" \ No newline at end of file From d4e497bca2ccf58ebf8ff12844841cf7bf09e312 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 16:30:45 +0200 Subject: [PATCH 21/26] Extend PKG_CONFIG_PATH --- .github/workflows/build-and-test-macos.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index b44db6b1..9951da82 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -73,8 +73,7 @@ jobs: run: python3 -m ensurepip --upgrade - name: Install bindings using pip run: | - export CPLUS_INCLUDE_PATH="/usr/local/include":${CPLUS_INCLUDE_PATH} - export DYLD_LIBRARY_PATH="/usr/local/lib":${DYLD_LIBRARY_PATH} + export PKG_CONFIG_PATH=""/usr/local/lib/precice/pkgconfig":${PKG_CONFIG_PATH} pip3 install --user . - name: Import Python bindings run: python3 -c "import precice" \ No newline at end of file From dec59c5b1d7ca1e8d55e3bc7adaee44e904ef987 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 16:31:19 +0200 Subject: [PATCH 22/26] Use pkgconfig to get link and compile flags --- pyproject.toml | 2 +- setup.py | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0e050577..a618c480 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,3 @@ [build-system] # PEP 518 - minimum build system requirements -requires = ["setuptools", "wheel", "Cython>=0.29", "packaging", "pip>=19.0.0", "numpy", "mpi4py"] +requires = ["setuptools", "wheel", "Cython>=0.29", "packaging", "pip>=19.0.0", "numpy", "mpi4py", "pkgconfig"] diff --git a/setup.py b/setup.py index b6efc9ff..325575fe 100644 --- a/setup.py +++ b/setup.py @@ -52,7 +52,7 @@ from Cython.Distutils.build_ext import new_build_ext as build_ext from Cython.Build import cythonize import numpy - +import pkgconfig # name of Interfacing API APPNAME = "pyprecice" @@ -65,12 +65,15 @@ def get_extensions(is_test): link_args = [] compile_args.append("-std=c++11") compile_args.append("-I{}".format(numpy.get_include())) + compile_args.append( pkgconfig.cflags('libprecice') ) + + #link_args.append( pkgconfig.libs('libprecice') ) bindings_sources = [os.path.join(PYTHON_BINDINGS_PATH, "cyprecice", "cyprecice" + ".pyx")] if not is_test: - link_args.append("-lprecice") + link_args.append( pkgconfig.libs('libprecice') ) if is_test: bindings_sources.append(os.path.join(PYTHON_BINDINGS_PATH, "test", "SolverInterface.cpp")) From ab065c8d61e7802f66a96034cd1029529d337cbf Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 16:51:48 +0200 Subject: [PATCH 23/26] Fix PKG_CONFIG_PATH --- .github/workflows/build-and-test-macos.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index 9951da82..d703c03d 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -73,7 +73,7 @@ jobs: run: python3 -m ensurepip --upgrade - name: Install bindings using pip run: | - export PKG_CONFIG_PATH=""/usr/local/lib/precice/pkgconfig":${PKG_CONFIG_PATH} + export PKG_CONFIG_PATH="/usr/local/lib/precice/pkgconfig":"${PKG_CONFIG_PATH}" pip3 install --user . - name: Import Python bindings run: python3 -c "import precice" \ No newline at end of file From fc154c904abb888a3483672f04011b8c90097b65 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 17:33:37 +0200 Subject: [PATCH 24/26] Export DYLD_LIBRARY_PATH for Python call --- .github/workflows/build-and-test-macos.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index d703c03d..1d194dce 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -76,4 +76,6 @@ jobs: export PKG_CONFIG_PATH="/usr/local/lib/precice/pkgconfig":"${PKG_CONFIG_PATH}" pip3 install --user . - name: Import Python bindings - run: python3 -c "import precice" \ No newline at end of file + run: | + export DYLD_LIBRARY_PATH="/usr/local/lib/":"${DYLD_LIBRARY_PATH}" + python3 -c "import precice" \ No newline at end of file From 93f7466f8d508c5ab8f9fda7176b3d8b080ddf62 Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 18:22:26 +0200 Subject: [PATCH 25/26] Revert changes that use pkgconfig --- pyproject.toml | 2 +- setup.py | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a618c480..0e050577 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,3 @@ [build-system] # PEP 518 - minimum build system requirements -requires = ["setuptools", "wheel", "Cython>=0.29", "packaging", "pip>=19.0.0", "numpy", "mpi4py", "pkgconfig"] +requires = ["setuptools", "wheel", "Cython>=0.29", "packaging", "pip>=19.0.0", "numpy", "mpi4py"] diff --git a/setup.py b/setup.py index 325575fe..b6efc9ff 100644 --- a/setup.py +++ b/setup.py @@ -52,7 +52,7 @@ from Cython.Distutils.build_ext import new_build_ext as build_ext from Cython.Build import cythonize import numpy -import pkgconfig + # name of Interfacing API APPNAME = "pyprecice" @@ -65,15 +65,12 @@ def get_extensions(is_test): link_args = [] compile_args.append("-std=c++11") compile_args.append("-I{}".format(numpy.get_include())) - compile_args.append( pkgconfig.cflags('libprecice') ) - - #link_args.append( pkgconfig.libs('libprecice') ) bindings_sources = [os.path.join(PYTHON_BINDINGS_PATH, "cyprecice", "cyprecice" + ".pyx")] if not is_test: - link_args.append( pkgconfig.libs('libprecice') ) + link_args.append("-lprecice") if is_test: bindings_sources.append(os.path.join(PYTHON_BINDINGS_PATH, "test", "SolverInterface.cpp")) From f74199e1637739a28d7240bce53cb5f0fa5dc0cd Mon Sep 17 00:00:00 2001 From: Alexander Jaust Date: Tue, 29 Mar 2022 18:22:58 +0200 Subject: [PATCH 26/26] Clean up action a bit --- .github/workflows/build-and-test-macos.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/build-and-test-macos.yml b/.github/workflows/build-and-test-macos.yml index 1d194dce..af49fbbe 100644 --- a/.github/workflows/build-and-test-macos.yml +++ b/.github/workflows/build-and-test-macos.yml @@ -28,10 +28,7 @@ jobs: ref: 'master' path: 'precice-repo' - name: Generate build directory - run: | - ls -lah - ls -lah precice-repo - mkdir -p precice-repo/build + run: mkdir -p precice-repo/build - name: Configure preCICE working-directory: precice-repo/build env: @@ -77,5 +74,4 @@ jobs: pip3 install --user . - name: Import Python bindings run: | - export DYLD_LIBRARY_PATH="/usr/local/lib/":"${DYLD_LIBRARY_PATH}" python3 -c "import precice" \ No newline at end of file