#!/bin/bash
# AirAudio(Audacity on HarmonyOS)交叉编译环境配置脚本
# 用法:source native/scripts/env.sh
#
# 架构:AirGimp 双层架构(GTK3 OHOS GDK 后端栈复用)
# - GTK3/GDK/glib/cairo/pango 等基础栈复用 AirGimp native/install(跨工程 PREFIX 引用)
# - wxWidgets/portaudio/音频解码库装进 AirAudio 自己的 PREFIX

export AIRAUDIO_ROOT="/Users/andy/DevEcoStudioProjects/AirAudio"
export AUDACITY_SRC="$AIRAUDIO_ROOT/native/sources/audacity"
export WX_SRC="$AIRAUDIO_ROOT/native/sources/wxwidgets"

# 工具链:与 AirGimp GTK 栈同源(clang 15.0.4 / musl libc / libc++),保证 ABI 一致
export OHOS_SDK="/Users/andy/Library/AirChat-SDK24/native"
export OHOS_SYSROOT="$OHOS_SDK/sysroot"
export OHOS_LLVM="$OHOS_SDK/llvm/bin"
export OHOS_CC="$OHOS_LLVM/aarch64-unknown-linux-ohos-clang"
export OHOS_CXX="$OHOS_LLVM/aarch64-unknown-linux-ohos-clang++"
export OHOS_AR="$OHOS_LLVM/llvm-ar"
export OHOS_RANLIB="$OHOS_LLVM/llvm-ranlib"
export OHOS_STRIP="$OHOS_LLVM/llvm-strip"
export OHOS_NM="$OHOS_LLVM/llvm-nm"

export AIRAUDIO_PREFIX="$AIRAUDIO_ROOT/native/install"
export AIRAUDIO_BUILD="$AIRAUDIO_ROOT/native/build"
export AIRAUDIO_SOURCES="$AIRAUDIO_ROOT/native/sources"
export AIRAUDIO_PATCHES="$AIRAUDIO_ROOT/native/patches"
export CROSS_FILE="$AIRAUDIO_ROOT/native/cross/ohos-aarch64.cross"
export TOOLCHAIN_FILE="$AIRAUDIO_ROOT/native/cross/ohos-toolchain.cmake"

# AirGimp 前缀(GTK3 OHOS GDK 后端栈:glib/gtk3/cairo/pango/pixbuf/png/jpeg/zlib/expat…)
export AIRGIMP_PREFIX="/Users/andy/DevEcoStudioProjects/AirGimp/native/install"

# PATH 卫生:DevEco toolchains 的 diff/sed 等会破坏 autotools(diff 对不存在
# 文件返回 0 → config.status 永远误判 unchanged,config.h 不落盘,实证于 pcre2)
export PATH="/usr/bin:/bin:/usr/sbin:/sbin:$PATH"

# pkg-config:AirAudio 前缀优先,AirGimp 栈次之,sysroot 兜底
export PKG_CONFIG_PATH="$AIRAUDIO_PREFIX/lib/pkgconfig:$AIRGIMP_PREFIX/lib/pkgconfig:$OHOS_SYSROOT/usr/lib/aarch64-linux-ohos/pkgconfig:$OHOS_SYSROOT/usr/lib/pkgconfig"
unset PKG_CONFIG_SYSROOT_DIR
export PKG_CONFIG_LIBDIR="$PKG_CONFIG_PATH"

# 通用编译参数(两个 PREFIX 都进搜索路径)
export CFLAGS="-DOHOS_PLATFORM -D__OHOS__=1 --target=aarch64-linux-ohos -fPIC -I$AIRAUDIO_PREFIX/include -I$AIRGIMP_PREFIX/include -Wno-error=implicit-function-declaration"
export CXXFLAGS="-DOHOS_PLATFORM -D__OHOS__=1 --target=aarch64-linux-ohos -fPIC -I$AIRAUDIO_PREFIX/include -I$AIRGIMP_PREFIX/include -fexperimental-library"
export LDFLAGS="--target=aarch64-linux-ohos -L$AIRAUDIO_PREFIX/lib -L$AIRGIMP_PREFIX/lib"
export CC="$OHOS_CC"
export CXX="$OHOS_CXX"
export AR="$OHOS_AR"
export RANLIB="$OHOS_RANLIB"
export STRIP="$OHOS_STRIP"

echo "AirAudio 交叉编译环境已加载"
echo "  CC:      $OHOS_CC"
echo "  PREFIX:  $AIRAUDIO_PREFIX(自编库)"
echo "  复用栈:  $AIRGIMP_PREFIX(GTK3 OHOS GDK 后端)"
echo "  Audacity: $AUDACITY_SRC"