build: merge branch 'th/gen-metadata-nm-settings-libnm-core'

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1441
This commit is contained in:
Thomas Haller 2022-10-31 09:15:23 +01:00
commit c51e0b1f6d
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728
11 changed files with 1359 additions and 48 deletions

14
.gitignore vendored
View file

@ -145,6 +145,8 @@ test-*.trs
/src/libnm-core-impl/tests/test-need-secrets
/src/libnm-core-impl/tests/test-secrets
/src/libnm-core-impl/tests/test-setting
/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core
/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml
/src/libnm-glib-aux/tests/test-json-aux
/src/libnm-glib-aux/tests/test-shared-general
/src/libnm-platform/tests/test-nm-platform
@ -176,8 +178,8 @@ test-*.trs
/src/nm-cloud-setup/tests/test-cloud-setup-general
/src/nmcli/nmcli
/src/nmcli/generate-docs-nm-settings-nmcli
/src/nmcli/generate-docs-nm-settings-nmcli.xml
/src/nmcli/gen-metadata-nm-settings-nmcli
/src/nmcli/gen-metadata-nm-settings-nmcli.xml
/src/nm-online/nm-online
@ -341,6 +343,7 @@ test-*.trs
/include/
/initscript/*/[Nn]etwork[Mm]anager
/initscript/Slackware/rc.networkmanager
/intltool-*
/introspection/nmdbus-*.c
/introspection/nmdbus-*.h
/introspection/nmdbus-*.xml
@ -393,7 +396,9 @@ test-*.trs
/libnm/tests/test-nm-client
/libnm/tests/test-remote-settings-client
/libnm/tests/test-secret-agent
/m4/intltool.m4
/man/nm-settings.xml
/po/.intltool-merge-cache
/policy/org.freedesktop.NetworkManager.policy
/policy/org.freedesktop.NetworkManager.policy.in
/shared/nm-glib-aux/tests/test-json-aux
@ -439,6 +444,8 @@ test-*.trs
/src/nm-priv-helper/org.freedesktop.nm-priv-helper.service
/src/nm-sudo/nm-sudo
/src/nm-sudo/org.freedesktop.nm.sudo.service
/src/nmcli/generate-docs-nm-settings-nmcli
/src/nmcli/generate-docs-nm-settings-nmcli.xml
/src/platform/tests/dump
/src/platform/tests/monitor
/src/platform/tests/platform
@ -482,6 +489,3 @@ test-*.trs
/src/tests/test-systemd
/src/tests/test-utils
/src/tests/test-wired-defname
/intltool-*
/m4/intltool.m4
/po/.intltool-merge-cache

View file

@ -1848,6 +1848,39 @@ EXTRA_DIST += src/libnm-client-public/meson.build
###############################################################################
noinst_PROGRAMS += src/libnm-core-impl/gen-metadata-nm-settings-libnm-core
src_libnm_core_impl_gen_metadata_nm_settings_libnm_core_SOURCES = \
src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.c \
$(NULL)
src_libnm_core_impl_gen_metadata_nm_settings_libnm_core_CPPFLAGS = \
$(clients_cppflags) \
$(NULL)
src_libnm_core_impl_gen_metadata_nm_settings_libnm_core_LDADD = \
src/libnm-core-impl/libnm-core-impl.la \
src/libnm-crypto/libnm-crypto.la \
$(libnm_crypto_lib) \
src/libnm-core-aux-intern/libnm-core-aux-intern.la \
src/libnm-base/libnm-base.la \
src/libnm-systemd-shared/libnm-systemd-shared.la \
src/libnm-log-null/libnm-log-null.la \
src/libnm-glib-aux/libnm-glib-aux.la \
src/libnm-std-aux/libnm-std-aux.la \
src/c-siphash/libc-siphash.la \
$(GLIB_LIBS) \
$(NULL)
src_libnm_core_impl_gen_metadata_nm_settings_libnm_core_LDFLAGS = \
-Wl,--version-script="$(srcdir)/linker-script-binary.ver" \
$(SANITIZER_EXEC_LDFLAGS) \
$(NULL)
$(src_libnm_core_impl_gen_metadata_nm_settings_libnm_core_OBJECTS): $(src_libnm_core_public_mkenums_h)
###############################################################################
noinst_LTLIBRARIES += src/libnm-client-impl/libnm-client-impl.la
src_libnm_client_impl_libnm_client_impl_la_CPPFLAGS = \
@ -1982,7 +2015,8 @@ src/libnm-client-impl/libnm.typelib: src/libnm-client-impl/libnm.gir
INTROSPECTION_GIRS += src/libnm-client-impl/NM-1.0.gir
libnm_noinst_data = \
src/nmcli/generate-docs-nm-settings-nmcli.xml \
src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml \
src/nmcli/gen-metadata-nm-settings-nmcli.xml \
man/nm-settings-docs-dbus.xml \
man/nm-settings-docs-nmcli.xml \
src/libnm-client-impl/nm-property-infos-dbus.xml \
@ -1995,19 +2029,34 @@ libnm_noinst_data = \
noinst_DATA += $(libnm_noinst_data)
EXTRA_DIST += src/nmcli/generate-docs-nm-settings-nmcli.xml.in
EXTRA_DIST += src/nmcli/gen-metadata-nm-settings-nmcli.xml.in
if BUILD_DOCS
src/nmcli/generate-docs-nm-settings-nmcli.xml: src/nmcli/generate-docs-nm-settings-nmcli
$(AM_V_GEN) src/nmcli/generate-docs-nm-settings-nmcli > "$@"
check-local-generate-docs-nm-settings-nmcli: src/nmcli/generate-docs-nm-settings-nmcli.xml
$(srcdir)/tools/check-compare-generated.sh "$(srcdir)" "$(builddir)" "$<"
check_local += check-local-generate-docs-nm-settings-nmcli
DISTCLEANFILES += src/nmcli/generate-docs-nm-settings-nmcli.xml
src/nmcli/gen-metadata-nm-settings-nmcli.xml: src/nmcli/gen-metadata-nm-settings-nmcli
$(AM_V_GEN) src/nmcli/gen-metadata-nm-settings-nmcli > "$@"
check-local-gen-metadata-nm-settings-nmcli: src/nmcli/gen-metadata-nm-settings-nmcli.xml
$(srcdir)/tools/check-compare-generated.sh "$(srcdir)/src/nmcli/gen-metadata-nm-settings-nmcli.xml.in" "$(builddir)/src/nmcli/gen-metadata-nm-settings-nmcli.xml"
check_local += check-local-gen-metadata-nm-settings-nmcli
DISTCLEANFILES += src/nmcli/gen-metadata-nm-settings-nmcli.xml
else
src/nmcli/generate-docs-nm-settings-nmcli.xml: src/nmcli/generate-docs-nm-settings-nmcli.xml.in
src/nmcli/gen-metadata-nm-settings-nmcli.xml: src/nmcli/gen-metadata-nm-settings-nmcli.xml.in
$(AM_V_GEN) cp $^ $@
check-local-generate-docs-nm-settings-nmcli:
check-local-gen-metadata-nm-settings-nmcli:
endif
EXTRA_DIST += src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in
if BUILD_DOCS
src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml: src/libnm-core-impl/gen-metadata-nm-settings-libnm-core
$(AM_V_GEN) src/libnm-core-impl/gen-metadata-nm-settings-libnm-core > "$@"
check-local-gen-metadata-nm-settings-libnm-core: src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml
$(srcdir)/tools/check-compare-generated.sh "$(srcdir)/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in" "$(builddir)/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml"
check_local += check-local-gen-metadata-nm-settings-libnm-core
DISTCLEANFILES += src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml
else
src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml: src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in
$(AM_V_GEN) cp $^ $@
check-local-gen-metadata-nm-settings-libnm-core:
endif
libnm_docs_sources = $(src_libnm_core_impl_lib_c_settings_real)
@ -2030,7 +2079,7 @@ src/libnm-client-impl/nm-settings-docs-gir.xml: tools/generate-docs-nm-settings-
--gir $(builddir)/src/libnm-client-impl/NM-1.0.gir \
--output $@
man/nm-settings-docs-nmcli.xml: src/nmcli/generate-docs-nm-settings-nmcli.xml src/libnm-client-impl/nm-property-infos-nmcli.xml src/libnm-client-impl/nm-settings-docs-gir.xml tools/generate-docs-nm-settings-docs-merge.py man/common.ent
man/nm-settings-docs-nmcli.xml: src/nmcli/gen-metadata-nm-settings-nmcli.xml src/libnm-client-impl/nm-property-infos-nmcli.xml src/libnm-client-impl/nm-settings-docs-gir.xml tools/generate-docs-nm-settings-docs-merge.py man/common.ent
$(AM_V_GEN) "$(PYTHON)" $(srcdir)/tools/generate-docs-nm-settings-docs-merge.py --only-from-first $@ $(wordlist 1,3,$^)
src/libnmc-setting/settings-docs-input.xml: src/libnm-client-impl/nm-property-infos-nmcli.xml src/libnm-client-impl/nm-settings-docs-gir.xml tools/generate-docs-nm-settings-docs-merge.py
@ -4832,7 +4881,7 @@ $(libnmc_setting_settings_doc_h): src/libnmc-setting/settings-docs-input.xml src
$(AM_V_GEN) "$(PYTHON)" $(srcdir)/tools/generate-docs-settings-docs.py --output $@ --xml $<
DISTCLEANFILES += $(libnmc_setting_settings_doc_h)
check-local-settings-docs: $(libnmc_setting_settings_doc_h)
$(srcdir)/tools/check-compare-generated.sh "$(srcdir)" "$(builddir)" "$(libnmc_setting_settings_doc_h)"
$(srcdir)/tools/check-compare-generated.sh "$(srcdir)/$(libnmc_setting_settings_doc_h).in" "$(builddir)/$(libnmc_setting_settings_doc_h)"
check_local += check-local-settings-docs
else
$(libnmc_setting_settings_doc_h): $(libnmc_setting_settings_doc_h).in src/libnmc-setting/.dirstamp
@ -4973,17 +5022,17 @@ endif
###############################################################################
noinst_PROGRAMS += src/nmcli/generate-docs-nm-settings-nmcli
noinst_PROGRAMS += src/nmcli/gen-metadata-nm-settings-nmcli
src_nmcli_generate_docs_nm_settings_nmcli_SOURCES = \
src/nmcli/generate-docs-nm-settings-nmcli.c \
src_nmcli_gen_metadata_nm_settings_nmcli_SOURCES = \
src/nmcli/gen-metadata-nm-settings-nmcli.c \
$(NULL)
src_nmcli_generate_docs_nm_settings_nmcli_CPPFLAGS = \
src_nmcli_gen_metadata_nm_settings_nmcli_CPPFLAGS = \
$(clients_cppflags) \
$(NULL)
src_nmcli_generate_docs_nm_settings_nmcli_LDADD = \
src_nmcli_gen_metadata_nm_settings_nmcli_LDADD = \
src/libnmc-setting/libnmc-setting.la \
src/libnmc-base/libnmc-base.la \
src/libnm-client-aux-extern/libnm-client-aux-extern.la \
@ -4998,13 +5047,13 @@ src_nmcli_generate_docs_nm_settings_nmcli_LDADD = \
$(GLIB_LIBS) \
$(NULL)
src_nmcli_generate_docs_nm_settings_nmcli_LDFLAGS = \
src_nmcli_gen_metadata_nm_settings_nmcli_LDFLAGS = \
-Wl,--version-script="$(srcdir)/linker-script-binary.ver" \
$(SANITIZER_EXEC_LDFLAGS) \
$(NULL)
$(src_nmcli_generate_docs_nm_settings_nmcli_OBJECTS): $(src_libnm_core_public_mkenums_h)
$(src_nmcli_generate_docs_nm_settings_nmcli_OBJECTS): $(src_libnm_client_public_mkenums_h)
$(src_nmcli_gen_metadata_nm_settings_nmcli_OBJECTS): $(src_libnm_core_public_mkenums_h)
$(src_nmcli_gen_metadata_nm_settings_nmcli_OBJECTS): $(src_libnm_client_public_mkenums_h)
###############################################################################

View file

@ -87,7 +87,7 @@ if enable_introspection
join_paths(meson.source_root(), 'tools', 'generate-docs-nm-settings-docs-merge.py'),
'--only-from-first',
'@OUTPUT@',
generate_docs_nm_settings_nmcli_xml,
gen_metadata_nm_settings_nmcli_xml,
nm_property_infos_xml[name],
nm_settings_docs_xml_gir,
],

View file

@ -0,0 +1,77 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "libnm-core-impl/nm-default-libnm-core.h"
#include "libnm-core-intern/nm-meta-setting-base.h"
#include "libnm-core-intern/nm-core-internal.h"
#define INDENT 4
static char *
_xml_escape_attribute(const char *value)
{
gs_free char *s = NULL;
s = g_markup_escape_text(value, -1);
return g_strdup_printf("\"%s\"", s);
}
static const char *
_indent_level(guint num_spaces)
{
static const char spaces[] = " ";
nm_assert(num_spaces < G_N_ELEMENTS(spaces));
return &spaces[G_N_ELEMENTS(spaces) - num_spaces - 1];
}
int
main(int argc, char *argv[])
{
const NMSettInfoSetting *sett_info_settings = nmtst_sett_info_settings();
NMMetaSettingType meta_type;
g_print("<nm-setting-docs>\n");
for (meta_type = 0; meta_type < _NM_META_SETTING_TYPE_NUM; meta_type++) {
const NMSettInfoSetting *sis = &sett_info_settings[meta_type];
const NMMetaSettingInfo *msi = &nm_meta_setting_infos[meta_type];
nm_auto_unref_gtypeclass NMSettingClass *klass = NULL;
gs_free char *tmp_s1 = NULL;
gs_free char *tmp_s2 = NULL;
guint prop_idx;
GType gtype;
gtype = msi->get_setting_gtype();
klass = g_type_class_ref(gtype);
g_print("%s<setting", _indent_level(INDENT));
g_print(" name=%s", (tmp_s1 = _xml_escape_attribute(msi->setting_name)));
g_print(" >\n");
for (prop_idx = 0; prop_idx < sis->property_infos_len; prop_idx++) {
const NMSettInfoProperty *sip = &sis->property_infos[prop_idx];
gs_free char *tmp2 = NULL;
gs_free char *tmp3 = NULL;
g_print("%s<property", _indent_level(2 * INDENT));
g_print(" name=%s", (tmp2 = _xml_escape_attribute(sip->name)));
if (sip->is_deprecated)
g_print("\n%sis-deprecated=\"1\"", _indent_level(2 * INDENT + 10));
if (sip->property_type->dbus_type) {
g_print(
"\n%sdbus-type=%s",
_indent_level(2 * INDENT + 10),
(tmp3 = _xml_escape_attribute((const char *) sip->property_type->dbus_type)));
}
if (sip->dbus_deprecated) {
nm_assert(sip->property_type->dbus_type);
g_print("\n%sdbus-deprecated=\"1\"", _indent_level(2 * INDENT + 10));
}
g_print(" />\n");
}
g_print("%s</setting>\n", _indent_level(INDENT));
}
g_print("</nm-setting-docs>\n");
return 0;
}

File diff suppressed because it is too large Load diff

View file

@ -88,3 +88,52 @@ libnm_core_impl = static_library(
uuid_dep,
],
)
###############################################################################
gen_metadata_nm_settings_libnm_core = executable(
'gen-metadata-nm-settings-libnm-core',
files(
'gen-metadata-nm-settings-libnm-core.c',
),
dependencies: [
libnm_core_public_dep,
],
link_with: [
libnm_core_aux_intern,
libnm_core_impl,
libnm_crypto,
libnm_base,
libnm_systemd_shared,
libnm_log_null,
libnm_glib_aux,
libnm_std_aux,
libc_siphash,
],
link_args: ldflags_linker_script_binary,
link_depends: linker_script_binary,
)
if enable_docs
gen_metadata_nm_settings_libnm_core_xml = custom_target(
'gen-metadata-nm-settings-libnm-core.xml',
output: 'gen-metadata-nm-settings-libnm-core.xml',
command: [ gen_metadata_nm_settings_libnm_core ],
capture: true,
)
test(
'check-local-gen-metadata-nm-settings-libnm-core',
find_program(join_paths(source_root, 'tools', 'check-compare-generated.sh')),
args: [
source_root + '/src/libnm-core-impl/gen-metadata-nm-settings-libnm-core.xml.in',
gen_metadata_nm_settings_libnm_core_xml,
],
)
else
gen_metadata_nm_settings_libnm_core_xml = configure_file(
input: 'gen-metadata-nm-settings-libnm-core.xml.in',
output: '@BASENAME@',
configuration: configuration_data(),
)
endif

View file

@ -31,9 +31,8 @@ if enable_docs
'check-settings-docs',
find_program(join_paths(source_root, 'tools', 'check-compare-generated.sh')),
args: [
source_root,
build_root,
'src/libnmc-setting/settings-docs.h',
source_root + '/src/libnmc-setting/settings-docs.h.in',
settings_docs_source,
],
)
else

View file

@ -45,10 +45,10 @@ executable(
endif
generate_docs_nm_settings_nmcli = executable(
'generate-docs-nm-settings-nmcli',
gen_metadata_nm_settings_nmcli = executable(
'gen-metadata-nm-settings-nmcli',
files(
'generate-docs-nm-settings-nmcli.c',
'gen-metadata-nm-settings-nmcli.c',
),
dependencies: [
libnm_dep,
@ -70,25 +70,24 @@ generate_docs_nm_settings_nmcli = executable(
)
if enable_docs
generate_docs_nm_settings_nmcli_xml = custom_target(
'generate-docs-nm-settings-nmcli.xml',
output: 'generate-docs-nm-settings-nmcli.xml',
command: [ generate_docs_nm_settings_nmcli ],
gen_metadata_nm_settings_nmcli_xml = custom_target(
'gen-metadata-nm-settings-nmcli.xml',
output: 'gen-metadata-nm-settings-nmcli.xml',
command: [ gen_metadata_nm_settings_nmcli ],
capture: true,
)
test(
'check-local-generate-docs-nm-settings-nmcli',
'check-local-gen-metadata-nm-settings-nmcli',
find_program(join_paths(source_root, 'tools', 'check-compare-generated.sh')),
args: [
source_root,
build_root,
'src/nmcli/generate-docs-nm-settings-nmcli.xml',
source_root + '/src/nmcli/gen-metadata-nm-settings-nmcli.xml.in',
gen_metadata_nm_settings_nmcli_xml,
],
)
else
settings_docs_source = configure_file(
input: 'generate-docs-nm-settings-nmcli.xml.in',
gen_metadata_nm_settings_nmcli_xml = configure_file(
input: 'gen-metadata-nm-settings-nmcli.xml.in',
output: '@BASENAME@',
configuration: configuration_data(),
)

View file

@ -2,17 +2,16 @@
set -e
srcdir="$1"
builddir="$2"
doc_h="$3"
f_commited="$1"
f_generated="$2"
[ -n "$NMTST_NO_CHECK_SETTINGS_DOCS" ] && exit 0
cmp -s "${srcdir}/${doc_h}.in" "${builddir}/${doc_h}" && exit 0
cmp -s "$f_commited" "$f_generated" && exit 0
if [ "$NM_TEST_REGENERATE" = 1 ] ; then
cp -f "${builddir}/${doc_h}" "${srcdir}/${doc_h}.in"
cp -f "$f_generated" "$f_commited"
else
echo "*** Error: the generated file '${builddir}/${doc_h}' differs from the source file '${srcdir}/${doc_h}.in'. You probably should copy the generated file over to the source file. You can skip this test by setting NMTST_NO_CHECK_SETTINGS_DOCS=yes. You can also automatically copy the file by rerunning the test with NM_TEST_REGENERATE=1"
echo "*** Error: the generated file '$f_generated' differs from the source file '$f_commited'. You probably should copy the generated file over to the source file. You can skip this test by setting NMTST_NO_CHECK_SETTINGS_DOCS=yes. You can also automatically copy the file by rerunning the test with NM_TEST_REGENERATE=1"
exit 1
fi