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