libsystemd_journal_internal],
install : false)
-version_script_arg = '@0@/@1@'.format(meson.current_source_dir(), libsystemd_sym)
+libsystemd_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libsystemd_sym)
libsystemd = shared_library(
'systemd',
libsystemd_internal_sources,
+ libsystemd_journal_internal_sources,
version : '0.18.0',
include_directories : includes,
link_args : ['-shared',
- '-Wl,--version-script=' + version_script_arg],
- link_with : [libbasic,
- libsystemd_internal,
- libsystemd_journal_internal],
- dependencies : [threads],
+ '-Wl,--version-script=' + libsystemd_sym_path],
+ link_with : [libbasic],
+ dependencies : [threads,
+ librt,
+ libxz,
+ liblz4],
link_depends : libsystemd_sym,
install : true,
install_dir : rootlibdir)
endif
endforeach
+test_libsystemd_sym = executable(
+ 'test-libsystemd-sym',
+ test_libsystemd_sym_c,
+ include_directories : includes,
+ # link_with : [libsystemd],
+ # TODO: try again with https://github.com/mesonbuild/meson/pull/1545
+ link_args : ['libsystemd.so.0.18.0'],
+ # link_depends : [libsystemd],
+ # TODO: try again after "Link_depends arguments must be strings." is solved
+ install : install_tests,
+ install_dir : testsdir)
+test('test-libsystemd-sym',
+ test_libsystemd_sym)
+
############################################################
make_directive_index_py = find_program('tools/make-directive-index.py')
--- /dev/null
+#!/usr/bin/python3
+import sys, re
+
+print('#include <stdio.h>')
+for header in sys.argv[2:]:
+ print('#include "{}"'.format(header.split('/')[-1]))
+
+print('''
+void* functions[] = {''')
+
+for line in open(sys.argv[1]):
+ match = re.search('^ +([a-zA-Z0-9_]+);', line)
+ if match:
+ print(' {},'.format(match.group(1)))
+
+print('''};
+
+int main(void) {
+ unsigned i;
+ for (i = 0; i < sizeof(functions)/sizeof(void*); i++)
+ printf("%p\\n", functions[i]);
+ return 0;
+}''')
test_env.set('PATH', path)
test_env.prepend('PATH', meson.build_root())
+############################################################
+
+generate_sym_test_py = find_program('generate-sym-test.py')
+
+test_libsystemd_sym_c = custom_target(
+ 'test-libsystemd-sym.c',
+ input : [libsystemd_sym_path] + systemd_headers,
+ output : 'test-libsystemd-sym.c',
+ command : [generate_sym_test_py, libsystemd_sym_path] + systemd_headers,
+ capture : true)
+
+############################################################
+
tests += [
[['src/test/test-device-nodes.c'],
[libshared],