Browse Source

fix the linux building

M0N7Y5 7 months ago
parent
commit
a012f8572e
1 changed files with 23 additions and 4 deletions
  1. 23 4
      bin/build.sh

+ 23 - 4
bin/build.sh

@@ -43,8 +43,11 @@ else
 	echo "Ninja isn't installed, consider installing it for faster build speeds."
 fi
 
-LLVM_CONFIG=$(command -v llvm-config-18 2>/dev/null || command -v llvm-config 2>/dev/null)
+LLVM_CONFIG=$(command -v llvm-config-18 2>/dev/null || 
+              command -v /usr/lib/llvm18/bin/llvm-config 2>/dev/null ||
+              command -v llvm-config 2>/dev/null)
 LLVM_FOUND=0
+LLVM_DIR=""
 
 if [ -n "$LLVM_CONFIG" ]; then
   LLVM_VERSION=$($LLVM_CONFIG --version)
@@ -52,6 +55,22 @@ if [ -n "$LLVM_CONFIG" ]; then
   LLVM_MINOR_VERSION=$(echo "$LLVM_VERSION" | cut -d. -f2)
   if [ "$LLVM_MAJOR_VERSION" = "18" ] && [ "$LLVM_MINOR_VERSION" = "1" ]; then
     LLVM_FOUND=1
+    # Get the LLVM prefix directory and construct cmake path from it
+    LLVM_PREFIX=$($LLVM_CONFIG --prefix)
+    LLVM_DIR="$LLVM_PREFIX/lib/cmake/llvm"
+  else
+    # If first attempt didn't find 18.1, explicitly try the llvm18 path
+    LLVM_CONFIG="/usr/lib/llvm18/bin/llvm-config"
+    if [ -x "$LLVM_CONFIG" ]; then
+      LLVM_VERSION=$($LLVM_CONFIG --version)
+      LLVM_MAJOR_VERSION=$(echo "$LLVM_VERSION" | cut -d. -f1)
+      LLVM_MINOR_VERSION=$(echo "$LLVM_VERSION" | cut -d. -f2)
+      if [ "$LLVM_MAJOR_VERSION" = "18" ] && [ "$LLVM_MINOR_VERSION" = "1" ]; then
+        LLVM_FOUND=1
+        LLVM_PREFIX=$($LLVM_CONFIG --prefix)
+        LLVM_DIR="$LLVM_PREFIX/lib/cmake/llvm"
+      fi
+    fi
   fi
 fi
 
@@ -83,12 +102,12 @@ fi
 
 cd jbuild_d
 
-echo cmake $USE_NINJA $USE_SDL -DCMAKE_BUILD_TYPE=Debug ../
+echo cmake -DLLVM_DIR="$LLVM_DIR" $USE_NINJA $USE_SDL -DCMAKE_BUILD_TYPE=Debug ../
 
-cmake $USE_NINJA $USE_SDL $USE_FFI -DCMAKE_BUILD_TYPE=Debug ../
+cmake -DLLVM_DIR="$LLVM_DIR" $USE_NINJA $USE_SDL $USE_FFI -DCMAKE_BUILD_TYPE=Debug ../
 cmake --build .
 cd ../jbuild
-cmake $USE_NINJA $USE_SDL $USE_FFI -DCMAKE_BUILD_TYPE=RelWithDebInfo ../
+cmake -DLLVM_DIR="$LLVM_DIR" $USE_NINJA $USE_SDL $USE_FFI -DCMAKE_BUILD_TYPE=RelWithDebInfo ../
 cmake --build .
 
 cd ../IDE/dist