evaleev / libint

Libint: high-performance library for computing Gaussian integrals in quantum mechanics
Other
225 stars 95 forks source link

Libint2 cmake #147

Open loriab opened 4 years ago

loriab commented 4 years ago

I see you've got an interesting hybrid of libtool and CMake for building the Libint2 compiler and library, respectively.

evaleev commented 4 years ago

@loriab would be happy to see a PR to switch compiler build to CMake ... there are too many things on the plate to prioritize this. Ideally in-comptree library and exported library can be built using same harness.

Re: project name ... what is the recommended practice? Brief look at recent cmake's Modules/Find* suggests perhaps Qt's or Python's approaches are reasonable: be able to say find_project(Qt) and find_project(Qt4). I know that Libint1 and 2 are not compatible, but I envision the need for multiple instances of Libint2 libs in same app (e.g. host-only and device-only) or even mixing of Libint2 and Libint3 in a project. So version-specific namespaces will be the way to go.

mixed build was a PR, so a use case exists.

re: the bug ... the only idea I have is that include/libint2/util/memory.h gets included instead of src/bin/libint/memory.h? Please have a look at the preprocessed file to check.

loriab commented 4 years ago

Great! Psi4 folks had a meetup last week and commenced the conversion from Libint1 to Libint2. Many test cases are passing. WIP at https://github.com/psi4/psi4/pull/1721. I've started in on the cmake for Libint2. It's early days (can generate libint.a from repo but not even all options in yet), but I'll open the PR in case you want to comment. Will recommence discussion/questions there to keep them localized.