18bf80f4bSopenharmony_ci#!/bin/bash 28bf80f4bSopenharmony_ci#Copyright (c) 2023 Huawei Device Co., Ltd. 38bf80f4bSopenharmony_ci#Licensed under the Apache License, Version 2.0 (the "License"); 48bf80f4bSopenharmony_ci#you may not use this file except in compliance with the License. 58bf80f4bSopenharmony_ci#You may obtain a copy of the License at 68bf80f4bSopenharmony_ci# 78bf80f4bSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 88bf80f4bSopenharmony_ci# 98bf80f4bSopenharmony_ci#Unless required by applicable law or agreed to in writing, software 108bf80f4bSopenharmony_ci#distributed under the License is distributed on an "AS IS" BASIS, 118bf80f4bSopenharmony_ci#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 128bf80f4bSopenharmony_ci#See the License for the specific language governing permissions and 138bf80f4bSopenharmony_ci#limitations under the License. 148bf80f4bSopenharmony_ciset -e 158bf80f4bSopenharmony_ciWORKING_DIR=$(cd "$(dirname "$0")"; pwd) 168bf80f4bSopenharmony_ciPROJECT_ROOT=${WORKING_DIR%/foundation*} 178bf80f4bSopenharmony_ciecho ${PROJECT_ROOT} 188bf80f4bSopenharmony_ciCMAKE_ROOT=$PROJECT_ROOT/prebuilts/cmake/linux-x86/bin 198bf80f4bSopenharmony_ciecho $CMAKE_ROOT 208bf80f4bSopenharmony_ci 218bf80f4bSopenharmony_ciOHOS_NDK=$PROJECT_ROOT/prebuilts/clang/ohos/linux-x86_64/llvm 228bf80f4bSopenharmony_ciLLVM_DIR=$PROJECT_ROOT/prebuilts/clang/ohos/linux-x86_64/llvm 238bf80f4bSopenharmony_ciecho $LLVM_DIR 248bf80f4bSopenharmony_ci 258bf80f4bSopenharmony_ciNINJA_HOME=$PROJECT_ROOT/prebuilts/build-tools/linux-x86/bin 268bf80f4bSopenharmony_ciecho $NINJA_HOME 278bf80f4bSopenharmony_ciexport PATH="$NINJA_HOME:$PATH" 288bf80f4bSopenharmony_ci 298bf80f4bSopenharmony_ciDEST_GEN_PATH=$1 308bf80f4bSopenharmony_ci 318bf80f4bSopenharmony_cicompile() 328bf80f4bSopenharmony_ci{ 338bf80f4bSopenharmony_ci PROJECT_DIR=$DEST_GEN_PATH 348bf80f4bSopenharmony_ci if [ -d "$PROJECT_DIR" ]; then 358bf80f4bSopenharmony_ci rm -rf $PROJECT_DIR 368bf80f4bSopenharmony_ci echo "Clean Output" 378bf80f4bSopenharmony_ci fi 388bf80f4bSopenharmony_ci mkdir -p $PROJECT_DIR 398bf80f4bSopenharmony_ci chmod -R 775 $PROJECT_DIR 408bf80f4bSopenharmony_ci $CMAKE_ROOT/cmake --version 418bf80f4bSopenharmony_ci 428bf80f4bSopenharmony_ci NINJA_TOOL=ninja 438bf80f4bSopenharmony_ci if [ $HW_NINJA_NAME ]; then 448bf80f4bSopenharmony_ci echo "Lume shader Compile use ninja_back" 458bf80f4bSopenharmony_ci NINJA_TOOL=$NINJA_HOME/$HW_NINJA_NAME 468bf80f4bSopenharmony_ci else 478bf80f4bSopenharmony_ci echo "Lume Shader Compile use ninja" 488bf80f4bSopenharmony_ci NINJA_TOOL=$NINJA_HOME/ninja 498bf80f4bSopenharmony_ci fi 508bf80f4bSopenharmony_ci 518bf80f4bSopenharmony_ci $CMAKE_ROOT/cmake -H$WORKING_DIR -B$PROJECT_DIR -DCMAKE_CXX_FLAGS_RELEASE=-O2 \ 528bf80f4bSopenharmony_ci -DCMAKE_SYSTEM_NAME=Linux \ 538bf80f4bSopenharmony_ci -DOHOS_NDK=${LLVM_DIR} -DCMAKE_TOOLCHAIN_FILE=$WORKING_DIR/shader.compile.toolchain.cmake \ 548bf80f4bSopenharmony_ci -G Ninja -DCMAKE_MAKE_PROGRAM=$NINJA_TOOL 558bf80f4bSopenharmony_ci 568bf80f4bSopenharmony_ci#-DCMAKE_SYSROOT=$LLVM_DIR/lib/x86_64-unknow-linux-gnu 578bf80f4bSopenharmony_ci $NINJA_TOOL -C $PROJECT_DIR -f build.ninja 588bf80f4bSopenharmony_ci 598bf80f4bSopenharmony_ci mkdir $PROJECT_DIR/Strip 608bf80f4bSopenharmony_ci chmod 775 $PROJECT_DIR/LumeShaderCompiler 618bf80f4bSopenharmony_ci cp -r $PROJECT_DIR/LumeShaderCompiler $PROJECT_DIR/Strip 628bf80f4bSopenharmony_ci #$LLVM_DIR/bin/llvm-strip -s $PROJECT_DIR/Strip/LumeShaderCompiler 638bf80f4bSopenharmony_ci rm -rf $WORKING_DIR/../test/RofsBuild/LumeShaderCompiler 648bf80f4bSopenharmony_ci #cp $PROJECT_DIR/Strip/LumeShaderCompiler $WORKING_DIR/../test/RofsBuild/LumeShaderCompiler 658bf80f4bSopenharmony_ci cd $WORKING_DIR/../test/RofsBuild/ 668bf80f4bSopenharmony_ci #./compile_rofs.sh shader 678bf80f4bSopenharmony_ci cd - 688bf80f4bSopenharmony_ci} 698bf80f4bSopenharmony_ci 708bf80f4bSopenharmony_ciecho "compile start shader x86_64" 718bf80f4bSopenharmony_ci 728bf80f4bSopenharmony_cicompile 73