From ef94b82e4b9f89d543b005fcf8c7f184db87c4f9 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 26 Nov 2023 02:11:02 +0000 Subject: [PATCH] xap_helper: allow PI_NO_CXX to disable C++ in more places This also reduces repetition in the setup code. --- lib/PublicInbox/XapClient.pm | 4 +--- lib/PublicInbox/XapHelperCxx.pm | 1 + t/xap_helper.t | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/PublicInbox/XapClient.pm b/lib/PublicInbox/XapClient.pm index 1f9ddcccf..4dcbbe5dd 100644 --- a/lib/PublicInbox/XapClient.pm +++ b/lib/PublicInbox/XapClient.pm @@ -28,12 +28,10 @@ sub mkreq { sub start_helper { my @argv = @_; socketpair(my $sock, my $in, AF_UNIX, SOCK_SEQPACKET, 0); - require PublicInbox::XapHelperCxx; my $cls = 'PublicInbox::XapHelperCxx'; my $env; - my $cmd = eval { PublicInbox::XapHelperCxx::cmd() }; + my $cmd = eval "require $cls; ${cls}::cmd()"; if ($@) { # fall back to Perl + XS|SWIG - require PublicInbox::XapHelper; $cls = 'PublicInbox::XapHelper'; # ensure the child process has the same @INC we do: $env = { PERL5LIB => join(':', @INC) }; diff --git a/lib/PublicInbox/XapHelperCxx.pm b/lib/PublicInbox/XapHelperCxx.pm index b1deb6654..f421c7bcf 100644 --- a/lib/PublicInbox/XapHelperCxx.pm +++ b/lib/PublicInbox/XapHelperCxx.pm @@ -110,6 +110,7 @@ sub check_build () { # returns spawn arg sub cmd { + die 'PI_NO_CXX set' if $ENV{PI_NO_CXX}; check_build(); my @cmd; if (my $v = $ENV{VALGRIND}) { diff --git a/t/xap_helper.t b/t/xap_helper.t index 02e5ec7d3..e3abedede 100644 --- a/t/xap_helper.t +++ b/t/xap_helper.t @@ -149,7 +149,7 @@ unless ($ENV{TEST_XH_CXX_ONLY}) { SKIP: { require PublicInbox::XapHelperCxx; my $cmd = eval { PublicInbox::XapHelperCxx::cmd() }; - skip "XapHelperCxx build: $@", 1 if $@ || $ENV{PI_NO_CXX}; + skip "XapHelperCxx build: $@", 1 if $@; @NO_CXX = $ENV{TEST_XH_CXX_ONLY} ? (0) : (0, 1); my $ar = $test->(@$cmd, '-j0'); -- 2.47.2