DaveGamble / cJSON

Ultralightweight JSON parser in ANSI C
MIT License
10.28k stars 3.15k forks source link

Unable to Specify macOS min version #863

Open mrod502 opened 1 month ago

mrod502 commented 1 month ago

Problem

Example


$ sw_vers -productVersion
-> 14.4.1

$ cmake .. -DCMAKE_C_FLAGS_INIT="-mmacos-version-min=14.0" -DENABLE_CJSON_UTILS=On -DENABLE_CJSON_TEST=Off -DBUILD_SHARED_AND_STATIC_LIBS=On
$ make
$ mkdir -p cjson_tmp
$ cd cjson_tmp
$ ar x ../build/libcjson.a
$ ls
-> ... cjson.c.o
$ gcc -fcommon -shared -o lib.so -fPIC -Ideps -Ideps/b64  -IcJSON cjson_tmp/*.o
-> warning: object file (cjson_tmp/cjson.c.o) was built for newer 'macOS' version (14.4) than being linked (14.0)

Solution

add an option for macos min version:

option(MACOS_VERSION_MIN "Set the minimum macOS SDK version" OFF)
if (APPLE AND MACOS_VERSION_MIN)
    add_compile_options(-mmacos-version-min=${MACOS_VERSION_MIN})
endif()