Browse Source

Fix the Android builds

Panagiotis Christopoulos Charitos 3 years ago
parent
commit
fbedaeec97

+ 13 - 7
.github/workflows/Android.yml

@@ -14,21 +14,27 @@ jobs:
 
     steps:
     - name: Install dependencies
-      run: | 
-        apt-get update 
-        apt install ninja-build
-      
+      run: |
+        apt-get update
+        apt install ninja-build libx11-dev libx11-xcb-dev clang
+
     - name: Clone
       uses: actions/checkout@v2
 
+    - name: Configure CMake for Linux
+      run: cmake -B ${{github.workspace}}/build -DANKI_BUILD_TESTS=OFF -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_BUILD_TYPE=Release -DANKI_EXTRA_CHECKS=OFF
+
+    - name: Build Linux ShaderCompiler
+      run: cmake --build ${{github.workspace}}/build --config Release --target ShaderCompiler
+
     - name: Generate project
-      run: ./Samples/Sponza/GenerateAndroidProject.sh
-    
+      run: ./Samples/Sponza/GenerateAndroidProject.sh ${{github.workspace}}/build/Bin/ShaderCompiler
+
     - name: local.properties
       run: |
         echo "sdk.dir=/usr/local/android-sdk" > AndroidProject_Sponza/local.properties
         echo "ndk.dir=/usr/local/android-ndk" >> AndroidProject_Sponza/local.properties
 
-    - name: Build
+    - name: Build Android
       working-directory: AndroidProject_Sponza
       run: ./gradlew build

+ 6 - 11
AnKi/Shaders/CMakeLists.txt

@@ -13,7 +13,12 @@ else()
 	set(shader_compiler_dep "")
 endif()
 
-set(out_dir "${CMAKE_BINARY_DIR}/Bin/ShaderBinaries")
+if(ANDROID)
+	# Copy to the Android assets
+	set(out_dir "${CMAKE_BINARY_DIR}/../../../../../assets/ShaderBinaries")
+else()
+	set(out_dir "${CMAKE_BINARY_DIR}/Bin/ShaderBinaries")
+endif()
 
 if(ANDROID OR ARM)
 	message("++ Compiling shaders for mobile")
@@ -55,13 +60,3 @@ foreach(prog_fname ${prog_fnames})
 endforeach()
 
 add_custom_target(AnKiShaders ALL DEPENDS ${program_targets})
-
-# Create link of shader bin dir to the android assets
-if(ANDROID)
-	set(assets_dir "${CMAKE_BINARY_DIR}/../../../../../assets/ShaderBinaries")
-
-	add_custom_command(
-		TARGET AnKiShaders POST_BUILD
-		COMMAND ${CMAKE_COMMAND} -E create_symlink ${out_dir} ${assets_dir}
-	)
-endif()

+ 7 - 2
Samples/Sponza/GenerateAndroidProject.bat

@@ -1,2 +1,7 @@
-cd /D "%~dp0"
-python ../../Tools/Android/GenerateAndroidProject.py -o ../.. -t Sponza -a ./Assets/
+@echo off
+if "%~1"=="" (
+	echo "Usage: %0 <path to ShaderCompiler.exe>"
+	exit 0
+)
+
+python ./Tools/Android/GenerateAndroidProject.py -o . -t Sponza -a ./Samples/Sponza/Assets/ --shader-compiler %1

+ 6 - 3
Sandbox/GenerateAndroidProject.sh

@@ -1,5 +1,8 @@
 #!/bin/bash
 
-SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
-cd $SCRIPT_DIR
-../Tools/Android/GenerateAndroidProject.py -o .. -t Sandbox
+if [ "$#" -ne 1 ]; then
+    echo "Usage: ${0} <path to ShaderCompiler>"
+	exit 0
+fi
+
+./Tools/Android/GenerateAndroidProject.py -o . -t Sandbox --shader-compiler $1

+ 7 - 2
Tests/GenerateAndroidProject.bat

@@ -1,2 +1,7 @@
-cd /D "%~dp0"
-python ../../Tools/Android/GenerateAndroidProject.py -o .. -t Tests -a ./Assets/
+@echo off
+if "%~1"=="" (
+	echo "Usage: %0 <path to ShaderCompiler.exe>"
+	exit 0
+)
+
+python ./Tools/Android/GenerateAndroidProject.py -o . -t Tests -a ./Tests/Assets/ --shader-compiler %1

+ 6 - 3
Tests/GenerateAndroidProject.sh

@@ -1,5 +1,8 @@
 #!/bin/bash
 
-SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
-cd $SCRIPT_DIR
-../Tools/Android/GenerateAndroidProject.py -o .. -t Tests -a ./Assets/
+if [ "$#" -ne 1 ]; then
+    echo "Usage: ${0} <path to ShaderCompiler>"
+	exit 0
+fi
+
+./Tools/Android/GenerateAndroidProject.py -o . -t Tests -a ./Tests/Assets/ --shader-compiler $1