[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] meson: initial Meson build system support
[Thread Prev] | [Thread Next]
- Subject: [PATCH] meson: initial Meson build system support
- From: Dima Krasner <dima@xxxxxxxxxxxxxxx>
- Date: Sat, 09 Dec 2017 13:08:27 +0200
- To: <cmocka@xxxxxxxxxxxxxx>
From 8c1f92f5631a5501475206df616b71d65a7806e9 Mon Sep 17 00:00:00 2001 From: Dima Krasner <dima@xxxxxxxxxxxxxxx> Date: Sat, 9 Dec 2017 12:57:56 +0200 Subject: [PATCH] meson: initial Meson build system support Signed-off-by: Dima Krasner <dima@xxxxxxxxxxxxxxx> --- meson.build | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 meson.build diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..13f3267 --- /dev/null +++ b/meson.build @@ -0,0 +1,43 @@ +project('cmocka', 'c', version: '1.1.1', license: 'Apache-2.0') + +cc = meson.get_compiler('c') + +conf = configuration_data() + +foreach hdr: ['assert.h', 'inttypes.h', 'io.h', 'malloc.h', 'memory.h', 'setjmp.h', 'signal.h', 'stdarg.h', 'stddef.h', 'stdint.h', 'stdio.h', 'stdlib.h', 'string.h', 'strings.h', 'sys/stat.h', 'sys/types.h', 'time.h', 'unistd.h'] + conf.set('HAVE_@0@'.format(hdr.underscorify().to_upper()), cc.has_header(hdr)) +endforeach + +code = '''#include <time.h> +int a = sizeof(struct timespec); +''' +conf.set('HAVE_STRUCT_TIMESPEC', cc.compiles(code, name: 'struct timepec')) + +foreach func: ['calloc', 'exit', 'fprintf', 'free', 'longjmp', 'siglongjmp', 'malloc', 'memcpy', 'memset', 'printf', 'setjmp', 'signal', 'strsignal', 'strcmp', 'clock_gettime'] + conf.set('HAVE_@0@'.format(func.to_upper()), cc.has_function(func)) +endforeach + +code = '__thread int tls;' +conf.set('HAVE_GCC_THREAD_LOCAL_STORAGE', cc.compiles(code, name: '__thread')) + +code = '''#include <time.h> +clockid_t t = CLOCK_REALTIME;''' +conf.set('HAVE_CLOCK_REALTIME', cc.compiles(code, name: 'CLOCK_REALTIME')) + +configure_file(output: 'config.h', configuration : conf) + +cmocka_includes = [include_directories('.'), include_directories('include')] +libcmocka = library('cmocka', + 'src/cmocka.c', + c_args: ['-DHAVE_CONFIG_H'], + include_directories: cmocka_includes, + install: true, + dependencies: [cc.find_library('rt', required: false)]) +install_headers('include/cmocka.h', subdir: 'cmocka') + +pkgconfig = import('pkgconfig') +pkgconfig.generate(libraries : [libcmocka], + version : '1.1.1', + name : 'cmocka', + filebase : 'cmocka', + description : 'The cmocka unit testing library') -- 2.1.4