Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
8ef7462
[ci] add github workflow
planetmarshall Jul 10, 2021
caa8462
[cmake] add cmake binary dir to module path for conan find packages
planetmarshall Aug 7, 2021
3481659
[ci] setup msbuild on windows workflow
planetmarshall Aug 7, 2021
7e75dc6
[cmake] support static hdf5 library on windows and link using targets
planetmarshall Aug 7, 2021
0785615
[cmake] support building static library
planetmarshall Aug 7, 2021
94b6f67
[ci] build static and shared libraries
planetmarshall Aug 7, 2021
4d63220
[ci] add macos configuration
planetmarshall Aug 7, 2021
fed12b3
[ci] fix shared option
planetmarshall Aug 7, 2021
1870685
[cmake] use full hdf5 target until conan package is updated
planetmarshall Aug 7, 2021
71454b9
[ci] add boost and stdfs configurations
planetmarshall Aug 7, 2021
d673fc0
[ci] add openmpi config to linux and mac builds
planetmarshall Aug 8, 2021
9a55d06
[ci] use a python conanfile to install os specific dependencies
planetmarshall Aug 8, 2021
bc749ef
[ci] use conan to build using cmake
planetmarshall Aug 8, 2021
6be5f77
[ci] disable mpi until conan hdf5 package is updated (github conan-io…
planetmarshall Aug 8, 2021
e680974
[cmake] remove boost cmake config (not required)
planetmarshall Aug 8, 2021
317afc2
[cmake] add google tests to ctest
planetmarshall Aug 8, 2021
2acecff
[ci] build tests in conanfile
planetmarshall Aug 8, 2021
fc5ff19
[cmake] add stdfs linker option for clang if necessary
planetmarshall Aug 9, 2021
21f8de0
[ci] update the conan container images
planetmarshall Aug 9, 2021
96d7d42
[ci] fix ctest command line
planetmarshall Aug 9, 2021
aeeea45
[ci] run windows tests under conan virtualrunenv
planetmarshall Aug 9, 2021
c720581
[cmake] support building static library on windows
planetmarshall Aug 9, 2021
7ba2810
[ci] run windows tests in default shell
planetmarshall Aug 9, 2021
8b922ec
[ci] add caching for conan dependencies
planetmarshall Aug 9, 2021
05b97c8
[ci] add profiles and cache restore keys
planetmarshall Aug 9, 2021
c67e1bd
[cmake] prefix cmake options with library name
planetmarshall Aug 10, 2021
2ca8bc3
[cmake] find and link to individual hdf5 components
planetmarshall Aug 10, 2021
f28198c
[ci] add openmpi configs to linux and macos
planetmarshall Aug 10, 2021
a37344c
[ci] use partial lockfiles for cache restore keys
planetmarshall Aug 10, 2021
5f45bb7
[ci] install ssh on linux containers if using MPI
planetmarshall Aug 10, 2021
ca5cda3
[cmake] prefix h5cpp status messages
planetmarshall Aug 10, 2021
a395a0c
[cmake] support using MPI on OSX
planetmarshall Aug 10, 2021
edbdc7f
[ci] run workflow prs
planetmarshall Aug 10, 2021
fc3216e
[ci] use virtualenv to run mac tests
planetmarshall Aug 11, 2021
6dcfd8b
[conan,ci] use conan to satisfy ninja dependency
planetmarshall Aug 11, 2021
6369e78
[cmake] remove the pkgconfig generation
planetmarshall Aug 12, 2021
6fd137e
[cmake] add namespace alias and target
planetmarshall Aug 12, 2021
badc103
[conan, catch2] use catch2 from conan instead of subproject
planetmarshall Aug 22, 2021
83c4ecc
[cmake] fix shared libs option
planetmarshall Aug 22, 2021
2e59381
[cmake] explicitly link test projects to HDF5 C API
planetmarshall Aug 22, 2021
b4c5dd4
[conan, build] 'unit_tests' target no longer exists
planetmarshall Aug 22, 2021
97dfec0
[cmake] remove redundant 'add_test' calls
planetmarshall Aug 22, 2021
9329210
[ci] dont automatically run the workflow on push
planetmarshall Aug 22, 2021
637809a
[cmake] find catch2 externally
planetmarshall Oct 9, 2021
c3c0347
[cmake] add FindHDF5 from latest cmake
planetmarshall Oct 9, 2021
752ea69
[ci] add workflow config for default ubuntu dev environment
planetmarshall Oct 9, 2021
1fe26da
[ci] update conan container images
planetmarshall Oct 9, 2021
8d487be
[ci] use clang 13
planetmarshall Oct 9, 2021
9df5a6b
[ci] use bash shell by default
planetmarshall Oct 9, 2021
f849544
[ci] fix conan cache path
planetmarshall Oct 9, 2021
4c77b2c
[conan] upgrade boost
planetmarshall Oct 9, 2021
7e703ef
[ci] build using 2 jobs on cmake
planetmarshall Oct 9, 2021
38ba87f
[cmake] ensure correct linking order
planetmarshall Oct 9, 2021
a357e97
[cmake] add zlib dependency for filters
planetmarshall Oct 10, 2021
34a87c5
[cmake] updated jenkinsfile and cmake settings with renamed cmake opt…
planetmarshall Oct 12, 2021
3b93f62
Merge branch 'master' into cmake-improvements
planetmarshall Dec 13, 2021
2f57461
[cmake] resolve conflicts after upstream merge
planetmarshall Dec 13, 2021
1827013
[ci] replace ubuntu build with debian-10
planetmarshall Dec 15, 2021
dce6fb9
[cmake] fix issues with FindHDF5 with debian build
planetmarshall Dec 15, 2021
5234449
[cmake] fix for debian build
planetmarshall Dec 15, 2021
5da49ef
[cmake] require threading library
planetmarshall Dec 15, 2021
5b8eeef
[cmake] link to SZIP if we have it
planetmarshall Dec 15, 2021
3eb22f8
[cmake] build shared library by default
planetmarshall Dec 15, 2021
0aa1aa1
[cmake] restore pkg-config generation
planetmarshall Dec 15, 2021
62685aa
[cmake] support cmake 3.13 (no list prepend)
planetmarshall Dec 18, 2021
9ae4e77
Merge branch 'master' into cmake-improvements
jkotan Jan 9, 2022
0c55560
[github] use latest conan images in linux builds
planetmarshall Jan 18, 2022
9132315
update FindHDF5 file
jkotan Jan 21, 2022
8ba089e
add H5CPP_LOCAL_MODULES
jkotan Jan 21, 2022
340e899
update WITH_MPI to H5CPP_WITH_MPI
jkotan Jan 21, 2022
fb953f0
execute tests not only on master
jkotan Jan 21, 2022
fe32471
apply changes to build on ESS Jenkins nodes
jkotan Jan 21, 2022
035097f
turn ESS tests back
jkotan Jan 21, 2022
ce94551
turn ESS tests back
jkotan Jan 21, 2022
13ee538
Merge branch 'pr_501b' into mcmake-improvements
jkotan Jan 21, 2022
13ebe4c
Merge branch 'master' into mcmake-improvements
jkotan Jan 21, 2022
0731508
change CONAN_FILE to H5CPP_CONAN_FILE
jkotan Jan 21, 2022
6503603
merge nexus/CMakeLists.txt
jkotan Jan 21, 2022
d713ac8
fix for typos in cmake variable names
jkotan Jan 22, 2022
df17841
[github] no tests are an error
planetmarshall Jan 26, 2022
7b95ced
[conan] run conan build inside environment
planetmarshall Jan 26, 2022
623ff92
[github] update conan packages on install
planetmarshall Jan 26, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
253 changes: 253 additions & 0 deletions .github/workflows/cmake-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,253 @@
name: cmake-build
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:

defaults:
run:
shell: bash

jobs:
linux-build:
strategy:
matrix:
image: [
"conanio/gcc11-ubuntu16.04",
"conanio/clang13-ubuntu16.04"
]
libcxx: [libstdc++11, libc++]
shared: [shared, static]
boost: [boost, stdfs]
mpi: [mpi, serial]
exclude:
- image: conanio/gcc11-ubuntu16.04
libcxx: libc++
include:
- image: conanio/gcc11-ubuntu16.04
profile: gcc11
- image: conanio/clang13-ubuntu16.04
libcxx: libstdc++11
profile: clang13-libstdc++
- image: conanio/clang13-ubuntu16.04
libcxx: libc++
profile: clang13-libc++
runs-on: ubuntu-20.04
container:
image: ${{ matrix.image }}
options: '--user=root'
steps:
- uses: actions/checkout@v2
- name: Set environment variables
run: |
bash .github/workflows/set_env_vars.sh \
${{ matrix.shared }} \
${{ matrix.boost }} \
${{ matrix.mpi }}
- name: Install MPI prerequisites
if: ${{ matrix.mpi == 'mpi' }}
run: |
apt-get update
apt-get install -y --no-install-recommends ssh
- name: Install and configure conan
run: |
CONAN_ARGS="--profile .github/workflows/conan/profiles/${{ matrix.profile }} \
-o with_boost=${H5CPP_WITH_BOOST} \
-o with_mpi=${H5CPP_WITH_MPI} \
-o shared=${H5CPP_SHARED} \
-o hdf5:shared=${H5CPP_SHARED}"
conan lock create conanfile.py ${CONAN_ARGS} --base --lockfile-out base.lock
conan lock create conanfile.py ${CONAN_ARGS} --build missing
- name: cache conan dependencies
uses: actions/cache@v2
with:
path: /home/conan/.conan/data
key: conan-${{ matrix.profile }}-${{ hashfiles('base.lock') }}-${{ hashFiles('conan.lock') }}
restore-keys: |
conan-${{ matrix.profile }}-${{ hashfiles('base.lock') }}
conan-${{ matrix.profile }}
- name: install conan dependencies
run: |
conan install . \
--install-folder build \
--lockfile conan.lock \
--build missing \
--update
- name: build with cmake
run: |
conan build . \
--build-folder build
- name: run tests
run: |
cd build
ctest --extra-verbose --no-tests=error
windows-build:
strategy:
matrix:
shared: ["shared", "static"]
boost: ["boost", "stdfs"]
runs-on: windows-2019
steps:
- uses: actions/checkout@v2
- name: Add MSVC to PATH
uses: ilammy/msvc-dev-cmd@v1
- name: Set environment variables
run: |
bash .github/workflows/set_env_vars.sh \
${{ matrix.shared }} \
${{ matrix.boost }}
- name: Install and configure conan
run: |
python -m pip install --upgrade pip
pip install --upgrade conan
CONAN_ARGS="--profile .github/workflows/conan/profiles/vs2019 \
-o with_boost=${H5CPP_WITH_BOOST} \
-o shared=${H5CPP_SHARED} \
-o hdf5:shared=${H5CPP_SHARED}"
conan lock create conanfile.py ${CONAN_ARGS} --base --lockfile-out base.lock
conan lock create conanfile.py ${CONAN_ARGS} --build missing
- name: cache conan dependencies
uses: actions/cache@v2
with:
path: ~/.conan/data
key: conan-vs2019-${{ hashfiles('base.lock') }}-${{ hashFiles('conan.lock') }}
restore-keys: |
conan-vs-2019-${{ hashfiles('base.lock') }}
conan-vs-2019
- name: install conan dependencies
run: |
conan install . \
--install-folder build \
--lockfile conan.lock \
--build missing \
--update \
--generator virtualrunenv
- name: build with cmake
run: |
conan build . --build-folder build
- name: run tests
run: |
cd build
.\activate_run.ps1
ctest --extra-verbose --no-tests=error
shell: pwsh
mac-build:
strategy:
matrix:
shared: ["shared", "static"]
boost: ["boost", "stdfs"]
mpi: ["serial", "mpi"]
runs-on: macos-10.15
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Set environment variables
run: |
bash .github/workflows/set_env_vars.sh \
${{ matrix.shared }} \
${{ matrix.boost }} \
${{ matrix.mpi }}
- name: Install OpenMPI and prerequisites
if: ${{ matrix.mpi == 'mpi' }}
run: brew install open-mpi
- name: Install and configure conan
run: |
python -m pip install --upgrade pip
pip install --upgrade conan
# there's currently an issue running the MPI tests on OSX with HDF5 compiled
# as a dynamic library. Use static HDF5 for now
HDF5_SHARED=${H5CPP_SHARED}
if [ "${H5CPP_WITH_MPI}" = "True" ]; then
HDF5_SHARED=False
fi
CONAN_ARGS="--profile .github/workflows/conan/profiles/apple-clang12 \
-o with_boost=${H5CPP_WITH_BOOST} \
-o with_mpi=${H5CPP_WITH_MPI} \
-o shared=${H5CPP_SHARED} \
-o hdf5:shared=${HDF5_SHARED}"
conan lock create conanfile.py ${CONAN_ARGS} --base --lockfile-out base.lock
conan lock create conanfile.py ${CONAN_ARGS} --build missing
- name: cache conan dependencies
uses: actions/cache@v2
with:
path: ~/.conan/data
key: conan-apple-clang12-${{ hashfiles('base.lock') }}-${{ hashFiles('conan.lock') }}
restore-keys: |
conan-apple-clang12-${{ hashfiles('base.lock') }}
conan-apple-clang12
- name: install conan dependencies
run: |
conan install . \
--install-folder build \
--lockfile conan.lock \
--build missing \
--update \
--generator virtualenv
- name: build with cmake
run: |
conan build . --build-folder build
- name: run tests
run: |
cd build
source activate.sh
ctest --extra-verbose --no-tests=error
debian-10:
strategy:
matrix:
shared: [shared, static]
boost: [boost, stdfs]
runs-on: ubuntu-20.04
container:
image: debian:buster
steps:
- uses: actions/checkout@v2
- name: Set environment variables
run: |
bash .github/workflows/set_env_vars.sh \
${{ matrix.shared }} \
${{ matrix.boost }}
- name: install prerequisites
run: |
apt-get update
apt-get -y install \
cmake \
g++ \
gpg \
libhdf5-dev \
libboost-filesystem-dev \
wget
- name: download and install Catch2
run: |
wget https://github.com/catchorg/Catch2/archive/refs/tags/v2.13.7.tar.gz
tar -xf v2.13.7.tar.gz
mkdir -p Catch2-2.13.7/build
cmake \
-S Catch2-2.13.7 \
-B Catch2-2.13.7/build/ \
-DCATCH_BUILD_TESTING=OFF \
-DCATCH_INSTALL_DOCS=OFF
cmake --build Catch2-2.13.7/build --target install
working-directory: /tmp
- name: build with cmake
run: |
HDF5_STATIC=ON
[ "${H5CPP_SHARED}" = "True" ] && HDF5_STATIC=OFF
mkdir build
cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DH5CPP_CONAN=DISABLE \
-DHDF5_USE_STATIC_LIBRARIES=${HDF5_STATIC} \
-DH5CPP_BUILD_SHARED=${H5CPP_SHARED} \
-DH5CPP_WITH_BOOST=${H5CPP_WITH_BOOST}
cmake --build . -- -j 2
- name: run tests
run: |
cd build
ctest --extra-verbose --no-tests=error
9 changes: 9 additions & 0 deletions .github/workflows/conan/profiles/apple-clang12
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=apple-clang
compiler.libcxx=libc++
compiler.version=12.0
os=Macos
os_build=Macos
9 changes: 9 additions & 0 deletions .github/workflows/conan/profiles/clang13-libc++
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=clang
compiler.libcxx=libc++
compiler.version=13
os=Linux
os_build=Linux
9 changes: 9 additions & 0 deletions .github/workflows/conan/profiles/clang13-libstdc++
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=clang
compiler.libcxx=libstdc++11
compiler.version=13
os=Linux
os_build=Linux
9 changes: 9 additions & 0 deletions .github/workflows/conan/profiles/gcc11
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=gcc
compiler.libcxx=libstdc++11
compiler.version=11
os=Linux
os_build=Linux
9 changes: 9 additions & 0 deletions .github/workflows/conan/profiles/vs2019
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=Visual Studio
compiler.runtime=MD
compiler.version=16
os=Windows
os_build=Windows
16 changes: 16 additions & 0 deletions .github/workflows/set_env_vars.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash
if [ "$1" = "shared" ]; then
echo "H5CPP_SHARED=True" >> $GITHUB_ENV
else
echo "H5CPP_SHARED=False" >> $GITHUB_ENV
fi
if [ "$2" = "boost" ]; then
echo "H5CPP_WITH_BOOST=True" >> $GITHUB_ENV
else
echo "H5CPP_WITH_BOOST=False" >> $GITHUB_ENV
fi
if [ "$3" = "mpi" ]; then
echo "H5CPP_WITH_MPI=True" >> $GITHUB_ENV
else
echo "H5CPP_WITH_MPI=False" >> $GITHUB_ENV
fi
Loading