Introduce GMX_USE_SIMD_KERNELS cmake option
[gromacs.git] / src / gromacs / nbnxm / kernels_simd_2xmm / CMakeLists.txt
blob1896bfc32c54a4f151f3bfed09ba89b9095fe13c
2 # This file is part of the GROMACS molecular simulation package.
4 # Copyright (c) 2020, by the GROMACS development team, led by
5 # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
6 # and including many others, as listed in the AUTHORS file in the
7 # top-level source directory and at http://www.gromacs.org.
9 # GROMACS is free software; you can redistribute it and/or
10 # modify it under the terms of the GNU Lesser General Public License
11 # as published by the Free Software Foundation; either version 2.1
12 # of the License, or (at your option) any later version.
14 # GROMACS is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17 # Lesser General Public License for more details.
19 # You should have received a copy of the GNU Lesser General Public
20 # License along with GROMACS; if not, see
21 # http://www.gnu.org/licenses, or write to the Free Software Foundation,
22 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
24 # If you want to redistribute modifications to GROMACS, please
25 # consider that scientific software is very special. Version
26 # control is crucial - bugs must be traceable. We will be happy to
27 # consider code for inclusion in the official distribution, but
28 # derived work must not be called official GROMACS. Details are found
29 # in the README & COPYING files - if they are missing, get the
30 # official version at http://www.gromacs.org.
32 # To help us fund GROMACS development, we humbly ask that you cite
33 # the research papers on the package. Check out http://www.gromacs.org.
35 if (GMX_USE_SIMD_KERNELS)
36     file(GLOB KERNEL_SOURCES
37         kernel_ElecEwTwinCut_VdwLJCombGeom_F.cpp
38         kernel_ElecEwTwinCut_VdwLJCombGeom_VF.cpp
39         kernel_ElecEwTwinCut_VdwLJCombGeom_VgrpF.cpp
40         kernel_ElecEwTwinCut_VdwLJCombLB_F.cpp
41         kernel_ElecEwTwinCut_VdwLJCombLB_VF.cpp
42         kernel_ElecEwTwinCut_VdwLJCombLB_VgrpF.cpp
43         kernel_ElecEwTwinCut_VdwLJEwCombGeom_F.cpp
44         kernel_ElecEwTwinCut_VdwLJEwCombGeom_VF.cpp
45         kernel_ElecEwTwinCut_VdwLJEwCombGeom_VgrpF.cpp
46         kernel_ElecEwTwinCut_VdwLJ_F.cpp
47         kernel_ElecEwTwinCut_VdwLJFSw_F.cpp
48         kernel_ElecEwTwinCut_VdwLJFSw_VF.cpp
49         kernel_ElecEwTwinCut_VdwLJFSw_VgrpF.cpp
50         kernel_ElecEwTwinCut_VdwLJPSw_F.cpp
51         kernel_ElecEwTwinCut_VdwLJPSw_VF.cpp
52         kernel_ElecEwTwinCut_VdwLJPSw_VgrpF.cpp
53         kernel_ElecEwTwinCut_VdwLJ_VF.cpp
54         kernel_ElecEwTwinCut_VdwLJ_VgrpF.cpp
55         kernel_ElecEw_VdwLJCombGeom_F.cpp
56         kernel_ElecEw_VdwLJCombGeom_VF.cpp
57         kernel_ElecEw_VdwLJCombGeom_VgrpF.cpp
58         kernel_ElecEw_VdwLJCombLB_F.cpp
59         kernel_ElecEw_VdwLJCombLB_VF.cpp
60         kernel_ElecEw_VdwLJCombLB_VgrpF.cpp
61         kernel_ElecEw_VdwLJEwCombGeom_F.cpp
62         kernel_ElecEw_VdwLJEwCombGeom_VF.cpp
63         kernel_ElecEw_VdwLJEwCombGeom_VgrpF.cpp
64         kernel_ElecEw_VdwLJ_F.cpp
65         kernel_ElecEw_VdwLJFSw_F.cpp
66         kernel_ElecEw_VdwLJFSw_VF.cpp
67         kernel_ElecEw_VdwLJFSw_VgrpF.cpp
68         kernel_ElecEw_VdwLJPSw_F.cpp
69         kernel_ElecEw_VdwLJPSw_VF.cpp
70         kernel_ElecEw_VdwLJPSw_VgrpF.cpp
71         kernel_ElecEw_VdwLJ_VF.cpp
72         kernel_ElecEw_VdwLJ_VgrpF.cpp
73         kernel_ElecQSTabTwinCut_VdwLJCombGeom_F.cpp
74         kernel_ElecQSTabTwinCut_VdwLJCombGeom_VF.cpp
75         kernel_ElecQSTabTwinCut_VdwLJCombGeom_VgrpF.cpp
76         kernel_ElecQSTabTwinCut_VdwLJCombLB_F.cpp
77         kernel_ElecQSTabTwinCut_VdwLJCombLB_VF.cpp
78         kernel_ElecQSTabTwinCut_VdwLJCombLB_VgrpF.cpp
79         kernel_ElecQSTabTwinCut_VdwLJEwCombGeom_F.cpp
80         kernel_ElecQSTabTwinCut_VdwLJEwCombGeom_VF.cpp
81         kernel_ElecQSTabTwinCut_VdwLJEwCombGeom_VgrpF.cpp
82         kernel_ElecQSTabTwinCut_VdwLJ_F.cpp
83         kernel_ElecQSTabTwinCut_VdwLJFSw_F.cpp
84         kernel_ElecQSTabTwinCut_VdwLJFSw_VF.cpp
85         kernel_ElecQSTabTwinCut_VdwLJFSw_VgrpF.cpp
86         kernel_ElecQSTabTwinCut_VdwLJPSw_F.cpp
87         kernel_ElecQSTabTwinCut_VdwLJPSw_VF.cpp
88         kernel_ElecQSTabTwinCut_VdwLJPSw_VgrpF.cpp
89         kernel_ElecQSTabTwinCut_VdwLJ_VF.cpp
90         kernel_ElecQSTabTwinCut_VdwLJ_VgrpF.cpp
91         kernel_ElecQSTab_VdwLJCombGeom_F.cpp
92         kernel_ElecQSTab_VdwLJCombGeom_VF.cpp
93         kernel_ElecQSTab_VdwLJCombGeom_VgrpF.cpp
94         kernel_ElecQSTab_VdwLJCombLB_F.cpp
95         kernel_ElecQSTab_VdwLJCombLB_VF.cpp
96         kernel_ElecQSTab_VdwLJCombLB_VgrpF.cpp
97         kernel_ElecQSTab_VdwLJEwCombGeom_F.cpp
98         kernel_ElecQSTab_VdwLJEwCombGeom_VF.cpp
99         kernel_ElecQSTab_VdwLJEwCombGeom_VgrpF.cpp
100         kernel_ElecQSTab_VdwLJ_F.cpp
101         kernel_ElecQSTab_VdwLJFSw_F.cpp
102         kernel_ElecQSTab_VdwLJFSw_VF.cpp
103         kernel_ElecQSTab_VdwLJFSw_VgrpF.cpp
104         kernel_ElecQSTab_VdwLJPSw_F.cpp
105         kernel_ElecQSTab_VdwLJPSw_VF.cpp
106         kernel_ElecQSTab_VdwLJPSw_VgrpF.cpp
107         kernel_ElecQSTab_VdwLJ_VF.cpp
108         kernel_ElecQSTab_VdwLJ_VgrpF.cpp
109         kernel_ElecRF_VdwLJCombGeom_F.cpp
110         kernel_ElecRF_VdwLJCombGeom_VF.cpp
111         kernel_ElecRF_VdwLJCombGeom_VgrpF.cpp
112         kernel_ElecRF_VdwLJCombLB_F.cpp
113         kernel_ElecRF_VdwLJCombLB_VF.cpp
114         kernel_ElecRF_VdwLJCombLB_VgrpF.cpp
115         kernel_ElecRF_VdwLJEwCombGeom_F.cpp
116         kernel_ElecRF_VdwLJEwCombGeom_VF.cpp
117         kernel_ElecRF_VdwLJEwCombGeom_VgrpF.cpp
118         kernel_ElecRF_VdwLJ_F.cpp
119         kernel_ElecRF_VdwLJFSw_F.cpp
120         kernel_ElecRF_VdwLJFSw_VF.cpp
121         kernel_ElecRF_VdwLJFSw_VgrpF.cpp
122         kernel_ElecRF_VdwLJPSw_F.cpp
123         kernel_ElecRF_VdwLJPSw_VF.cpp
124         kernel_ElecRF_VdwLJPSw_VgrpF.cpp
125         kernel_ElecRF_VdwLJ_VF.cpp
126         kernel_ElecRF_VdwLJ_VgrpF.cpp
127         kernel_prune.cpp
128         )
129 endif()
131 set(LIBGROMACS_SOURCES ${LIBGROMACS_SOURCES} ${KERNEL_SOURCES} PARENT_SCOPE)