From 24aba70113c872368e7a4f1e774c5d8bb1472e80 Mon Sep 17 00:00:00 2001 From: Zephyr Lykos Date: Sun, 9 Feb 2025 03:55:06 +0800 Subject: [PATCH] fixup! build: initial support for meson build system --- examples/meson.build | 2 -- meson.build | 49 ++++++++++++-------------------------------- 2 files changed, 13 insertions(+), 38 deletions(-) diff --git a/examples/meson.build b/examples/meson.build index a2b1907e0..08c9d87b6 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -6,7 +6,6 @@ shared_module( gnu_symbol_visibility: 'default', c_args: ['-DJS_SHARED_LIBRARY'], dependencies: host_system == 'windows' ? qjs_dep : [], - link_args: host_system == 'darwin' ? ['-undefined', 'dynamic_lookup'] : [], ) shared_module( @@ -17,5 +16,4 @@ shared_module( gnu_symbol_visibility: 'default', c_args: ['-DJS_SHARED_LIBRARY'], dependencies: host_system == 'windows' ? qjs_dep : [], - link_args: host_system == 'darwin' ? ['-undefined', 'dynamic_lookup'] : [], ) diff --git a/meson.build b/meson.build index 250204512..a1344dcd8 100644 --- a/meson.build +++ b/meson.build @@ -7,7 +7,7 @@ project( 'warning_level=3', 'default_library=static', ], - meson_version: '>=0.62.0', + meson_version: '>=1.3.0', ) host_system = host_machine.system() @@ -110,10 +110,7 @@ qjs_libc_srcs = files('quickjs-libc.c') qjs_libc_hdrs = files('quickjs-libc.h') if qjs_libc - qjs_srcs += qjs_libc_srcs qjs_hdrs += qjs_libc_hdrs - - qjs_libc_srcs = [] endif qjs_c_args = ['-D_GNU_SOURCE'] @@ -122,6 +119,15 @@ if host_system == 'windows' qjs_c_args += ['-DWIN32_LEAN_AND_MEAN', '-D_WIN32_WINNT=0x0602'] endif +qjs_libc_lib = static_library( + 'quickjs-libc', + qjs_libc_srcs, + + dependencies: qjs_sys_deps, + c_args: qjs_c_args, + gnu_symbol_visibility: 'hidden', +) + qjs_lib = library( 'qjs', qjs_srcs, @@ -134,10 +140,9 @@ qjs_lib = library( ).process(qjs_hdrs), dependencies: qjs_sys_deps, + link_whole: qjs_libc ? qjs_libc_lib : [], c_args: qjs_c_args, gnu_symbol_visibility: 'hidden', - implicit_include_directories: false, - include_directories: include_directories('.'), install: true, version: meson.project_version(), @@ -168,8 +173,6 @@ if host_system == 'emscripten' ), dependencies: m_dep, c_args: qjs_c_args, - implicit_include_directories: false, - include_directories: include_directories('.'), ) endif @@ -215,12 +218,10 @@ qjsc_srcs = files( qjsc_exe = executable( 'qjsc', qjsc_srcs, - qjs_libc_srcs, c_args: qjs_c_args, + link_with: qjs_libc ? [] : qjs_libc_lib, dependencies: qjs_dep, - implicit_include_directories: false, - include_directories: include_directories('.'), install: true, ) @@ -243,13 +244,10 @@ qjs_exe_srcs = files( qjs_exe = executable( 'qjs', qjs_exe_srcs, - qjs_libc_srcs, c_args: qjs_c_args, + link_with: qjs_libc ? [] : qjs_libc_lib, dependencies: [qjs_dep, mimalloc_dep], - implicit_include_directories: false, - include_directories: include_directories('.'), - export_dynamic: host_system != 'windows', install: true, ) @@ -279,13 +277,10 @@ if meson.is_cross_build() dependencies: qjs_sys_native_deps, c_args: qjs_c_args, gnu_symbol_visibility: 'hidden', - implicit_include_directories: false, - include_directories: include_directories('.'), build_by_default: false, native: true, install: false, - version: meson.project_version(), ) meson.override_find_program( @@ -297,8 +292,6 @@ if meson.is_cross_build() c_args: qjs_c_args, link_with: qjs_native_lib, dependencies: qjs_sys_native_deps, - implicit_include_directories: false, - include_directories: include_directories('.'), build_by_default: false, native: true, @@ -314,8 +307,6 @@ if meson.is_cross_build() c_args: qjs_c_args, link_with: qjs_native_lib, dependencies: [qjs_sys_native_deps, mimalloc_native_dep], - implicit_include_directories: false, - include_directories: include_directories('.'), build_by_default: false, native: true, @@ -340,8 +331,6 @@ if tests.allowed() c_args: qjs_c_args, dependencies: qjs_dep, - implicit_include_directories: false, - include_directories: include_directories('.'), ) test( @@ -434,8 +423,6 @@ if tests.allowed() c_args: qjs_c_args, dependencies: qjs_dep, - implicit_include_directories: false, - include_directories: include_directories('.'), ), ) endif @@ -448,8 +435,6 @@ executable( 'unicode_gen.c', c_args: qjs_c_args, - implicit_include_directories: false, - include_directories: include_directories('.'), build_by_default: false, ) @@ -460,8 +445,6 @@ executable( c_args: qjs_c_args, dependencies: qjs_dep, - implicit_include_directories: false, - include_directories: include_directories('.'), ) if examples.allowed() @@ -472,8 +455,6 @@ if examples.allowed() c_args: qjs_c_args, dependencies: qjs_dep, - implicit_include_directories: false, - include_directories: include_directories('.'), ) executable( @@ -483,8 +464,6 @@ if examples.allowed() c_args: qjs_c_args, dependencies: qjs_dep, - implicit_include_directories: false, - include_directories: include_directories('.'), ) subdir('examples') @@ -497,7 +476,5 @@ if examples.allowed() c_args: qjs_c_args, dependencies: qjs_dep, - implicit_include_directories: false, - include_directories: include_directories('.'), ) endif