]> git.ipfire.org Git - thirdparty/public-inbox.git/commitdiff
xap_helper_cxx: decouple from Inline::C
authorEric Wong <e@80x24.org>
Wed, 13 Dec 2023 00:50:12 +0000 (00:50 +0000)
committerEric Wong <e@80x24.org>
Wed, 13 Dec 2023 09:01:50 +0000 (09:01 +0000)
We don't actually need Inline::C support to build a standalone
executable implemented in C++.

lib/PublicInbox/XapHelperCxx.pm
t/xap_helper.t

index 17f988eea08e0a37cb5620ee50573bfbebe05505..8e95ff42ecfaa76bbf5c441652530fa769ab6e19 100644 (file)
@@ -16,8 +16,9 @@ use autodie;
 my $cxx = which($ENV{CXX} // 'c++');
 my $dir = substr("$cxx-$Config{archname}", 1); # drop leading '/'
 $dir =~ tr!/!-!;
-$ENV{PERL_INLINE_DIRECTORY} // die('BUG: PERL_INLINE_DIRECTORY unset');
-substr($dir, 0, 0) = "$ENV{PERL_INLINE_DIRECTORY}/";
+my $idir = ($ENV{XDG_CACHE_HOME} //
+       (($ENV{HOME} // die('HOME unset')).'/.cache')).'/public-inbox/jaot';
+substr($dir, 0, 0) = "$idir/";
 my $bin = "$dir/xap_helper";
 my ($srcpfx) = (__FILE__ =~ m!\A(.+/)[^/]+\z!);
 my @srcs = map { $srcpfx.$_ } qw(xh_mset.h xh_cidx.h xap_helper.h);
@@ -54,9 +55,9 @@ sub needs_rebuild () {
 }
 
 sub build () {
-       if (!-d $dir && !CORE::mkdir($dir)) {
-               my $err = $!;
-               die "mkdir($dir): $err" if !-d $dir;
+       if (!-d $dir) {
+               require File::Path;
+               File::Path::make_path($dir);
        }
        require PublicInbox::CodeSearch;
        require PublicInbox::Lock;
index be010c750e80161ced40600c30e5e2a84445fd72..0f474608a3e83ccf841d7b8e22c1505ccfc97396 100644 (file)
@@ -149,8 +149,10 @@ unless ($ENV{TEST_XH_CXX_ONLY}) {
        no_pollerfd($ar->{pid});
 }
 SKIP: {
-       require PublicInbox::XapHelperCxx;
-       my $cmd = eval { PublicInbox::XapHelperCxx::cmd() };
+       my $cmd = eval {
+               require PublicInbox::XapHelperCxx;
+               PublicInbox::XapHelperCxx::cmd();
+       };
        skip "XapHelperCxx build: $@", 1 if $@;
 
        @NO_CXX = $ENV{TEST_XH_CXX_ONLY} ? (0) : (0, 1);