git: 97d9bb985218 - main - www/lexbor: improve port

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Fri, 17 Jan 2025 12:37:24 UTC
The branch main has been updated by fuz:

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

commit 97d9bb985218fbacf81ad48e08a811839ba7c50f
Author:     Älven <alster@vinterdalen.se>
AuthorDate: 2025-01-08 11:55:24 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2025-01-17 12:34:00 +0000

    www/lexbor: improve port
    
    + Add option for building EXAMPLES
    * Always build shared library, remove SHARED option
    * Use dynamic SOVERSION via PLIST_SUB
    
    PR:             283924
    MFH:            2025Q1
---
 www/lexbor/Makefile  | 14 +++++++---
 www/lexbor/pkg-plist | 72 +++++++++++++++++++++++++++++++++++++++++++++++++---
 2 files changed, 79 insertions(+), 7 deletions(-)

diff --git a/www/lexbor/Makefile b/www/lexbor/Makefile
index 4a01b07cb821..24537aba95eb 100644
--- a/www/lexbor/Makefile
+++ b/www/lexbor/Makefile
@@ -1,6 +1,7 @@
 PORTNAME=	lexbor
 DISTVERSIONPREFIX=	v
 DISTVERSION=	2.4.0
+PORTREVISION=	1
 CATEGORIES=	www
 
 MAINTAINER=	alster@vinterdalen.se
@@ -15,19 +16,24 @@ USES=		cmake:testing
 USE_GITHUB=	yes
 USE_LDCONFIG=	yes
 
+PLIST_SUB=	SOVERSION=${DISTVERSION}
+
 CMAKE_TESTING_ON=	LEXBOR_BUILD_TESTS
 
-OPTIONS_DEFINE=		ASAN HEADERS SHARED STATIC
-OPTIONS_DEFAULT=	HEADERS SHARED STATIC
+OPTIONS_DEFINE=		ASAN EXAMPLES HEADERS STATIC
+OPTIONS_DEFAULT=	HEADERS STATIC
 OPTIONS_SUB=	yes
 
 ASAN_DESC=	Enable Address Sanitizer if possible
 HEADERS_DESC=	Install library headers (.h files)
-SHARED_DESC=	Create a shared library
 
 ASAN_CMAKE_BOOL=	LEXBOR_BUILD_WITH_ASAN
+EXAMPLES_CMAKE_BOOL=	LEXBOR_BUILD_EXAMPLES
 HEADERS_CMAKE_BOOL=	LEXBOR_INSTALL_HEADERS
-SHARED_CMAKE_BOOL=	LEXBOR_BUILD_SHARED
 STATIC_CMAKE_BOOL=	LEXBOR_BUILD_STATIC
 
+post-install-EXAMPLES-on:
+	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
+	(cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})
+
 .include <bsd.port.mk>
diff --git a/www/lexbor/pkg-plist b/www/lexbor/pkg-plist
index cc079486c1b1..90c372398edb 100644
--- a/www/lexbor/pkg-plist
+++ b/www/lexbor/pkg-plist
@@ -263,8 +263,74 @@
 %%HEADERS%%include/lexbor/utils/http.h
 %%HEADERS%%include/lexbor/utils/utils.h
 %%HEADERS%%include/lexbor/utils/warc.h
-%%SHARED%%lib/liblexbor.so
-%%SHARED%%lib/liblexbor.so.2
-%%SHARED%%lib/liblexbor.so.2.4.0
+lib/liblexbor.so
+lib/liblexbor.so.2
+lib/liblexbor.so.%%SOVERSION%%
 %%STATIC%%lib/liblexbor_static.a
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/CMakeLists.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/css/CMakeLists.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/css/StyleSheet.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/css/base.h
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/css/selectors/list_easy_way.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/css/selectors/list_fast_way.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/css/syntax/simple_colorize.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/css/syntax/structure_parse_file.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/css/syntax/tokenizer/chunks_stdin.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/css/syntax/tokenizer/from_file.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/css/syntax/tokenizer/print_raw.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/CMakeLists.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/buffer/decode/decode.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/buffer/decode/decoder.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/buffer/decode/validate.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/buffer/encode/encode.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/buffer/encode/encoder.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/buffer/encode/validate.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/buffer/from_to.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/data_by_name.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/single/decode/decode.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/single/decode/decoder.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/single/decode/validate.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/single/encode/encode.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/single/encode/encoder.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/single/encode/validate.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/encoding/single/from_to.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/CMakeLists.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/base.h
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/document_parse.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/document_parse_chunk.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/document_title.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/element_attributes.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/element_create.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/element_innerHTML.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/elements_by_attr.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/elements_by_class_name.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/elements_by_tag_name.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/encoding.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/html2sexpr.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/parse.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/parse_chunk.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/tokenizer/callback.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/tokenizer/simple.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/tokenizer/tag_attributes.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/html/tokenizer/text.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/punycode/CMakeLists.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/punycode/decode.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/punycode/encode.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/selectors/CMakeLists.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/selectors/easy_way.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/selectors/normal_way.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/selectors/unique_nodes.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/styles/CMakeLists.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/styles/attribute_style.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/styles/base.h
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/styles/events_insert.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/styles/stylesheet.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/styles/walk.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/unicode/CMakeLists.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/unicode/idna_to_ascii.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/unicode/normalization_form.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/unicode/normalization_form_stdin.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/url/CMakeLists.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/url/parse.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/lexbor/url/relative.c
 %%HEADERS%%@dir include/lexbor/html/tree/insertion_mode