|
@@ -0,0 +1,58 @@
|
|
|
|
+project('cJSON', 'c', default_options: ['c_std=c89'])
|
|
|
|
+version = '1.6.0'
|
|
|
|
+soversion = '0'
|
|
|
|
+
|
|
|
|
+compiler = meson.get_compiler('c')
|
|
|
|
+
|
|
|
|
+compiler_flags = []
|
|
|
|
+
|
|
|
|
+if (compiler.get_id() == 'clang') or (compiler.get_id() == 'gcc')
|
|
|
|
+ compiler_flags += [
|
|
|
|
+ '-pedantic',
|
|
|
|
+ '-Wall',
|
|
|
|
+ '-Wextra',
|
|
|
|
+ '-Werror',
|
|
|
|
+ '-Wstrict-prototypes',
|
|
|
|
+ '-Wwrite-strings',
|
|
|
|
+ '-Wshadow',
|
|
|
|
+ '-Winit-self',
|
|
|
|
+ '-Wcast-align',
|
|
|
|
+ '-Wformat=2',
|
|
|
|
+ '-Wmissing-prototypes',
|
|
|
|
+ '-Wstrict-overflow=2',
|
|
|
|
+ '-Wcast-qual',
|
|
|
|
+ '-Wundef',
|
|
|
|
+ '-Wswitch-default',
|
|
|
|
+ '-Wconversion',
|
|
|
|
+ '-Wc++-compat',
|
|
|
|
+ '-fstack-protector-strong',
|
|
|
|
+ '-Wcomma',
|
|
|
|
+ '-Wdouble-promotion',
|
|
|
|
+ '-Wparentheses',
|
|
|
|
+ '-Wformat-overflow',
|
|
|
|
+ '-Wunused-macros',
|
|
|
|
+ '-Wmissing-variable-declarations',
|
|
|
|
+ '-Wused-but-marked-unused',
|
|
|
|
+ '-Wswitch-enum'
|
|
|
|
+ ]
|
|
|
|
+endif
|
|
|
|
+
|
|
|
|
+foreach flag : compiler_flags
|
|
|
|
+ if compiler.has_argument(flag)
|
|
|
|
+ add_project_arguments(flag, language: 'c')
|
|
|
|
+ endif
|
|
|
|
+endforeach
|
|
|
|
+
|
|
|
|
+math = compiler.find_library('m', required: false)
|
|
|
|
+
|
|
|
|
+cjson = shared_library('cjson', 'cJSON.c', dependencies: math, version: version, soversion: soversion, install: true)
|
|
|
|
+if get_option('enable_cjson_utils')
|
|
|
|
+ cjson_utils = shared_library('cjson_utils', 'cJSON_Utils.c', link_with: cjson, version: version, soversion: soversion, install: true)
|
|
|
|
+endif
|
|
|
|
+
|
|
|
|
+if get_option('enable_cjson_tests')
|
|
|
|
+ cjson_test = executable('cjson_test', 'test.c', link_with: cjson)
|
|
|
|
+ test('cjson_test', cjson_test)
|
|
|
|
+endif
|
|
|
|
+
|
|
|
|
+subdir('tests')
|