forked from wannier-developers/wannier90
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwannier90.spec
More file actions
159 lines (124 loc) · 3.97 KB
/
Copy pathwannier90.spec
File metadata and controls
159 lines (124 loc) · 3.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
Name: wannier90
Summary: Maximally-Localised Generalised Wannier Functions Code
Version: 0.0.0
Release: %autorelease
License: GPL-2.0-only
URL: https://www.wannier.org/
Source: https://github.com/wannier-developers/wannier90/archive/refs/tags/v%{version}.tar.gz
BuildRequires: ninja-build
BuildRequires: cmake
BuildRequires: gcc-fortran
BuildRequires: flexiblas-devel
# Required for testing
BuildRequires: gcc-c++
BuildRequires: python3
%global _description %{expand:
Maximally-Localised Generalised Wannier Functions Code.}
%description
%{_description}
%package devel
Summary: Development files for wannier90
Requires: wannier90%{?_isa} = %{version}-%{release}
%description devel
This package contains the development files for the wannier90 library.
%package openmpi
Summary: Maximally-Localised Generalised Wannier Functions Code - OpenMPI version
BuildRequires: openmpi-devel
%description openmpi
%{_description}
This package contains the OpenMPI parallel version.
%package openmpi-devel
Summary: Development files for wannier90 - OpenMPI version
Requires: wannier90-openmpi%{?_isa} = %{version}-%{release}
%description openmpi-devel
This package contains the development files for the wannier90 (OpenMPI) library.
%package mpich
Summary: Maximally-Localised Generalised Wannier Functions Code - MPICH version
BuildRequires: mpich-devel
%description mpich
%{_description}
This package contains the MPICH parallel version.
%package mpich-devel
Summary: Development files for wannier90 - MPICH version
Requires: wannier90-mpich%{?_isa} = %{version}-%{release}
%description mpich-devel
This package contains the development files for the wannier90 (MPICH) library.
%prep
%autosetup -n wannier90-%{version}
# $MPI_SUFFIX will be evaluated in the loops below, set by mpi modules
%global _vpath_builddir %{_vendor}-%{_target_os}-build${MPI_SUFFIX:-_serial}
# We are running the module load/unload manually until there is a macro-like way to expand this
. /etc/profile.d/modules.sh
%build
cmake_common_args=(
"-G Ninja"
"-DWANNIER90_SHARED_LIBS=ON"
"-DWANNIER90_TEST=ON"
)
for mpi in '' mpich openmpi ; do
if [ -n "$mpi" ]; then
module load mpi/${mpi}-%{_arch}
cmake_mpi_args=(
"-DCMAKE_INSTALL_PREFIX=${MPI_HOME}"
"-DWANNIER90_MPI=ON"
"-DCMAKE_INSTALL_MODULEDIR=${MPI_FORTRAN_MOD_DIR}"
"-DCMAKE_INSTALL_LIBDIR=lib"
)
else
cmake_mpi_args=(
"-DWANNIER90_MPI=OFF"
"-DCMAKE_INSTALL_MODULEDIR=%{_fmoddir}"
)
fi
%cmake \
${cmake_common_args[@]} \
${cmake_mpi_args[@]}
%cmake_build
[ -n "$mpi" ] && module unload mpi/${mpi}-%{_arch}
done
%install
for mpi in '' mpich openmpi ; do
[ -n "$mpi" ] && module load mpi/${mpi}-%{_arch}
%cmake_install
[ -n "$mpi" ] && module unload mpi/${mpi}-%{_arch}
done
%check
for mpi in '' mpich %{?with_openmpi:openmpi} ; do
[ -n "$mpi" ] && module load mpi/${mpi}-%{_arch}
%ctest
[ -n "$mpi" ] && module unload mpi/${mpi}-%{_arch}
done
%files
%doc README.rst
%license LICENSE
%{_libdir}/libwannier90.so.*
%{_bindir}/wannier90.x
%{_bindir}/postw90.x
%files devel
%{_includedir}/wannier90.hh
%{_libdir}/libwannier90.so
%{_fmoddir}/Wannier90/
%{_libdir}/cmake/Wannier90
%{_libdir}/pkgconfig/wannier90.pc
%files openmpi
%{_libdir}/openmpi/bin/wannier90.x
%{_libdir}/openmpi/bin/postw90.x
%{_libdir}/openmpi/lib/libwannier90.so.*
%files openmpi-devel
%{_libdir}/openmpi/include/wannier90.hh
%{_libdir}/openmpi/lib/libwannier90.so
%{_fmoddir}/openmpi/Wannier90/
%{_libdir}/openmpi/lib/cmake/Wannier90
%{_libdir}/openmpi/lib/pkgconfig/wannier90.pc
%files mpich
%{_libdir}/mpich/bin/wannier90.x
%{_libdir}/mpich/bin/postw90.x
%{_libdir}/mpich/lib/libwannier90.so.*
%files mpich-devel
%{_libdir}/mpich/include/wannier90.hh
%{_libdir}/mpich/lib/libwannier90.so
%{_fmoddir}/mpich/Wannier90/
%{_libdir}/mpich/lib/cmake/Wannier90
%{_libdir}/mpich/lib/pkgconfig/wannier90.pc
%changelog
%autochangelog