BOUT-dev icon indicating copy to clipboard operation
BOUT-dev copied to clipboard

cmake: install incomplete

Open dschwoerer opened this issue 4 years ago • 6 comments

make install does not install

  • [x] boutconfig
  • [ ] boutcore
  • [ ] executables?
  • [ ] examples?
  • [x] cmake files?
  • [ ] manual

dschwoerer avatar May 17 '21 11:05 dschwoerer

cmake is maybe incomplete:

$ diff installed/lib64/cmake/bout++/ ../cmake
Only in installed/lib64/cmake/bout++/: bout++Config.cmake
Only in installed/lib64/cmake/bout++/: bout++ConfigVersion.cmake
Only in ../cmake: BOUT++functions.cmake
Only in installed/lib64/cmake/bout++/: bout++Targets.cmake
Only in installed/lib64/cmake/bout++/: bout++Targets-noconfig.cmake
Only in ../cmake: EnableCXXWarningIfSupport.cmake
Only in ../cmake: FindClangFormat.cmake
Only in ../cmake: FindCython.cmake
Only in ../cmake: FindLibuuid.cmake
Only in ../cmake: FindnetCDFCxx.cmake
Only in ../cmake: FindNumpy.cmake
Only in ../cmake: GetGitRevisionDescription.cmake
Only in ../cmake: GetGitRevisionDescription.cmake.in

numpy and cython are from boutcore - should they be installed?

dschwoerer avatar May 17 '21 11:05 dschwoerer

Good catch, definitely a few of those need to be installed -- the Find* modules, and I suspect BOUT++functions.cmake too. I'm fairly sure EnableCXXWarningIfSupport and GetGitRevisionDescription are only needed at configure time (for the library), and don't need to be installed.

I'm not sure about installing the examples -- they could be useful, but maybe not? It doesn't look like we install them with autotools, but we also don't have an option for compiling them all either.

Which executables do you mean? The programs installed by autotools are just bout-config and bout-log-color. I'm not sure we want to install any of the model executables.

ZedThree avatar May 17 '21 12:05 ZedThree

For the examples, they're useful if someone can edit and run them so we could either:

  1. Install them centrally, then have a script which copies them into the user's directory
    $ bout-examples  conduction
    
    might copy the conduction example and compile it.
  2. Make the examples a separate repository, which users can check out. This might be the most straightforward, if installing the BOUT++ library becomes the more standard way to use it.

bendudson avatar May 17 '21 13:05 bendudson

Good catch, definitely a few of those need to be installed -- the Find* modules, and I suspect BOUT++functions.cmake too. I'm fairly sure EnableCXXWarningIfSupport and GetGitRevisionDescription are only needed at configure time (for the library), and don't need to be installed.

Ok, I will add them :+1:

I'm not sure about installing the examples -- they could be useful, but maybe not? It doesn't look like we install them with autotools, but we also don't have an option for compiling them all either.

I thought if we want to provide the examples pre-compiled, that would be useful, if we provide an option, it would also be nice to install them.

Install them centrally, then have a script which copies them into the user's directory

That would be quite nice, I was thinking about a minimal image with precompiled examples.

Which executables do you mean? The programs installed by autotools are just bout-config and bout-log-color. I'm not sure we want to install any of the model executables.

I meant some of the files in bin/bout.* files.

dschwoerer avatar May 17 '21 13:05 dschwoerer

I'm working on the bout-config stuff. One thing I don't like about CMake is how painful it makes it to get information out.

On the plus side, once I've done this, it should be trivial to create a pkg-config .pc file

ZedThree avatar May 18 '21 15:05 ZedThree

bout-config and CMake files fixed in #2328

ZedThree avatar Jul 02 '21 12:07 ZedThree