-
Notifications
You must be signed in to change notification settings - Fork 10
76 lines (64 loc) · 2.44 KB
/
build-mac.yml
File metadata and controls
76 lines (64 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
name: "Build and Test pyEXP on Mac"
on:
push:
branches:
- '*'
pull_request:
branches:
- main
- devel
jobs:
exp:
strategy:
matrix:
os: [macos-latest]
name: "Test pyEXP Build on Mac"
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install EXP dependencies (Mac)
run: |
brew install eigen fftw open-mpi hdf5 libomp
echo CC=mpicc >> $GITHUB_ENV
echo CXX=mpicxx >> $GITHUB_ENV
echo OMPI_CC="clang" >> $GITHUB_ENV
echo OMPI_CXX="clang++" >> $GITHUB_ENV
echo OMP_HOME=${HOMEBREW_PATH}/opt/libomp/ >> $GITHUB_ENV
echo LDFLAGS="-L${OMP_HOME}/lib" >> $GITHUB_ENV
echo CPPFLAGS="-I${OMP_HOME}/include" >> $GITHUB_ENV
- name: Build EXP
run: |
# Get Python version info
PYTHON_VERSION=$(python -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")
PYTHON_EXEC=$(which python)
PYTHON_LIBRARY_PATH=$(python -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")
# Set Python library path based on OS
if [[ "$RUNNER_OS" == "macOS" ]]; then
PYTHON_LIBRARY=${PYTHON_LIBRARY_PATH}/libpython${PYTHON_VERSION}.dylib
else
PYTHON_LIBRARY=${PYTHON_LIBRARY_PATH}/libpython${PYTHON_VERSION}.so
fi
cmake -G Ninja -B build \
-DCMAKE_INSTALL_RPATH=$PWD/install/lib \
--install-prefix $PWD/install \
-DENABLE_NBODY=YES \
-DENABLE_PYEXP=YES \
-DDISABLE_OPENMP_COMPILE_FLAGS=YES \
-DPYTHON_EXECUTABLE=${PYTHON_EXEC} \
-DPYTHON_LIBRARY=${PYTHON_LIBRARY} \
-DOpenMP_CXX_INCLUDE_DIR=${OMP_HOME}/include \
-DOpenMP_C_INCLUDE_DIR=${OMP_HOME}/include
# Build and install EXP
cmake --build build
cmake --install build
# Add the pyEXP dir as a pyEXP.pth file in Python site-packages:
SITE_PACKAGES=$(python -c "import site; print(site.getsitepackages()[0])")
echo "$PWD/install/lib/python${PYTHON_VERSION}/site-packages" > "${SITE_PACKAGES}/pyEXP.pth"
- name: CTest Quick
run: ctest --output-on-failure -L quick
- name: Test pyEXP
run: |
python -c "import pyEXP; print('pyEXP successfully imported')"