molpro / library-manager Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
In GitLab by @mxs301 on Aug 25, 2020, 17:29
In GitLab by @mxs301 on Sep 16, 2020, 14:27
We have an option to dump all C and Fortran flags to a pkgconfig file. Currently we just make list of different options by recursively going through target dependencies and appending. There is no clean up which means linker flags are wrong. It's time to process those options to generate a pkgconfig file that actually works.
TODO:
In GitLab by @mxs301 on Jun 28, 2020, 10:01
See issue https://gitlab.com/molpro/gci/-/issues/21.
LibraryManager_FindHDF5
which returns an alias target and makes sure that only on library is ever usedIn GitLab by @mxs301 on May 29, 2020, 09:50
Merges LM-funcitons-sphinx-docs -> master
In GitLab by @KnowlesPJ on Jan 17, 2021, 12:50
Merges fortran-i8 -> master
In GitLab by @KnowlesPJ on Feb 16, 2022, 17:36
Merges macos-lapacke -> master
In GitLab by @KnowlesPJ on Aug 30, 2020, 12:35
cmake 3.16 and 3.18 behave quite differently. Sometimes you get an imported target BLAS::BLAS, which needs the GLOBAL property setting; sometimes (I think 3.16) you don't get this target at all. We need to look at this and either fix it up, or mandate a sufficiently new cmake. Whatever happens, the outcome of LibraryManager_BLAS and LibraryManager_LAPACK should be uniform.
Perhaps it would be best if all the logic in https://gitlab.com/Knowles-group/Molpro/-/blob/14511fdcb5ba3964a05246563da3fc81908581a9/external/src/CMakeLists.txt#L10-26 would be best done inside the function - in other words express, optionally, preference for integer size and threading as parameters to LibraryManager_LAPACK
Related to #3.
In GitLab by @mxs301 on Sep 18, 2020, 09:37
It might be necessary to build one target with debugging and no optimisation, while the rest of the targets have full optimisation. This type of scenario is very common in things like game development where speed of debugging is crucial.
We should provide a mechanism for this.
To override the flags at CMake level, we need to know the target name and the flags. LibraryManager can accept a variable "OVERRIDE_FLAGS_${TARGET_NAME}" with a new list of flags. This can be passed during configure, and in external/src/CMakeLists.txt we can add a function call "LibraryManager_OverrideFlags" that will loop over all targets defined in "${BUILDSYSTEM_TARGETS}" and apply override flags if the corresponding variable is defined.
In GitLab by @mxs301 on Aug 29, 2020, 13:53
Currently we install them to include/fortran
but there is no need for that and it is simpler to install them to include/
.
In GitLab by @KnowlesPJ on Jan 17, 2021, 14:05
Merges fortran-i8 -> master
In GitLab by @KnowlesPJ on Mar 11, 2021, 16:44
Merges find-lapacke-lib -> master
In GitLab by @mxs301 on Jun 28, 2020, 10:03
There should be an option for the user to pass BLAS and LAPACK flags, so that find_package()
is not called.
In GitLab by @KnowlesPJ on Feb 20, 2022, 07:07
Merges eigen -> master
Introduce testing of Eigen.
For BLA_VENDOR=Apple, force LAPACK to come from OpenBLAS
In GitLab by @KnowlesPJ on Feb 25, 2022, 17:46
Merges no-lapacke -> master
In GitLab by @KnowlesPJ on Jan 17, 2021, 12:14
Merges repair-fortran-i8-detection -> master
In GitLab by @mxs301 on Sep 18, 2020, 09:49
There is quite a bit of variation in those modules depending on CMake version. Most importantly in 3.18 they create targets, and this is exactly the mechanism we introduced ourselves. Those modules are pretty much stand-alone and we should attempt to provide the most recent versions, irrespective of installed cmake. This speaks in favour of copying those modules into LibraryManager.
In GitLab by @KnowlesPJ on Sep 13, 2020, 20:45
https://gitlab.com/molpro/librarymanager/-/blob/d34819f57238b9efab14acb51ae3abfeccd64016/cmake/LibraryManager.cmake#L456-470 is not effective in the case that no arguments are given to LibraryManager_FindLAPACK
and BLA_VENDOR
is empty. At that point, BLA_VENDOR_FOUND
contains All
. Somehow one should discover that MKL has been found even though not asked for explicitly. Without this there is trouble on MacOS because of the lack of https://gitlab.com/molpro/librarymanager/-/blob/d34819f57238b9efab14acb51ae3abfeccd64016/cmake/LibraryManager.cmake#L458
In GitLab by @KnowlesPJ on Feb 16, 2022, 21:18
Merges generator-pkg-config -> master
In GitLab by @KnowlesPJ on May 12, 2021, 17:21
Merges oneapi-discovery -> master
In GitLab by @KnowlesPJ on Jun 21, 2020, 12:57
https://gitlab.com/molpro/librarymanager/-/blob/b44b32d41842e03e655e89c887d123cab0729959/cmake/LibraryManager.cmake#L79-84 looks imperfect to me, because the scope of the outcome (CMAKE_Fortran_FLAGS) is local, but a global property is set to prevent it being done anywhere in the future. It is fine if, as intended, this is called at the top level, but not otherwise. At the very least, a trap would be good, as some hours of debugging can result otherwise for the uninitiated!
In GitLab by @KnowlesPJ on Feb 24, 2022, 06:47
Merges better-lapack-cblas-discovery -> master
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.