1#!/bin/bash 2#Copyright (c) 2023 Huawei Device Co., Ltd. 3#Licensed under the Apache License, Version 2.0 (the "License"); 4#you may not use this file except in compliance with the License. 5#You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9#Unless required by applicable law or agreed to in writing, software 10#distributed under the License is distributed on an "AS IS" BASIS, 11#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12#See the License for the specific language governing permissions and 13#limitations under the License. 14set -e 15WORKING_DIR=$(cd "$(dirname "$0")"; pwd) 16PROJECT_ROOT=${WORKING_DIR%/foundation*} 17echo ${PROJECT_ROOT} 18CMAKE_ROOT=$PROJECT_ROOT/prebuilts/cmake/linux-x86/bin 19echo $CMAKE_ROOT 20 21OHOS_NDK=$PROJECT_ROOT/prebuilts/clang/ohos/linux-x86_64/llvm 22LLVM_DIR=$PROJECT_ROOT/prebuilts/clang/ohos/linux-x86_64/llvm 23echo $LLVM_DIR 24 25NINJA_HOME=$PROJECT_ROOT/prebuilts/build-tools/linux-x86/bin 26echo $NINJA_HOME 27export PATH="$NINJA_HOME:$PATH" 28 29DEST_GEN_PATH=$1 30 31compile() 32{ 33 PROJECT_DIR=$DEST_GEN_PATH 34 if [ -d "$PROJECT_DIR" ]; then 35 rm -rf $PROJECT_DIR 36 echo "Clean Output" 37 fi 38 mkdir -p $PROJECT_DIR 39 chmod -R 775 $PROJECT_DIR 40 $CMAKE_ROOT/cmake --version 41 42 NINJA_TOOL=ninja 43 if [ $HW_NINJA_NAME ]; then 44 echo "Lume shader Compile use ninja_back" 45 NINJA_TOOL=$NINJA_HOME/$HW_NINJA_NAME 46 else 47 echo "Lume Shader Compile use ninja" 48 NINJA_TOOL=$NINJA_HOME/ninja 49 fi 50 51 $CMAKE_ROOT/cmake -H$WORKING_DIR -B$PROJECT_DIR -DCMAKE_CXX_FLAGS_RELEASE=-O2 \ 52 -DCMAKE_SYSTEM_NAME=Linux \ 53 -DOHOS_NDK=${LLVM_DIR} -DCMAKE_TOOLCHAIN_FILE=$WORKING_DIR/shader.compile.toolchain.cmake \ 54 -G Ninja -DCMAKE_MAKE_PROGRAM=$NINJA_TOOL 55 56#-DCMAKE_SYSROOT=$LLVM_DIR/lib/x86_64-unknow-linux-gnu 57 $NINJA_TOOL -C $PROJECT_DIR -f build.ninja 58 59 mkdir $PROJECT_DIR/Strip 60 chmod 775 $PROJECT_DIR/LumeShaderCompiler 61 cp -r $PROJECT_DIR/LumeShaderCompiler $PROJECT_DIR/Strip 62 #$LLVM_DIR/bin/llvm-strip -s $PROJECT_DIR/Strip/LumeShaderCompiler 63 rm -rf $WORKING_DIR/../test/RofsBuild/LumeShaderCompiler 64 #cp $PROJECT_DIR/Strip/LumeShaderCompiler $WORKING_DIR/../test/RofsBuild/LumeShaderCompiler 65 cd $WORKING_DIR/../test/RofsBuild/ 66 #./compile_rofs.sh shader 67 cd - 68} 69 70echo "compile start shader x86_64" 71 72compile 73