From d728ce0e78658833711414d20ecbff02363e2b1e Mon Sep 17 00:00:00 2001 From: arch1t3cht Date: Mon, 6 Nov 2023 22:12:30 +0100 Subject: [PATCH 1/3] meson: Don't run tests on cross builds This can be made into an option or whatever when cross builds that can/need to run tests show up, but for now this is enough. --- meson.build | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index a2c5c0378..615e756a4 100644 --- a/meson.build +++ b/meson.build @@ -340,7 +340,10 @@ subdir('libaegisub') subdir('packages') subdir('po') subdir('src') -subdir('tests') + +if not meson.is_cross_build() + subdir('tests') +endif aegisub_cpp_pch = ['src/include/agi_pre.h'] aegisub_c_pch = ['src/include/agi_pre_c.h'] From 1ba7979ff49f3b6e40aab7ef4494f89d9e78747b Mon Sep 17 00:00:00 2001 From: arch1t3cht Date: Mon, 6 Nov 2023 22:44:03 +0100 Subject: [PATCH 2/3] meson: luajit: Remove unused readline dependency --- subprojects/packagefiles/luajit/meson.build | 4 ---- 1 file changed, 4 deletions(-) diff --git a/subprojects/packagefiles/luajit/meson.build b/subprojects/packagefiles/luajit/meson.build index 526d1c675..174199f89 100644 --- a/subprojects/packagefiles/luajit/meson.build +++ b/subprojects/packagefiles/luajit/meson.build @@ -13,13 +13,11 @@ add_project_arguments('-DLUAJIT_ENABLE_LUA52COMPAT', '-DENDIAN_LE', language: 'c if host_machine.system() == 'linux' add_project_arguments('-DLUAJIT_OS=LUAJIT_OS_LINUX', language: 'c', native: true) add_project_arguments('-DLUAJIT_UNWIND_EXTERNAL', language: 'c', native: false) - readline_dep = cc.find_library('readline') ljvm_mode = 'elfasm' ljvm_bout = 'lj_vm.s' elif host_machine.system() == 'darwin' add_project_arguments('-DLUAJIT_OS=LUAJIT_OS_OSX', language: 'c', native: true) add_project_arguments('-DLUAJIT_UNWIND_EXTERNAL', language: 'c', native: false) - readline_dep = cc.find_library('readline') ljvm_mode = 'machasm' ljvm_bout = 'lj_vm.s' elif host_machine.system() == 'windows' @@ -27,11 +25,9 @@ elif host_machine.system() == 'windows' if cc.get_id() != 'msvc' add_project_arguments('-malign-double', language: 'c', native: true) endif - readline_dep = [] ljvm_mode = 'peobj' ljvm_bout = 'lj_vm.o' else - readline_dep = [] error('Unsupported platform') endif From 24c8144e91a76f61a8dbf5f51d773cf886e1dccf Mon Sep 17 00:00:00 2001 From: arch1t3cht Date: Mon, 6 Nov 2023 22:44:18 +0100 Subject: [PATCH 3/3] meson: luajit: Set correct LUAJIT_TARGET for buildvm On native builds this is derived automatically, but on cross builds it needs to be set explicitly. --- subprojects/packagefiles/luajit/meson.build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/subprojects/packagefiles/luajit/meson.build b/subprojects/packagefiles/luajit/meson.build index 174199f89..e27a933fe 100644 --- a/subprojects/packagefiles/luajit/meson.build +++ b/subprojects/packagefiles/luajit/meson.build @@ -7,6 +7,10 @@ system_deps = [ cc.find_library('m', required: false) ] +# get architecture id for the host machine so it can be set when compiling buildvm natively +lj_target_id = cc.get_define('LUAJIT_TARGET', prefix: '#include "@0@/src/lj_arch.h"'.format(meson.current_source_dir())) +add_project_arguments('-DLUAJIT_TARGET=@0@'.format(lj_target_id), language: 'c', native: true) + # compat flag is needed for both the buildvm code generator (compiled natively) and luajit itself add_project_arguments('-DLUAJIT_ENABLE_LUA52COMPAT', '-DENDIAN_LE', language: 'c', native: true) add_project_arguments('-DLUAJIT_ENABLE_LUA52COMPAT', '-DENDIAN_LE', language: 'c', native: false)