Require pybind 2.6 from environment for gmxapi Python package extension module.
[alexxy/gromacs.git] / docs / release-notes / 2022 / major / portability.rst
1 Portability
2 ^^^^^^^^^^^
3
4 Intel classic compiler (icc/icpc) no longer supported
5 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
6
7 We now support the Intel clang-based compiler from oneAPI (icx/icpx)
8 instead. Please use it, or gcc.
9
10 :issue:`3893`
11
12 Provisional: Initialize GMX_INSTALL_NBLIB_API and GMXAPI build options from BUILD_SHARED_LIBS
13 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
14
15 CMake options ``GMXAPI`` and ``GMX_INSTALL_NBLIB_API`` produce shared object libraries,
16 so their default values are now initialized from ``BUILD_SHARED_LIBS``.
17 Pending movement on :issue:`3605` and related issues, the coupling between these
18 options is subject to change, but users generally should not need to manually set
19 ``GMXAPI`` and ``GMX_INSTALL_NBLIB_API``.
20
21 :issue:`4053`
22
23 Updates to pybind11 dependency
24 """"""""""""""""""""""""""""""
25
26 pybind11 is no longer bundled with |Gromacs|.
27
28 The gmxapi 0.3 Python package build system relies on PEP 517/518 build requirements to get pybind11 header
29 dependencies through the Python packaging system. Package managers like ``pip`` will download dependencies
30 automatically. Package managers that do not automatically fulfill dependencies should still report the missing
31 dependency to the user.
32
33 The ``sample_restraint`` sample project
34 (bundled in ``python_packaging/sample_restraint``)
35 still has a primitive CMake-only build procedure.
36 If you fork a project from this source, you may choose to modernize the build system (similarly to that of
37 ``gmxapi``) or to bundle the pybind11 sources.
38 Within the GROMACS repository, the ``sample_restraint`` option default is now ``GMXAPI_EXTENSION_DOWNLOAD_PYBIND=ON``.
39
40 :issue:`4092`
41
42 Bundle muparser
43 """""""""""""""
44
45 |Gromacs| now bundles MuParser version 2.3. It is also possible
46 to link to an external provided library.