Closed Robbybp closed 9 months ago
Petsc didn't appear in my local build on MacOS as I didn't have petsc installed in the expected location (which is the somewhat peculiar $HOME/src/petsc
). I've updated the compile script to only set PETSC_DIR
if it is not already set (so the user's preset takes precedence). With this change, I can build with my own locally installed petsc and correctly get petsc
in the bin
directory, and the following petscpy
subdirectory of lib:
.
├── lib
│ ...
│ ├── petscpy
│ │ ├── PetscBinaryIO.py
│ │ ├── PetscBinaryIOTrajectory.py
│ │ ├── petsc_conf.json
│ │ └── petsc_conf.py
I don't think we need to re-test the docker builds, as this should not change default behavior. @MarcusHolly can you look at the Windows and one of the linux builds you produced last week, and check that petsc
and petscpy/
appear in the bin and lib subdirectories of the tar files? If this looks okay, I think this PR will be ready to merge.
@Robbybp petsc
and petscpy/
appear in the Windows build and the linux builds
@jsiirola you are still planning to review this, right?
@ksbeattie I believe this is ready for merge.
--enable-relocatable
flag when configuing Ipopt to make sure theipopt.pc
file uses relative pathsinstall_name_tool
step on Darwin to define library names with@rpath
With these changes, I believe a user will still need the following steps to link against our IDAES libraries:
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:$HOME/.idaes/lib/pkgconfig"
export DYLD_LIBRARY_PATH="${DYLD_LIBRARY_PATH}:/$HOME/.idaes/lib
.idaes/lib/pkgconfig/ipopt.pc
to comment out theRequires.private: coinhsl coinmumps
lineWe could apply a patch in
compile_solvers.sh
to comment out the "Requires.private" line in ipopt.pc, but it would be nice if we could somehow compile Ipopt such that these requirements (which don't seem to actually be necessary) are not included.