sci-physics/hepmc: cmake4 patches

Closes: https://bugs.gentoo.org/968135
Part-of: https://github.com/gentoo/gentoo/pull/45488
Closes: https://github.com/gentoo/gentoo/pull/45488
Signed-off-by: Alexander Puck Neuwirth <apn-pucky@gentoo.org>
This commit is contained in:
Alexander Puck Neuwirth
2026-01-22 11:47:16 +01:00
parent beaa558eb2
commit c2e5356f22
3 changed files with 184 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
https://gitlab.cern.ch/hepmc/HepMC/-/merge_requests/16
From 1bb90ccda81187c71c1e234e3d55390684ce1041 Mon Sep 17 00:00:00 2001
From: Giulio Eulisse <10544+ktf@users.noreply.github.com>
Date: Tue, 6 Jan 2026 13:39:58 +0100
Subject: [PATCH] Add support for CMake 4
Upstream deprecated support for CMake <= 3.5.
See https://cmake.org/cmake/help/latest/release/4.0.html#deprecated-and-removed-features
---
CMakeLists.txt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7b2dd93..6d7e807 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,8 +13,8 @@
# which matches the default HepMC autoconf flags
#------------------------------------------------------------------------------
-# use cmake 2.6 or later
-cmake_minimum_required (VERSION 2.6)
+# use cmake 3.16 or later
+cmake_minimum_required (VERSION 3.16)
# project name and version
project(HepMC)
--
GitLab

View File

@@ -0,0 +1,49 @@
https://gitlab.cern.ch/hepmc/HepMC/-/merge_requests/17
From 3b1f6ebfa2af3e56013c8f9f771baa978bfe426d Mon Sep 17 00:00:00 2001
From: Alexander Puck Neuwirth <alexander@neuwirth-informatik.de>
Date: Thu, 22 Jan 2026 11:26:12 +0100
Subject: [PATCH] fix: Policy CMP0153: The exec_program command should not be
called.
---
cmake/Modules/HepMCUseCpack.cmake | 5 +++--
cmake/Modules/HepMCVariables.cmake | 5 +++--
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/cmake/Modules/HepMCUseCpack.cmake b/cmake/Modules/HepMCUseCpack.cmake
index 49040b7..298cff0 100644
--- a/cmake/Modules/HepMCUseCpack.cmake
+++ b/cmake/Modules/HepMCUseCpack.cmake
@@ -8,9 +8,10 @@
#
FUNCTION(_My_COMPILER_DUMPVERSION _OUTPUT_VERSION)
- EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
- ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
+ execute_process(
+ COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
OUTPUT_VARIABLE _my_COMPILER_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE
)
set( COMPILER_VERSION ${_my_COMPILER_VERSION} PARENT_SCOPE)
STRING(REGEX REPLACE "([0-9])\\.([0-9])(\\.[0-9])?" "\\1\\2"
diff --git a/cmake/Modules/HepMCVariables.cmake b/cmake/Modules/HepMCVariables.cmake
index bd8b713..475310b 100644
--- a/cmake/Modules/HepMCVariables.cmake
+++ b/cmake/Modules/HepMCVariables.cmake
@@ -10,9 +10,10 @@
# so we need this for the example makefile
macro( _hepmc_fortran_compiler )
- EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
- ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
+ execute_process(
+ COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
OUTPUT_VARIABLE _my_COMPILER_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE
)
STRING(REGEX REPLACE "([0-9])\\.([0-9])(\\.[0-9])?" "\\1"
_my_COMPILER_BASE_VERSION ${_my_COMPILER_VERSION})
--
GitLab

View File

@@ -0,0 +1,104 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake flag-o-matic
MYP=HepMC-${PV}
DESCRIPTION="Event Record for Monte Carlo Generators"
HOMEPAGE="
https://hepmc.web.cern.ch/hepmc/
https://gitlab.cern.ch/hepmc/HepMC/
"
SRC_URI="https://hepmc.web.cern.ch/hepmc/releases/hepmc${PV}.tgz"
S="${WORKDIR}/${MYP}"
LICENSE="GPL-2"
SLOT="2"
KEYWORDS="~amd64 ~x86"
IUSE="cm doc examples gev test"
RESTRICT="!test? ( test )"
BDEPEND="
doc? (
app-text/doxygen[dot]
dev-texlive/texlive-latex
dev-texlive/texlive-latexextra
dev-texlive/texlive-latexrecommended
)
"
PATCHES=(
"${FILESDIR}"/${P}-cmake4.patch
"${FILESDIR}"/${P}-cmp0153.patch
)
src_prepare() {
cmake_src_prepare
sed -i -e '/add_subdirectory(doc)/d' CMakeLists.txt || die
# CMake doc building broken
# gentoo doc directory
#sed -i \
# -e "s:share/HepMC/doc:share/doc/${PF}:" \
# doc/CMakeLists.txt || die
# gentoo examples directory
sed -i \
-e "s:share/HepMC:share/doc/${PF}:" \
$(find examples -name CMakeLists.txt) || die
# respect user's flags
sed -i \
-e "s/-O -ansi -pedantic -Wall//g" \
cmake/Modules/HepMCVariables.cmake || die
# gentoo libdir love
sed -i \
-e '/DESTINATION/s/lib/lib${LIB_SUFFIX}/g' \
{src,fio}/CMakeLists.txt || die
# remove targets if use flags not set
if ! use examples; then
sed -i -e '/add_subdirectory(examples)/d' CMakeLists.txt || die
fi
if ! use test; then
sed -i -e '/add_subdirectory(test)/d' CMakeLists.txt || die
fi
# remove static libs
sed -i \
-e '/(HepMC\(fio\|\)S/d' \
-e '/TARGETS/s/HepMC\(fio\|\)S//' \
{src,fio}/CMakeLists.txt || die
}
src_configure() {
# error: 'hepevt_' violates the C++ One Definition Rule [-Werror=odr]
# Bug 863284
filter-lto
# use MeV over GeV and mm over cm
local mycmakeargs=(
-Dlength=$(usex cm CM MM)
-Dmomentum=$(usex gev GEV MEV)
)
cmake_src_configure
}
src_compile() {
cmake_src_compile
if use doc; then
cd doc || die
./buildDoc.sh || die
./buildDoxygen.sh || die
HTML_DOCS=( doc/html/. )
fi
}
src_install() {
cmake_src_install
use doc && dodoc doc/*.pdf
}