Conversation
…riables are namespaced by LIBINT_ prefix all exported library Cmake options already followed this namespacing convention, thus this only renames many compiler-specific CMake options
c4acf68 to
e22dfdd
Compare
…riables are namespaced by LIBINT_ prefix all exported library Cmake options already followed this namespacing convention, thus this only renames many compiler-specific CMake options
0c83f5b to
111d155
Compare
…essitates tagging before ready
|
@loriab would appreciate a quick scan, as this aggregates your titanic efforts + option namespacing may have impact on psi4 |
There was a problem hiding this comment.
Pull request overview
This PR prepares for the 2.13.0 release by introducing a CMake harness to replace the legacy Autotools/Makefile build system. The changes involve systematic renaming of preprocessor macros to use consistent LIBINT_ prefixing, deletion of legacy build files, and updates to CMake configuration.
Changes:
- Renamed preprocessor macros throughout codebase:
INCLUDE_*→LIBINT_INCLUDE_*,MULTIPOLE_MAX_ORDER→LIBINT_MULTIPOLE_MAX_ORDER, and other similar changes for consistency - Removed legacy Makefile-based build system files (Makefiles, autoconf files, shell scripts)
- Updated CMake configuration to use
LIBINT2_prefix for user-facing options while maintainingLIBINT_prefix for internal variables - Updated documentation (INSTALL.md) to reflect new CMake option names
Reviewed changes
Copilot reviewed 52 out of 66 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/unit/test-2body.cc | Updated macro from INCLUDE_ERI to LIBINT_INCLUDE_ERI |
| tests/unit/test-1body.cc | Updated macro from INCLUDE_ONEBODY to LIBINT_INCLUDE_ONEBODY |
| tests/hartree-fock/hartree-fock++.cc | Updated MULTIPOLE_MAX_ORDER to LIBINT_MULTIPOLE_MAX_ORDER |
| tests/eri/test.cc | Comprehensive macro renaming for all ERI types and derivatives |
| src/bin/libint/build_libint.cc | Updated all internal macro references to new naming scheme |
| src/bin/libint/buildtest.h | Added missing header includes |
| include/libint2/engine.impl.h | Updated preprocessor checks to use new macro names |
| include/libint2/engine.h | Updated documentation and macro references |
| include/libint2/deriv_map.h | Updated macro conditionals and added formatting improvements |
| include/libint2/cxxapi.h | Updated API availability checks |
| include/libint2/config.h.cmake.in | Comprehensive macro renaming in configuration template |
| export/fortran/* | Updated Fortran interface files with new macro names |
| cmake/modules/int_am.cmake | Updated CMake option handling with new naming convention |
| cmake/modules/int_orderings.cmake | Fixed variable naming bugs |
| cmake/modules/int_userreal.cmake | Updated variable names |
| src/lib/libint/populate.cmake | Fixed typo in comment |
| src/lib/libint/CMakeLists.txt | Updated internal variable references |
| CMakeLists.txt | Added LIBINT2_/LIBINT_ variable conversion logic |
| INSTALL.md | Updated all documentation to reflect new option names |
| .github/workflows/cmake.yml | Updated CI workflow with new option names |
| All Makefile files | Deleted legacy build system files |
| All autoconf files | Deleted legacy configuration files |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
1dc2dfb to
0079f19
Compare
db5520a to
4c402ef
Compare
|
Thanks for all this! I realize now how out of practice I am with pure-cmake builds, so checking the migration guide as I go. I've generated a toy export and am testing that over at conda-forge. Now generating one that psi4 can consume ... |
Here's what I found in adapting MPQC to 2.13.0:
Nothing major otherwise. Of course the CMake option names now all start with Thanks again, I would have never done this. Neither could any agents do this. My attempt to use Claude to do cmake option renaming revealed that it is completely hopeless at groking nontrivial cmake code in int_am.cmake (straight text replace is fine, but programmatically-hidden instances stayed hidden) |
|
@loriab this seems to be in shape now to be merged (at least I managed to consume library from MPQC both via FC and find_package). BTW, re: DynamicVersion ... it seems that now I have to make a tag to change the version? Then make a release? |
|
Are G12 ints working for you? I'm still investigating the case of the config below not happy compiling build_libint.cc |
sheesh ... so many missed namespacing changes. pushed. G12 seems to generate/compile. G12DKH seems broken, but that code is experimental (so is G12 at this point ... no modern code uses it, keep them around since F12 is better formulated in terms of them). |
|
@loriab ok, now pushed |
fresh detect boost fix
check components
last preparations for 2.13.0 release that introduces @loriab's CMake harness. This will scrap the legacy harness(es).