On 2025/01/16 07:47, Stepan Zolotuev wrote:
> Hi ports@,
> 
> Most packages contain both static and shared libraries, this one
> doesn't. I noticed this when trying to statically link my own software.

For software using cmake it is common to only build one version of a library.

> The diff simply enables building of statib library.

I don't see the benefit of having this in ports. If you want to build it
directly into your own software (which has the same downsides as static
linking - less ASLR, doesn't automaticslly get updated if there are
fixes in cJSON), it seems a better approach to do it this way?

: #### copying the source
: 
: Because the entire library is only one C file and one header file, you
: can just copy `cJSON.h` and `cJSON.c` to your projects source and start
: using it.

> 
> diff --git devel/cjson/Makefile devel/cjson/Makefile
> index 2a3e8579216..c8a8d017c17 100644
> --- devel/cjson/Makefile
> +++ devel/cjson/Makefile
> @@ -3,6 +3,7 @@ COMMENT =     ultralightweight JSON parser in ANSI C
>  GH_ACCOUNT = DaveGamble
>  GH_PROJECT = cJSON
>  GH_TAGNAME = v1.7.18
> +REVISION   = 0
> 
>  PKGNAME =    ${DISTNAME:L}
> 
> @@ -20,8 +21,10 @@ WANTLIB += m
> 
>  MODULES =    devel/cmake
> 
> +CONFIGURE_ARGS += -DBUILD_SHARED_AND_STATIC_LIBS=ON
> +
>  # evertyhing except tests
> -ALL_TARGET = cjson
> +ALL_TARGET = cjson cjson-static
> 
>  # build whatever is left (ca. 43 C test files)
>  pre-test:
> diff --git devel/cjson/pkg/PLIST devel/cjson/pkg/PLIST
> index 72fecab4602..c64c876d1ee 100644
> --- devel/cjson/pkg/PLIST
> +++ devel/cjson/pkg/PLIST
> @@ -6,5 +6,6 @@ lib/cmake/cJSON/cJSONConfig.cmake
>  lib/cmake/cJSON/cJSONConfigVersion.cmake
>  lib/cmake/cJSON/cjson${MODCMAKE_BUILD_SUFFIX}
>  lib/cmake/cJSON/cjson.cmake
> +@static-lib lib/libcjson.a
>  @lib lib/libcjson.so.${LIBcjson_VERSION}
>  lib/pkgconfig/libcjson.pc


Reply via email to