mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-10-15 12:34:55 +00:00
build/meson: fix meson build for shared files
The files in shared/nm-utils are not compiled as one static library, instead each subproject that needs (parts of) them, re-compiles the files individually. The major reason for that is, because we might have different compile flags, depending on whether we build libnm-core or libnm-util/libnm-glib. Actually, I think that is not really the case, and maybe this should be refactored, to indeed build them all as a static library first. Anyway, libnm-util, libnm-glib, clients' common lib, they all need a different set of shared files that they should compile. Refactor "shared/meson.build" to account for that and handle it like autotools does. Another change is, that "shared_c_siphash_dep" no longer advertises "include_directories: include_directories('c-siphash/src')". We don't put c-siphash.h into the include search path. Users who need it, should include it via "#include <c-siphash/src/c-siphash.h>". The only exception is when building shared_n_acd library, which is not under our control.
This commit is contained in:
parent
b8b6100c78
commit
f445128af4
|
@ -11,15 +11,13 @@ cflags = clients_cflags + [
|
|||
'-DG_LOG_DOMAIN="libnmc"',
|
||||
]
|
||||
|
||||
sources = shared_utils + files(
|
||||
'nm-client-utils.c',
|
||||
'nm-secret-agent-simple.c',
|
||||
'nm-vpn-helpers.c'
|
||||
)
|
||||
|
||||
libnmc_base = static_library(
|
||||
'nmc-base',
|
||||
sources: sources,
|
||||
sources: shared_files_clients_common + files(
|
||||
'nm-client-utils.c',
|
||||
'nm-secret-agent-simple.c',
|
||||
'nm-vpn-helpers.c',
|
||||
),
|
||||
dependencies: deps,
|
||||
c_args: cflags
|
||||
)
|
||||
|
@ -29,11 +27,6 @@ libnmc_base_dep = declare_dependency(
|
|||
link_with: libnmc_base
|
||||
)
|
||||
|
||||
sources = shared_meta_setting + files(
|
||||
'nm-meta-setting-access.c',
|
||||
'nm-meta-setting-desc.c'
|
||||
)
|
||||
|
||||
settings_docs = 'settings-docs.h'
|
||||
|
||||
if enable_introspection
|
||||
|
@ -60,11 +53,13 @@ else
|
|||
configuration: configuration_data()
|
||||
)
|
||||
endif
|
||||
sources += settings_docs_source
|
||||
|
||||
libnmc = static_library(
|
||||
'nmc',
|
||||
sources: sources,
|
||||
sources: files(
|
||||
'nm-meta-setting-access.c',
|
||||
'nm-meta-setting-desc.c'
|
||||
) + shared_nm_utils_nm_meta_setting_c + [settings_docs_source],
|
||||
dependencies: deps,
|
||||
c_args: cflags,
|
||||
link_with: libnmc_base,
|
||||
|
|
|
@ -151,9 +151,15 @@ if enable_json_validation
|
|||
deps += jansson_dep
|
||||
endif
|
||||
|
||||
libnm_core_sources_all = libnm_core_sources
|
||||
libnm_core_sources_all += libnm_core_enum
|
||||
libnm_core_sources_all += shared_nm_utils_nm_meta_setting_c
|
||||
libnm_core_sources_all += shared_files_libnm_core
|
||||
libnm_core_sources_all += [version_header]
|
||||
|
||||
libnm_core = static_library(
|
||||
'nm-core',
|
||||
sources: libnm_core_sources + libnm_core_enum + shared_sources + [version_header],
|
||||
sources: libnm_core_sources_all,
|
||||
dependencies: deps,
|
||||
c_args: cflags
|
||||
)
|
||||
|
|
|
@ -79,13 +79,6 @@ sources = files(
|
|||
|
||||
glue = 'nm-vpn-plugin-glue.h'
|
||||
|
||||
sources += custom_target(
|
||||
glue,
|
||||
input: ifaces_vpn_plugin_xml,
|
||||
output: glue,
|
||||
command: [dbus_binding_tool, '--prefix=nm_vpn_plugin', '--mode=glib-server', '--output=@OUTPUT@', '@INPUT@']
|
||||
)
|
||||
|
||||
enum_types = 'nm-vpn-enum-types'
|
||||
|
||||
libnm_glib_vpn_enum = gnome.mkenums(
|
||||
|
@ -104,7 +97,18 @@ linker_script = join_paths(meson.current_source_dir(), 'libnm-glib-vpn.ver')
|
|||
|
||||
libnm_glib_vpn = shared_library(
|
||||
'nm-glib-vpn',
|
||||
sources: sources + libnm_glib_vpn_enum,
|
||||
sources: files(
|
||||
'nm-vpn-plugin.c',
|
||||
'nm-vpn-plugin-ui-interface.c',
|
||||
'nm-vpn-plugin-utils.c',
|
||||
) + [
|
||||
custom_target(
|
||||
glue,
|
||||
input: ifaces_vpn_plugin_xml,
|
||||
output: glue,
|
||||
command: [dbus_binding_tool, '--prefix=nm_vpn_plugin', '--mode=glib-server', '--output=@OUTPUT@', '@INPUT@'],
|
||||
),
|
||||
] + libnm_glib_vpn_enum,
|
||||
version: libnm_glib_vpn_version,
|
||||
dependencies: deps,
|
||||
c_args: cflags,
|
||||
|
@ -131,7 +135,7 @@ pkg.generate(
|
|||
variables: 'exec_prefix=${prefix}'
|
||||
)
|
||||
|
||||
sources = shared_udev_utils + files(
|
||||
libnm_glib_sources = shared_files_libnm_glib + files(
|
||||
'nm-access-point.c',
|
||||
'nm-active-connection.c',
|
||||
'nm-client.c',
|
||||
|
@ -194,7 +198,7 @@ linker_script = join_paths(meson.current_source_dir(), 'libnm-glib.ver')
|
|||
|
||||
libnm_glib = shared_library(
|
||||
'nm-glib',
|
||||
sources: sources + libnm_glib_enum + [nm_secret_agent_glue],
|
||||
sources: libnm_glib_sources + libnm_glib_enum + [nm_secret_agent_glue],
|
||||
version: libnm_glib_version,
|
||||
dependencies: deps,
|
||||
c_args: cflags,
|
||||
|
@ -223,7 +227,7 @@ pkg.generate(
|
|||
)
|
||||
|
||||
if enable_introspection
|
||||
gir_sources = sources + headers + libnm_glib_enum
|
||||
gir_sources = libnm_glib_sources + headers + libnm_glib_enum
|
||||
|
||||
deps = [
|
||||
dbus_glib_dep,
|
||||
|
|
|
@ -14,7 +14,7 @@ test_units = [
|
|||
foreach test_unit: test_units
|
||||
exe = executable(
|
||||
test_unit,
|
||||
[test_unit + '.c'] + shared_test_utils,
|
||||
[test_unit + '.c'] + shared_nm_test_utils_impl_c,
|
||||
dependencies: deps,
|
||||
c_args:
|
||||
common_cflags + [
|
||||
|
|
|
@ -55,7 +55,7 @@ libnm_utils_enum = gnome.mkenums(
|
|||
install_dir: nm_pkgincludedir
|
||||
)
|
||||
|
||||
sources = shared_utils + files(
|
||||
sources = files(
|
||||
'crypto.c',
|
||||
'crypto_' + crypto + '.c',
|
||||
'nm-connection.c',
|
||||
|
@ -90,6 +90,7 @@ sources = shared_utils + files(
|
|||
'nm-utils.c',
|
||||
'nm-value-transforms.c'
|
||||
)
|
||||
sources += shared_files_libnm_util
|
||||
|
||||
deps = [
|
||||
crypto_dep,
|
||||
|
|
|
@ -1,13 +1,8 @@
|
|||
test_units = [
|
||||
['test-general', shared_utils, [libnm_utils]],
|
||||
['test-nm-client', shared_test_utils, []],
|
||||
['test-remote-settings-client', shared_test_utils, []],
|
||||
['test-secret-agent', shared_test_utils, []]
|
||||
]
|
||||
|
||||
deps = [
|
||||
libnm_dep,
|
||||
nm_core_dep
|
||||
['test-general', [libnm_utils, libnm_core]],
|
||||
['test-nm-client', []],
|
||||
['test-remote-settings-client', []],
|
||||
['test-secret-agent', []],
|
||||
]
|
||||
|
||||
cflags = [
|
||||
|
@ -18,10 +13,16 @@ cflags = [
|
|||
foreach test_unit: test_units
|
||||
exe = executable(
|
||||
'libnm-' + test_unit[0],
|
||||
[test_unit[0] + '.c'] + test_unit[1],
|
||||
dependencies: deps,
|
||||
[
|
||||
test_unit[0] + '.c',
|
||||
shared_nm_test_utils_impl_c,
|
||||
],
|
||||
dependencies: [
|
||||
libnm_dep,
|
||||
nm_core_dep,
|
||||
],
|
||||
c_args: cflags,
|
||||
link_with: test_unit[2]
|
||||
link_with: test_unit[1]
|
||||
)
|
||||
|
||||
test(
|
||||
|
@ -34,7 +35,7 @@ endforeach
|
|||
# just test, that we can build "nm-vpn-plugin-utils.c"
|
||||
libnm_vpn_plugin_utils_test = static_library(
|
||||
'nm-vpn-plugin-utils-test',
|
||||
sources: shared_vpn_plugin_utils + [libnm_enum[1]],
|
||||
sources: shared_nm_utils_nm_vpn_plugin_utils_c + [libnm_enum[1]],
|
||||
include_directories: libnm_inc,
|
||||
dependencies: nm_core_dep,
|
||||
c_args: cflags
|
||||
|
|
|
@ -1,68 +1,78 @@
|
|||
shared_c_list_dep = declare_dependency(
|
||||
include_directories: include_directories('c-list/src')
|
||||
)
|
||||
shared_inc = include_directories('.')
|
||||
|
||||
shared_c_siphash = static_library(
|
||||
'c-siphash',
|
||||
sources: ['c-siphash/src/c-siphash.c']
|
||||
sources: 'c-siphash/src/c-siphash.c',
|
||||
)
|
||||
|
||||
shared_c_siphash_dep = declare_dependency(
|
||||
include_directories: include_directories('c-siphash/src'),
|
||||
link_with: shared_c_siphash
|
||||
include_directories: shared_inc,
|
||||
link_with: shared_c_siphash,
|
||||
)
|
||||
|
||||
shared_n_acd = static_library(
|
||||
'n-acd',
|
||||
sources: ['n-acd/src/n-acd.c'],
|
||||
dependencies: [ shared_c_siphash_dep, shared_c_list_dep ]
|
||||
sources: 'n-acd/src/n-acd.c',
|
||||
include_directories: [
|
||||
include_directories('c-siphash/src'),
|
||||
include_directories('c-list/src'),
|
||||
],
|
||||
dependencies: shared_c_siphash_dep,
|
||||
)
|
||||
|
||||
shared_n_acd_dep = declare_dependency(
|
||||
include_directories: include_directories('.'),
|
||||
include_directories: shared_inc,
|
||||
link_with: shared_n_acd,
|
||||
)
|
||||
|
||||
shared_inc = include_directories('.')
|
||||
|
||||
version_conf = configuration_data()
|
||||
version_conf.set('NM_MAJOR_VERSION', nm_major_version)
|
||||
version_conf.set('NM_MINOR_VERSION', nm_minor_version)
|
||||
version_conf.set('NM_MICRO_VERSION', nm_micro_version)
|
||||
|
||||
version = 'nm-version-macros.h'
|
||||
|
||||
version_header = configure_file(
|
||||
input: version + '.in',
|
||||
output: version,
|
||||
configuration: version_conf
|
||||
input: 'nm-version-macros.h.in',
|
||||
output: 'nm-version-macros.h',
|
||||
configuration: version_conf,
|
||||
)
|
||||
|
||||
shared_meta_setting = files('nm-meta-setting.c')
|
||||
shared_nm_utils_nm_meta_setting_c = files('nm-meta-setting.c')
|
||||
|
||||
shared_test_utils = files('nm-test-utils-impl.c')
|
||||
shared_nm_test_utils_impl_c = files('nm-test-utils-impl.c')
|
||||
|
||||
shared_udev_utils = files('nm-utils/nm-udev-utils.c')
|
||||
shared_nm_utils_nm_vpn_plugin_utils_c = files('nm-utils/nm-vpn-plugin-utils.c')
|
||||
|
||||
shared_utils = files(
|
||||
'c-siphash/src/c-siphash.c',
|
||||
'nm-utils/nm-enum-utils.c',
|
||||
'nm-utils/nm-hash-utils.c',
|
||||
'nm-utils/nm-random-utils.c',
|
||||
'nm-utils/nm-shared-utils.c'
|
||||
)
|
||||
shared_files_libnm_core = files('''
|
||||
c-siphash/src/c-siphash.c
|
||||
nm-utils/c-list-util.c
|
||||
nm-utils/nm-dedup-multi.c
|
||||
nm-utils/nm-enum-utils.c
|
||||
nm-utils/nm-hash-utils.c
|
||||
nm-utils/nm-random-utils.c
|
||||
nm-utils/nm-shared-utils.c
|
||||
nm-utils/nm-udev-utils.c
|
||||
'''.split())
|
||||
|
||||
shared_vpn_plugin_utils = files('nm-utils/nm-vpn-plugin-utils.c')
|
||||
shared_files_clients_common = files('''
|
||||
c-siphash/src/c-siphash.c
|
||||
nm-utils/nm-enum-utils.c
|
||||
nm-utils/nm-hash-utils.c
|
||||
nm-utils/nm-random-utils.c
|
||||
nm-utils/nm-shared-utils.c
|
||||
'''.split())
|
||||
|
||||
shared_sources = shared_utils + shared_meta_setting + shared_udev_utils + files(
|
||||
'nm-utils/c-list-util.c',
|
||||
'nm-utils/nm-dedup-multi.c'
|
||||
)
|
||||
shared_files_libnm_util = files('''
|
||||
nm-utils/nm-shared-utils.c
|
||||
'''.split())
|
||||
|
||||
shared_files_libnm_glib = files('''
|
||||
nm-utils/nm-udev-utils.c
|
||||
'''.split())
|
||||
|
||||
shared_dep = declare_dependency(
|
||||
include_directories: [
|
||||
top_inc,
|
||||
shared_inc,
|
||||
],
|
||||
dependencies: glib_dep
|
||||
dependencies: glib_dep,
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue