Skip to content

Commit

Permalink
Merge branch 'develop' into feature-comm-points
Browse files Browse the repository at this point in the history
  • Loading branch information
cburstedde committed Jul 11, 2024
2 parents 95e9a14 + 9e2f619 commit f12d735
Show file tree
Hide file tree
Showing 36 changed files with 698 additions and 382 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ jobs:
cd sc
git fetch --tags
git checkout v2.8.6
# git checkout -b test-branch 2c1496904c485d4ca6f844c396b32f608b72438c
# git checkout -b test-branch 91cc8a456bd857dec67cf703afb3b3276aebb016
- name: Run bootstrap script
run: ./bootstrap
Expand Down
159 changes: 29 additions & 130 deletions .github/workflows/ci_cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,23 @@ on:
types: [published]

env:
CTEST_PARALLEL_LEVEL: 4
CTEST_PARALLEL_LEVEL: 0
CMAKE_BUILD_PARALLEL_LEVEL: 4
CTEST_NO_TESTS_ACTION: "error"
CMAKE_INSTALL_PREFIX: ~/local
CMAKE_PREFIX_PATH: ~/local

jobs:

linux:
runs-on: ubuntu-22.04
name: CMake build on Linux
runs-on: ubuntu-latest
name: Linux mpi=${{ matrix.mpi }} CC=${{ matrix.cc }} shared=${{ matrix.shared }}
timeout-minutes: 60

strategy:
fail-fast: false
matrix:
cc: [gcc-9, gcc-10, gcc-11, gcc-12, gcc-13]
cc: [gcc]
shared: [false]
mpi: [mpich]
include:
Expand All @@ -48,70 +51,25 @@ jobs:
- uses: actions/checkout@v4
name: Checkout source code

- name: Install system dependencies
run: |
sudo apt-get update -yq
sudo apt-get install -yq --no-install-recommends zlib1g-dev lib${{ matrix.mpi }}-dev
- name: Install deps
uses: ./.github/workflows/composite-deps

- name: CMake configure
run: >-
cmake --preset default
--install-prefix=${{ runner.temp }}
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build
run: cmake --build --preset default

- name: CMake self-tests
run: ctest --preset default

- name: install p4est CMake package
run: cmake --install build

# standalone examples tests that CMake packaging is correct
- name: CMake configure examples
run: >-
cmake -B example/build -S example
-DCMAKE_PREFIX_PATH:PATH=${{ runner.temp }}
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build examples
run: cmake --build example/build

- name: Create package
if: github.event.action == 'published'
run: cpack --config build/CPackConfig.cmake
- name: CMake build-test-install-package
uses: ./.github/workflows/composite-unix

- name: Upload package
if: github.event.action == 'published'
uses: actions/upload-artifact@v4
with:
name: linux_binary_archive-${{ matrix.cc }}-${{ matrix.mpi }}-shared-${{ matrix.shared }}
path: build/package
uses: ./.github/workflows/composite-pkg

- name: Upload log files
if: always()
uses: actions/upload-artifact@v4
with:
name: linux_cmake_log-${{ matrix.cc }}-${{ matrix.mpi }}-shared-${{ matrix.shared }}
path: |
./build/CMakeFiles/CMakeConfigureLog.yaml
./build/Testing/Temporary/LastTest.log

mac:
# macos-14 is to use Apple Silicon hardware
# https://github.blog/changelog/2024-01-30-github-actions-introducing-the-new-m1-macos-runner-available-to-open-source/
runs-on: macos-14
name: CMake build on MacOS
runs-on: macos-latest
name: macOS CC=${{ matrix.cc }} shared=${{ matrix.shared }}
timeout-minutes: 60

strategy:
matrix:
cc: [clang, gcc-13]
shared: [false]
include:
- cc: clang
shared: true
cc: [clang]
shared: [false, true]

env:
HOMEBREW_NO_INSTALL_CLEANUP: 1
Expand All @@ -121,62 +79,21 @@ jobs:
- uses: actions/checkout@v4
name: Checkout source code

- name: Install system dependencies
run: brew install open-mpi

- name: CMake configure
run: >-
cmake --preset default
--install-prefix=${{ runner.temp }}
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build
run: cmake --build --preset default

- name: CMake self-tests
run: ctest --preset default

- name: install p4est CMake package
run: cmake --install build

- name: CMake configure examples
run: >-
cmake -B example/build -S example
-DCMAKE_PREFIX_PATH:PATH=${{ runner.temp }}
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: Install deps
uses: ./.github/workflows/composite-deps

- name: CMake build examples
run: cmake --build example/build

- name: Create package
if: github.event.action == 'published'
run: cpack --config build/CPackConfig.cmake
- name: CMake build-test-install-package
uses: ./.github/workflows/composite-unix

- name: Upload package
if: github.event.action == 'published'
uses: actions/upload-artifact@v4
with:
name: mac_binary_archive-${{ matrix.cc }}-shared-${{ matrix.shared }}
path: build/package
uses: ./.github/workflows/composite-pkg

- name: Upload log files
if: always()
uses: actions/upload-artifact@v4
with:
name: mac_cmake_log-${{ matrix.cc }}-shared-${{ matrix.shared }}
path: |
./build/CMakeFiles/CMakeConfigureLog.yaml
./build/Testing/Temporary/LastTest.log

windows:
runs-on: windows-latest
name: CMake build on Windows
name: Windows
timeout-minutes: 60

strategy:
matrix:
shared: [false]

env:
CMAKE_GENERATOR: "MinGW Makefiles"

Expand All @@ -193,14 +110,13 @@ jobs:
- uses: actions/checkout@v4
name: Checkout source code

- run: echo "CMAKE_INSTALL_PREFIX=$HOME/local" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- run: echo "CMAKE_PREFIX_PATH=$HOME/local" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- run: echo "ZLIB_ROOT=$env:RUNNER_TEMP/msys64/mingw64" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append

# Windows MPI is shaky in general on GitHub Actions, so we don't use it
- name: CMake configure without MPI
run: >-
cmake --preset default
-Dmpi:BOOL=no
--install-prefix=${{ runner.temp }}
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
-DZLIB_ROOT:PATH=${{ runner.temp }}/msys64/mingw64/
run: cmake --preset default -Dmpi:BOOL=no

- name: CMake build
run: cmake --build --preset default
Expand All @@ -212,11 +128,7 @@ jobs:
run: cmake --install build

- name: CMake configure examples
run: >-
cmake -B example/build -S example
-DCMAKE_PREFIX_PATH:PATH=${{ runner.temp }}
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
-DZLIB_ROOT:PATH=${{ runner.temp }}/msys64/mingw64/
run: cmake -B example/build -S example

- name: CMake build examples
run: cmake --build example/build
Expand All @@ -226,17 +138,4 @@ jobs:
run: cpack --config build/CPackConfig.cmake

- name: Upload package
if: github.event.action == 'published'
uses: actions/upload-artifact@v4
with:
name: windows_binary_archive
path: build/package

- name: Upload log files
if: always()
uses: actions/upload-artifact@v4
with:
name: windows_cmake_log
path: |
./build/CMakeFiles/CMakeConfigureLog.yaml
./build/Testing/Temporary/LastTest.log
uses: ./.github/workflows/composite-pkg
4 changes: 2 additions & 2 deletions .github/workflows/ci_darwin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
submodules: true

- name: Install system dependencies
run: brew install open-mpi ninja automake
run: brew install open-mpi automake libtool

- name: Run bootstrap script
run: ./bootstrap
Expand Down Expand Up @@ -78,7 +78,7 @@ jobs:
submodules: true

- name: Install system dependencies
run: brew install open-mpi ninja automake
run: brew install open-mpi automake libtool

- name: Run bootstrap script
run: ./bootstrap
Expand Down
17 changes: 17 additions & 0 deletions .github/workflows/composite-deps/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
runs:

using: 'composite'

steps:

- name: Install Linux dependencies
shell: bash
if: runner.os == 'Linux'
run: |
sudo apt-get update -yq
sudo apt-get install -yq --no-install-recommends zlib1g-dev lib${{ matrix.mpi }}-dev
- name: Install macOS dependencies
shell: bash
if: runner.os == 'macOS'
run: brew install open-mpi
20 changes: 20 additions & 0 deletions .github/workflows/composite-pkg/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
runs:

using: 'composite'

steps:
- name: Upload package
if: github.event.action == 'published'
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}_binary_archive-${{ matrix.cc }}-${{ matrix.mpi }}-shared-${{ matrix.shared }}
path: build/package

- name: Upload log files
if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ runner.os }}_cmake_log-${{ matrix.cc }}-${{ matrix.mpi }}-shared-${{ matrix.shared }}
path: |
./build/CMakeFiles/CMakeConfigureLog.yaml
./build/Testing/Temporary/LastTest.log
38 changes: 38 additions & 0 deletions .github/workflows/composite-unix/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
runs:

using: 'composite'

steps:
- name: CMake configure
shell: bash
run: >-
cmake --preset default
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build
shell: bash
run: cmake --build --preset default

- name: CMake self-tests
shell: bash
run: ctest --preset default

- name: install p4est CMake package
shell: bash
run: cmake --install build

# standalone examples tests that CMake packaging is correct
- name: CMake configure examples
shell: bash
run: >-
cmake -B example/build -S example
-DBUILD_SHARED_LIBS:BOOL=${{ matrix.shared }}
- name: CMake build examples
shell: bash
run: cmake --build example/build

- name: Create package
shell: bash
if: github.event.action == 'published'
run: cpack --config build/CPackConfig.cmake
10 changes: 7 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,13 @@ message(STATUS "p4est ${PROJECT_VERSION} "

# --- external libs

include(cmake/GitSubmodule.cmake)
git_submodule("${PROJECT_SOURCE_DIR}/sc")
add_subdirectory(sc)
# Skip `libsc` if already registered. This is useful when `p4est` is added as a
# dependency by another software project which in turn already registered `libsc`.
if(NOT TARGET SC::SC)
include(cmake/GitSubmodule.cmake)
git_submodule("${PROJECT_SOURCE_DIR}/sc")
add_subdirectory(sc)
endif()

# --- configure p4est

Expand Down
14 changes: 0 additions & 14 deletions cmake/options.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,6 @@ if(vtk_binary)
set(P4EST_ENABLE_VTK_BINARY 1)
endif()

# --- default install directory under build/local
# users can specify like "cmake -B build -DCMAKE_INSTALL_PREFIX=~/mydir"
if(CMAKE_VERSION VERSION_LESS 3.21)
get_property(_not_top DIRECTORY PROPERTY PARENT_DIRECTORY)
if(NOT _not_top)
set(P4EST_IS_TOP_LEVEL true)
endif()
endif()

if(P4EST_IS_TOP_LEVEL AND CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
# will not take effect without FORCE
set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/local" CACHE PATH "Install top-level directory" FORCE)
endif()

# Necessary for shared library with Visual Studio / Windows oneAPI
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS true)

Expand Down
File renamed without changes.
1 change: 1 addition & 0 deletions doc/author_kirilin.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
I place my contributions to p4est under the FreeBSD license. Mikhail Kirilin ([email protected])
File renamed without changes.
Loading

0 comments on commit f12d735

Please sign in to comment.