Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new cmake harness, round 3 #233

Open
wants to merge 187 commits into
base: features/new-cmake-harness
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
187 commits
Select commit Hold shift + click to select a range
f9fd25c
int_am.cmake work to allow arbitrary deriv, new components format, mo…
loriab Jan 13, 2022
671a2be
standardize copyright date for new files
loriab Jan 13, 2022
08ad883
misc. fixes
loriab Jan 14, 2022
74389ad
fill out options descriptions. simpler cmake if/else/endif syntax.
loriab Jan 14, 2022
591599f
Boost::boost -> Boost::headers upon CMake 3.15
loriab Jan 14, 2022
82541de
new inbuilt CMake Python detection upon CMake 3.15
loriab Jan 14, 2022
80ab815
TWOBODY -> ERI
loriab Jan 14, 2022
af677e5
more gha. bump cmake to 3.18
loriab Jan 14, 2022
c83d69d
more gha fix
loriab Jan 14, 2022
c83bf68
weird quotes gha behavior
loriab Jan 14, 2022
ed49e12
gha after fixing features
loriab Jan 15, 2022
58eb4e2
use std::rand instead of std::random_device to seed RandomShellSet ..…
evaleev Jan 15, 2022
b871233
prefactors.cc: pacify gcc
evaleev Jan 16, 2022
343f2ca
fortran eri test must compare absolute precision, not relative, just …
evaleev Jan 16, 2022
8ebf0e6
Merge branch 'features/new-cmake-harness' into new-cmake-harness-lab-rb1
evaleev Jan 16, 2022
953960f
Merge branch 'features/new-cmake-harness' into new-cmake-harness-lab-rb1
evaleev Jan 16, 2022
656b40a
separate target export files. remove full paths from install config.
loriab Jan 17, 2022
26c2f0d
Merge branch 'features/new-cmake-harness' into new-cmake-harness-lab-rb1
evaleev Jan 18, 2022
702a24d
int_am.cmake work to allow arbitrary deriv, new components format, mo…
loriab Jan 13, 2022
f0624df
standardize copyright date for new files
loriab Jan 13, 2022
a3c502b
misc. fixes
loriab Jan 14, 2022
299f396
fill out options descriptions. simpler cmake if/else/endif syntax.
loriab Jan 14, 2022
8164585
Boost::boost -> Boost::headers upon CMake 3.15
loriab Jan 14, 2022
b464394
new inbuilt CMake Python detection upon CMake 3.15
loriab Jan 14, 2022
17dc02e
TWOBODY -> ERI
loriab Jan 14, 2022
eac771c
more gha. bump cmake to 3.18
loriab Jan 14, 2022
7ddc714
more gha fix
loriab Jan 14, 2022
bdf8ab4
weird quotes gha behavior
loriab Jan 14, 2022
560c71b
gha after fixing features
loriab Jan 15, 2022
864022b
use std::rand instead of std::random_device to seed RandomShellSet ..…
evaleev Jan 15, 2022
c85c416
prefactors.cc: pacify gcc
evaleev Jan 16, 2022
ac5ee1a
fortran eri test must compare absolute precision, not relative, just …
evaleev Jan 16, 2022
ba21519
separate target export files. remove full paths from install config.
loriab Jan 17, 2022
69d48fb
move eigen detection to config
loriab Jan 18, 2022
c13828c
fix up after rebase
loriab Jan 18, 2022
b15294f
organize lib defs, NS->L2, back to 3 char ordering component in Config
loriab Jan 19, 2022
9eaeeab
Merge branch 'new-cmake-harness-lab-rb1' of github.com:loriab/libint …
evaleev Jan 19, 2022
14b875c
target documentation
loriab Jan 19, 2022
6828c7d
hide libtool files
loriab Jan 20, 2022
2d32dff
reconsolidate version storage, computing, and transfer. get basis set…
loriab Jan 20, 2022
2309175
2.7.1 -> 2.7.0 btwn configure.ac -> CMakeLists.txt
loriab Jan 20, 2022
6fb5bae
fix datadir
loriab Jan 21, 2022
f869960
one more fix
loriab Jan 21, 2022
abe04cc
allow and document non-standard install locations
loriab Jan 21, 2022
4ce4105
paths take 2
loriab Jan 21, 2022
ead9698
Merge branch 'new-cmake-harness-lab-rb1' of github.com:loriab/libint …
evaleev Jan 21, 2022
2c60cd3
fixup
evaleev Jan 21, 2022
6ba89f8
reconcile line numbers
loriab Jan 21, 2022
1574ad2
help pkgconfig file paths
loriab Jan 21, 2022
bd81d66
work on aliases
loriab Jan 22, 2022
cc13041
test BUILD_TESTING. simplify for newer cmake version
loriab Jan 24, 2022
8893070
onebody and pure_sh components for psi
loriab Jan 25, 2022
e2709e3
cmake for doxygen. standardize some spacing
loriab Jan 25, 2022
f242c01
add install component to library installs
loriab Jan 25, 2022
14118c7
tidy config file. more docs.
loriab Jan 25, 2022
8d988cd
start sorting out gmp and mpfr
loriab Jan 28, 2022
0b38bf3
more dependencies
loriab Jan 28, 2022
7d8e49f
don't disable system gmp
loriab Jan 28, 2022
9dc3da5
Update INSTALL.md
loriab Jan 29, 2022
65fbb53
help fortran maybe
loriab Jan 29, 2022
30f085e
incomplete eigen edits
loriab Jan 29, 2022
0b5f807
fix eigen
loriab Jan 29, 2022
8e509c6
Update INSTALL.md
loriab Jan 29, 2022
9ae21fc
Update INSTALL.md
loriab Jan 29, 2022
81c3ebe
misc tidying, tentative fort install
loriab Jan 31, 2022
f24f65f
ci 1
loriab Feb 1, 2022
706270f
ci 2
loriab Feb 1, 2022
38fb786
ci 3
loriab Feb 1, 2022
b7b562c
ci 4
loriab Feb 1, 2022
19d0c01
ci 5
loriab Feb 1, 2022
84b3c6c
ci 6
loriab Feb 1, 2022
694c337
ci 7
loriab Feb 1, 2022
33fa36d
ci 8
loriab Feb 1, 2022
b0ab1da
ci 9
loriab Feb 1, 2022
8d2dcdc
ci 10
loriab Feb 1, 2022
a9715f9
ci 11
loriab Feb 1, 2022
84ea2b3
ci 12
loriab Feb 1, 2022
439fbe7
ci 13
loriab Feb 1, 2022
fcf2c28
ci 14
loriab Feb 1, 2022
54af352
ci 15
loriab Feb 1, 2022
80c75fc
ci 16
loriab Feb 2, 2022
ad85ee2
ci 17
loriab Feb 2, 2022
c847b87
ci 18
loriab Feb 2, 2022
7d73ab9
ci 19
loriab Feb 2, 2022
7b1e776
ci 20
loriab Feb 2, 2022
8a6c1df
ci 21
loriab Feb 2, 2022
112f337
ci 22
loriab Feb 2, 2022
f85b5df
ci 23
loriab Feb 2, 2022
8ac1454
ci 24
loriab Feb 2, 2022
bf92f91
ci 25
loriab Feb 2, 2022
e7a46f9
ci 26
loriab Feb 2, 2022
978074f
ci 27
loriab Feb 2, 2022
a1b9d36
ci 28
loriab Feb 2, 2022
416696f
ci 29
loriab Feb 2, 2022
65fa628
ci 30
loriab Feb 2, 2022
40ee39c
ci 31
loriab Feb 2, 2022
143205b
ci 32
loriab Feb 2, 2022
fae673c
ci 33
loriab Feb 2, 2022
dc5661b
ci 34
loriab Feb 2, 2022
bd654a1
ci 35
loriab Feb 2, 2022
01f42e2
ci 36
loriab Feb 2, 2022
2241f6d
ci 37
loriab Feb 2, 2022
7eec4e3
ci 38
loriab Feb 2, 2022
7254bb6
ci 39
loriab Feb 2, 2022
6ea4694
ci 40
loriab Feb 3, 2022
308da04
ci 41
loriab Feb 3, 2022
72a0cfe
ci 42
loriab Feb 3, 2022
5e45bfb
ci 43
loriab Feb 3, 2022
99aea66
ci 44
loriab Feb 3, 2022
c6abf4c
ci 45
loriab Feb 3, 2022
c1e8fa6
ci 46
loriab Feb 3, 2022
cf044af
ci 47
loriab Feb 3, 2022
03f6721
ci 48
loriab Feb 3, 2022
6b8f3b9
ci 49
loriab Feb 3, 2022
1479e39
ci 50
loriab Feb 4, 2022
8c4ca00
ci 51
loriab Feb 4, 2022
2d26750
ci 52
loriab Feb 4, 2022
38a38eb
ci 53
loriab Feb 4, 2022
fb61ab1
ci 54
loriab Feb 4, 2022
33931be
ci 55
loriab Feb 4, 2022
aee79c9
ci 56
loriab Feb 4, 2022
dd91e6b
ci 57
loriab Feb 4, 2022
46a6f08
ci 58
loriab Feb 4, 2022
f3ddba1
ci 59
loriab Feb 4, 2022
75797b4
correct desparate edits
loriab Feb 7, 2022
9709f7f
bump version even with master
loriab Feb 7, 2022
8b44d3e
add t1g12 option
loriab Feb 8, 2022
f68fd0d
enable g12
loriab Feb 8, 2022
bd7eac0
ci 60
loriab Feb 8, 2022
394fe0c
ci 61
loriab Feb 8, 2022
116e1cd
ci 62
loriab Feb 8, 2022
1207ed7
ci 63
loriab Feb 8, 2022
4470c09
ci 64
loriab Feb 9, 2022
2732e7f
ci 65
loriab Feb 9, 2022
d0cc586
ci 66
loriab Feb 9, 2022
7938b6b
ci 67
loriab Feb 9, 2022
9dd660c
ci 68
loriab Feb 9, 2022
3785a52
ci 69
loriab Feb 9, 2022
5e0e093
ci 70
loriab Feb 9, 2022
7fb0118
ci 71
loriab Feb 9, 2022
32d83e8
ci 72
loriab Feb 9, 2022
7d7b2c7
ci 73
loriab Feb 9, 2022
932cd95
ci 74
loriab Feb 9, 2022
a6d6cc8
ci 75
loriab Feb 9, 2022
c3d7e28
ci 76
loriab Feb 9, 2022
fb51a57
ci 77
loriab Feb 9, 2022
3961e04
ci 78
loriab Feb 9, 2022
f2a1066
ci 79
loriab Feb 9, 2022
0d75fc4
ci 80
loriab Feb 9, 2022
79297a8
ci 81
loriab Feb 9, 2022
bbfb0c2
ci 82
loriab Feb 9, 2022
c148b95
ci 83
loriab Feb 9, 2022
46eb92b
ci 84
loriab Feb 9, 2022
49441da
ci 85
loriab Feb 9, 2022
a440625
ci 86
loriab Feb 9, 2022
8242221
ci 87
loriab Feb 9, 2022
cb23115
ci 88
loriab Feb 9, 2022
960d6ec
ci 89
loriab Feb 9, 2022
14ad7ae
ci 90
loriab Feb 9, 2022
875ce05
ci 91
loriab Feb 10, 2022
6156ff9
ci 92
loriab Feb 10, 2022
b7ba107
ci 93
loriab Feb 11, 2022
216cfa8
ci 94
loriab Feb 11, 2022
60ce87b
rename targets, consolidate exports, remove windows no cmpld cxx
loriab Feb 11, 2022
a151d88
ci 95
loriab Feb 11, 2022
c644550
ci 96
loriab Feb 11, 2022
839cd5f
ci 97
loriab Feb 11, 2022
71ea119
ci 98
loriab Feb 11, 2022
bb993a8
ci 99
loriab Feb 11, 2022
a3046d3
ci 100
loriab Feb 11, 2022
4ce76a1
cmake back to 3.16
loriab Feb 11, 2022
52af246
allow handing eigen3 btwn l2 library build and consumer build
loriab Feb 12, 2022
79345b2
ci 101
loriab Feb 12, 2022
43a8475
ci 102 xfail
loriab Feb 12, 2022
8d949e9
ci 103 xfail
loriab Feb 12, 2022
55b3503
ci 104 xfail
loriab Feb 12, 2022
e5155f8
ci 105
loriab Feb 12, 2022
1604b95
ci 106
loriab Feb 12, 2022
af6febc
cleanup
loriab Feb 13, 2022
f395222
Update INSTALL.md
loriab Feb 14, 2022
3b3c7a2
work on install
loriab Feb 15, 2022
d85a0ec
docs
loriab Feb 15, 2022
28428b1
more docs, xhost, libint2_realtype
loriab Feb 16, 2022
3be4f6f
more docs
loriab Feb 16, 2022
0768dbb
more docs and eigen
loriab Feb 17, 2022
57f86ca
typo
evaleev Feb 17, 2022
9f12ee6
docs edits
loriab Feb 17, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
more docs and eigen
  • Loading branch information
loriab committed Feb 17, 2022
commit 0768dbb6594f11c0fa77916b016185fde2557ce5
67 changes: 51 additions & 16 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ The Libint build is structured into three parts:
- (3) run `build_libint` to generate library source (C++) files (that upon
compilation can become a Libint2 library) and combine them with other
static source files in src/lib/libint/ and general static files (e.g.,
include/ and docs/) into an independent tarball ready for distribution.
include/ and docs/) into an independent tarball ready for distribution
(with its own CMake configuration, tests, etc.).
- really slow for non-trivial angular momenta, runs in serial
- consumes no options
- build target `export` to stop after this step and collect source tarball
Expand All @@ -51,9 +52,10 @@ The Libint build is structured into three parts:
- (6) install into CMAKE_INSTALL_PREFIX


Command-line synopsis. See table below for `--target` choices and [section](#Configuring-Libint) for `-D options` choices.
Command-line synopsis. See [table](#Build-Targets) for `--target` choices (steps refer to numbered bullets above) and [section](#Configuring-Libint) for `-D options` choices.

```bash
>>> git clone https://github.com/evaleev/libint.git && cd libint
>>> ls
cmake/ COPYING src/ tests/ ...
>>> cmake -S. -Bbuild -GNinja -DCMAKE_INSTALL_PREFIX=/path/to/future/install-libint -D options ...
Expand All @@ -63,8 +65,9 @@ cmake/ COPYING src/ tests/ ...
>>> cmake --build build --target install -j`getconf _NPROCESSORS_ONLN`
```

### Build Targets

| `--target ...` | incl. | steps | ( | see | below | ) |
| `--target ...` | incl. | steps | ( | see | above | ) |
| -------------- | ----- | ----- | ----- | ----- | ----- | ----- |
| `build_libint` | 1 | - | - | - | - | - |
| `check-libint2compiler` | 1 | 2 | - | - | - | - |
Expand Down Expand Up @@ -283,11 +286,11 @@ EIGEN3_INCLUDE_DIR?
-D Eigen3_ROOT="/home/miniconda/envs/onlyeigen"
```

* Hint dependency locations targeted by <package>Config.cmake (most CMake-like): UNTESTED
* Hint dependency locations targeted by <package>Config.cmake (most CMake-like):

```
-D _DIR="/home/miniconda/envs/onlyeigen/share/eigen3/cmake/Eigen3Config.cmake"
-D _DIR="/home/miniconda/envs/onlyboost/lib/cmake/Boost-1.73.0/BoostConfig.cmake"
-D Eigen3_DIR="/home/miniconda/envs/onlyeigen/share/eigen3/cmake"
-D Boost_DIR="/home/miniconda/envs/onlyboost/lib/cmake/Boost-1.73.0"
```

* Hint dependency locations targeted by package variables (least CMake-like): UNTESTED
Expand Down Expand Up @@ -400,23 +403,32 @@ EIGEN3_INCLUDE_DIR?
* `--enable-shared` --> `-D BUILD_SHARED=ON` --> `-D BUILD_SHARED_LIBS=ON` (standard CMake variable)
* `--enable-static` --> `-D BUILD_STATIC=ON` --> `-D BUILD_SHARED_LIBS=OFF` (standard CMake variable)
* `--enable-shared --enable-static` --> `-D BUILD_SHARED=ON -D BUILD_STATIC=ON` --> `-D LIBINT2_BUILD_SHARED_AND_STATIC_LIBS=ON`
* `-D ENABLE_CXX11API=ON` --> `-D REQUIRE_CXX_API=ON`

* `-D REQUIRE_CXX_API=ON` --> `-D ENABLE_CXX11API=ON` --> `-D REQUIRE_CXX_API=ON`
* `--enable-mpfr` --> assumed present --> `-D ENABLE_MPFR=ON`

* `--prefix=path` --> `-D CMAKE_INSTALL_PREFIX=path` (standard CMake variable)

* `--with-cmakedir=partialpath` --> `-D LIBINT2_INSTALL_CMAKEDIR=partialpath`

* `--with-real-type=type` --> `-D LIBINT2_REALTYPE=type`

* `libint2` --> `Libint2::int2` (target)
* `libint2_cxx` --> `Libint2::cxx` (target)
* (target) `libint2` --> `Libint2::int2`
* (target) `libint2_cxx` --> `Libint2::cxx`

* `ENV(CXX)=/path/to/c++/compiler` --> `-D CMAKE_CXX_COMPILER=/path/to/c++/compiler`
* `ENV(CXXFLAGS)` --> `-D CMAKE_CXX_FLAGS`
* `ENV(CPPFLAGS)=-I/path/to/boost/includes` --> -D BOOST_ROOT=/path/to/boost/prefix`
* `ENV(FC)=/path/to/fortran/compiler` --> `-D CMAKE_Fortran_COMPILER=/path/to/fortran/compiler`


-----------------------------------------------------------------------------

# Targets
# Consuming Libint

### Programming to Access Integrals

* if you use C++11 or later (strongly recommended): read [this](https://github.com/evaleev/libint/wiki/using-modern-CPlusPlus-API) instead
* if you use pre-2011 C++, C, Fortran, or any other language, refer to the [Libint Programmer's Manual](http://sourceforge.net/projects/libint/files/libint-for-beginners/progman.pdf/download) for brief information on how to use the library in your code.

### Consumption Targets

| Namespaced Target[^15] | Component[^16] | Built by Default | Ensure Built | Ensure Excluded | Internal Target(s)[^17] | Alias[^18] |
| ---------------------- | -------------- | ---------------- | ----------------------------- | ----------------------------------------- | ----------------------------------- | ------------ |
Expand Down Expand Up @@ -446,15 +458,15 @@ EIGEN3_INCLUDE_DIR?

# Platform-Specific Notes

## Linux
### Linux

## macOS
### macOS

* Apple `clang++` and [MacPorts](http://www.macports.org/) `g++` (4.8) both work with `-std=c++11` flag
* MacPorts gmp package works fine
* On macOS the default `ar` program lacks support for response files (e.g., https://github.com/evaleev/libint/issues/135 and see https://gitlab.kitware.com/cmake/cmake/issues/16731). Thus you should install the GNU `ar` program (e.g., using HomeBrew: `brew install binutils`) and tell CMake to use it (e.g., add `-DCMAKE_AR=/usr/local/opt/binutils/bin/ar` to the CMake command line).

## Windows
### Windows

* Several blocking or correctness issues exist; the most thorough list is at .github/workflows/cmake.yml
* A production path is to generate an export tarball with Linux, build static library on Windows, and consume
Expand Down Expand Up @@ -533,3 +545,26 @@ EIGEN3_INCLUDE_DIR?
-DWITH_G12_OPT_AM=3
```

# Misc. Questions

##### Where do I get the source code?

The only way to get the compiler source is from the [Libint source code repository](https://github.com/evaleev/libint)on [GitHub](github.com). You can use a client, like GitHub app or (our favorite) [SourceTree](http://www.sourcetreeapp.com) app from Atlassian. Or from the command line: `git clone https://github.com/evaleev/libint.git`

##### What happened to autoconf?

Version 2.5.0 and older of the exported libint library was buildable using GNU Autoconf and [GNU Make](https://www.gnu.org/software/make/). *As of version 2.6.0 the Autoconf build is deprecated*; the exported libint library should be configured with [CMake](https://cmake.org/) and built with [any CMake-supported generator](https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html), e.g. Ninja and GNU Make.

Version 2.7 and older of the compiler repo was buildable using GNU Autoconf. *As of version 2.8, the Autoconf build is deprecated*; use CMake instead. TODO 2.8

##### What is the status and importance of SIMD vectorization in Libint?

SIMD vectorization is the crucial contributor to performance of a modern processor core. Libint code can typically hit up to 70% of FLOP peak on a scalar core, hence on a SIMD core divide that number by the vector length (4 for AVX in double precision). The situation is only going to get worse (accelerators already use 8- and 16-wide vector units, and future mainstream processors are likely to use 8-wide units also). Hence if your method spends significant portion of its time computing integrals start rewriting your code now.

Vectorization of Libint is work in progress. However, by switching to AVX we see a factor of 2-2.5 speedup of the integrals kernels compared to scalar performance, thus we are optimistic that it will be possible to attain 50% of peak on AVX hardware. It is clear that significant reorganization of the manner in which integrals are computed and digested is involved, but these costs are unavoidable.

##### What compiler is best?

To obtain peak performance it is *very important* to use the C++ compiler and compiler options that are appropriate for the given platform. It is impossible to provide specific recommendations for specific platforms. The `ENABLE_XHOST` option does allow the compiler to optimize for current architecture. We recommend to use a vendor compiler (e.g., Intel) before trying clang++ and g++. In some situations, however, clang++ and g++ are known to outperform the x86 vendor compiler, so we recommend trying several compilers.


5 changes: 3 additions & 2 deletions cmake/modules/FindEigen3.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
# * Added `NO_CMAKE_PACKAGE_REGISTRY` to `find_package(Eigen3 ...)` to avoid issues with wiped build
# directory when looking for installed eigen. Eigen3 registers its *build* tree with the user package registry.
# * Added `LIBINT_LOCAL_Eigen3_FIND` block to forcibly load hard-coded Eigen3 location detected during Libint2 library build.
# * Move default Eigen3_FIND_VERSION_* from 2.91.0 to 3.0.0 so that it doesn't reject Eigen v3 installations.
#
# - Try to find Eigen3 lib
#
Expand Down Expand Up @@ -35,10 +36,10 @@

if(NOT Eigen3_FIND_VERSION)
if(NOT Eigen3_FIND_VERSION_MAJOR)
set(Eigen3_FIND_VERSION_MAJOR 2)
set(Eigen3_FIND_VERSION_MAJOR 3)
endif()
if(NOT Eigen3_FIND_VERSION_MINOR)
set(Eigen3_FIND_VERSION_MINOR 91)
set(Eigen3_FIND_VERSION_MINOR 0)
endif()
if(NOT Eigen3_FIND_VERSION_PATCH)
set(Eigen3_FIND_VERSION_PATCH 0)
Expand Down
1 change: 0 additions & 1 deletion cmake/modules/xhost.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
message("CMAKE_CXX_COMPILER_ID ${CMAKE_CXX_COMPILER_ID}")
# Need to check things per compiler brand since they're different
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
option_with_flags(ENABLE_XHOST "Enable processor-specific optimization" ON "-xHost")
Expand Down
10 changes: 10 additions & 0 deletions src/lib/libint/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,16 @@ else()
"-DEigen3_ROOT=${Eigen3_ROOT}"
)
endif()
if (Boost_DIR)
list(APPEND library_CMAKE_ARGS
"-DBoost_DIR=${Boost_DIR}"
)
endif()
if (BOOST_ROOT)
list(APPEND library_CMAKE_ARGS
"-DBOOST_ROOT=${BOOST_ROOT}"
)
endif()
if (LIBINT_LOCAL_Eigen3_INSTALL)
list(APPEND library_CMAKE_ARGS
"-DLIBINT_LOCAL_Eigen3_INSTALL=${LIBINT_LOCAL_Eigen3_INSTALL}"
Expand Down