mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 00:14:32 +09:00
meson: Remove unneeded include directories
meson by default adds the current source and build directory as include directories. Because we structure our meson code by gathering a giant dict of everything we want to do and then doing all the actual target generation in the top level meson.build, this behavior does not make sense at all because we end up adding the top level repository directory as an include directory which is never what we want. At the same time, let's also make sure the top level directory of the build directory is not an include directory, by moving the version.h generation into the src/version subdirectory and then adding the src/version subdirectory of the build directory as an include directory instead of the top level repository directory. Making this change means that language servers such as clangd can't get confused when they automatically insert an #include line and insert "#include "src/basic/fs-util.h" instead of "#include "fs-util.h".
This commit is contained in:
19
meson.build
19
meson.build
@@ -1957,14 +1957,7 @@ endif
|
||||
|
||||
conf.set_quoted('VERSION_TAG', version_tag)
|
||||
|
||||
vcs_tag = get_option('vcs-tag')
|
||||
version_h = custom_target('version',
|
||||
build_always_stale : vcs_tag,
|
||||
input : 'src/version/version.h.in',
|
||||
output : 'version.h',
|
||||
capture : true,
|
||||
command : ['tools/vcs-tag.sh', '@INPUT@', get_option('mode'), vcs_tag ? '1' : '0'],
|
||||
)
|
||||
subdir('src/version')
|
||||
|
||||
shared_lib_tag = get_option('shared-lib-tag')
|
||||
if shared_lib_tag == ''
|
||||
@@ -2018,19 +2011,17 @@ dbus_programs = []
|
||||
# A list of boot stubs. Required for testing of ukify.
|
||||
boot_stubs = []
|
||||
|
||||
build_dir_include = include_directories('.')
|
||||
|
||||
basic_includes = [
|
||||
include_directories(
|
||||
'src/basic',
|
||||
'src/fundamental',
|
||||
'src/systemd',
|
||||
'.',
|
||||
),
|
||||
include_directories(
|
||||
'src/basic/include',
|
||||
is_system : true,
|
||||
),
|
||||
version_include,
|
||||
]
|
||||
|
||||
libsystemd_includes = [basic_includes, include_directories(
|
||||
@@ -2061,6 +2052,7 @@ libsystemd = shared_library(
|
||||
'systemd',
|
||||
version : libsystemd_version,
|
||||
include_directories : libsystemd_includes,
|
||||
implicit_include_directories : false,
|
||||
link_args : ['-shared',
|
||||
# Make sure our library is never deleted from memory, so that our open logging fds don't leak on dlopen/dlclose cycles.
|
||||
'-z', 'nodelete',
|
||||
@@ -2081,6 +2073,7 @@ install_libsystemd_static = static_library(
|
||||
basic_sources,
|
||||
fundamental_sources,
|
||||
include_directories : libsystemd_includes,
|
||||
implicit_include_directories : false,
|
||||
build_by_default : static_libsystemd != 'false',
|
||||
install : static_libsystemd != 'false',
|
||||
install_tag: 'libsystemd',
|
||||
@@ -2111,6 +2104,7 @@ libudev = shared_library(
|
||||
'udev',
|
||||
version : libudev_version,
|
||||
include_directories : includes,
|
||||
implicit_include_directories : false,
|
||||
link_args : ['-shared',
|
||||
'-Wl,--version-script=' + libudev_sym_path],
|
||||
link_with : [libsystemd_static, libshared_static],
|
||||
@@ -2130,6 +2124,7 @@ install_libudev_static = static_library(
|
||||
libsystemd_sources,
|
||||
libudev_sources,
|
||||
include_directories : includes,
|
||||
implicit_include_directories : false,
|
||||
build_by_default : static_libudev != 'false',
|
||||
install : static_libudev != 'false',
|
||||
install_tag: 'libudev',
|
||||
@@ -2470,6 +2465,7 @@ foreach dict : executables
|
||||
exe = executable(
|
||||
name,
|
||||
kwargs : kwargs,
|
||||
implicit_include_directories : false,
|
||||
)
|
||||
|
||||
executables_by_name += { name : exe }
|
||||
@@ -2600,6 +2596,7 @@ foreach dict : modules
|
||||
lib = shared_library(
|
||||
name,
|
||||
kwargs : kwargs,
|
||||
implicit_include_directories : false,
|
||||
)
|
||||
|
||||
if is_nss
|
||||
|
||||
@@ -290,6 +290,7 @@ libbasic_static = static_library(
|
||||
basic_sources,
|
||||
fundamental_sources,
|
||||
include_directories : basic_includes,
|
||||
implicit_include_directories : false,
|
||||
dependencies : [libcap,
|
||||
libdl,
|
||||
libgcrypt_cflags,
|
||||
|
||||
@@ -15,6 +15,7 @@ libefitest = static_library(
|
||||
basic_includes,
|
||||
include_directories('.'),
|
||||
],
|
||||
implicit_include_directories : false,
|
||||
dependencies : userspace)
|
||||
|
||||
efitest_base = {
|
||||
@@ -153,9 +154,9 @@ configure_file(
|
||||
############################################################
|
||||
|
||||
efi_includes = [
|
||||
build_dir_include,
|
||||
fundamental_include,
|
||||
include_directories('.'),
|
||||
version_include,
|
||||
]
|
||||
|
||||
efi_c_args = [
|
||||
@@ -380,6 +381,7 @@ foreach archspec : efi_archspecs
|
||||
libefi_sources,
|
||||
version_h,
|
||||
include_directories : efi_includes,
|
||||
implicit_include_directories : false,
|
||||
c_args : archspec['c_args'],
|
||||
gnu_symbol_visibility : 'hidden',
|
||||
override_options : efi_override_options,
|
||||
@@ -387,6 +389,7 @@ foreach archspec : efi_archspecs
|
||||
|
||||
kwargs = {
|
||||
'include_directories' : efi_includes,
|
||||
'implicit_include_directories' : false,
|
||||
'c_args' : archspec['c_args'],
|
||||
'link_args' : archspec['link_args'],
|
||||
'gnu_symbol_visibility' : 'hidden',
|
||||
|
||||
@@ -105,7 +105,8 @@ libcore_static = static_library(
|
||||
libcore_sources,
|
||||
load_fragment_gperf_c,
|
||||
load_fragment_gperf_nulstr_c,
|
||||
include_directories : includes,
|
||||
include_directories : [includes, include_directories('.')],
|
||||
implicit_include_directories : false,
|
||||
c_args : ['-fvisibility=default'],
|
||||
dependencies : [libacl,
|
||||
libaudit,
|
||||
@@ -123,6 +124,7 @@ libcore_static = static_library(
|
||||
libcore = shared_library(
|
||||
libcore_name,
|
||||
c_args : ['-fvisibility=default'],
|
||||
implicit_include_directories : false,
|
||||
link_args : ['-shared',
|
||||
'-Wl,--version-script=' + libshared_sym_path],
|
||||
link_depends : libshared_sym_path,
|
||||
|
||||
@@ -4,6 +4,7 @@ lib_cryptsetup_token_common = static_library(
|
||||
'cryptsetup-token-common',
|
||||
'cryptsetup-token-util.c',
|
||||
include_directories : includes,
|
||||
implicit_include_directories : false,
|
||||
dependencies : userspace,
|
||||
link_with : libshared,
|
||||
build_by_default : false)
|
||||
|
||||
@@ -40,6 +40,7 @@ libsystemd_network = static_library(
|
||||
'systemd-network',
|
||||
sources,
|
||||
include_directories : includes,
|
||||
implicit_include_directories : false,
|
||||
dependencies : userspace,
|
||||
build_by_default : false)
|
||||
|
||||
|
||||
@@ -14,26 +14,7 @@ sd_journal_sources = files(
|
||||
'sd-journal/sd-journal.c',
|
||||
)
|
||||
|
||||
audit_type_includes = [config_h,
|
||||
missing_audit_h,
|
||||
'linux/audit.h']
|
||||
if conf.get('HAVE_AUDIT') == 1
|
||||
audit_type_includes += 'libaudit.h'
|
||||
endif
|
||||
|
||||
generate_audit_type_list = find_program('sd-journal/generate-audit_type-list.sh')
|
||||
audit_type_list_txt = custom_target(
|
||||
'audit_type-list.txt',
|
||||
output : 'audit_type-list.txt',
|
||||
command : [generate_audit_type_list, cpp] + audit_type_includes,
|
||||
capture : true)
|
||||
|
||||
audit_type_to_name = custom_target(
|
||||
'audit_type-to-name.h',
|
||||
input : ['sd-journal/audit_type-to-name.awk', audit_type_list_txt],
|
||||
output : 'audit_type-to-name.h',
|
||||
command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
|
||||
capture : true)
|
||||
subdir('sd-journal')
|
||||
|
||||
generated_sources += audit_type_to_name
|
||||
sd_journal_sources += audit_type_to_name
|
||||
@@ -160,6 +141,7 @@ libsystemd_static = static_library(
|
||||
'systemd_static',
|
||||
libsystemd_sources,
|
||||
include_directories : libsystemd_includes,
|
||||
implicit_include_directories : false,
|
||||
c_args : libsystemd_c_args,
|
||||
link_with : [libbasic_static],
|
||||
dependencies : [threads,
|
||||
|
||||
34
src/libsystemd/sd-journal/meson.build
Normal file
34
src/libsystemd/sd-journal/meson.build
Normal file
@@ -0,0 +1,34 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
# We're generating a header file here intended to be included
|
||||
# by audit-type.c. To make that work, we have to add the generated
|
||||
# header file's directory to the include directories for libsystemd.
|
||||
# In meson, adding include directories is done via include_directories(),
|
||||
# which always adds two include directories for each argument, one relative to
|
||||
# the source directory and one relative to the build directory. We don't
|
||||
# want to add src/libsystemd to the include directories, yet custom_target()
|
||||
# does not allow path segments in its output argument, so to make sure the
|
||||
# generated header is written to src/libsystemd/sd-journal in the build directory,
|
||||
# the custom_target() has to be defined here in src/libsystemd/sd-journal
|
||||
# in the source directory.
|
||||
|
||||
audit_type_includes = [config_h,
|
||||
missing_audit_h,
|
||||
'linux/audit.h']
|
||||
if conf.get('HAVE_AUDIT') == 1
|
||||
audit_type_includes += 'libaudit.h'
|
||||
endif
|
||||
|
||||
generate_audit_type_list = find_program('generate-audit_type-list.sh')
|
||||
audit_type_list_txt = custom_target(
|
||||
'audit_type-list.txt',
|
||||
output : 'audit_type-list.txt',
|
||||
command : [generate_audit_type_list, cpp] + audit_type_includes,
|
||||
capture : true)
|
||||
|
||||
audit_type_to_name = custom_target(
|
||||
'audit_type-to-name.h',
|
||||
input : ['audit_type-to-name.awk', audit_type_list_txt],
|
||||
output : 'audit_type-to-name.h',
|
||||
command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
|
||||
capture : true)
|
||||
@@ -27,6 +27,7 @@ libudev_basic = static_library(
|
||||
'udev-basic',
|
||||
libudev_sources,
|
||||
include_directories : includes,
|
||||
implicit_include_directories : false,
|
||||
dependencies : userspace,
|
||||
c_args : ['-fvisibility=default'],
|
||||
build_by_default : false)
|
||||
|
||||
@@ -360,6 +360,7 @@ libshared_static = static_library(
|
||||
libshared_name,
|
||||
shared_sources,
|
||||
include_directories : includes,
|
||||
implicit_include_directories : false,
|
||||
dependencies : [libshared_deps,
|
||||
userspace],
|
||||
c_args : ['-fvisibility=default'],
|
||||
@@ -368,6 +369,7 @@ libshared_static = static_library(
|
||||
libshared = shared_library(
|
||||
libshared_name,
|
||||
include_directories : includes,
|
||||
implicit_include_directories : false,
|
||||
c_args : ['-fvisibility=default'],
|
||||
link_args : ['-shared',
|
||||
'-Wl,--version-script=' + libshared_sym_path],
|
||||
@@ -386,6 +388,7 @@ libshared_fdisk = static_library(
|
||||
'shared-fdisk',
|
||||
shared_fdisk_sources,
|
||||
include_directories : includes,
|
||||
implicit_include_directories : false,
|
||||
dependencies : [libfdisk,
|
||||
userspace],
|
||||
c_args : ['-fvisibility=default'],
|
||||
|
||||
11
src/version/meson.build
Normal file
11
src/version/meson.build
Normal file
@@ -0,0 +1,11 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
vcs_tag = get_option('vcs-tag')
|
||||
version_h = custom_target('version',
|
||||
build_always_stale : vcs_tag,
|
||||
input : 'version.h.in',
|
||||
output : 'version.h',
|
||||
capture : true,
|
||||
command : [meson.project_source_root() / 'tools/vcs-tag.sh', '@INPUT@', get_option('mode'), vcs_tag ? '1' : '0'],
|
||||
)
|
||||
version_include = include_directories('.')
|
||||
Reference in New Issue
Block a user