Skip to content

Commit f66cd56

Browse files
authored
Compile on OSX after homebrew update ? (#2031)
Co-authored-by: Giloo <gildas@localhost> Let's go ahead.
1 parent ea7b9b6 commit f66cd56

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

scripts/build_gdl.sh

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ WITH_PYTHONVERSION=${WITH_PYTHONVERSION:-ON}
5858
WITH_FFTW=${WITH_FFTW:-ON}
5959
WITH_UDUNITS2=${WITH_UDUNITS2:-ON}
6060
WITH_GLPK=${WITH_GLPK:-ON}
61-
WITH_OPENMP=${WITH_OPENMP:-ON}
6261
if [[ ${BUILD_OS} == "macOS" ]]; then
6362
WITH_HDF4=${WITH_HDF4:-OFF}
6463
WITH_GRIB=${WITH_GRIB:-ON}
@@ -118,12 +117,13 @@ elif [ ${BUILD_OS} == "Linux" ]; then
118117
) # JP 2021 Mar 21: SuSE lacks eccodes
119118
elif [ ${BUILD_OS} == "macOS" ]; then
120119
BREW_PACKAGES=(
121-
llvm libx11 libomp ncurses readline zlib libpng gsl wxwidgets graphicsmagick libtiff libgeotiff netcdf hdf5 fftw proj open-mpi python numpy udunits eigen
122-
eccodes glpk shapelib expat gcc@11 qhull dylibbundler cmake
120+
libx11 libomp ncurses readline zlib libpng gsl wxwidgets graphicsmagick libtiff libgeotiff netcdf hdf5 fftw proj open-mpi python numpy udunits eigen
121+
eccodes glpk shapelib expat gcc qhull dylibbundler cmake
123122
) # JP 2021 Mar 21: HDF4 isn't available - not so critical I guess
124123
# JP 2021 May 25: Added GCC 10 which includes libgfortran, which the numpy tap relies on.
125124
# J-KL 2022 July 30: GCC 10 didn't work with apple silicon mac. So I replaced it with GCC 11
126125
# GD added dylibbundler that simplify building correct apps.
126+
# GD 25/04/2025 see #2025
127127
else
128128
log "Fatal error! Unknown OS: ${BUILD_OS}. This script only supports one of: Windows, Linux, macOS."
129129
exit 1
@@ -432,18 +432,21 @@ function configure_gdl {
432432
fi
433433

434434
if [[ ${BUILD_OS} == "macOS" ]]; then
435-
if [[ ${Platform} == "arm64" ]]; then
436-
export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/opt/llvm/lib
437-
CMAKE_ADDITIONAL_ARGS=( "-DMPI=OFF -DREADLINEDIR=/opt/homebrew/opt/readline"
438-
"-DCMAKE_CXX_COMPILER=/opt/homebrew/opt/llvm/bin/clang++"
439-
"-DCMAKE_C_COMPILER=/opt/homebrew/opt/llvm/bin/clang" )
435+
export OpenMP_ROOT=$(brew --prefix)/opt/libomp
436+
if [[ ${Platform} == "arm64" ]]; then
437+
# see #2025
438+
LDFLAGS="-L/opt/homebrew/opt/libomp/lib -lomp"
439+
OMP_PREPROC='-Xpreprocessor -fopenmp -I/opt/homebrew/opt/libomp/include'
440+
READLINE_DIR='/opt/homebrew/opt/readline'
440441
else
441-
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/llvm/lib
442-
CMAKE_ADDITIONAL_ARGS=( "-DMPI=OFF -DREADLINEDIR=/usr/local/opt/readline"
443-
"-DCMAKE_CXX_COMPILER=/usr/local/opt/llvm/bin/clang++"
444-
"-DCMAKE_C_COMPILER=/usr/local/opt/llvm/bin/clang" )
442+
LDFLAGS="-L/usr/local/opt/libomp/lib -lomp"
443+
OMP_PREPROC='-Xpreprocessor -fopenmp -I/usr/local/opt/libomp/include'
444+
READLINE_DIR='/usr/local/opt/readline'
445445
fi
446-
fi
446+
CMAKE_ADDITIONAL_ARGS=( "-DMPI=OFF"
447+
"-DREADLINEDIR=${READLINE_DIR}"
448+
'-DOpenMP_CXX_FLAGS=\"${OMP_PREPROC}\"') #avoid blank expansion
449+
fi
447450

448451
# if [[ ${BUILD_OS} != "macOS" ]]; then
449452
# CMAKE_QHULLDIR_OPT="-DQHULLDIR="${ROOT_DIR}"/qhull-2020.2"
@@ -459,7 +462,7 @@ function configure_gdl {
459462
cmake ${GDL_DIR} -G"${GENERATOR}" \
460463
-DCMAKE_BUILD_TYPE=${Configuration} \
461464
-DCMAKE_CXX_FLAGS_RELEASE="-O3 -DNDEBUG" \
462-
-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} -DOPENMP=${WITH_OPENMP} \
465+
-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
463466
-DWXWIDGETS=${WITH_WXWIDGETS} -DX11={WITH_X11} -DGRAPHICSMAGICK=${WITH_GRAPHICSMAGICK} \
464467
-DNETCDF=${WITH_NETCDF} -DHDF=${WITH_HDF4} -DHDF5=${WITH_HDF5} \
465468
-DMPI=${WITH_MPI} -DTIFF=${WITH_TIFF} -DGEOTIFF=${WITH_GEOTIFF} \

0 commit comments

Comments
 (0)