diff options
Diffstat (limited to 'meson.build')
| -rw-r--r-- | meson.build | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/meson.build b/meson.build index 03d51a4..e144325 100644 --- a/meson.build +++ b/meson.build @@ -4,21 +4,40 @@ add_project_arguments('-D_XOPEN_SOURCE=700', language : [ 'c' ]) c_comp = meson.get_compiler('c') conf_data = configuration_data() + +if not c_comp.has_function_attribute('visibility:default') \ + or not c_comp.has_function_attribute('visibility:hidden') + error('Your platform isn\'t supported. Use a gcc-like compiler on linux.') +else + conf_data.set('PTX_EXPORT', '__attribute__((visibility("default")))') + conf_data.set('PTX_IMPORT', 'extern') +endif + conf_data.set('HAS_ATTR_WUR', c_comp.has_function_attribute('warn_unused_result')) conf_data.set('HAS_ATTR_ALWAYS_INLINE', c_comp.has_function_attribute('always_inline')) conf_data.set('HAS_ATTR_MALLOC', c_comp.has_function_attribute('malloc')) conf_data.set('HAS_ATTR_FORMAT', c_comp.has_function_attribute('format')) + conf_data.set('HAS_RESTRICT', c_comp.has_type('int *restrict')) -configure_file(input : 'config.h.in', output : 'config.h', configuration : conf_data) + +configure_file(input : 'include/config.h.in', output : 'config.h', configuration : conf_data) conf_include = include_directories('.') src_include = include_directories('include') -executable('ptxmc', - 'pipeline.c', - 'connection.c', - 'main.c', +export_dynamic = [] + +if c_comp.get_argument_syntax() == 'gcc' + if c_comp.has_argument('-fvisibility=hidden') + add_project_arguments('-fvisibility=hidden', language : 'c') + endif +endif + +subdir('src') + +executable('ptxmc', prog_sources, include_directories : [ conf_include, src_include ], - link_args : [ '-rdynamic' ]) + gnu_symbol_visibility : 'hidden', + export_dynamic : true) subdir('plugins') |
