Gentoo Archives: gentoo-commits

From: Joonas Niilola <juippis@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-libs/med/, sci-libs/med/files/
Date: Sun, 13 Oct 2019 11:22:17
Message-Id: 1570965718.650bfa08aad0ce31430f6a848b6c6631eada41be.juippis@gentoo
1 commit: 650bfa08aad0ce31430f6a848b6c6631eada41be
2 Author: Bernd Waibel <waebbl <AT> gmail <DOT> com>
3 AuthorDate: Sun Sep 15 13:06:18 2019 +0000
4 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org>
5 CommitDate: Sun Oct 13 11:21:58 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=650bfa08
7
8 sci-libs/med: switch to cmake based build
9
10 The patch moves back to the cmake based build used in sci-libs/libmed.
11 The issues with sci-libs/gmsh not building with cmake built med have
12 been resolved. See https://bugs.gentoo.org/693146 comments 19-22
13
14 Closes: https://bugs.gentoo.org/694468
15 Package-Manager: Portage-2.3.76, Repoman-2.3.17
16 Signed-off-by: Bernd Waibel <waebbl <AT> gmail.com>
17 Closes: https://github.com/gentoo/gentoo/pull/12930
18 Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>
19
20 sci-libs/med/files/med-3.3.1-cmake-fortran.patch | 21 ++++
21 .../files/med-3.3.1-disable-python-compile.patch | 17 +++
22 sci-libs/med/files/med-4.0.0-cmakelist.patch | 59 +++++++++++
23 sci-libs/med/files/med-4.0.0-installdoc.patch | 15 +++
24 sci-libs/med/med-4.0.0-r2.ebuild | 117 +++++++++++++++++++++
25 5 files changed, 229 insertions(+)
26
27 diff --git a/sci-libs/med/files/med-3.3.1-cmake-fortran.patch b/sci-libs/med/files/med-3.3.1-cmake-fortran.patch
28 new file mode 100644
29 index 00000000000..1f475d58484
30 --- /dev/null
31 +++ b/sci-libs/med/files/med-3.3.1-cmake-fortran.patch
32 @@ -0,0 +1,21 @@
33 +Make cmake properly disable fortran upon user requirments
34 +
35 +--- ./CMakeLists.txt.orig 2016-07-01 15:28:57.139304608 +0300
36 ++++ ./CMakeLists.txt 2016-07-01 15:34:22.295899455 +0300
37 +@@ -8,10 +8,13 @@
38 +
39 + INCLUDE(CheckLanguage)
40 + CHECK_LANGUAGE(Fortran)
41 +-IF(CMAKE_Fortran_COMPILER)
42 ++OPTION (MEDFILE_BUILD_FORTRAN "Build fortran library" ON)
43 ++IF(MEDFILE_BUILD_FORTRAN)
44 + ENABLE_LANGUAGE(Fortran)
45 ++ IF(NOT CMAKE_Fortran_COMPILER)
46 ++ MESSAGE(FATAL_EROOR "Fortran support was requested but not found")
47 ++ ENDIF()
48 + ELSE()
49 +- MESSAGE(STATUS "No Fortran support")
50 + ENDIF()
51 +
52 + ## Version number
53 +
54
55 diff --git a/sci-libs/med/files/med-3.3.1-disable-python-compile.patch b/sci-libs/med/files/med-3.3.1-disable-python-compile.patch
56 new file mode 100644
57 index 00000000000..642b404ba88
58 --- /dev/null
59 +++ b/sci-libs/med/files/med-3.3.1-disable-python-compile.patch
60 @@ -0,0 +1,17 @@
61 +--- ./config/cmake_files/medMacros.cmake 2016-10-24 09:55:35.000000000 +0200
62 ++++ ./config/cmake_files/medMacros.cmake.new 2018-01-24 10:50:15.146953227 +0100
63 +@@ -412,9 +412,9 @@
64 + FOREACH(input ${PYFILE2COMPINST})
65 + GET_FILENAME_COMPONENT(inputname ${input} NAME)
66 + INSTALL(FILES ${input} DESTINATION ${CMAKE_INSTALL_PREFIX}/${PYFILELOC})
67 +- INSTALL(CODE "MESSAGE(STATUS \"py compiling ${CMAKE_INSTALL_PREFIX}/${PYFILELOC}/${inputname}\")")
68 +- INSTALL(CODE "SET(CMD \"import py_compile ; py_compile.compile('${CMAKE_INSTALL_PREFIX}/${PYFILELOC}/${inputname}')\")")
69 +- INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"\${CMD}\")")
70 +- INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -O -c \"\${CMD}\")")
71 ++ #INSTALL(CODE "MESSAGE(STATUS \"py compiling ${CMAKE_INSTALL_PREFIX}/${PYFILELOC}/${inputname}\")")
72 ++ #INSTALL(CODE "SET(CMD \"import py_compile ; py_compile.compile('${CMAKE_INSTALL_PREFIX}/${PYFILELOC}/${inputname}')\")")
73 ++ #INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c \"\${CMD}\")")
74 ++ #INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -O -c \"\${CMD}\")")
75 + ENDFOREACH(input ${PYFILE2COMPINST})
76 + ENDMACRO(INSTALL_AND_COMPILE_PYTHON_FILE PYFILE2COMPINST PYFILELOC)
77 +
78
79 diff --git a/sci-libs/med/files/med-4.0.0-cmakelist.patch b/sci-libs/med/files/med-4.0.0-cmakelist.patch
80 new file mode 100644
81 index 00000000000..4c023cf24b3
82 --- /dev/null
83 +++ b/sci-libs/med/files/med-4.0.0-cmakelist.patch
84 @@ -0,0 +1,59 @@
85 +--- a/src/CMakeLists.txt 2018-07-28 16:37:01.180598992 +0200
86 ++++ a/src/CMakeLists.txt.new 2018-07-28 17:14:49.147775461 +0200
87 +@@ -1,7 +1,3 @@
88 +-INCLUDE_DIRECTORIES(
89 +- ${HDF5_INCLUDE_DIRS}
90 +- ${MPI_INCLUDE_DIRS})
91 +-
92 + # On Win platform, we need to make sure symbols are properly exported in
93 + # the intermediary OBJECT targes built in the sub-directories:
94 + # The definition "-D<target>_EXPORTS" is normally added automatically by CMake
95 +@@ -19,6 +15,12 @@
96 + INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}/include
97 + ${PROJECT_SOURCE_DIR}/include)
98 +
99 ++# these includes must go after project ones to avoid masking by
100 ++# previous versions already installed
101 ++INCLUDE_DIRECTORIES(
102 ++ ${HDF5_INCLUDE_DIRS}
103 ++ ${MPI_INCLUDE_DIRS})
104 ++
105 + # Get pure C intermediary targets:
106 + ADD_SUBDIRECTORY(hdfi)
107 + ADD_SUBDIRECTORY(ci)
108 +--- a/tools/mdump/CMakeLists.txt 2018-07-29 09:24:35.714930029 +0200
109 ++++ a/tools/mdump/CMakeLists.txt.new 2018-07-29 09:58:48.667089767 +0200
110 +@@ -33,6 +33,6 @@
111 + CONFIGURE_FILE(xmdump3.in ${PROJECT_BINARY_DIR}/xmdump3 @ONLY)
112 +
113 + INSTALL(PROGRAMS ${PROJECT_BINARY_DIR}/xmdump2 ${PROJECT_BINARY_DIR}/xmdump3 DESTINATION bin)
114 +-INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink mdump3 mdump WORKING_DIRECTORY ${DESTDIR}${CMAKE_INSTALL_PREFIX}/bin)")
115 +-INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink xmdump3 xmdump WORKING_DIRECTORY ${DESTDIR}${CMAKE_INSTALL_PREFIX}/bin)")
116 ++INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink mdump3 mdump WORKING_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin\")")
117 ++INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink xmdump3 xmdump WORKING_DIRECTORY \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin\")")
118 +
119 +--- a/src/2.3.6/CMakeLists.txt 2018-07-30 22:45:56.205079148 +0200
120 ++++ a/src/2.3.6/CMakeLists.txt.new 2018-07-30 22:49:43.520096835 +0200
121 +@@ -1,8 +1,3 @@
122 +-INCLUDE_DIRECTORIES(
123 +- ${HDF5_INCLUDE_DIRS}
124 +- ${MPI_INCLUDE_DIRS}
125 +-)
126 +-
127 + SET(med236_SOURCES MEDaffiche.c)
128 +
129 + # Definitions
130 +@@ -13,6 +8,13 @@
131 + "${PROJECT_BINARY_DIR}/include/2.3.6"
132 + "${PROJECT_SOURCE_DIR}/include/2.3.6")
133 +
134 ++# these includes must go after project ones to avoid masking by
135 ++# previous versions already installed
136 ++INCLUDE_DIRECTORIES(
137 ++ ${HDF5_INCLUDE_DIRS}
138 ++ ${MPI_INCLUDE_DIRS}
139 ++)
140 ++
141 + # Build intermediate targets _cfi236, _hdfi236, _misc236 and _ci236
142 + # (and their static counterpart):
143 + ADD_SUBDIRECTORY(cfi)
144
145 diff --git a/sci-libs/med/files/med-4.0.0-installdoc.patch b/sci-libs/med/files/med-4.0.0-installdoc.patch
146 new file mode 100644
147 index 00000000000..2d9361c4265
148 --- /dev/null
149 +++ b/sci-libs/med/files/med-4.0.0-installdoc.patch
150 @@ -0,0 +1,15 @@
151 +--- ./CMakeLists.txt 2019-02-26 11:59:15.276962751 +0100
152 ++++ ./CMakeLists.txt.new 2019-02-26 11:59:26.660962707 +0100
153 +@@ -137,9 +137,10 @@
154 + ENDIF()
155 +
156 + ## Installation of the doc
157 ++set(MEDFILE_DOC_DIRECTORY ${CMAKE_INSTALL_PREFIX}/share/doc/med-fichier-${MED_STR_VERSION} CACHE PATH "install dir for documentation")
158 + IF(MEDFILE_INSTALL_DOC OR MEDFILE_BUILD_DOC)
159 +- INSTALL(DIRECTORY doc/html.dox/ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/med-fichier-${MED_STR_VERSION} REGEX "Makefile*" EXCLUDE PATTERN "*.am" EXCLUDE)
160 +- INSTALL(DIRECTORY doc/gif doc/jpg doc/png DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/med-fichier-${MED_STR_VERSION} FILES_MATCHING PATTERN "*.gif" PATTERN "*.jpg" PATTERN "*.svg" PATTERN "*.png")
161 ++ INSTALL(DIRECTORY doc/html.dox/ DESTINATION ${MEDFILE_DOC_DIRECTORY} REGEX "Makefile*" EXCLUDE PATTERN "*.am" EXCLUDE)
162 ++ INSTALL(DIRECTORY doc/gif doc/jpg doc/png DESTINATION ${MEDFILE_DOC_DIRECTORY} FILES_MATCHING PATTERN "*.gif" PATTERN "*.jpg" PATTERN "*.svg" PATTERN "*.png")
163 + ENDIF()
164 +
165 + #######################
166
167 diff --git a/sci-libs/med/med-4.0.0-r2.ebuild b/sci-libs/med/med-4.0.0-r2.ebuild
168 new file mode 100644
169 index 00000000000..837437559bd
170 --- /dev/null
171 +++ b/sci-libs/med/med-4.0.0-r2.ebuild
172 @@ -0,0 +1,117 @@
173 +# Copyright 1999-2019 Gentoo Authors
174 +# Distributed under the terms of the GNU General Public License v2
175 +
176 +EAPI=7
177 +
178 +# EAPI=7 uses ninja generator by default but it's incompatible with USE=fortran
179 +# https://github.com/Kitware/ninja/tree/features-for-fortran#readme
180 +CMAKE_MAKEFILE_GENERATOR=emake
181 +
182 +FORTRAN_NEEDED=fortran
183 +
184 +# NOTE:The build for multiple python versions should be possible but
185 +# complicated for the build system
186 +PYTHON_COMPAT=( python3_{5,6,7} )
187 +
188 +inherit cmake-utils fortran-2 python-single-r1
189 +
190 +DESCRIPTION="A library to store and exchange meshed data or computation results"
191 +HOMEPAGE="https://www.salome-platform.org/user-section/about/med"
192 +SRC_URI="https://files.salome-platform.org/Salome/other/${P}.tar.gz"
193 +
194 +LICENSE="LGPL-3"
195 +SLOT="0"
196 +KEYWORDS="~amd64 ~x86"
197 +IUSE="doc fortran mpi python test"
198 +
199 +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
200 +
201 +RESTRICT="python? ( test )"
202 +
203 +# dev-lang/tk is needed for wish-based xmdump utility
204 +RDEPEND="
205 + !sci-libs/libmed
206 + dev-lang/tk:0=
207 + >=sci-libs/hdf5-1.10.2:=[fortran?,mpi?]
208 + mpi? ( virtual/mpi[fortran=] )
209 + python? ( ${PYTHON_DEPS} )
210 +"
211 +DEPEND="${RDEPEND}"
212 +BDEPEND="python? ( >=dev-lang/swig-3.0.8 )"
213 +
214 +PATCHES=(
215 + "${FILESDIR}/${PN}-3.3.1-cmake-fortran.patch"
216 + "${FILESDIR}/${PN}-3.3.1-disable-python-compile.patch" # managed by function of python eclass
217 + "${FILESDIR}/${P}-cmakelist.patch"
218 + "${FILESDIR}/${P}-installdoc.patch"
219 +)
220 +
221 +DOCS=( AUTHORS ChangeLog NEWS README TODO )
222 +
223 +pkg_setup() {
224 + use python && python-single-r1_pkg_setup
225 + use fortran && fortran-2_pkg_setup
226 +}
227 +
228 +src_prepare() {
229 + if use python; then
230 + # fixes for correct libdir name
231 + local pysite=$(python_get_sitedir)
232 + pysite="${pysite##/usr/}"
233 + sed \
234 + -e 's@SET(_install_dir lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages/med)@SET(_install_dir '${pysite}'/med)@' \
235 + -i ./python/CMakeLists.txt || die "sed on ./python/CMakeLists.txt failed"
236 + fi
237 + for cm in ./src/CMakeLists.txt ./tools/medimport/CMakeLists.txt
238 + do
239 + sed -i -e "s@INSTALL(TARGETS \(.*\) DESTINATION lib)@INSTALL(TARGETS \1 DESTINATION $(get_libdir))@" \
240 + "${cm}" || die "sed on ${cm} failed"
241 + done
242 +
243 + cmake-utils_src_prepare
244 +}
245 +
246 +src_configure() {
247 + local mycmakeargs=(
248 + # as indicated in the CMakeLists.txt, the shipped documentation is generated by a custom doxygen,
249 + # so let's avoid rebuilding it because it will be different
250 + -DMEDFILE_BUILD_DOC=OFF
251 + -DMEDFILE_BUILD_FORTRAN=$(usex fortran)
252 + -DMEDFILE_BUILD_PYTHON=$(usex python)
253 + -DMEDFILE_BUILD_SHARED_LIBS=ON
254 + -DMEDFILE_BUILD_STATIC_LIBS=OFF
255 + -DMEDFILE_BUILD_TESTS=$(usex test)
256 + -DMEDFILE_DOC_DIRECTORY="${EPREFIX}"/usr/share/doc/${PF}/html # custom var created by patches
257 + -DMEDFILE_INSTALL_DOC=$(usex doc)
258 + -DMEDFILE_USE_MPI=$(usex mpi)
259 + )
260 + cmake-utils_src_configure
261 +}
262 +
263 +src_install() {
264 + cmake-utils_src_install
265 +
266 + # we don't need old 2.3.6 include files
267 + rm -r "${ED}"/usr/include/2.3.6 || die "failed to delete obsolete include dir"
268 +
269 + # the optimization done in CMakeLists.txt has been disabled so
270 + # we need to do it manually
271 + use python && python_optimize
272 +
273 + # Prevent test executables being installed
274 + if use test; then
275 + rm -r "${ED}"/usr/bin/testc || die "failed to delete C test executables"
276 + if use fortran; then
277 + rm -r "${ED}"/usr/bin/testf || die "failed to delete fortran test executables"
278 + fi
279 + if use python; then
280 + rm -r "${ED}"/usr/bin/testpy || die "failed to delete python test executables"
281 + fi
282 + fi
283 +}
284 +
285 +src_test() {
286 + # override parallel mode only for tests
287 + local myctestargs=( "-j 1" )
288 + cmake-utils_src_test
289 +}