git: 12bf8b3dabde - main - math/heyoka: fix build against devel/llvm18 and higher
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 22 Jan 2025 18:31:59 UTC
The branch main has been updated by dim:
URL: https://cgit.FreeBSD.org/ports/commit/?id=12bf8b3dabdeb7a9b9c9a2665938b3f518ebb3f8
commit 12bf8b3dabdeb7a9b9c9a2665938b3f518ebb3f8
Author: Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2025-01-22 17:10:37 +0000
Commit: Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2025-01-22 18:31:36 +0000
math/heyoka: fix build against devel/llvm18 and higher
When building with DEFAULT_VERSIONS+=llvm=18 or higher, math/heyoke
fails to configure, with the following error:
CMake Error at CMakeLists.txt:159 (find_package):
Could not find a configuration file for package "LLVM" that is compatible
with requested version "18".
The following configuration files were considered but not accepted:
/usr/local/llvm15/lib/cmake/llvm/LLVMConfig.cmake, version: 15.0.7
/usr/local/llvm17/lib/cmake/llvm/LLVMConfig.cmake, version: 17.0.6
/usr/local/llvm16/lib/cmake/llvm/LLVMConfig.cmake, version: 16.0.6
/usr/local/llvm18/lib/cmake/llvm/LLVMConfig.cmake, version: 18.1.8
This is because llvm18 and higher use 1 for their minor version numbers,
while llvm17 and earlier use 0. CMake's find_package() needs the minor
version number set correctly, otherwise it will not be able to find the
LLVM package.
PR: 284266
Approved by: yuri (maintainer)
MFH: 2025Q1
---
math/heyoka/Makefile | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/math/heyoka/Makefile b/math/heyoka/Makefile
index b18004faa20d..2193737b957d 100644
--- a/math/heyoka/Makefile
+++ b/math/heyoka/Makefile
@@ -32,11 +32,23 @@ USE_GITHUB= yes
GH_ACCOUNT= bluescarni
CMAKE_ON= HEYOKA_WITH_MPPP HEYOKA_WITH_SLEEF
-CMAKE_ARGS= -DFREEBSD_LLVM_VERSION=${LLVM_VERSION}
CMAKE_TESTING_ON= HEYOKA_BUILD_TESTS # 1 test fails, see https://github.com/bluescarni/heyoka/issues/338
# 2 tests fail:
# * https://github.com/bluescarni/heyoka/issues/429
# * https://github.com/bluescarni/heyoka/issues/430
-.include <bsd.port.mk>
+.include <bsd.port.pre.mk>
+
+# LLVM 18 and later use 1 for their minor version, while 17 and earlier use 0.
+# CMake's find_package() needs the minor version set correctly, otherwise it
+# will not be able to find the LLVM package.
+.if ${LLVM_VERSION} >= 18
+LLVM_VERSION_MINOR= 1
+.else
+LLVM_VERSION_MINOR= 0
+.endif
+
+CMAKE_ARGS+= -DFREEBSD_LLVM_VERSION=${LLVM_VERSION}.${LLVM_VERSION_MINOR}
+
+.include <bsd.port.post.mk>