From da00fef086b63d1c01641fec5f42718eeb7b7dd1 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Thu, 19 Feb 2026 22:29:28 +0100 Subject: feat: add booster.pl for fix. Signed-off-by: Amlal El Mahrouss --- .gitignore | 5 ++++- booster.pl | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 1 deletion(-) create mode 100755 booster.pl diff --git a/.gitignore b/.gitignore index bf33267..81f2f45 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ # Prerequisites *.d +# Boosted +boostified + # Compiled Object files *.slo *.lo @@ -50,4 +53,4 @@ build/ # CMake build output */build/ -*.pdf \ No newline at end of file +*.pdf diff --git a/booster.pl b/booster.pl new file mode 100755 index 0000000..e7d9b04 --- /dev/null +++ b/booster.pl @@ -0,0 +1,68 @@ +#!/usr/bin/perl -w + +use strict; +use File::Path qw(make_path); +use File::Basename; +use Getopt::Long; + +if (@ARGV == 0) { + exit 0; +} + +my @files; + +for my $path (@ARGV) { + if (-f $path) { + push @files, $path; + } elsif (-d $path) { + find_files($path, \@files); + } else { + warn "Skipping '$path': not a file or directory\n"; + } +} + +make_path("boostified/include/boost/fix"); + +for my $file (@files) { + process_file($file); +} + +sub find_files { + my ($dir, $list) = @_; + opendir(my $dh, $dir) or die "Cannot open directory $dir: $!\n"; + while (my $entry = readdir($dh)) { + next if $entry eq '.' || $entry eq '..'; + my $full = "$dir/$entry"; + if (-d $full) { + find_files($full, $list); + } elsif (-f $full && $full =~ /\.(cpp|inl|hpp|h|cc|hh|cxx|hxx)$/i) { + push @$list, [ $entry, $full, dirname($full) ]; + } + } + closedir($dh); +} + +sub process_file { + my $info = shift; + my ($name, $fullpath, $srcdir) = @$info; + + open(my $fh, '<', $fullpath) or die "Cannot read $fullpath: $!\n"; + my $content = do { local $/; <$fh> }; + close($fh); + + my $original = $content; + + $content =~ s/\bocl::/boost::/g; + $content =~ s/\bocl\//boost\//g; + $content =~ s/\bOCL_/BOOST_/g; + + if ($content ne $original) { + my $reldir = substr($srcdir, length($ARGV[0]) + 1); + my $outdir = "boostified/include/boost/$reldir"; + make_path($outdir) unless -d $outdir; + + open(my $out, '>', "$outdir/$name") or die "Cannot write $outdir/$name: $!\n"; + print $out $content; + close($out); + } +} -- cgit v1.2.3