casacore: propagate wcslib/cfitsio, add pkgconfig patch, enable OpenMP

This commit is contained in:
Kiran Shila
2026-05-03 10:08:28 -07:00
parent 2fff8e6724
commit b9f0120dd3
2 changed files with 87 additions and 9 deletions
@@ -0,0 +1,29 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 574150c05..109e96889 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -566,6 +566,14 @@ foreach (module ${_modules})
endforeach (module)
# Install pkg-config support file
+set(pc_req_public "")
+if (_usewcs AND WCSLIB_FOUND)
+ list(APPEND pc_req_public "wcslib")
+endif()
+if (_usefits AND CFITSIO_FOUND)
+ list(APPEND pc_req_public "cfitsio")
+endif()
+list(JOIN pc_req_public " " pc_req_public)
CONFIGURE_FILE("casacore.pc.in" "casacore.pc" @ONLY)
set(CASA_PKGCONFIG_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/casacore.pc" DESTINATION "${CASA_PKGCONFIG_INSTALL_PREFIX}")
diff --git a/casacore.pc.in b/casacore.pc.in
index 6881300df..d0a01b240 100644
--- a/casacore.pc.in
+++ b/casacore.pc.in
@@ -9,4 +9,4 @@ Version: @PROJECT_VERSION@
Requires: @pc_req_public@
Requires.private: @pc_req_private@
Libs: -L${libdir} @PRIVATE_LIBS@
-Cflags: -I${includedir} -I@WCSLIB_INCLUDE_DIR@
+Cflags: -I${includedir}
+58 -9
View File
@@ -14,8 +14,33 @@
fftwFloat,
readline,
gsl,
mpi,
adios2,
hdf5,
llvmPackages,
mpiSupport ? false,
adios2Support ? false,
hdf5Support ? false,
}:
let
casacorePackages = {
adios2 = adios2.override {
inherit mpi mpiSupport;
};
fftw = fftw.override {
inherit mpi;
enableMpi = mpiSupport;
};
fftwFloat = fftwFloat.override {
inherit mpi;
enableMpi = mpiSupport;
};
hdf5 = hdf5.override {
inherit mpi mpiSupport;
cppSupport = !mpiSupport;
};
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "casacore";
version = "3.8.0";
@@ -27,31 +52,55 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-NOxuHMCuHGk9XuWXMwQTN6kOFDI0QuHMgfNRDdlPw44=";
};
strictDeps = true;
nativeBuildInputs = [
cmake
gfortran
flex
bison
];
]
++ lib.optional mpiSupport mpi;
propagatedBuildInputs = [
wcslib
cfitsio
]
++ lib.optional hdf5Support casacorePackages.hdf5
++ lib.optional mpiSupport mpi
++ lib.optional adios2Support casacorePackages.adios2;
buildInputs = [
blas
lapack
cfitsio
wcslib
fftw
fftwFloat
casacorePackages.fftw
casacorePackages.fftwFloat
readline
gsl
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
llvmPackages.openmp
];
patches = [
# Fix the generated .pc file: set Requires from a variable instead of
# leaving it empty, and remove hardcoded absolute cmake build paths from
# Cflags (which would embed /nix/store paths from the build environment).
./casacore-pkgconfig.patch
];
enableParallelBuilding = true;
strictDeps = true;
cmakeFlags = [
(lib.cmakeBool "ENABLE_SHARED" (!stdenv.hostPlatform.isStatic))
(lib.cmakeBool "BUILD_PYTHON3" false) # TODO: If/when we package python-casacore, this will change
(lib.cmakeBool "BUILD_PYTHON3" false)
(lib.cmakeBool "USE_OPENMP" true)
(lib.cmakeBool "USE_ADIOS2" adios2Support)
(lib.cmakeBool "USE_HDF5" hdf5Support)
(lib.cmakeBool "USE_MPI" mpiSupport)
(lib.cmakeBool "PORTABLE" true)
(lib.cmakeBool "USE_PCH" false)
(lib.cmakeBool "BUILD_FFTPACK_DEPRECATED" true) # Needed for casacpp
];
meta = {