From c8e1ebf1d0724cd8b87cc6538c4a8a560f433eec Mon Sep 17 00:00:00 2001 From: Alexander van der Grinten Date: Fri, 28 Dec 2018 00:25:24 +0100 Subject: [PATCH] meson: Move include dirs to main meson.build --- meson.build | 68 +++++++++++++++++++++++++----------- options/ansi/meson.build | 1 - options/elf/meson.build | 2 -- options/glibc/meson.build | 2 -- options/linux/meson.build | 3 -- options/lsb/meson.build | 1 - options/posix/meson.build | 3 -- sysdeps/managarm/meson.build | 4 +-- sysdeps/qword/meson.build | 5 --- 9 files changed, 49 insertions(+), 40 deletions(-) diff --git a/meson.build b/meson.build index 37fc476d..af21219c 100644 --- a/meson.build +++ b/meson.build @@ -5,8 +5,22 @@ frigg_dep = subproject('frigg').get_variable('frigg_dep') c_compiler = meson.get_compiler('c') -rtdl_include_dirs = [ ] -libc_include_dirs = [ ] +gccdir = run_command('/bin/sh', '-c', + ''.join(c_compiler.cmd_array()) + ' -print-search-dirs | sed -n -e "s/install: \(.*\)/\\1/p"', + check: true).stdout().strip() + +rtdl_include_dirs = [ + include_directories(gccdir + '/include'), + include_directories('options/internal/include'), +] +libc_include_dirs = [ + include_directories(gccdir + '/include'), + include_directories('options/internal/include'), + include_directories('options/elf/include'), + include_directories('options/lsb/include'), + include_directories('options/glibc/include'), + +] rtdl_sources = [ ] libc_sources = [ ] @@ -17,20 +31,49 @@ internal_conf = configuration_data() internal_conf.set('MLIBC_MAP_DSO_SEGMENTS', true) +#---------------------------------------------------------------------------------------- +# Configuration based on sysdeps. +#---------------------------------------------------------------------------------------- + # Process sysdeps first, as sysdeps might want to disable unsupported options. if host_machine.system() == 'managarm' + # TODO: Adopt the include_directories() commands from the managarm meson.build. + rtdl_include_dirs += include_directories('sysdeps/managarm/include') + libc_include_dirs += include_directories('sysdeps/managarm/include') subdir('sysdeps/managarm') elif host_machine.system() == 'qword' + disable_linux_option = true + internal_conf.set('MLIBC_MAP_DSO_SEGMENTS', false) + rtdl_include_dirs += include_directories('sysdeps/qword/include') + libc_include_dirs += include_directories('sysdeps/qword/include') subdir('sysdeps/qword') else error('No sysdeps defined for OS: ' + host_machine.system()) endif +#---------------------------------------------------------------------------------------- +# Configuration based on enabled options. +#---------------------------------------------------------------------------------------- + +if not disable_ansi_option + rtdl_include_dirs += include_directories('options/ansi/include') + libc_include_dirs += include_directories('options/ansi/include') +endif + +if not disable_posix_option + rtdl_include_dirs += include_directories('options/posix/include') + libc_include_dirs += include_directories('options/posix/include') +endif + +rtdl_include_dirs += include_directories('options/linux/include') +libc_include_dirs += include_directories('options/linux/include') + +#---------------------------------------------------------------------------------------- + configure_file(input: 'internal-config.h.in', output: 'internal-config.h', configuration: internal_conf) -internal_incl = include_directories('options/internal/include') internal_sources = [ 'options/internal/generic/allocator.cpp', 'options/internal/generic/charcode.cpp', @@ -80,10 +123,6 @@ subdir('options/lsb') subdir('options/glibc') subdir('options/linux') -gccdir = run_command('/bin/sh', '-c', - ''.join(c_compiler.cmd_array()) + ' -print-search-dirs | sed -n -e "s/install: \(.*\)/\\1/p"', - check: true).stdout().strip() - add_project_arguments('-nostdinc', '-fno-builtin', language: ['c', 'cpp']) add_project_arguments('-std=c++17', language: 'cpp') add_project_arguments('-fno-rtti', '-fno-exceptions', language: 'cpp') @@ -92,12 +131,7 @@ add_project_link_arguments('-nostdlib', language: ['c', 'cpp']) ldso_lib = shared_library('ld', rtdl_sources, name_prefix: '', cpp_args: ['-fvisibility=hidden', '-DMLIBC_BUILDING_RTDL', '-DFRIGG_HAVE_LIBC'], - include_directories: [ - rtdl_include_dirs, - internal_incl, - ansi_incl, - include_directories(gccdir + '/include'), - ], + include_directories: rtdl_include_dirs, dependencies: [cxxshim_dep, frigg_dep], install: true) @@ -109,13 +143,7 @@ shared_library('c', lsb_sources, ], cpp_args: ['-DFRIGG_HAVE_LIBC'], - include_directories: [ - libc_include_dirs, - internal_incl, - ansi_incl, - lsb_incl, - include_directories(gccdir + '/include'), - ], + include_directories: libc_include_dirs, dependencies: [cxxshim_dep, frigg_dep], link_with: [ldso_lib], install: true) diff --git a/options/ansi/meson.build b/options/ansi/meson.build index 453c565f..fae22912 100644 --- a/options/ansi/meson.build +++ b/options/ansi/meson.build @@ -3,7 +3,6 @@ if disable_posix_option subdir_done() endif -ansi_incl = include_directories('include') ansi_sources = files( 'generic/stdlib-stubs.cpp', 'generic/assert-stubs.cpp', diff --git a/options/elf/meson.build b/options/elf/meson.build index 785c6b7f..fd57c4bb 100644 --- a/options/elf/meson.build +++ b/options/elf/meson.build @@ -1,6 +1,4 @@ -libc_include_dirs += include_directories('include') - libc_sources += files( 'generic/startup.cpp', ) diff --git a/options/glibc/meson.build b/options/glibc/meson.build index 1607eed1..92a6e8ad 100644 --- a/options/glibc/meson.build +++ b/options/glibc/meson.build @@ -1,6 +1,4 @@ -libc_include_dirs += include_directories('include') - libc_sources += files( 'generic/stdio_ext-stubs.cpp', 'generic/sys-ioctl.cpp', diff --git a/options/linux/meson.build b/options/linux/meson.build index 04b94f87..c552834b 100644 --- a/options/linux/meson.build +++ b/options/linux/meson.build @@ -1,7 +1,4 @@ -rtdl_include_dirs += include_directories('include') - -libc_include_dirs += include_directories('include') if disable_linux_option subdir_done() endif diff --git a/options/lsb/meson.build b/options/lsb/meson.build index 07344953..5ff742a3 100644 --- a/options/lsb/meson.build +++ b/options/lsb/meson.build @@ -1,5 +1,4 @@ -lsb_incl = include_directories('include') lsb_sources = files( 'generic/auxv.cpp', 'generic/dso_exit.cpp', diff --git a/options/posix/meson.build b/options/posix/meson.build index f82b4518..8dabe582 100644 --- a/options/posix/meson.build +++ b/options/posix/meson.build @@ -1,7 +1,4 @@ -rtdl_include_dirs += include_directories('include') - -libc_include_dirs += include_directories('include') if disable_posix_option subdir_done() endif diff --git a/sysdeps/managarm/meson.build b/sysdeps/managarm/meson.build index 67b62342..bd063539 100644 --- a/sysdeps/managarm/meson.build +++ b/sysdeps/managarm/meson.build @@ -14,7 +14,6 @@ posix_pb = proto_gen.process('../../subprojects/managarm/bragi/proto/posix.proto managarm_incl = include_directories('../../subprojects/managarm/frigg/include', '../../subprojects/managarm/hel/include') -rtdl_include_dirs += include_directories('include') rtdl_include_dirs += managarm_incl rtdl_sources += files( 'generic/ensure.cpp', @@ -26,8 +25,7 @@ rtdl_sources += [ posix_pb, ] -libc_include_dirs += include_directories('include', - '../../../ports/libdrm/include') +libc_include_dirs += include_directories('../../../ports/libdrm/include') libc_include_dirs += managarm_incl libc_sources += files( diff --git a/sysdeps/qword/meson.build b/sysdeps/qword/meson.build index 1813e838..70148361 100644 --- a/sysdeps/qword/meson.build +++ b/sysdeps/qword/meson.build @@ -1,13 +1,8 @@ -disable_linux_option = true -internal_conf.set('MLIBC_MAP_DSO_SEGMENTS', false) - -rtdl_include_dirs += include_directories('include') rtdl_sources += files( 'generic/file.cpp' ) -libc_include_dirs += include_directories('include') libc_sources += files( 'generic/entry.cpp', 'generic/file.cpp'