mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-06 00:48:18 -07:00
sci-chemistry/gromacs: drop 2020.7-r1, 2021.7-r1, 2022.6
Closes: https://bugs.gentoo.org/836855 Closes: https://bugs.gentoo.org/907989 Closes: https://bugs.gentoo.org/928852 Signed-off-by: Alexey Shvetsov <alexxy@gentoo.org>
This commit is contained in:
@@ -1,20 +1,11 @@
|
||||
DIST gromacs-2020.7.tar.gz 29175554 BLAKE2B 98f1aa415946f8eb113febc81105f0c1b0919b96fc3c55a0ab83bf3950ff509b81eade92e645adb0bc2b407df239e20cf3f19828b6e08616437c8693c1fddcc8 SHA512 1d375c44cec38445e56cea252623b5b6c565680268999d4b6c14d6dc38759a27227655b2d29efaab9f9115d3677b446cb555e11cddafa0dc10c4827caaa2477b
|
||||
DIST gromacs-2021.7.tar.gz 38028032 BLAKE2B 2dc1b15ca8692ca5cf4ad1c7a266b9e2ced064d34a63cef61fea69e48231dd0310cfd8484d29c56cdb599f795d7655959f40038ac933b46ad2841d57bf2b3646 SHA512 ca478533da3bcb377fda30682660db8eb13beef6456fac6013a1a97ec3be60b5594567412e1e2a31392e484f9a40a22da1f12336f4738cf0422ff4f3e8814609
|
||||
DIST gromacs-2022.6.tar.gz 40330705 BLAKE2B fdafbd5b2a92d6022dec3e79e961fef220f1eba42850916e7cb70ef459a8d9c6ebc8c1bbe3c105f5b23161dd5c552ec00505d7c0036649b782cf52c311498743 SHA512 91217394f534ca8f78f73189059712e1c2cd354b658722f23768b12748f7bfaf1a5e95227c5ed1b69c1a9b72c3174e9600a712c157ea2f27156387efb823dd67
|
||||
DIST gromacs-2023.5.tar.gz 42079310 BLAKE2B e50dbe76396230f4a886280bdebcf7b131506679240e77d2a2263c3b5dbfe7ef754c4265fc04e9acad7932c7691de7f694cc23140a25d0d5be649a4120f45b0c SHA512 f3a34cf0d379d6d4964d7494af6c6617c0c092293ea38a3a248af2dd2a90cae04696d52e68126176065efc480977942b00efa441028e526e1555c7e84551fc0c
|
||||
DIST gromacs-2024.3.tar.gz 42373103 BLAKE2B f45af72ecdf119b423d98b84818eaca1aa2e3f43eaf1aff7435de2a5891079a880f19a654627ee2f43e3a38c9dcfa0638bc6eb6da201b3c9ce89b2dc32fc683b SHA512 13f23e581c2b63f6262e8359e7bed6a1a5f3164047ea38d2b6a44bcd2b20b61332705167435fe2ad30fe6f24f8ab49b982388550cdecb49167e4156e36286d3d
|
||||
DIST gromacs-2024.4.tar.gz 42356162 BLAKE2B 3a1019128a2cfd47fb3ab23962a6fcd5bac3b5519d4bfa1239956740226468986ba93e645eb3bc20117968c024823e948fd819a603315399d573275c91c6e51b SHA512 32a08e9417d4d36a29bdfde4e0448bc136bd3db79b5d5c84fa99d9f022ffca6a94b7bd1c7e7a335430fb6bdcf0181e3cbabeb46d13978c0f87b5d88787ea8d63
|
||||
DIST gromacs-2025.0-beta.tar.gz 45067499 BLAKE2B 661607007af6d1f697f5aec72a88cefec5546dee2c0facaf2776354665f56fd71b1a7a2ea92185b4d64e764cd0ac10e865b740dda6d7438318acbbadd1bd7fd0 SHA512 831b4ba2631f5dd65c1b48d4ba0455af0b101af22d8cc78c246e7b36f4ce3c8f33f1cb8d94e42559741dbe1585c75a6e05a2538708d7e57c86ac2174aca302b9
|
||||
DIST manual-2020.7.pdf 11850780 BLAKE2B 38594e87993badfbbcf47d6010a7f67d3c3426dab85e1462916b4d62be27b5764953f912cf2b71ee24877e0bfa27b3f74431da2da81b4977d58cb66b2cc795a3 SHA512 4f184f2c90e0bac01a48069cc546cd5b04fa5f543f90dd2d68c6d17be278152fd09456b6a6c5c8236f8fb85a174d6ec7a1c7b44d437b4e6fea5d0ada73cec0f6
|
||||
DIST manual-2021.7.pdf 12256526 BLAKE2B 6f298d7dac142f66914bbc2ea7d6ca70c4aeafaf33ccf12336d5cec64b1f1097b5332c767bb411ccef706ec6184479a84bcf59bda21c4249d45d8ce3dea08e79 SHA512 197765accb8ab6c5f1cc94b2697ff1817e157d85fa231dfe36a85036076e04da2a8035de66aba4f46c6dd7f553176357b94c92e1da5d1dabc574c627deee5279
|
||||
DIST manual-2022.6.pdf 13081140 BLAKE2B e7ae3f23ddc076c295be2c464fe2177d6d6848d070ee5eba2b572e996ae08adead898ec6432b123802907f64983aa4d2e17426be8d540c48d12398a479519f9e SHA512 4724888b3c33c4fa4a035d5fb2f8c51496f67e1ee312676510d5ba74bc3cc1571e71e84464585b87ad0133e8e736343ae382bf8f7b556633f86a99560213d271
|
||||
DIST manual-2023.5.pdf 13579081 BLAKE2B 42f687ebcdb79bfc77aabac4fd382940c23ba27da380b8eff342c2e9255a58fc11a0458220d1f71f3c13ab1cf6fdabad00ac1bad741781d0b787899165bea2cc SHA512 0661f166f7a8dc24b4244c0139f366832ddfc1298129df2a6e29800b5d1567318781ab547bc7e9ee54de7a62abba4996f8e3010c91d6917c248117e5711d7dbb
|
||||
DIST manual-2024.3.pdf 13676383 BLAKE2B fa5b310ee8977c525781492c70a18d40f8842f5fa43831ad0283c033f39968ba98e74ea618a4a9c25d88c3ed694071327220617b17f316ba2f29777c3edc95ca SHA512 8dd09913b89213a6673a5f5e3462fb963d1f30d68e0d58b846b7e2cf2f73baacb14fabab6591b680849607f4ca617cf288899729939b2c32021b4ee5ba06835f
|
||||
DIST manual-2024.4.pdf 13690684 BLAKE2B 7fac46df0da9d4cf7584599c7a71c4e1d11f75fc20a7a19ecc8069fdc2e9e35f0292e389f9c40d69dc96bdfea8d4ee370a54279b5531c0fb37c4cbd76caf7800 SHA512 5c4662527554171774adde5a3de220d775723154914838fd7fc3e40c981e1fccac0fd0def1acc500635cd39269d3bcc2edab5ec7aa85a7ea78350969d72ee13c
|
||||
DIST manual-2025.0-beta.pdf 13788093 BLAKE2B 40652f32f35d73964dfb8146b916c0249d8b7044595114986108f209e98e3a0a402ead18842822ce12c9cdd24a224bb95f80fbe5eec908f013b1eddc14d2a2fd SHA512 eafc1fd060f4a5dd5e7317f0f0fa45cfd5ccc20518a9d67b9055a87c324893d92573dfd416fcbf0fc9b7a932a47e3a592fbc38837bccdd237466bb62cd3ad9ed
|
||||
DIST regressiontests-2020.7.tar.gz 48541487 BLAKE2B 255608b52158c6c01e7c7c4dcf075128ecf22b2f26d32e8c203de8a4bc69c60ec95f49cf8ccd64abc3073c5e8dca9d6b01daed9dfb8f67bce2dd068ed01acd05 SHA512 2458582f94f3c9f4e1454824ce3940b4f5b6cb2151d06846c42e7a9448296fd2a6df4f53be9624e0d3317d2b59f89bb5348eb8b2970d7b46ac22ca989ef3458a
|
||||
DIST regressiontests-2021.7.tar.gz 48537500 BLAKE2B b0c97fa652cb9b972c50f29822f530fcaa2ec9acb6d6442114fc6446c54aade5eb1bfa153c69a7e8bf64b66e8b041d7f8e0d51e7f7b0516f9e03f3d9ad626193 SHA512 7cbead90aa6d62346dcf7c2249c3cfa179884b987a749624444d2f59d93e0322f7721143bf6eb44d26102635dc70a73546ef82d4647558b6320bfdd459074017
|
||||
DIST regressiontests-2022.6.tar.gz 48615697 BLAKE2B 566adafbc36d3c1faae322fca9cf451f57245c4ceed63f90f26208025937dae0c1bbb8c372bce618f63305d0368113fecd96c7275a75d8b9c19c22a6e5aa9b96 SHA512 68aa9bedffbea37fb7703c18c3f66f607a91f16ece4bec58ced6e42a481156b2fe83760d0e40cecbdcaf87b168441b8ebde27cec30d98c89f516360ea45ddd43
|
||||
DIST regressiontests-2023.5.tar.gz 48619605 BLAKE2B f2549a34750c6866f054614a00a3360a09b82306e6bd5e5b848e18cdd3a3fabaac6203c5ca734901019403225dd47e0d662838abe9a1db7d07662f1c745b8e4f SHA512 3ccaf9db7dfba641a5e98ebff3d735cae3f679926aba443ffedec20dd6c85e67f0e9711ebad5dfa8105122d5411f5de6ded1802a7da4ddf0599657832c8c597a
|
||||
DIST regressiontests-2024.3.tar.gz 32776961 BLAKE2B 6a74977a396f8e82f7aba7a384cc840275b86d470597a4bbb93e97f1c13cd8fcf6d86ab26bdd4a89464b863954c9ed7dbd49af095e821573845f7bda43c2b90b SHA512 1c4afbbca82c9b9ad371713ef5e7e093ca766f25f6fbda55c79ea1aecb2f0a06bdb042d3c8a86e3d9bf9e8b8091244827dbff544f66037ffa56b0bcb341a9d2c
|
||||
DIST regressiontests-2024.4.tar.gz 32777006 BLAKE2B 41623de750b89410fa0a52037ea28d99a688b602b286cff732a6e8100b2b72072f579fc4f72bfe7c246ca086b6c6c1c10adb89874db6e1c9276494572e408a9f SHA512 dfbe8ee1b7c5b534842203f2295ea08875df6af3fb94798138b92ab8bc816719e3357db2935d2de4fd798d104ad7cb44860cd65887da7bb2438db422f35e6848
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
From e4e1263776844d660c471e3d1203acf54cdc855f Mon Sep 17 00:00:00 2001
|
||||
From: Alexey Shvetsov <alexxyum@gmail.com>
|
||||
Date: Fri, 23 Apr 2021 13:21:24 +0300
|
||||
Subject: [PATCH 2/2] Allow to build python part without build testing enabled
|
||||
|
||||
Signed-off-by: Alexey Shvetsov <alexxyum@gmail.com>
|
||||
---
|
||||
python_packaging/src/CMakeLists.txt | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/python_packaging/src/CMakeLists.txt b/python_packaging/src/CMakeLists.txt
|
||||
index c75549fc82..4f983fdd5f 100644
|
||||
--- a/python_packaging/src/CMakeLists.txt
|
||||
+++ b/python_packaging/src/CMakeLists.txt
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# This file is part of the GROMACS molecular simulation package.
|
||||
#
|
||||
-# Copyright (c) 2019,2020, by the GROMACS development team, led by
|
||||
+# Copyright (c) 2019,2020,2021, by the GROMACS development team, led by
|
||||
# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
|
||||
# and including many others, as listed in the AUTHORS file in the
|
||||
# top-level source directory and at http://www.gromacs.org.
|
||||
@@ -252,5 +252,7 @@ endif()
|
||||
# to the `check` target. Normal usage is to first install the Python package,
|
||||
# then run `pytest` on the `tests` directory. Refer to gmxapi package documentation.
|
||||
if(NOT GMXAPI_MASTER_PROJECT)
|
||||
- add_subdirectory(test)
|
||||
+ if (BUILD_TESTING)
|
||||
+ add_subdirectory(test)
|
||||
+ endif()
|
||||
endif()
|
||||
--
|
||||
2.31.1
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
# https://bugs.gentoo.org/915694
|
||||
# Not needed for newer branches, that greatly refactored the code
|
||||
--- a/src/gromacs/utility/flags.h~ 2023-01-31 12:45:46.000000000 +0100
|
||||
+++ b/src/gromacs/utility/flags.h 2023-10-16 10:15:24.087340444 +0200
|
||||
@@ -42,7 +42,7 @@
|
||||
*/
|
||||
#ifndef GMX_UTILITY_FLAGS_H
|
||||
#define GMX_UTILITY_FLAGS_H
|
||||
-
|
||||
+#include <cstdint>
|
||||
namespace gmx
|
||||
{
|
||||
@@ -1,339 +0,0 @@
|
||||
--- gromacs-2021.7/cmake/gmxManageNvccConfig.cmake 2023-01-31 12:45:45.000000000 +0100
|
||||
+++ gromacs-2022.5/cmake/gmxManageNvccConfig.cmake 2023-02-03 12:53:34.000000000 +0100
|
||||
@@ -1,11 +1,9 @@
|
||||
#
|
||||
# This file is part of the GROMACS molecular simulation package.
|
||||
#
|
||||
-# Copyright (c) 2012,2013,2014,2015,2016 by the GROMACS development team.
|
||||
-# Copyright (c) 2017,2018,2019,2020,2021, by the GROMACS development team, led by
|
||||
-# Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
|
||||
-# and including many others, as listed in the AUTHORS file in the
|
||||
-# top-level source directory and at http://www.gromacs.org.
|
||||
+# Copyright 2012- The GROMACS Authors
|
||||
+# and the project initiators Erik Lindahl, Berk Hess and David van der Spoel.
|
||||
+# Consult the AUTHORS/COPYING files and https://www.gromacs.org for details.
|
||||
#
|
||||
# GROMACS is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public License
|
||||
@@ -19,7 +17,7 @@
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with GROMACS; if not, see
|
||||
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
|
||||
+# https://www.gnu.org/licenses, or write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# If you want to redistribute modifications to GROMACS, please
|
||||
@@ -28,10 +26,10 @@
|
||||
# consider code for inclusion in the official distribution, but
|
||||
# derived work must not be called official GROMACS. Details are found
|
||||
# in the README & COPYING files - if they are missing, get the
|
||||
-# official version at http://www.gromacs.org.
|
||||
+# official version at https://www.gromacs.org.
|
||||
#
|
||||
# To help us fund GROMACS development, we humbly ask that you cite
|
||||
-# the research papers on the package. Check out http://www.gromacs.org.
|
||||
+# the research papers on the package. Check out https://www.gromacs.org.
|
||||
|
||||
# Manage CUDA nvcc compilation configuration, try to be smart to ease the users'
|
||||
# pain as much as possible:
|
||||
@@ -51,7 +49,7 @@
|
||||
# glibc source shows that _FORCE_INLINES is only used in this string.h
|
||||
# feature and performance of memcpy variants is unimportant for CUDA
|
||||
# code in GROMACS. So this workaround is good enough to keep problems
|
||||
-# away from users installing GROMACS. See Issue #1942.
|
||||
+# away from users installing GROMACS. See Issue #1982.
|
||||
function(work_around_glibc_2_23)
|
||||
try_compile(IS_GLIBC_2_23_OR_HIGHER ${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/cmake/TestGlibcVersion.cpp)
|
||||
if(IS_GLIBC_2_23_OR_HIGHER)
|
||||
@@ -83,67 +81,158 @@
|
||||
mark_as_advanced(CUDA_HOST_COMPILER CUDA_HOST_COMPILER_OPTIONS)
|
||||
endif()
|
||||
|
||||
+# We would like to be helpful and reject the host compiler with a
|
||||
+# clear error message at configure time, rather than let nvcc
|
||||
+# later reject the host compiler as not supported when the first
|
||||
+# CUDA source file is built. We've implemented that for current
|
||||
+# nvcc running on Unix-like systems, but e.g. changes to nvcc
|
||||
+# will further affect the limited portability of this checking
|
||||
+# code. Set the CMake variable GMX_NVCC_WORKS on if you want to
|
||||
+# bypass this check.
|
||||
+if((_cuda_nvcc_executable_or_flags_changed OR CUDA_HOST_COMPILER_CHANGED OR NOT GMX_NVCC_WORKS) AND NOT WIN32)
|
||||
+ message(STATUS "Check for working NVCC/C++ compiler combination with nvcc '${CUDA_NVCC_EXECUTABLE}'")
|
||||
+ execute_process(COMMAND ${CUDA_NVCC_EXECUTABLE} --compiler-bindir=${CUDA_HOST_COMPILER} -c ${CUDA_NVCC_FLAGS} ${CUDA_NVCC_FLAGS_${_build_type}} ${CMAKE_SOURCE_DIR}/cmake/TestCUDA.cu
|
||||
+ RESULT_VARIABLE _cuda_test_res
|
||||
+ OUTPUT_VARIABLE _cuda_test_out
|
||||
+ ERROR_VARIABLE _cuda_test_err
|
||||
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
+
|
||||
+ if(${_cuda_test_res})
|
||||
+ message(STATUS "Check for working NVCC/C compiler combination - broken")
|
||||
+ message(STATUS "${CUDA_NVCC_EXECUTABLE} standard output: '${_cuda_test_out}'")
|
||||
+ message(STATUS "${CUDA_NVCC_EXECUTABLE} standard error: '${_cuda_test_err}'")
|
||||
+ if(${_cuda_test_err} MATCHES "nsupported")
|
||||
+ message(FATAL_ERROR "NVCC/C++ compiler combination does not seem to be supported. CUDA frequently does not support the latest versions of the host compiler, so you might want to try an earlier C++ compiler version and make sure your CUDA compiler and driver are as recent as possible. Set the GMX_NVCC_WORKS CMake cache variable to bypass this check if you know what you are doing.")
|
||||
+ elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 11.2 AND CUDA_VERSION VERSION_GREATER 11.4 AND CUDA_VERSION VERSION_LESS 11.7) # Issue #4574, #4641
|
||||
+ # Above, we should be checking for VERSION_LESS 11.6.2, but CUDA_VERSION is only "major.minor"
|
||||
+ message(FATAL_ERROR "CUDA versions 11.5-11.6.1 are known to be incompatible with some GCC 11.x. Use a different GCC or update your CUDA installation to at least CUDA 11.6.2")
|
||||
+ else()
|
||||
+ message(FATAL_ERROR "CUDA compiler does not seem to be functional or is not compatible with the host compiler. Set the GMX_NVCC_WORKS CMake cache variable to bypass this check if you know what you are doing.")
|
||||
+ endif()
|
||||
+ elseif(NOT GMX_CUDA_TEST_COMPILER_QUIETLY)
|
||||
+ message(STATUS "Check for working NVCC/C++ compiler combination - works")
|
||||
+ set(GMX_NVCC_WORKS TRUE CACHE INTERNAL "Nvcc can compile a trivial test program")
|
||||
+ endif()
|
||||
+endif() # GMX_CHECK_NVCC
|
||||
+
|
||||
+# Tests a single flag to use with nvcc.
|
||||
+#
|
||||
+# If the flags are accepted, they are appended to the variable named
|
||||
+# in the first argument. The cache variable named in the second
|
||||
+# argument is used to avoid rerunning the check in future invocations
|
||||
+# of cmake. The list of flags to check follows these two required
|
||||
+# arguments.
|
||||
+#
|
||||
+# Note that a space-separated string of flags, or a flag-value pair
|
||||
+# separated by spaces will not work. Use the single-argument forms
|
||||
+# accepted by nvcc, like "--arg=value".
|
||||
+#
|
||||
+# As this code is not yet tested on Windows, it always accepts the
|
||||
+# flags in that case.
|
||||
+function(gmx_add_nvcc_flag_if_supported _output_variable_name_to_append_to _flags_cache_variable_name)
|
||||
+ # If the check has already been run, do not re-run it
|
||||
+ if (NOT ${_flags_cache_variable_name} AND NOT WIN32)
|
||||
+ message(STATUS "Checking if nvcc accepts flags ${ARGN}")
|
||||
+ # See detailed comment about gcc 7 below
|
||||
+ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8)
|
||||
+ set(_cache_variable_value TRUE)
|
||||
+ message(STATUS "Checking if nvcc accepts flags ${ARGN} - Assuming success when using gcc 7")
|
||||
+ else()
|
||||
+ if(NOT(CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11))
|
||||
+ set(CCBIN "--compiler-bindir=${CUDA_HOST_COMPILER}")
|
||||
+ endif()
|
||||
+ execute_process(
|
||||
+ COMMAND ${CUDA_NVCC_EXECUTABLE} ${ARGN} ${CCBIN} "${CMAKE_SOURCE_DIR}/cmake/TestCUDA.cu"
|
||||
+ RESULT_VARIABLE _cuda_success
|
||||
+ OUTPUT_QUIET
|
||||
+ ERROR_QUIET
|
||||
+ )
|
||||
+ # Convert the success value to a boolean and report status
|
||||
+ if (_cuda_success EQUAL 0)
|
||||
+ set(_cache_variable_value TRUE)
|
||||
+ message(STATUS "Checking if nvcc accepts flags ${ARGN} - Success")
|
||||
+ else()
|
||||
+ set(_cache_variable_value FALSE)
|
||||
+ message(STATUS "Checking if nvcc accepts flags ${ARGN} - Failed")
|
||||
+ endif()
|
||||
+ endif()
|
||||
+ set(${_flags_cache_variable_name} ${_cache_variable_value} CACHE BOOL "Whether NVCC supports flag(s) ${ARGN}")
|
||||
+ endif()
|
||||
+ # Append the flags to the output variable if they have been tested to work
|
||||
+ if (${_flags_cache_variable_name} OR WIN32)
|
||||
+ list(APPEND ${_output_variable_name_to_append_to} ${ARGN})
|
||||
+ set(${_output_variable_name_to_append_to} ${${_output_variable_name_to_append_to}} PARENT_SCOPE)
|
||||
+ endif()
|
||||
+endfunction()
|
||||
+
|
||||
+# Versions of gcc 7 have differing behavior when executing
|
||||
+#
|
||||
+# nvcc $args --compiler-bindir=gcc TestCUDA.cu
|
||||
+#
|
||||
+# and would need e.g. adding -lstdc++ to the command line so that
|
||||
+# linking of a C++/CUDA object by the C-compiler flavor of gcc works.
|
||||
+# This means we can't reliably test compiler flags in this case
|
||||
+# without risking creating other problems. Instead we assume (above)
|
||||
+# that all compiler flags will work, and issue this warning.
|
||||
+# We also want to skip this warning during GROMACS CI testing.
|
||||
+if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8
|
||||
+ AND NOT DEFINED ENV{GITLAB_CI})
|
||||
+ message(WARNING "You are using gcc version 7 with the CUDA compiler nvcc. GROMACS cannot reliably test compiler arguments for this combination, so if you later experience errors in building GROMACS, please use a more recent version of gcc.")
|
||||
+endif()
|
||||
+
|
||||
# If any of these manual override variables for target CUDA GPU architectures
|
||||
# or virtual architecture is set, parse the values and assemble the nvcc
|
||||
# command line for these. Otherwise use our defaults.
|
||||
# Note that the manual override variables require a semicolon separating
|
||||
# architecture codes.
|
||||
+set(GMX_CUDA_NVCC_GENCODE_FLAGS)
|
||||
if (GMX_CUDA_TARGET_SM OR GMX_CUDA_TARGET_COMPUTE)
|
||||
- set(GMX_CUDA_NVCC_GENCODE_FLAGS)
|
||||
set(_target_sm_list ${GMX_CUDA_TARGET_SM})
|
||||
foreach(_target ${_target_sm_list})
|
||||
- list(APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_${_target},code=sm_${_target}")
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_AND_SM_${_target} "--generate-code=arch=compute_${_target},code=sm_${_target}")
|
||||
+ if (NOT NVCC_HAS_GENCODE_COMPUTE_AND_SM_${_target} AND NOT WIN32)
|
||||
+ message(FATAL_ERROR "Your choice of ${_target} in GMX_CUDA_TARGET_SM was not accepted by nvcc, please choose a target that it accepts")
|
||||
+ endif()
|
||||
endforeach()
|
||||
set(_target_compute_list ${GMX_CUDA_TARGET_COMPUTE})
|
||||
foreach(_target ${_target_compute_list})
|
||||
- list(APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_${_target},code=compute_${_target}")
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_${_target} --generate-code=arch=compute_${_target},code=compute_${_target})
|
||||
+ if (NOT NVCC_HAS_GENCODE_COMPUTE_${_target} AND NOT WIN32)
|
||||
+ message(FATAL_ERROR "Your choice of ${_target} in GMX_CUDA_TARGET_COMPUTE was not accepted by nvcc, please choose a target that it accepts")
|
||||
+ endif()
|
||||
endforeach()
|
||||
else()
|
||||
# Set the CUDA GPU architectures to compile for:
|
||||
- # - with CUDA >=9.0 CC 7.0 is supported and CC 2.0 is no longer supported
|
||||
- # => compile sm_30, sm_35, sm_37, sm_50, sm_52, sm_60, sm_61, sm_70 SASS, and compute_35, compute_70 PTX
|
||||
- # - with CUDA >=10.0 CC 7.5 is supported
|
||||
- # => compile sm_30, sm_35, sm_37, sm_50, sm_52, sm_60, sm_61, sm_70, sm_75 SASS, and compute_35, compute_75 PTX
|
||||
# - with CUDA >=11.0 CC 8.0 is supported
|
||||
# => compile sm_35, sm_37, sm_50, sm_52, sm_60, sm_61, sm_70, sm_75, sm_80 SASS, and compute_35, compute_80 PTX
|
||||
|
||||
# First add flags that trigger SASS (binary) code generation for physical arch
|
||||
- if(CUDA_VERSION VERSION_LESS "11.0")
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_30,code=sm_30")
|
||||
- endif()
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_35,code=sm_35")
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_37,code=sm_37")
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_50,code=sm_50")
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_52,code=sm_52")
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_60,code=sm_60")
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_61,code=sm_61")
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_70,code=sm_70")
|
||||
- if(NOT CUDA_VERSION VERSION_LESS "10.0")
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_75,code=sm_75")
|
||||
- endif()
|
||||
- if(NOT CUDA_VERSION VERSION_LESS "11.0")
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_80,code=sm_80")
|
||||
- # Requesting sm or compute 35, 37, or 50 triggers deprecation messages with
|
||||
- # nvcc 11.0, which we need to suppress for use in CI
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-Wno-deprecated-gpu-targets")
|
||||
- endif()
|
||||
- if(NOT CUDA_VERSION VERSION_LESS "11.1")
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_86,code=sm_86")
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_AND_SM_35 --generate-code=arch=compute_35,code=sm_35)
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_AND_SM_37 --generate-code=arch=compute_37,code=sm_37)
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_AND_SM_50 --generate-code=arch=compute_50,code=sm_50)
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_AND_SM_52 --generate-code=arch=compute_52,code=sm_52)
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_AND_SM_60 --generate-code=arch=compute_60,code=sm_60)
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_AND_SM_61 --generate-code=arch=compute_61,code=sm_61)
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_AND_SM_70 --generate-code=arch=compute_70,code=sm_70)
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_AND_SM_75 --generate-code=arch=compute_75,code=sm_75)
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_AND_SM_80 --generate-code=arch=compute_80,code=sm_80)
|
||||
+ # Don't attempt to add newest architectures with old GNU compiler, to avoid issues in CI
|
||||
+ # related to being unable to test which flags are supported
|
||||
+ if (NOT (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8))
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_AND_SM_86 --generate-code=arch=compute_86,code=sm_86)
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_AND_SM_89 --generate-code=arch=compute_89,code=sm_89)
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_AND_SM_90 --generate-code=arch=compute_90,code=sm_90)
|
||||
endif()
|
||||
+ # Requesting sm or compute 35, 37, or 50 triggers deprecation messages with
|
||||
+ # nvcc 11.0, which we need to suppress for use in CI
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_WARNING_NO_DEPRECATED_GPU_TARGETS -Wno-deprecated-gpu-targets)
|
||||
|
||||
# Next add flags that trigger PTX code generation for the
|
||||
# newest supported virtual arch that's useful to JIT to future architectures
|
||||
# as well as an older one suitable for JIT-ing to any rare intermediate arch
|
||||
# (like that of Jetson / Drive PX devices)
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_35,code=compute_35")
|
||||
- if(CUDA_VERSION VERSION_LESS "11.0")
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_32,code=compute_32")
|
||||
- else()
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_53,code=compute_53")
|
||||
- endif()
|
||||
- if(NOT CUDA_VERSION VERSION_LESS "11.0")
|
||||
- list (APPEND GMX_CUDA_NVCC_GENCODE_FLAGS "-gencode;arch=compute_80,code=compute_80")
|
||||
- endif()
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_53 --generate-code=arch=compute_53,code=sm_53)
|
||||
+ gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_GENCODE_FLAGS NVCC_HAS_GENCODE_COMPUTE_80 --generate-code=arch=compute_80,code=sm_80)
|
||||
endif()
|
||||
|
||||
if (GMX_CUDA_TARGET_SM)
|
||||
@@ -158,27 +247,20 @@
|
||||
# FindCUDA.cmake is unaware of the mechanism used by cmake to embed
|
||||
# the compiler flag for the required C++ standard in the generated
|
||||
# build files, so we have to pass it ourselves
|
||||
-if (CUDA_VERSION VERSION_LESS 11.0)
|
||||
- # CUDA doesn't formally support C++17 until version 11.0, so for
|
||||
- # now host-side code that compiles with CUDA is restricted to
|
||||
- # C++14. This needs to be expressed formally for older CUDA
|
||||
- # version.
|
||||
+
|
||||
+# gcc-7 pre-dated C++17, so uses the -std=c++1z compiler flag for it,
|
||||
+# which modern nvcc does not recognize. So we work around that by
|
||||
+# compiling in C++14 mode. Clang doesn't have this problem because nvcc
|
||||
+# only supports version of clang that already understood -std=c++17
|
||||
+if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8)
|
||||
list(APPEND GMX_CUDA_NVCC_FLAGS "${CMAKE_CXX14_STANDARD_COMPILE_OPTION}")
|
||||
else()
|
||||
- # gcc-7 pre-dated C++17, so uses the -std=c++1z compiler flag for it,
|
||||
- # which modern nvcc does not recognize. So we work around that by
|
||||
- # compiling in C++14 mode. Clang doesn't have this problem because nvcc
|
||||
- # only supports version of clang that already understood -std=c++17
|
||||
- if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8)
|
||||
- list(APPEND GMX_CUDA_NVCC_FLAGS "${CMAKE_CXX14_STANDARD_COMPILE_OPTION}")
|
||||
- else()
|
||||
- list(APPEND GMX_CUDA_NVCC_FLAGS "${CMAKE_CXX17_STANDARD_COMPILE_OPTION}")
|
||||
- endif()
|
||||
+ list(APPEND GMX_CUDA_NVCC_FLAGS "${CMAKE_CXX17_STANDARD_COMPILE_OPTION}")
|
||||
endif()
|
||||
|
||||
# assemble the CUDA flags
|
||||
list(APPEND GMX_CUDA_NVCC_FLAGS "${GMX_CUDA_NVCC_GENCODE_FLAGS}")
|
||||
-list(APPEND GMX_CUDA_NVCC_FLAGS "-use_fast_math")
|
||||
+gmx_add_nvcc_flag_if_supported(GMX_CUDA_NVCC_FLAGS NVCC_HAS_USE_FAST_MATH -use_fast_math)
|
||||
|
||||
# assemble the CUDA host compiler flags
|
||||
list(APPEND GMX_CUDA_NVCC_FLAGS "${CUDA_HOST_COMPILER_OPTIONS}")
|
||||
@@ -187,12 +269,18 @@
|
||||
# CUDA header cuda_runtime_api.h in at least CUDA 10.1 uses 0
|
||||
# where nullptr would be preferable. GROMACS can't fix these, so
|
||||
# must suppress them.
|
||||
- GMX_TEST_CXXFLAG(CXXFLAGS_NO_ZERO_AS_NULL_POINTER_CONSTANT "-Wno-zero-as-null-pointer-constant" NVCC_CLANG_SUPPRESSIONS_CXXFLAGS)
|
||||
+ GMX_TEST_CXXFLAG(HAS_WARNING_NO_ZERO_AS_NULL_POINTER_CONSTANT "-Wno-zero-as-null-pointer-constant" NVCC_CLANG_SUPPRESSIONS_CXXFLAGS)
|
||||
|
||||
# CUDA header crt/math_functions.h in at least CUDA 10.x and 11.1
|
||||
# used throw() specifications that are deprecated in more recent
|
||||
# C++ versions. GROMACS can't fix these, so must suppress them.
|
||||
- GMX_TEST_CXXFLAG(CXXFLAGS_NO_DEPRECATED_DYNAMIC_EXCEPTION_SPEC "-Wno-deprecated-dynamic-exception-spec" NVCC_CLANG_SUPPRESSIONS_CXXFLAGS)
|
||||
+ GMX_TEST_CXXFLAG(HAS_WARNING_NO_DEPRECATED_DYNAMIC_EXCEPTION_SPEC "-Wno-deprecated-dynamic-exception-spec" NVCC_CLANG_SUPPRESSIONS_CXXFLAGS)
|
||||
+
|
||||
+ # CUDA headers cuda_runtime.h and channel_descriptor.h in at least
|
||||
+ # CUDA 11.0 uses many C-style casts, which are ncessary for this
|
||||
+ # header to work for C. GROMACS can't fix these, so must suppress
|
||||
+ # the warnings they generate
|
||||
+ GMX_TEST_CXXFLAG(HAS_WARNING_NO_OLD_STYLE_CAST "-Wno-old-style-cast" NVCC_CLANG_SUPPRESSIONS_CXXFLAGS)
|
||||
|
||||
# Add these flags to those used for the host compiler. The
|
||||
# "-Xcompiler" prefix directs nvcc to only use them for host
|
||||
@@ -205,37 +293,6 @@
|
||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" _build_type)
|
||||
gmx_check_if_changed(_cuda_nvcc_executable_or_flags_changed CUDA_NVCC_EXECUTABLE CUDA_NVCC_FLAGS CUDA_NVCC_FLAGS_${_build_type})
|
||||
|
||||
-# We would like to be helpful and reject the host compiler with a
|
||||
-# clear error message at configure time, rather than let nvcc
|
||||
-# later reject the host compiler as not supported when the first
|
||||
-# CUDA source file is built. We've implemented that for current
|
||||
-# nvcc running on Unix-like systems, but e.g. changes to nvcc
|
||||
-# will further affect the limited portability of this checking
|
||||
-# code. Set the CMake variable GMX_NVCC_WORKS on if you want to
|
||||
-# bypass this check.
|
||||
-if((_cuda_nvcc_executable_or_flags_changed OR CUDA_HOST_COMPILER_CHANGED OR NOT GMX_NVCC_WORKS) AND NOT WIN32)
|
||||
- message(STATUS "Check for working NVCC/C++ compiler combination with nvcc '${CUDA_NVCC_EXECUTABLE}'")
|
||||
- execute_process(COMMAND ${CUDA_NVCC_EXECUTABLE} -ccbin ${CUDA_HOST_COMPILER} -c ${CUDA_NVCC_FLAGS} ${CUDA_NVCC_FLAGS_${_build_type}} ${CMAKE_SOURCE_DIR}/cmake/TestCUDA.cu
|
||||
- RESULT_VARIABLE _cuda_test_res
|
||||
- OUTPUT_VARIABLE _cuda_test_out
|
||||
- ERROR_VARIABLE _cuda_test_err
|
||||
- OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
-
|
||||
- if(${_cuda_test_res})
|
||||
- message(STATUS "Check for working NVCC/C compiler combination - broken")
|
||||
- message(STATUS "${CUDA_NVCC_EXECUTABLE} standard output: '${_cuda_test_out}'")
|
||||
- message(STATUS "${CUDA_NVCC_EXECUTABLE} standard error: '${_cuda_test_err}'")
|
||||
- if(${_cuda_test_err} MATCHES "nsupported")
|
||||
- message(FATAL_ERROR "NVCC/C++ compiler combination does not seem to be supported. CUDA frequently does not support the latest versions of the host compiler, so you might want to try an earlier C++ compiler version and make sure your CUDA compiler and driver are as recent as possible.")
|
||||
- else()
|
||||
- message(FATAL_ERROR "CUDA compiler does not seem to be functional.")
|
||||
- endif()
|
||||
- elseif(NOT GMX_CUDA_TEST_COMPILER_QUIETLY)
|
||||
- message(STATUS "Check for working NVCC/C++ compiler combination - works")
|
||||
- set(GMX_NVCC_WORKS TRUE CACHE INTERNAL "Nvcc can compile a trivial test program")
|
||||
- endif()
|
||||
-endif() # GMX_CHECK_NVCC
|
||||
-
|
||||
|
||||
# The flags are set as local variables which shadow the cache variables. The cache variables
|
||||
# (can be set by the user) are appended. This is done in a macro to set the flags when all
|
||||
@@ -1,25 +0,0 @@
|
||||
From 8a38303c52fbca07c850e0c4cd03a783aabf9e49 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Bauer <paul.bauer.q@gmail.com>
|
||||
Date: Mon, 21 Feb 2022 09:53:46 +0100
|
||||
Subject: [PATCH] Fix missing includes for musl libc
|
||||
|
||||
Fixes #4404
|
||||
---
|
||||
src/gromacs/math/vectypes.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/gromacs/math/vectypes.h b/src/gromacs/math/vectypes.h
|
||||
index d4d5211d11..bd9d31de20 100644
|
||||
--- a/src/gromacs/math/vectypes.h
|
||||
+++ b/src/gromacs/math/vectypes.h
|
||||
@@ -40,6 +40,7 @@
|
||||
|
||||
#include <cassert>
|
||||
#include <cmath>
|
||||
+#include <cstdint>
|
||||
|
||||
#include <algorithm>
|
||||
#include <type_traits>
|
||||
--
|
||||
2.35.1
|
||||
|
||||
@@ -1,351 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
CMAKE_MAKEFILE_GENERATOR="ninja"
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
DISTUTILS_OPTIONAL=1
|
||||
DISTUTILS_USE_PEP517=no
|
||||
DISTUTILS_SINGLE_IMPL=1
|
||||
|
||||
inherit bash-completion-r1 cmake cuda distutils-r1 flag-o-matic readme.gentoo-r1 toolchain-funcs xdg-utils
|
||||
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
EGIT_REPO_URI="
|
||||
https://gitlab.com/gromacs/gromacs.git
|
||||
https://github.com/gromacs/gromacs.git
|
||||
"
|
||||
[[ ${PV} = 9999 ]] && EGIT_BRANCH="master" || EGIT_BRANCH="release-${PV:0:4}"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="
|
||||
https://ftp.gromacs.org/gromacs/${PN}-${PV/_/-}.tar.gz
|
||||
doc? ( https://ftp.gromacs.org/manual/manual-${PV/_/-}.pdf )
|
||||
test? ( https://ftp.gromacs.org/regressiontests/regressiontests-${PV/_/-}.tar.gz )"
|
||||
KEYWORDS="amd64 ~arm ~x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||
fi
|
||||
|
||||
ACCE_IUSE="cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_fma4 cpu_flags_x86_avx cpu_flags_x86_avx2"
|
||||
|
||||
DESCRIPTION="The ultimate molecular dynamics simulation package"
|
||||
HOMEPAGE="https://www.gromacs.org/"
|
||||
|
||||
# see COPYING for details
|
||||
# https://repo.or.cz/w/gromacs.git/blob/HEAD:/COPYING
|
||||
# base, vmd plugins, fftpack from numpy, blas/lapck from netlib, memtestG80 library, mpi_thread lib
|
||||
LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )"
|
||||
SLOT="0/${PV}"
|
||||
IUSE="X blas cuda +custom-cflags +doc build-manual double-precision +fftw +gmxapi +gmxapi-legacy +hwloc lapack +lmfit mkl mpi +offensive opencl openmp +python +single-precision test +threads +tng ${ACCE_IUSE}"
|
||||
|
||||
CDEPEND="
|
||||
X? (
|
||||
x11-libs/libX11
|
||||
x11-libs/libSM
|
||||
x11-libs/libICE
|
||||
)
|
||||
blas? ( virtual/blas )
|
||||
cuda? ( >=dev-util/nvidia-cuda-toolkit-6.5.14:= )
|
||||
opencl? ( virtual/opencl )
|
||||
openmp? (
|
||||
sys-devel/gcc[openmp]
|
||||
sys-devel/clang-runtime[openmp]
|
||||
)
|
||||
fftw? ( sci-libs/fftw:3.0= )
|
||||
hwloc? ( sys-apps/hwloc:= )
|
||||
lapack? ( virtual/lapack )
|
||||
lmfit? ( sci-libs/lmfit:= )
|
||||
mkl? ( sci-libs/mkl )
|
||||
mpi? ( virtual/mpi )
|
||||
${PYTHON_DEPS}
|
||||
"
|
||||
BDEPEND="${CDEPEND}
|
||||
virtual/pkgconfig
|
||||
build-manual? (
|
||||
app-text/doxygen
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/sphinx[${PYTHON_USEDEP}]
|
||||
')
|
||||
media-gfx/mscgen
|
||||
media-gfx/graphviz
|
||||
dev-texlive/texlive-latex
|
||||
dev-texlive/texlive-latexextra
|
||||
media-gfx/imagemagick
|
||||
)"
|
||||
RDEPEND="${CDEPEND}"
|
||||
|
||||
REQUIRED_USE="
|
||||
|| ( single-precision double-precision )
|
||||
doc? ( !build-manual )
|
||||
cuda? ( single-precision )
|
||||
opencl? ( single-precision )
|
||||
cuda? ( !opencl )
|
||||
mkl? ( !blas !fftw !lapack )
|
||||
${PYTHON_REQUIRED_USE}"
|
||||
|
||||
DOCS=( AUTHORS README )
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
if [[ ${PV} != *9999 ]]; then
|
||||
S="${WORKDIR}/${PN}-${PV/_/-}"
|
||||
fi
|
||||
|
||||
PATCHES=( "${FILESDIR}/${PN}-2020-pytest.patch" )
|
||||
|
||||
pkg_pretend() {
|
||||
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
|
||||
python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} != *9999 ]]; then
|
||||
default
|
||||
else
|
||||
git-r3_src_unpack
|
||||
if use test; then
|
||||
EGIT_REPO_URI="https://gitlab.com/gromacs/gromacs-regressiontests.git" \
|
||||
EGIT_BRANCH="${EGIT_BRANCH}" \
|
||||
EGIT_CHECKOUT_DIR="${WORKDIR}/regressiontests"\
|
||||
git-r3_src_unpack
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
#notes/todos
|
||||
# -on apple: there is framework support
|
||||
|
||||
xdg_environment_reset #591952
|
||||
|
||||
cmake_src_prepare
|
||||
|
||||
use cuda && cuda_src_prepare
|
||||
|
||||
GMX_DIRS=""
|
||||
use single-precision && GMX_DIRS+=" float"
|
||||
use double-precision && GMX_DIRS+=" double"
|
||||
|
||||
if use test; then
|
||||
for x in ${GMX_DIRS}; do
|
||||
mkdir -p "${WORKDIR}/${P}_${x}" || die
|
||||
cp -al "${WORKDIR}/regressiontests"* "${WORKDIR}/${P}_${x}/tests" || die
|
||||
done
|
||||
fi
|
||||
|
||||
DOC_CONTENTS="Gromacs can use sci-chemistry/vmd to read additional file formats"
|
||||
if use build-manual; then
|
||||
# try to create policy for imagemagik
|
||||
mkdir -p "${HOME}"/.config/ImageMagick
|
||||
cat >> "${HOME}"/.config/ImageMagick/policy.xml <<- EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE policymap [
|
||||
<!ELEMENT policymap (policy)+>
|
||||
!ATTLIST policymap xmlns CDATA #FIXED ''>
|
||||
<!ELEMENT policy EMPTY>
|
||||
<!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED
|
||||
name NMTOKEN #IMPLIED pattern CDATA #IMPLIED rights NMTOKEN #IMPLIED
|
||||
stealth NMTOKEN #IMPLIED value CDATA #IMPLIED>
|
||||
]>
|
||||
<policymap>
|
||||
<policy domain="coder" rights="read | write" pattern="PS" />
|
||||
<policy domain="coder" rights="read | write" pattern="PS2" />
|
||||
<policy domain="coder" rights="read | write" pattern="PS3" />
|
||||
<policy domain="coder" rights="read | write" pattern="EPS" />
|
||||
<policy domain="coder" rights="read | write" pattern="PDF" />
|
||||
<policy domain="coder" rights="read | write" pattern="XPS" />
|
||||
</policymap>
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs_pre=( ) extra fft_opts=( )
|
||||
|
||||
if use custom-cflags; then
|
||||
#go from slowest to fastest acceleration
|
||||
local acce="None"
|
||||
use cpu_flags_x86_sse2 && acce="SSE2"
|
||||
use cpu_flags_x86_sse4_1 && acce="SSE4.1"
|
||||
use cpu_flags_x86_fma4 && acce="AVX_128_FMA"
|
||||
use cpu_flags_x86_avx && acce="AVX_256"
|
||||
use cpu_flags_x86_avx2 && acce="AVX2_256"
|
||||
else
|
||||
strip-flags
|
||||
fi
|
||||
|
||||
#to create man pages, build tree binaries are executed (bug #398437)
|
||||
[[ ${CHOST} = *-darwin* ]] && \
|
||||
extra+=" -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF"
|
||||
|
||||
if use fftw; then
|
||||
fft_opts=( -DGMX_FFT_LIBRARY=fftw3 )
|
||||
elif use mkl; then
|
||||
local bits=$(get_libdir)
|
||||
fft_opts=( -DGMX_FFT_LIBRARY=mkl
|
||||
-DMKL_INCLUDE_DIR="$(echo /opt/intel/*/mkl/include)"
|
||||
-DMKL_LIBRARIES="$(echo /opt/intel/*/mkl/lib/*${bits/lib}/libmkl_rt.so)"
|
||||
)
|
||||
else
|
||||
fft_opts=( -DGMX_FFT_LIBRARY=fftpack )
|
||||
fi
|
||||
|
||||
if use lmfit; then
|
||||
local lmfit_opts=( -DGMX_USE_LMFIT=EXTERNAL )
|
||||
else
|
||||
local lmfit_opts=( -DGMX_USE_LMFIT=INTERNAL )
|
||||
fi
|
||||
|
||||
mycmakeargs_pre+=(
|
||||
"${fft_opts[@]}"
|
||||
"${lmfit_opts[@]}"
|
||||
-DGMX_X11=$(usex X)
|
||||
-DGMX_EXTERNAL_BLAS=$(usex blas)
|
||||
-DGMX_EXTERNAL_LAPACK=$(usex lapack)
|
||||
-DGMX_OPENMP=$(usex openmp)
|
||||
-DGMX_COOL_QUOTES=$(usex offensive)
|
||||
-DGMX_USE_TNG=$(usex tng)
|
||||
-DGMX_BUILD_MANUAL=$(usex build-manual)
|
||||
-DGMX_HWLOC=$(usex hwloc)
|
||||
-DGMX_DEFAULT_SUFFIX=off
|
||||
-DGMX_SIMD="$acce"
|
||||
-DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/"
|
||||
-DBUILD_TESTING=$(usex test)
|
||||
-DGMX_BUILD_UNITTESTS=$(usex test)
|
||||
-DPYTHON_EXECUTABLE="${EPREFIX}/usr/bin/${EPYTHON}"
|
||||
${extra}
|
||||
)
|
||||
|
||||
for x in ${GMX_DIRS}; do
|
||||
einfo "Configuring for ${x} precision"
|
||||
local suffix=""
|
||||
#if we build single and double - double is suffixed
|
||||
use double-precision && use single-precision && \
|
||||
[[ ${x} = "double" ]] && suffix="_d"
|
||||
local p
|
||||
[[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF"
|
||||
local cuda=( "-DGMX_GPU=OFF" )
|
||||
[[ ${x} = "float" ]] && use cuda && \
|
||||
cuda=( "-DGMX_GPU=ON" )
|
||||
local opencl=( "-DGMX_USE_OPENCL=OFF" )
|
||||
use opencl && opencl=( "-DGMX_USE_OPENCL=ON" ) cuda=( "-DGMX_GPU=ON" )
|
||||
local mycmakeargs=(
|
||||
${mycmakeargs_pre[@]} ${p}
|
||||
-DGMX_MPI=OFF
|
||||
-DGMX_THREAD_MPI=$(usex threads)
|
||||
-DGMXAPI=$(usex gmxapi)
|
||||
-DGMX_INSTALL_LEGACY_API=$(usex gmxapi-legacy)
|
||||
"${opencl[@]}"
|
||||
"${cuda[@]}"
|
||||
"$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")"
|
||||
-DGMX_BINARY_SUFFIX="${suffix}"
|
||||
-DGMX_LIBS_SUFFIX="${suffix}"
|
||||
-DGMX_PYTHON_PACKAGE=$(usex python)
|
||||
)
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}" cmake_src_configure
|
||||
[[ ${CHOST} != *-darwin* ]] || \
|
||||
sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}/gentoo_rules.cmake" || die
|
||||
use mpi || continue
|
||||
einfo "Configuring for ${x} precision with mpi"
|
||||
local mycmakeargs=(
|
||||
${mycmakeargs_pre[@]} ${p}
|
||||
-DGMX_THREAD_MPI=OFF
|
||||
-DGMX_MPI=ON
|
||||
-DGMX_OPENMM=OFF
|
||||
-DGMXAPI=OFF
|
||||
"${opencl[@]}"
|
||||
"${cuda[@]}"
|
||||
-DGMX_BUILD_MDRUN_ONLY=ON
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DGMX_BUILD_MANUAL=OFF
|
||||
-DGMX_BINARY_SUFFIX="_mpi${suffix}"
|
||||
-DGMX_LIBS_SUFFIX="_mpi${suffix}"
|
||||
)
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" CC="mpicc" cmake_src_configure
|
||||
[[ ${CHOST} != *-darwin* ]] || \
|
||||
sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}_mpi/gentoo_rules.cmake" || die
|
||||
done
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
for x in ${GMX_DIRS}; do
|
||||
einfo "Compiling for ${x} precision"
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}"\
|
||||
cmake_src_compile
|
||||
if use python; then
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}"\
|
||||
cmake_src_compile python_packaging/all
|
||||
BUILD_DIR="${WORKDIR}/${P}" \
|
||||
distutils-r1_src_compile
|
||||
fi
|
||||
# not 100% necessary for rel ebuilds as available from website
|
||||
if use build-manual; then
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}"\
|
||||
cmake_src_compile manual
|
||||
fi
|
||||
use mpi || continue
|
||||
einfo "Compiling for ${x} precision with mpi"
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\
|
||||
cmake_src_compile
|
||||
done
|
||||
}
|
||||
|
||||
src_test() {
|
||||
for x in ${GMX_DIRS}; do
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}"\
|
||||
cmake_src_compile check
|
||||
done
|
||||
}
|
||||
|
||||
src_install() {
|
||||
for x in ${GMX_DIRS}; do
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}" \
|
||||
cmake_src_install
|
||||
if use python; then
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}" \
|
||||
cmake_src_install python_packaging/install
|
||||
fi
|
||||
if use build-manual; then
|
||||
newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf"
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
if [[ ${PV} != *9999* ]]; then
|
||||
newdoc "${DISTDIR}/manual-${PV}.pdf" "${PN}-manual-${PV}.pdf"
|
||||
fi
|
||||
fi
|
||||
|
||||
use mpi || continue
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \
|
||||
cmake_src_install
|
||||
done
|
||||
|
||||
if use tng; then
|
||||
insinto /usr/include/tng
|
||||
doins src/external/tng_io/include/tng/*h
|
||||
fi
|
||||
# drop unneeded stuff
|
||||
rm "${ED}"/usr/bin/GMXRC* || die
|
||||
for x in "${ED}"/usr/bin/gmx-completion-*.bash ; do
|
||||
local n=${x##*/gmx-completion-}
|
||||
n="${n%.bash}"
|
||||
cat "${ED}"/usr/bin/gmx-completion.bash "$x" > "${T}/${n}" || die
|
||||
newbashcomp "${T}"/"${n}" "${n}"
|
||||
done
|
||||
rm "${ED}"/usr/bin/gmx-completion*.bash || die
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
einfo
|
||||
einfo "Please read and cite gromacs related papers from list:"
|
||||
einfo "https://www.gromacs.org/articles.html"
|
||||
einfo
|
||||
readme.gentoo_print_elog
|
||||
}
|
||||
@@ -1,360 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
CMAKE_MAKEFILE_GENERATOR="ninja"
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
DISTUTILS_OPTIONAL=1
|
||||
DISTUTILS_USE_PEP517=no
|
||||
DISTUTILS_SINGLE_IMPL=1
|
||||
|
||||
inherit bash-completion-r1 cmake cuda distutils-r1 flag-o-matic readme.gentoo-r1 toolchain-funcs xdg-utils
|
||||
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
EGIT_REPO_URI="
|
||||
https://gitlab.com/gromacs/gromacs.git
|
||||
https://github.com/gromacs/gromacs.git
|
||||
"
|
||||
[[ ${PV} = 9999 ]] && EGIT_BRANCH="master" || EGIT_BRANCH="release-${PV:0:4}"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="
|
||||
https://ftp.gromacs.org/gromacs/${PN}-${PV/_/-}.tar.gz
|
||||
doc? ( https://ftp.gromacs.org/manual/manual-${PV/_/-}.pdf )
|
||||
test? ( https://ftp.gromacs.org/regressiontests/regressiontests-${PV/_/-}.tar.gz )"
|
||||
KEYWORDS="amd64 ~arm ~x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||
fi
|
||||
|
||||
ACCE_IUSE="cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_fma4 cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_avx512f cpu_flags_arm_neon"
|
||||
|
||||
DESCRIPTION="The ultimate molecular dynamics simulation package"
|
||||
HOMEPAGE="https://www.gromacs.org/"
|
||||
|
||||
# see COPYING for details
|
||||
# https://repo.or.cz/w/gromacs.git/blob/HEAD:/COPYING
|
||||
# base, vmd plugins, fftpack from numpy, blas/lapck from netlib, memtestG80 library, mpi_thread lib
|
||||
LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )"
|
||||
SLOT="0/${PV}"
|
||||
IUSE="X blas cuda +custom-cflags +doc build-manual double-precision +fftw +gmxapi +gmxapi-legacy +hwloc lapack +lmfit mkl mpi +offensive opencl openmp +python +single-precision test +threads +tng ${ACCE_IUSE}"
|
||||
|
||||
CDEPEND="
|
||||
X? (
|
||||
x11-libs/libX11
|
||||
x11-libs/libSM
|
||||
x11-libs/libICE
|
||||
)
|
||||
blas? ( virtual/blas )
|
||||
cuda? ( >=dev-util/nvidia-cuda-toolkit-6.5.14:=[profiler] )
|
||||
opencl? ( virtual/opencl )
|
||||
openmp? (
|
||||
sys-devel/gcc[openmp]
|
||||
sys-devel/clang-runtime[openmp]
|
||||
)
|
||||
fftw? ( sci-libs/fftw:3.0= )
|
||||
hwloc? ( sys-apps/hwloc:= )
|
||||
lapack? ( virtual/lapack )
|
||||
lmfit? ( sci-libs/lmfit:= )
|
||||
mkl? ( sci-libs/mkl )
|
||||
mpi? ( virtual/mpi )
|
||||
${PYTHON_DEPS}
|
||||
"
|
||||
BDEPEND="${CDEPEND}
|
||||
virtual/pkgconfig
|
||||
build-manual? (
|
||||
app-text/doxygen
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/sphinx[${PYTHON_USEDEP}]
|
||||
')
|
||||
media-gfx/mscgen
|
||||
media-gfx/graphviz
|
||||
dev-texlive/texlive-latex
|
||||
dev-texlive/texlive-latexextra
|
||||
media-gfx/imagemagick
|
||||
)"
|
||||
RDEPEND="${CDEPEND}"
|
||||
|
||||
REQUIRED_USE="
|
||||
|| ( single-precision double-precision )
|
||||
doc? ( !build-manual )
|
||||
cuda? ( single-precision )
|
||||
opencl? ( single-precision )
|
||||
cuda? ( !opencl )
|
||||
mkl? ( !blas !fftw !lapack )
|
||||
${PYTHON_REQUIRED_USE}"
|
||||
|
||||
DOCS=( AUTHORS README )
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-2021-musl-stdint.patch"
|
||||
"${FILESDIR}/${PN}-2021-cuda-detection.patch"
|
||||
"${FILESDIR}/${PN}-2021-cstdint-include.patch"
|
||||
)
|
||||
|
||||
if [[ ${PV} != *9999 ]]; then
|
||||
S="${WORKDIR}/${PN}-${PV/_/-}"
|
||||
fi
|
||||
|
||||
pkg_pretend() {
|
||||
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
|
||||
python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} != *9999 ]]; then
|
||||
default
|
||||
else
|
||||
git-r3_src_unpack
|
||||
if use test; then
|
||||
EGIT_REPO_URI="https://gitlab.com/gromacs/gromacs-regressiontests.git" \
|
||||
EGIT_BRANCH="${EGIT_BRANCH}" \
|
||||
EGIT_CHECKOUT_DIR="${WORKDIR}/regressiontests"\
|
||||
git-r3_src_unpack
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
#notes/todos
|
||||
# -on apple: there is framework support
|
||||
|
||||
xdg_environment_reset #591952
|
||||
|
||||
cmake_src_prepare
|
||||
|
||||
use cuda && cuda_src_prepare
|
||||
|
||||
GMX_DIRS=""
|
||||
use single-precision && GMX_DIRS+=" float"
|
||||
use double-precision && GMX_DIRS+=" double"
|
||||
|
||||
if use test; then
|
||||
for x in ${GMX_DIRS}; do
|
||||
mkdir -p "${WORKDIR}/${P}_${x}" || die
|
||||
cp -al "${WORKDIR}/regressiontests"* "${WORKDIR}/${P}_${x}/tests" || die
|
||||
done
|
||||
fi
|
||||
|
||||
DOC_CONTENTS="Gromacs can use sci-chemistry/vmd to read additional file formats"
|
||||
if use build-manual; then
|
||||
# try to create policy for imagemagik
|
||||
mkdir -p "${HOME}"/.config/ImageMagick
|
||||
cat >> "${HOME}"/.config/ImageMagick/policy.xml <<- EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE policymap [
|
||||
<!ELEMENT policymap (policy)+>
|
||||
!ATTLIST policymap xmlns CDATA #FIXED ''>
|
||||
<!ELEMENT policy EMPTY>
|
||||
<!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED
|
||||
name NMTOKEN #IMPLIED pattern CDATA #IMPLIED rights NMTOKEN #IMPLIED
|
||||
stealth NMTOKEN #IMPLIED value CDATA #IMPLIED>
|
||||
]>
|
||||
<policymap>
|
||||
<policy domain="coder" rights="read | write" pattern="PS" />
|
||||
<policy domain="coder" rights="read | write" pattern="PS2" />
|
||||
<policy domain="coder" rights="read | write" pattern="PS3" />
|
||||
<policy domain="coder" rights="read | write" pattern="EPS" />
|
||||
<policy domain="coder" rights="read | write" pattern="PDF" />
|
||||
<policy domain="coder" rights="read | write" pattern="XPS" />
|
||||
</policymap>
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs_pre=( ) extra fft_opts=( )
|
||||
local acce="AUTO"
|
||||
|
||||
if use custom-cflags; then
|
||||
#go from slowest to fastest acceleration
|
||||
acce="None"
|
||||
if (use amd64 || use x86); then
|
||||
use cpu_flags_x86_sse2 && acce="SSE2"
|
||||
use cpu_flags_x86_sse4_1 && acce="SSE4.1"
|
||||
use cpu_flags_x86_fma4 && acce="AVX_128_FMA"
|
||||
use cpu_flags_x86_avx && acce="AVX_256"
|
||||
use cpu_flags_x86_avx2 && acce="AVX2_256"
|
||||
use cpu_flags_x86_avx512f && acce="AVX_512"
|
||||
elif (use arm); then
|
||||
use cpu_flags_arm_neon && acce="ARM_NEON"
|
||||
elif (use arm64); then
|
||||
use cpu_flags_arm_neon && acce="ARM_NEON_ASIMD"
|
||||
fi
|
||||
else
|
||||
strip-flags
|
||||
fi
|
||||
|
||||
#to create man pages, build tree binaries are executed (bug #398437)
|
||||
[[ ${CHOST} = *-darwin* ]] && \
|
||||
extra+=" -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF"
|
||||
|
||||
if use fftw; then
|
||||
fft_opts=( -DGMX_FFT_LIBRARY=fftw3 )
|
||||
elif use mkl; then
|
||||
local bits=$(get_libdir)
|
||||
fft_opts=( -DGMX_FFT_LIBRARY=mkl
|
||||
-DMKL_INCLUDE_DIR="$(echo /opt/intel/*/mkl/include)"
|
||||
-DMKL_LIBRARIES="$(echo /opt/intel/*/mkl/lib/*${bits/lib}/libmkl_rt.so)"
|
||||
)
|
||||
else
|
||||
fft_opts=( -DGMX_FFT_LIBRARY=fftpack )
|
||||
fi
|
||||
|
||||
if use lmfit; then
|
||||
local lmfit_opts=( -DGMX_USE_LMFIT=EXTERNAL )
|
||||
else
|
||||
local lmfit_opts=( -DGMX_USE_LMFIT=INTERNAL )
|
||||
fi
|
||||
|
||||
mycmakeargs_pre+=(
|
||||
"${fft_opts[@]}"
|
||||
"${lmfit_opts[@]}"
|
||||
-DGMX_X11=$(usex X)
|
||||
-DGMX_EXTERNAL_BLAS=$(usex blas)
|
||||
-DGMX_EXTERNAL_LAPACK=$(usex lapack)
|
||||
-DGMX_OPENMP=$(usex openmp)
|
||||
-DGMX_COOL_QUOTES=$(usex offensive)
|
||||
-DGMX_USE_TNG=$(usex tng)
|
||||
-DGMX_BUILD_MANUAL=$(usex build-manual)
|
||||
-DGMX_HWLOC=$(usex hwloc)
|
||||
-DGMX_DEFAULT_SUFFIX=off
|
||||
-DGMX_SIMD="$acce"
|
||||
-DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/"
|
||||
-DBUILD_TESTING=$(usex test)
|
||||
-DGMX_BUILD_UNITTESTS=$(usex test)
|
||||
-DPYTHON_EXECUTABLE="${EPREFIX}/usr/bin/${EPYTHON}"
|
||||
${extra}
|
||||
)
|
||||
|
||||
for x in ${GMX_DIRS}; do
|
||||
einfo "Configuring for ${x} precision"
|
||||
local suffix=""
|
||||
#if we build single and double - double is suffixed
|
||||
use double-precision && use single-precision && \
|
||||
[[ ${x} = "double" ]] && suffix="_d"
|
||||
local p
|
||||
[[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF"
|
||||
local gpu=( "-DGMX_GPU=OFF" )
|
||||
[[ ${x} = "float" ]] && use cuda && gpu=( "-DGMX_GPU=CUDA" )
|
||||
use opencl && gpu=( "-DGMX_GPU=OPENCL" )
|
||||
local mycmakeargs=(
|
||||
${mycmakeargs_pre[@]} ${p}
|
||||
-DGMX_MPI=OFF
|
||||
-DGMX_THREAD_MPI=$(usex threads)
|
||||
-DGMXAPI=$(usex gmxapi)
|
||||
-DGMX_INSTALL_LEGACY_API=$(usex gmxapi-legacy)
|
||||
"${gpu[@]}"
|
||||
"$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")"
|
||||
-DGMX_BINARY_SUFFIX="${suffix}"
|
||||
-DGMX_LIBS_SUFFIX="${suffix}"
|
||||
-DGMX_PYTHON_PACKAGE=$(usex python)
|
||||
)
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}" cmake_src_configure
|
||||
[[ ${CHOST} != *-darwin* ]] || \
|
||||
sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}/gentoo_rules.cmake" || die
|
||||
use mpi || continue
|
||||
einfo "Configuring for ${x} precision with mpi"
|
||||
local mycmakeargs=(
|
||||
${mycmakeargs_pre[@]} ${p}
|
||||
-DGMX_THREAD_MPI=OFF
|
||||
-DGMX_MPI=ON
|
||||
-DGMX_OPENMM=OFF
|
||||
-DGMXAPI=OFF
|
||||
"${opencl[@]}"
|
||||
"${cuda[@]}"
|
||||
-DGMX_BUILD_MDRUN_ONLY=ON
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DGMX_BUILD_MANUAL=OFF
|
||||
-DGMX_BINARY_SUFFIX="_mpi${suffix}"
|
||||
-DGMX_LIBS_SUFFIX="_mpi${suffix}"
|
||||
)
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" CC="mpicc" cmake_src_configure
|
||||
[[ ${CHOST} != *-darwin* ]] || \
|
||||
sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}_mpi/gentoo_rules.cmake" || die
|
||||
done
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
for x in ${GMX_DIRS}; do
|
||||
einfo "Compiling for ${x} precision"
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}"\
|
||||
cmake_src_compile
|
||||
if use python; then
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}"\
|
||||
cmake_src_compile python_packaging/all
|
||||
BUILD_DIR="${WORKDIR}/${P}" \
|
||||
distutils-r1_src_compile
|
||||
fi
|
||||
# not 100% necessary for rel ebuilds as available from website
|
||||
if use build-manual; then
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}"\
|
||||
cmake_src_compile manual
|
||||
fi
|
||||
use mpi || continue
|
||||
einfo "Compiling for ${x} precision with mpi"
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}_mpi"\
|
||||
cmake_src_compile
|
||||
done
|
||||
}
|
||||
|
||||
src_test() {
|
||||
for x in ${GMX_DIRS}; do
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}"\
|
||||
cmake_src_compile check
|
||||
done
|
||||
}
|
||||
|
||||
src_install() {
|
||||
for x in ${GMX_DIRS}; do
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}" \
|
||||
cmake_src_install
|
||||
if use python; then
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}" \
|
||||
cmake_src_install python_packaging/install
|
||||
fi
|
||||
if use build-manual; then
|
||||
newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf"
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
if [[ ${PV} != *9999* ]]; then
|
||||
newdoc "${DISTDIR}/manual-${PV}.pdf" "${PN}-manual-${PV}.pdf"
|
||||
fi
|
||||
fi
|
||||
|
||||
use mpi || continue
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}_mpi" \
|
||||
cmake_src_install
|
||||
done
|
||||
|
||||
if use tng; then
|
||||
insinto /usr/include/tng
|
||||
doins src/external/tng_io/include/tng/*h
|
||||
fi
|
||||
# drop unneeded stuff
|
||||
rm "${ED}"/usr/bin/GMXRC* || die
|
||||
for x in "${ED}"/usr/bin/gmx-completion-*.bash ; do
|
||||
local n=${x##*/gmx-completion-}
|
||||
n="${n%.bash}"
|
||||
cat "${ED}"/usr/bin/gmx-completion.bash "$x" > "${T}/${n}" || die
|
||||
newbashcomp "${T}"/"${n}" "${n}"
|
||||
done
|
||||
rm "${ED}"/usr/bin/gmx-completion*.bash || die
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
einfo
|
||||
einfo "Please read and cite gromacs related papers from list:"
|
||||
einfo "https://www.gromacs.org/articles.html"
|
||||
einfo
|
||||
readme.gentoo_print_elog
|
||||
}
|
||||
@@ -1,337 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
CMAKE_MAKEFILE_GENERATOR="ninja"
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
DISTUTILS_OPTIONAL=1
|
||||
DISTUTILS_USE_PEP517=no
|
||||
DISTUTILS_SINGLE_IMPL=1
|
||||
|
||||
inherit bash-completion-r1 cmake cuda distutils-r1 flag-o-matic readme.gentoo-r1 toolchain-funcs xdg-utils
|
||||
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
EGIT_REPO_URI="
|
||||
https://gitlab.com/gromacs/gromacs.git
|
||||
https://github.com/gromacs/gromacs.git
|
||||
"
|
||||
[[ ${PV} = 9999 ]] && EGIT_BRANCH="master" || EGIT_BRANCH="release-${PV:0:4}"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="
|
||||
https://ftp.gromacs.org/gromacs/${P}.tar.gz
|
||||
doc? ( https://ftp.gromacs.org/manual/manual-${PV}.pdf )
|
||||
test? ( https://ftp.gromacs.org/regressiontests/regressiontests-${PV}.tar.gz )"
|
||||
# since 2022 arm support was dropped (but not arm64)
|
||||
KEYWORDS="~amd64 -arm ~arm64 ~x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||
fi
|
||||
|
||||
ACCE_IUSE="cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_fma4 cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_avx512f cpu_flags_arm_neon"
|
||||
|
||||
DESCRIPTION="The ultimate molecular dynamics simulation package"
|
||||
HOMEPAGE="https://www.gromacs.org/"
|
||||
|
||||
# see COPYING for details
|
||||
# https://repo.or.cz/w/gromacs.git/blob/HEAD:/COPYING
|
||||
# base, vmd plugins, fftpack from numpy, blas/lapck from netlib, memtestG80 library, mpi_thread lib
|
||||
LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )"
|
||||
SLOT="0/${PV}"
|
||||
IUSE="blas clang clang-cuda cuda +custom-cflags +doc build-manual double-precision +fftw +gmxapi +gmxapi-legacy +hwloc lapack mkl mpi +offensive opencl openmp +python +single-precision test +threads +tng ${ACCE_IUSE}"
|
||||
|
||||
CDEPEND="
|
||||
blas? ( virtual/blas )
|
||||
cuda? ( >=dev-util/nvidia-cuda-toolkit-11:=[profiler] )
|
||||
opencl? ( virtual/opencl )
|
||||
openmp? (
|
||||
sys-devel/gcc[openmp]
|
||||
sys-devel/clang-runtime[openmp]
|
||||
)
|
||||
fftw? ( sci-libs/fftw:3.0= )
|
||||
hwloc? ( sys-apps/hwloc:= )
|
||||
lapack? ( virtual/lapack )
|
||||
mkl? ( sci-libs/mkl )
|
||||
mpi? ( virtual/mpi[cxx] )
|
||||
sci-libs/lmfit:=
|
||||
>=dev-cpp/muParser-2.3:=
|
||||
${PYTHON_DEPS}
|
||||
"
|
||||
BDEPEND="${CDEPEND}
|
||||
virtual/pkgconfig
|
||||
clang? ( >=sys-devel/clang-6:* )
|
||||
build-manual? (
|
||||
app-text/doxygen
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/sphinx[${PYTHON_USEDEP}]
|
||||
')
|
||||
media-gfx/mscgen
|
||||
media-gfx/graphviz
|
||||
dev-texlive/texlive-latex
|
||||
dev-texlive/texlive-latexextra
|
||||
media-gfx/imagemagick
|
||||
)"
|
||||
RDEPEND="${CDEPEND}
|
||||
<sci-chemistry/dssp-4"
|
||||
|
||||
REQUIRED_USE="
|
||||
|| ( single-precision double-precision )
|
||||
doc? ( !build-manual )
|
||||
cuda? ( single-precision )
|
||||
opencl? ( single-precision )
|
||||
cuda? ( !opencl )
|
||||
clang-cuda? ( clang cuda )
|
||||
mkl? ( !blas !fftw !lapack )
|
||||
${PYTHON_REQUIRED_USE}"
|
||||
|
||||
DOCS=( AUTHORS README )
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
if [[ ${PV} != *9999 ]]; then
|
||||
S="${WORKDIR}/${PN}-${PV/_/-}"
|
||||
fi
|
||||
|
||||
pkg_pretend() {
|
||||
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
|
||||
python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} != *9999 ]]; then
|
||||
default
|
||||
else
|
||||
git-r3_src_unpack
|
||||
if use test; then
|
||||
EGIT_REPO_URI="https://gitlab.com/gromacs/gromacs-regressiontests.git" \
|
||||
EGIT_BRANCH="${EGIT_BRANCH}" \
|
||||
EGIT_CHECKOUT_DIR="${WORKDIR}/regressiontests"\
|
||||
git-r3_src_unpack
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
#notes/todos
|
||||
# -on apple: there is framework support
|
||||
|
||||
xdg_environment_reset #591952
|
||||
|
||||
# we can use clang as default
|
||||
if use clang && ! tc-is-clang ; then
|
||||
export CC=${CHOST}-clang
|
||||
export CXX=${CHOST}-clang++
|
||||
else
|
||||
tc-export CXX CC
|
||||
fi
|
||||
# clang-cuda need to filter mfpmath
|
||||
if use clang-cuda ; then
|
||||
filter-mfpmath sse
|
||||
filter-mfpmath i386
|
||||
fi
|
||||
|
||||
cmake_src_prepare
|
||||
|
||||
use cuda && cuda_src_prepare
|
||||
|
||||
GMX_DIRS=""
|
||||
use single-precision && GMX_DIRS+=" float"
|
||||
use double-precision && GMX_DIRS+=" double"
|
||||
|
||||
if use test; then
|
||||
for x in ${GMX_DIRS}; do
|
||||
mkdir -p "${WORKDIR}/${P}_${x}" || die
|
||||
cp -al "${WORKDIR}/regressiontests"* "${WORKDIR}/${P}_${x}/tests" || die
|
||||
done
|
||||
fi
|
||||
|
||||
DOC_CONTENTS="Gromacs can use sci-chemistry/vmd to read additional file formats"
|
||||
if use build-manual; then
|
||||
# try to create policy for imagemagik
|
||||
mkdir -p "${HOME}"/.config/ImageMagick
|
||||
cat >> "${HOME}"/.config/ImageMagick/policy.xml <<- EOF
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE policymap [
|
||||
<!ELEMENT policymap (policy)+>
|
||||
!ATTLIST policymap xmlns CDATA #FIXED ''>
|
||||
<!ELEMENT policy EMPTY>
|
||||
<!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED
|
||||
name NMTOKEN #IMPLIED pattern CDATA #IMPLIED rights NMTOKEN #IMPLIED
|
||||
stealth NMTOKEN #IMPLIED value CDATA #IMPLIED>
|
||||
]>
|
||||
<policymap>
|
||||
<policy domain="coder" rights="read | write" pattern="PS" />
|
||||
<policy domain="coder" rights="read | write" pattern="PS2" />
|
||||
<policy domain="coder" rights="read | write" pattern="PS3" />
|
||||
<policy domain="coder" rights="read | write" pattern="EPS" />
|
||||
<policy domain="coder" rights="read | write" pattern="PDF" />
|
||||
<policy domain="coder" rights="read | write" pattern="XPS" />
|
||||
</policymap>
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs_pre=( ) extra fft_opts=( )
|
||||
local acce="AUTO"
|
||||
|
||||
if use custom-cflags; then
|
||||
#go from slowest to fastest acceleration
|
||||
acce="None"
|
||||
if (use amd64 || use x86); then
|
||||
use cpu_flags_x86_sse2 && acce="SSE2"
|
||||
use cpu_flags_x86_sse4_1 && acce="SSE4.1"
|
||||
use cpu_flags_x86_fma4 && acce="AVX_128_FMA"
|
||||
use cpu_flags_x86_avx && acce="AVX_256"
|
||||
use cpu_flags_x86_avx2 && acce="AVX2_256"
|
||||
use cpu_flags_x86_avx512f && acce="AVX_512"
|
||||
elif (use arm); then
|
||||
use cpu_flags_arm_neon && acce="ARM_NEON"
|
||||
elif (use arm64); then
|
||||
use cpu_flags_arm_neon && acce="ARM_NEON_ASIMD"
|
||||
fi
|
||||
else
|
||||
strip-flags
|
||||
fi
|
||||
|
||||
#to create man pages, build tree binaries are executed (bug #398437)
|
||||
[[ ${CHOST} = *-darwin* ]] && \
|
||||
extra+=" -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF"
|
||||
|
||||
if use fftw; then
|
||||
fft_opts=( -DGMX_FFT_LIBRARY=fftw3 )
|
||||
elif use mkl; then
|
||||
local bits=$(get_libdir)
|
||||
fft_opts=( -DGMX_FFT_LIBRARY=mkl
|
||||
-DMKL_INCLUDE_DIR="$(echo /opt/intel/*/mkl/include)"
|
||||
-DMKL_LIBRARIES="$(echo /opt/intel/*/mkl/lib/*${bits/lib}/libmkl_rt.so)"
|
||||
)
|
||||
else
|
||||
fft_opts=( -DGMX_FFT_LIBRARY=fftpack )
|
||||
fi
|
||||
|
||||
mycmakeargs_pre+=(
|
||||
"${fft_opts[@]}"
|
||||
"${lmfit_opts[@]}"
|
||||
-DGMX_USE_LMFIT=EXTERNAL
|
||||
-DGMX_USE_MUPARSER=EXTERNAL
|
||||
-DGMX_EXTERNAL_BLAS=$(usex blas)
|
||||
-DGMX_EXTERNAL_LAPACK=$(usex lapack)
|
||||
-DGMX_OPENMP=$(usex openmp)
|
||||
-DGMX_COOL_QUOTES=$(usex offensive)
|
||||
-DGMX_USE_TNG=$(usex tng)
|
||||
-DGMX_BUILD_MANUAL=$(usex build-manual)
|
||||
-DGMX_HWLOC=$(usex hwloc)
|
||||
-DGMX_DEFAULT_SUFFIX=off
|
||||
-DGMX_SIMD="$acce"
|
||||
-DGMX_VMD_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/vmd/plugins/*/molfile/"
|
||||
-DGMX_DSSP_PROGRAM_PATH="${EPREFIX}/usr/bin/dssp"
|
||||
-DBUILD_TESTING=$(usex test)
|
||||
-DGMX_BUILD_UNITTESTS=$(usex test)
|
||||
-DPYTHON_EXECUTABLE="${EPREFIX}/usr/bin/${EPYTHON}"
|
||||
${extra}
|
||||
)
|
||||
|
||||
for x in ${GMX_DIRS}; do
|
||||
einfo "Configuring for ${x} precision"
|
||||
local suffix=""
|
||||
#if we build single and double - double is suffixed
|
||||
use double-precision && use single-precision && \
|
||||
[[ ${x} = "double" ]] && suffix="_d"
|
||||
local p
|
||||
[[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || p="-DGMX_DOUBLE=OFF"
|
||||
local gpu=( "-DGMX_GPU=OFF" )
|
||||
[[ ${x} = "float" ]] && use cuda && gpu=( "-DGMX_GPU=CUDA" )
|
||||
[[ ${x} = "float" ]] && use clang-cuda && gpu=( "-DGMX_GPU=CUDA" "-DGMX_CLANG_CUDA=ON" )
|
||||
use opencl && gpu=( "-DGMX_GPU=OPENCL" )
|
||||
local mycmakeargs=(
|
||||
${mycmakeargs_pre[@]} ${p}
|
||||
-DGMX_MPI=$(usex mpi)
|
||||
-DGMX_THREAD_MPI=$(usex threads)
|
||||
-DGMXAPI=$(usex gmxapi)
|
||||
-DGMX_INSTALL_LEGACY_API=$(usex gmxapi-legacy)
|
||||
"${gpu[@]}"
|
||||
"$(use test && echo -DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")"
|
||||
-DGMX_BINARY_SUFFIX="${suffix}"
|
||||
-DGMX_LIBS_SUFFIX="${suffix}"
|
||||
-DGMX_PYTHON_PACKAGE=$(usex python)
|
||||
)
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}" cmake_src_configure
|
||||
[[ ${CHOST} != *-darwin* ]] || \
|
||||
sed -i '/SET(CMAKE_INSTALL_NAME_DIR/s/^/#/' "${WORKDIR}/${P}_${x}/gentoo_rules.cmake" || die
|
||||
done
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
for x in ${GMX_DIRS}; do
|
||||
einfo "Compiling for ${x} precision"
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}"\
|
||||
cmake_src_compile
|
||||
if use python; then
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}"\
|
||||
cmake_src_compile python_packaging/all
|
||||
BUILD_DIR="${WORKDIR}/${P}" \
|
||||
distutils-r1_src_compile
|
||||
fi
|
||||
# not 100% necessary for rel ebuilds as available from website
|
||||
if use build-manual; then
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}"\
|
||||
cmake_src_compile manual
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
src_test() {
|
||||
for x in ${GMX_DIRS}; do
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}"\
|
||||
cmake_src_compile check
|
||||
done
|
||||
}
|
||||
|
||||
src_install() {
|
||||
for x in ${GMX_DIRS}; do
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}" \
|
||||
cmake_src_install
|
||||
if use python; then
|
||||
BUILD_DIR="${WORKDIR}/${P}_${x}" \
|
||||
cmake_src_install python_packaging/install
|
||||
fi
|
||||
if use build-manual; then
|
||||
newdoc "${WORKDIR}/${P}_${x}"/docs/manual/gromacs.pdf "${PN}-manual-${PV}.pdf"
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
if [[ ${PV} != *9999* ]]; then
|
||||
newdoc "${DISTDIR}/manual-${PV}.pdf" "${PN}-manual-${PV}.pdf"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if use tng; then
|
||||
insinto /usr/include/tng
|
||||
doins src/external/tng_io/include/tng/*h
|
||||
fi
|
||||
# drop unneeded stuff
|
||||
rm "${ED}"/usr/bin/GMXRC* || die
|
||||
for x in "${ED}"/usr/bin/gmx-completion-*.bash ; do
|
||||
local n=${x##*/gmx-completion-}
|
||||
n="${n%.bash}"
|
||||
cat "${ED}"/usr/bin/gmx-completion.bash "$x" > "${T}/${n}" || die
|
||||
newbashcomp "${T}"/"${n}" "${n}"
|
||||
done
|
||||
rm "${ED}"/usr/bin/gmx-completion*.bash || die
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
einfo
|
||||
einfo "Please read and cite gromacs related papers from list:"
|
||||
einfo "https://www.gromacs.org/articles.html"
|
||||
einfo
|
||||
readme.gentoo_print_elog
|
||||
}
|
||||
@@ -18,7 +18,6 @@
|
||||
<flag name="gmxapi">Add support for gmxapi library</flag>
|
||||
<flag name="gmxapi-legacy">Enable installing lagacy headers</flag>
|
||||
<flag name="hwloc">Enable HWLoc lib support</flag>
|
||||
<flag name="lmfit">Use external <pkg>sci-libs/lmfit</pkg></flag>
|
||||
<flag name="nnpot">Allow to use <pkg>sci-libs/caffe2</pkg> for NN Potentials</flag>
|
||||
<flag name="opencl">Enable opencl non-bonded kernels</flag>
|
||||
<flag name="single-precision">Single precision version of gromacs (default)</flag>
|
||||
|
||||
Reference in New Issue
Block a user