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_cicompile_shader()
188bf80f4bSopenharmony_ci{
198bf80f4bSopenharmony_ci     OPENHARMONY_DIR=$1
208bf80f4bSopenharmony_ci    if [ ! -n "$1" ] ;then
218bf80f4bSopenharmony_ci        echo "==================orig source shader=================="
228bf80f4bSopenharmony_ci    else
238bf80f4bSopenharmony_ci        echo "==================copy source shader=================="
248bf80f4bSopenharmony_ci
258bf80f4bSopenharmony_ci        cp -r $OPENHARMONY_DIR/foundation/graphic/graphic_3d/lume/Lume_3D/assets/3d/* 3d_source
268bf80f4bSopenharmony_ci        cp -r $OPENHARMONY_DIR/foundation/graphic/graphic_3d/lume/Lume_3D/api/* 3d_api
278bf80f4bSopenharmony_ci        cp -r $OPENHARMONY_DIR/foundation/graphic/graphic_3d/lume/LumeRender/assets/render/* render_source
288bf80f4bSopenharmony_ci        cp -r $OPENHARMONY_DIR/foundation/graphic/graphic_3d/lume/LumeRender/api/* render_api
298bf80f4bSopenharmony_ci        cp -r $OPENHARMONY_DIR/foundation/graphic/graphic_3d/lume/LumeEngine/assets/render/* render_source
308bf80f4bSopenharmony_ci    fi
318bf80f4bSopenharmony_ci
328bf80f4bSopenharmony_ci    rm -rf 3d_dest
338bf80f4bSopenharmony_ci    rm -rf render_dest
348bf80f4bSopenharmony_ci    rm -rf engine_dest
358bf80f4bSopenharmony_ci
368bf80f4bSopenharmony_ci    cp -r 3d_source 3d_dest
378bf80f4bSopenharmony_ci    cp -r render_source render_dest
388bf80f4bSopenharmony_ci    cp -r engine_source engine_dest
398bf80f4bSopenharmony_ci
408bf80f4bSopenharmony_ci    echo "==================build render Shader=================="
418bf80f4bSopenharmony_ci    #./LumeShaderCompiler --optimize --source render_dest/shaders --include render_api
428bf80f4bSopenharmony_ci	./LumeShaderCompiler --optimize --source $PROJECT_ROOT/foundation/graphic/graphic_3d/lume/LumeRender/assets/render/shaders --include $PROJECT_ROOT/foundation/graphic/graphic_3d/lume/LumeRender/api/
438bf80f4bSopenharmony_ci    echo "==================build 3d Shader=================="
448bf80f4bSopenharmony_ci    ./LumeShaderCompiler --optimize --source $PROJECT_ROOT/foundation/graphic/graphic_3d/lume/Lume_3D/assets/3d/shaders --include $PROJECT_ROOT/foundation/graphic/graphic_3d/lume/Lume_3D/api/ --include $PROJECT_ROOT/foundation/graphic/graphic_3d/lume/LumeRender/api/
458bf80f4bSopenharmony_ci}
468bf80f4bSopenharmony_ci
478bf80f4bSopenharmony_cicompile_rofs()
488bf80f4bSopenharmony_ci{
498bf80f4bSopenharmony_ci    echo "==================build engine rofs=================="
508bf80f4bSopenharmony_ci    ./LumeAssetCompiler -linux -arm64-v8a -extensions ".spv;.json;.lsb;.shader;.shadergs;.shadervid;.shaderpl;.rng;.gl;.gles" engine_dest / BINARYDATAFORCORE SIZEOFDATAFORCORE CORE_ROFS
518bf80f4bSopenharmony_ci    mv CORE_ROFS_64.o engine_dest
528bf80f4bSopenharmony_ci
538bf80f4bSopenharmony_ci    echo "==================build render rofs=================="
548bf80f4bSopenharmony_ci    ./LumeAssetCompiler -linux -arm64-v8a -extensions ".spv;.json;.lsb;.shader;.shadergs;.shadervid;.shaderpl;.rng;.gl;.gles" render_dest / BINARYDATAFORRENDER SIZEOFDATAFORRENDER RENDER_ROFS 
558bf80f4bSopenharmony_ci    mv RENDER_ROFS_64.o render_dest
568bf80f4bSopenharmony_ci
578bf80f4bSopenharmony_ci    echo "==================build 3d rofs=================="
588bf80f4bSopenharmony_ci    ./LumeAssetCompiler -linux -arm64-v8a -extensions ".spv;.json;.lsb;.shader;.shadergs;.shadervid;.shaderpl;.rng;.gl;.gles" 3d_dest / BINARY_DATA_FOR_3D SIZE_OF_DATA_FOR_3D CORE3D_ROFS 
598bf80f4bSopenharmony_ci    mv CORE3D_ROFS_64.o 3d_dest
608bf80f4bSopenharmony_ci
618bf80f4bSopenharmony_ci}
628bf80f4bSopenharmony_ci
638bf80f4bSopenharmony_cimain()
648bf80f4bSopenharmony_ci{
658bf80f4bSopenharmony_ci    if [ "$1" == "shader" ] ;then
668bf80f4bSopenharmony_ci        compile_shader $2
678bf80f4bSopenharmony_ci        return
688bf80f4bSopenharmony_ci    fi
698bf80f4bSopenharmony_ci
708bf80f4bSopenharmony_ci    if [ "$1" == "rofs" ] ;then
718bf80f4bSopenharmony_ci        compile_rofs
728bf80f4bSopenharmony_ci        return
738bf80f4bSopenharmony_ci    fi
748bf80f4bSopenharmony_ci
758bf80f4bSopenharmony_ci    if [ "$1" == "all" ] ;then
768bf80f4bSopenharmony_ci        compile_shader $2
778bf80f4bSopenharmony_ci        compile_rofs
788bf80f4bSopenharmony_ci    else
798bf80f4bSopenharmony_ci        compile_shader
808bf80f4bSopenharmony_ci        compile_rofs
818bf80f4bSopenharmony_ci    fi
828bf80f4bSopenharmony_ci}
838bf80f4bSopenharmony_ci
848bf80f4bSopenharmony_cimain $1
85