[x] build the export tarball. uses either gzip or bzip2 (closes #316 ). largely imitates the libtool tarball -- see differences below, mainly in positioning of fortran files
[x] GHA run with a variety of shared/static, release/debug, subproject=on/off . steps are broken up more to detect failures earlier, and tests are run with a bit of parallelism. The export job of GHA is reenabled.
[x] build base library (shared & static) and header-only cxx intf (linked to shared & static). Controlled through BUILD_SHARED_LIBS and LIBINT2_BUILD_SHARED_AND_STATIC_LIBS for both.
[x] generating ints into a new dir generated/ rather than directly in src/ so that not removing headers from the dir once generated. I suspect that since all lib builds going through the tarball that __COMPILING_LIBINT could be removed after editing the export structure.
[x] all targets assembled in order
target_compile_features(
target_compile_definitions(
target_compile_options(
set_target_properties( # note cmake generator expressions not allowed for this cmd
target_include_directories(
target_link_libraries(
[x] enable fortran
[x] enable python
[x] fixed #319
[x] linking to header-only cxx rather than to base object library + eigen
[x] added a linux-style install-to-prefix for packagers
[x] python module not built by default even if python enabled
[x] enable compiled cxx library
[x] I finally succeeded in making the compiled cxx lib link to something, namely tests!
[x] lib unit tests and the hartree-fock (plain) and the fortran cxx tests currently use compiled when available and header-only when not, rather than duplicating the whole test suite.
[x] I had to add in an extra define for the tests to allow it to compile. Is this right in general?
[x] linking the compiled cxx to the hartree-fock++ test on my local Linux box (conda gcc12) always works, but on GHA, it succeeds with Linux+conda-gcc and fails with Linux+ubuntu-gcc10 or mac or windows or intel). See #239
[x] the compiled library had only ever been in #233, never released. It is controlled by the following, which I'm toggling to off by default LIBINT2_REQUIRE_CXX_API_COMPILED=OFF
[x] all the optional what-to-build features standardized to LIBINT2_ENABLE_ prefixes since ENABLE_PYTHON is pretty generic and prone to conflicts with FetchContent.
currently atop #315 . new base lib in ee93781
BUILD_SHARED_LIBS
andLIBINT2_BUILD_SHARED_AND_STATIC_LIBS
for both.generated/
rather than directly insrc/
so that not removing headers from the dir once generated. I suspect that since all lib builds going through the tarball that__COMPILING_LIBINT
could be removed after editing the export structure.LIBINT2_REQUIRE_CXX_API_COMPILED=OFF
LIBINT2_ENABLE_
prefixes sinceENABLE_PYTHON
is pretty generic and prone to conflicts with FetchContent.//
comments in ifdefs to/* ... */
since the former were raising warnings with some compilersLIBINT_HAS_MPFR=1