#!/bin/sh
td_path=$(grealpath ../..)

rm -rf build
mkdir -p build
cd build

platforms="macOS iOS watchOS tvOS"
for platform in $platforms;
do
  echo "Platform = ${platform} Simulator = ${simulator}"
  openssl_path=$(grealpath ../third_party/openssl/${platform})
  echo "OpenSSL path = ${openssl_path}"
  openssl_crypto_library="${openssl_path}/lib/libcrypto.a"
  openssl_ssl_library="${openssl_path}/lib/libssl.a"
  options="$options -DOPENSSL_FOUND=1"
  options="$options -DOPENSSL_CRYPTO_LIBRARY=${openssl_crypto_library}"
  options="$options -DOPENSSL_SSL_LIBRARY=${openssl_ssl_library}"
  options="$options -DOPENSSL_INCLUDE_DIR=${openssl_path}/include"
  options="$options -DOPENSSL_LIBRARIES=${openssl_crypto_library};${openssl_ssl_library}"
  options="$options -DCMAKE_BUILD_TYPE=Release"
  if [[ $platform = "macOS" ]]; then
    build="build-${platform}"
    install="install-${platform}"
    rm -rf $build
    mkdir -p $build
    mkdir -p $install
    cd $build
    cmake $td_path $options -DCMAKE_INSTALL_PREFIX=../${install}
    make -j3 install || exit
    cd ..
    mkdir -p $platform
    cp $build/libtdjson.dylib $platform/libtdjson.dylib
    install_name_tool -id @rpath/libtdjson.dylib $platform/libtdjson.dylib
  else
    simulators="0 1"
    for simulator in $simulators;
    do
      build="build-${platform}"
      install="install-${platform}"
      if [[ $simulator = "1" ]]; then
        build="${build}-simulator"
        install="${install}-simulator"
        ios_platform="SIMULATOR"
      else
        ios_platform="OS"
      fi
      if [[ $platform = "watchOS" ]]; then
        ios_platform="WATCH${ios_platform}"
      fi
      if [[ $platform = "tvOS" ]]; then
        ios_platform="TV${ios_platform}"
      fi
      echo $ios_platform
      rm -rf $build
      mkdir -p $build
      mkdir -p $install
      cd $build
      cmake $td_path $options -DIOS_PLATFORM=${ios_platform} -DCMAKE_TOOLCHAIN_FILE=${td_path}/CMake/iOS.cmake -DCMAKE_INSTALL_PREFIX=../${install}
      make -j3 install || exit
      cd ..
    done
    lib="install-${platform}/lib/libtdjson.dylib"
    lib_simulator="install-${platform}-simulator/lib/libtdjson.dylib"
    mkdir -p $platform
    lipo -create $lib $lib_simulator -o $platform/libtdjson.dylib
    install_name_tool -id @rpath/libtdjson.dylib $platform/libtdjson.dylib
  fi

  mkdir -p ../tdjson/$platform/include
  rsync --recursive ${install}/include/ ../tdjson/${platform}/include/
  mkdir -p ../tdjson/$platform/lib
  cp $platform/libtdjson.dylib ../tdjson/$platform/lib/
done