You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"Build Python bindings (requires Python and Pybind11 and Eigen3)"OFF)
103
+
option_with_default(LIBINT2_PREFIX_PYTHON_INSTALL
104
+
"For LIBINT2_ENABLE_PYTHON=ON, whether to install the Python module in the Linux manner to CMAKE_INSTALL_PREFIX or to not install it. See target libint2-python-wheel for alternate installation in the Python manner to Python_EXECUTABLE's site-packages."OFF)
105
+
101
106
option_with_print(LIBINT2_ENABLE_MPFR
102
107
"Use GNU MPFR library for high-precision testing (EXPERTS ONLY). Consumed at library build-time."OFF)
103
-
option_with_print(LIBINT2_LOCAL_Eigen3_INSTALL
104
-
"Install an exported target with hard-coded Eigen3 dependency paths. This is potentially useful and important when consuming the compiled C++11 interface library so that the Libint library build and Libint consumer build use the same Eigen3 installation & ABI. This is at most a convenience when consuming the header-only C++11 interface library. See `LIBINT2_LOCAL_Eigen3_FIND`. Consumed at library build-time."OFF)
108
+
## next one defined by `include(CTest)`
105
109
106
110
# <<< Which Integrals Classes, Which Derivative Levels >>>
Copy file name to clipboardExpand all lines: INSTALL.md
+5
Original file line number
Diff line number
Diff line change
@@ -238,13 +238,16 @@ Note that options, docs, and CMake components are focused on the C++ interface,
238
238
239
239
* `LIBINT2_ENABLE_MPFR` — L — Use MPFR library to test Libint integrals in high precision (requires MPFR; experts only). [Default=OFF]
240
240
* `LIBINT2_LOCAL_Eigen3_INSTALL` — L — Install an exported target with hard-coded Eigen3 dependency paths. This is potentially useful and important when consuming the compiled C++11 interface library so that the Libint library build and Libint consumer build use the same Eigen3 installation & ABI. This is at most a convenience when consuming the header-only C++11 interface library. See `LIBINT2_LOCAL_Eigen3_FIND`. [Default=OFF]
241
+
* `LIBINT2_ENABLE_PYTHON` — L — Build Python bindings (requires Python and Eigen3; Boost and pybind11 recommended; [see prereq line](#prerequisites)). Can instead be enabled and built through separate CMake configuration after library build. [Default=OFF]
241
242
242
243
243
244
### Build Library How (G L) (TARBALL)
244
245
245
246
246
247
### Detecting Dependencies (G L C) (TARBALL)
247
248
249
+
* `Python_EXECUTABLE` — L — Path to Python interpreter.
250
+
* `CMAKE_PREFIX_PATH` — G L — Set to list of root directories to look for external dependencies. [Standard CMake variable](https://cmake.org/cmake/help/latest/variable/CMAKE_PREFIX_PATH.html)
248
251
* `BOOST_ROOT` — G L C — Prefix to installation location (`BOOST_ROOT/include/boost/` exists)
249
252
* `Boost_DIR` - G L C - Path to installation location of Boost's config file (`Boost_DIR/BoostConfig.cmake` exists)
250
253
* `CMAKE_DISABLE_FIND_PACKAGE_Boost` — L — When Boost required for C++11 Libint API, disable its detection, thereby forcing use of bundled Boost. Note that this (and other Boost-hinting variables) can affect what is installed [see here](#packagers). [Standard CMake variable](https://cmake.org/cmake/help/latest/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html). [Default=OFF]
@@ -288,6 +291,7 @@ Note that options, docs, and CMake components are focused on the C++ interface,
288
291
289
292
### Install Paths (L) (TARBALL)
290
293
294
+
* `LIBINT2_PREFIX_PYTHON_INSTALL` — L — For `LIBINT2_ENABLE_PYTHON=ON`, whether to install the Python module in the Linux manner to `CMAKE_INSTALL_PREFIX` or to not install it. Note: not a path; the installation sub-path below `CMAKE_INSTALL_PREFIX` is determined by querying `Python_EXECUTABLE`. For alternate installation in the Python manner to `Python_EXECUTABLE`'s site-packages, see target libint2-python-wheel. [Default=OFF]
291
295
292
296
293
297
### Miscellaneous (G L)
@@ -382,6 +386,7 @@ Note that options, docs, and CMake components are focused on the C++ interface,
Copy file name to clipboardExpand all lines: src/lib/libint/CMakeLists.txt.export
+15
Original file line number
Diff line number
Diff line change
@@ -36,6 +36,10 @@ include(CheckFunctionExists)
36
36
37
37
option_with_print(LIBINT2_ENABLE_MPFR
38
38
"Use GNU MPFR library for high-precision testing (requires MPFR. EXPERTS ONLY)" OFF)
39
+
option_with_print(LIBINT2_ENABLE_PYTHON
40
+
"Build Python bindings (requires Python and Pybind11 and Eigen3)" OFF)
41
+
option_with_print(LIBINT2_PREFIX_PYTHON_INSTALL
42
+
"For LIBINT2_ENABLE_PYTHON=ON, whether to install the Python module in the Linux manner to CMAKE_INSTALL_PREFIX or to not install it. See target libint2-python-wheel for alternate installation in the Python manner to Python_EXECUTABLE's site-packages." OFF)
39
43
option_with_print(LIBINT2_LOCAL_Eigen3_INSTALL
40
44
"Install an exported target with hard-coded Eigen3 dependency paths. This is potentially useful and important when consuming the compiled C++11 interface library so that the Libint library build and Libint consumer build use the same Eigen3 installation & ABI. This is at most a convenience when consuming the header-only C++11 interface library. In consumer build, set `LIBINT2_LOCAL_Eigen3_FIND=ON` before `find_package(Libint2) to load the exported Eigen3." OFF)
@@ -119,6 +123,17 @@ if (NOT LIBINT_HAS_EIGEN) # TODO tmp wrong logic
119
123
message(FATAL_ERROR "C++ API cannot be built without Eigen3; configure (via CMake) and install Eigen3 and add the install prefix to CMAKE_PREFIX_PATH, or add -DLIBINT2_REQUIRE_CXX_API=OFF to the CMake command line if the C++ API is not required")
120
124
endif()
121
125
126
+
# Python is optionally used for testing.
127
+
# * But for Fortran, it's additionally required for preprocessing.
128
+
# * And for Python bindings, it's required along with its headers.
129
+
if (LIBINT2_ENABLE_PYTHON)
130
+
find_package(Python COMPONENTS Interpreter Development REQUIRED)
0 commit comments