git: d2914609f681 - main - devel/marisa-trie: Improve port

From: Daniel Engberg <diizzy_at_FreeBSD.org>
Date: Sat, 04 Oct 2025 08:13:33 UTC
The branch main has been updated by diizzy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d2914609f68142312744932e54529cad7014fb93

commit d2914609f68142312744932e54529cad7014fb93
Author:     Daniel Engberg <diizzy@FreeBSD.org>
AuthorDate: 2025-10-03 22:03:10 +0000
Commit:     Daniel Engberg <diizzy@FreeBSD.org>
CommitDate: 2025-10-04 08:11:48 +0000

    devel/marisa-trie: Improve port
    
    * Enable "make test"
    * Remove redundant variable GH_PROJECT in Makefile
    * Use a separate section for GitHub related variables [1]
    * Don't use -march=native , this overrides framework and is unsupported on some ARCHs
    * Add patch to not pass any CPU feature flags and stick to CPUTYPE
    * Add c++20 compiler requirement
    
    PR:             289971
    Reviewed by:    wen (maintainer)
---
 devel/marisa-trie/Makefile                   | 51 ++++------------------------
 devel/marisa-trie/files/patch-CMakeLists.txt | 46 +++++++++++++++++++++++++
 2 files changed, 53 insertions(+), 44 deletions(-)

diff --git a/devel/marisa-trie/Makefile b/devel/marisa-trie/Makefile
index a53b84d7b16d..5e646b59bc32 100644
--- a/devel/marisa-trie/Makefile
+++ b/devel/marisa-trie/Makefile
@@ -1,6 +1,7 @@
 PORTNAME=	marisa-trie
 DISTVERSIONPREFIX=	v
 DISTVERSION=	0.3.1
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	devel
 
@@ -12,52 +13,14 @@ LICENSE=	BSD2CLAUSE LGPL21+
 LICENSE_COMB=	dual
 LICENSE_FILE=	${WRKSRC}/COPYING.md
 
-USES=		cmake pathfix
-USE_GITHUB=	yes
-GH_ACCOUNT=	s-yata
-GH_PROJECT=	marisa-trie
+USES=		cmake:testing compiler:c++20-lang pathfix
 USE_LDCONFIG=	yes
 
-CMAKE_ARGS+=	-DBUILD_SHARED_LIBS=ON -DENABLE_NATIVE_CODE=ON
-CMAKE_BOOL+=	ENABLE_NATIVE_CODE
-
-OPTIONS_DEFINE=	SSE2 SSE3 SSSE3 SSE4 SSE41 SSE42 POPCNT BMI BMI2
-OPTIONS_DEFAULT=${MACHINE_CPU:tu}
-
-SSE2_DESC=	Support for SSE2
-SSE2_CMAKE_ARGS=	-DENABLE_NATIVE_CODE=ON -DHAVE_SSE2=ON -DENABLE_SSE2=ON
-SSE2_CMAKE_BOOL+=	HAVE_SSE2 ENABLE_SSE2
-
-SSE3_DESC=	Support for SSE3
-SSE3_CMAKE_ARGS+=	-DENABLE_NATIVE_CODE=ON -DHAVE_SSE3=ON -DENABLE_SSE3=ON
-SSE3_CMAKE_BOOL+=	HAVE_SSE3 ENABLE_SSE3
-
-SSSE3_DESC=	Support for SSSE3
-SSSE3_CMAKE_ARGS+=	-DENABLE_NATIVE_CODE=ON -DHAVE_SSSE3=ON -DENABLE_SSSE3=ON
-SSSE3_CMAKE_BOOL+=	HAVE_SSSE3 ENABLE_SSSE3
-
-SSE4_DESC=	Support for SSE4
-SSE4_CMAKE_ARGS+=	-DENABLE_NATIVE_CODE=ON -DHAVE_SSE4=ON -DENABLE_SSE4=ON
-SSE4_CMAKE_BOOL+=	HAVE_SSE4 ENABLE_SSE4
-
-SSE41_DESC=	Support for SSE4.1
-SSE41_CMAKE_ARGS+=	-DENABLE_NATIVE_CODE=ON -DHAVE_SSE4_1=ON -DENABLE_SSE4_1=ON
-SSE41_CMAKE_BOOL+=	HAVE_SSE4_1 ENABLE_SSE4_1
-
-SSE42_DESC=	Support for SSE4.2
-SSE42_CMAKE_ARGS+=	-DENABLE_NATIVE_CODE=ON -DHAVE_SSE4_2=ON -DENABLE_SSE4_2=ON
-SSE42_CMAKE_BOOL+=	HAVE_SSE4_2 ENABLE_SSE4_2
-
-POPCNT_DESC=	Support for POPCNT
-POPCNT_CMAKE_ARGS+=	-DENABLE_NATIVE_CODE=ON -DHAVE_POPCNT=ON -DENABLE_POPCNT=ON
-POPCNT_CMAKE_BOOL+=	HAVE_POPCNT ENABLE_POPCNT
-
-BMI_DESC=	Support for BMI
-BMI_CMAKE_ARGS+=	-DENABLE_NATIVE_CODE=ON -DHAVE_BMI=ON -DENABLE_BMI=ON
-BMI_CMAKE_BOOL+=	HAVE_BMI ENABLE_BMI
+USE_GITHUB=	yes
+GH_ACCOUNT=	s-yata
 
-BMI2_DESC=	Support for BMI2
-BMI2_CMAKE_ARGS+=	-DENABLE_NATIVE_CODE=ON -DHAVE_BMI2=ON -DENABLE_BMI2=ON
-BMI2_CMAKE_BOOL+=	HAVE_BMI2 ENABLE_BMI2
+CMAKE_ON_amd64=	ENABLE_NATIVE_CODE
+CMAKE_ON=	BUILD_SHARED_LIBS \
+		${CMAKE_ON_${ARCH}}
 
 .include <bsd.port.mk>
diff --git a/devel/marisa-trie/files/patch-CMakeLists.txt b/devel/marisa-trie/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..6e8778796dcc
--- /dev/null
+++ b/devel/marisa-trie/files/patch-CMakeLists.txt
@@ -0,0 +1,46 @@
+--- CMakeLists.txt.orig	2025-07-20 11:08:58 UTC
++++ CMakeLists.txt
+@@ -19,7 +19,6 @@ function(check_macro_defined MACRO OUTPUT_VAR)
+     SOURCE_FROM_CONTENT
+       "check_${OUTPUT_VAR}.cc"
+       "#ifndef ${MACRO}\n#error \"${MACRO} is missing\"\n#endif\n"
+-    COMPILE_DEFINITIONS -march=native
+   )
+   set("${OUTPUT_VAR}" "${result}" PARENT_SCOPE)
+   message("${OUTPUT_VAR}: ${result}")
+@@ -46,25 +45,25 @@ function(add_native_code TARGET)
+ cmake_dependent_option(ENABLE_BMI2 "Use BMI2 instructions" ON "ENABLE_NATIVE_CODE;HAVE_BMI2" OFF)
+ function(add_native_code TARGET)
+   if(ENABLE_NATIVE_CODE)
+-    target_compile_options("${TARGET}" PRIVATE -march=native)
++#    target_compile_options("${TARGET}" PRIVATE -march=native)
+     if(ENABLE_BMI2)
+-      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_BMI2 -mbmi2 -msse4)
++      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_BMI2)
+     elseif(ENABLE_BMI)
+-      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_BMI -mbmi -msse4)
++      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_BMI)
+     elseif(ENABLE_SSE4A)
+-      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_SSE4A -msse4a)
++      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_SSE4A)
+     elseif(ENABLE_SSE4_2 AND ENABLE_POPCNT)
+-      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_SSE4 -msse4)
++      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_SSE4)
+     elseif(ENABLE_SSE4_2)
+-      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_SSE4_2 -msse4.2)
++      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_SSE4_2)
+     elseif(ENABLE_SSE4_1)
+-      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_SSE4_1 -msse4.1)
++      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_SSE4_1)
+     elseif(ENABLE_SSSE3)
+-      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_SSSE3 -mssse3)
++      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_SSSE3)
+     elseif(ENABLE_SSE3)
+-      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_SSE3 -msse3)
++      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_SSE3)
+     elseif(ENABLE_SSE2)
+-      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_SSE2 -msse2)
++      target_compile_options("${TARGET}" PRIVATE -DMARISA_USE_SSE2)
+     endif()
+   endif()
+ endfunction()