aboutsummaryrefslogtreecommitdiffstats
path: root/meson.build
diff options
context:
space:
mode:
authorLibravatar bigfoot547 <[email protected]>2025-11-16 20:52:57 -0600
committerLibravatar bigfoot547 <[email protected]>2025-11-16 20:52:57 -0600
commitd026e93405655129e46debfca2124ee132e9b134 (patch)
tree8adf037dd69c4226ef9a5d2a3dd8fa63eb783761 /meson.build
parent[wip] plugin stuff (diff)
build config + more plugin stuff
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build31
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')