<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">From 50f2ff0be52b0ced5c3d9c5c082ae8d865304544 Mon Sep 17 00:00:00 2001
From: Slaven Rezic &lt;slaven@rezic.de&gt;
Date: Thu, 3 Apr 2025 21:59:10 +0200
Subject: [PATCH] allow building with older gcc versions (GH#15)

---
 alienfile | 30 ++++++++++++++++++++++++++----
 1 file changed, 26 insertions(+), 4 deletions(-)

diff --git a/alienfile b/alienfile
index 00e9081..067e536 100644
--- a/alienfile
+++ b/alienfile
@@ -115,10 +115,24 @@ share {
   
   start_url 'https://download.osgeo.org/proj/';
   #start_url "file://$base_dir";  #  debug
-  plugin Download =&gt; (
-    filter  =&gt; qr/^proj-([0-9\.]+)\.tar\.gz$/,
-    version =&gt; qr/^proj-([0-9\.]+)\.tar\.gz$/,
-  );
+
+  my $gcc_version = detect_gcc_version();
+  if ($gcc_version &amp;&amp; $gcc_version &lt; 7) {
+    plugin Download =&gt; (
+      filter  =&gt; qr/^proj-8\.2\.1\.tar\.gz$/,
+      version =&gt; qr/^proj-([0-9\.]+)\.tar\.gz$/,
+    );
+  } elsif ($gcc_version &amp;&amp; $gcc_version &lt; 12) {
+    plugin Download =&gt; (
+      filter  =&gt; qr/^proj-9\.5\.1\.tar\.gz$/,
+      version =&gt; qr/^proj-([0-9\.]+)\.tar\.gz$/,
+    );
+  } else {
+    plugin Download =&gt; (
+      filter  =&gt; qr/^proj-([0-9\.]+)\.tar\.gz$/,
+      version =&gt; qr/^proj-([0-9\.]+)\.tar\.gz$/,
+    );
+  }
 
   my $proj_version = get_proj_version() // 'not yet defined';
   say "Downloaded proj version is $proj_version";
@@ -505,3 +519,11 @@ sub get_alien_state_hash {
     return $h;
 }
 
+sub detect_gcc_version {
+    my $gcc_output = `gcc --version`;
+    if ($gcc_output =~ /gcc\s+\(.*?\)\s+(\d+)\.(\d+)\.(\d+)/) {
+        my ($major, $minor, $patch) = ($1, $2, $3);
+        return "$major.$minor"; # Return major.minor as a floating-point number
+    }
+    return undef; # GCC not found or failed to parse version
+}
-- 
2.11.0

</pre></body></html>