JuliaPackaging / Yggdrasil

Collection of builder repositories for BinaryBuilder.jl
https://binarybuilder.org
Other
307 stars 549 forks source link

[PETSc] `include` files and configuration files overwritten by each variant #3594

Open rayegun opened 3 years ago

rayegun commented 3 years ago

The current PETSc builder can't be used (easily) to build against. While the shared libraries seem fine, some files in the $includedir like petscconf.h are overwritten when each architecture is used. That means we can only depend on PETSc_jll for libraries that want to use PETSc with single precision complex numbers (the last variant built).

I'm not sure how to solve this in the PETSc builder. On a users own machine each PETSc install would live in its own folder.

rayegun commented 3 years ago

@giordano I'm not sure how to approach this one, and would appreciate a pointer. What I really want to do is build each version of PETSc (each configuration of scalar types) including headers and shared libraries into its own folder in $libdir/petsc/<PETSC_ARCH> (or something like that). One of these versions would then be make install'd into $prefix, and then symbolic links could be added to the other libpetsc.so (libpetsc_double_real_Int64.so -> $libdir/petsc/double_real_Int64/libpetsc.so).

My main question is:

  1. Is that an acceptable way to package the files?