#!/usr/bin/env bash cd "../$(dirname $0)" project_name="__build_teaclient" source ../scripts/build_helper.sh function install_npm() { begin_task "${project_name}_update" "Installing NPM" npm install check_err_exit ${project_name} "Failed to install nodejs files!" npm update check_err_exit ${project_name} "Failed to update nodejs files!" begin_task "${project_name}_update" "NPM installed" } function compile_scripts() { begin_task "${project_name}_tsc_sass" "Compiling TypeScript & SASS" npm run compile-tsc -- -p modules/tsconfig_main.json npm run compile-tsc -- -p modules/tsconfig_renderer.json npm run compile-tsc -- -p installer/tsconfig_linux.json check_err_exit ${project_name} "Failed to compile typescript files!" npm run compile-sass check_err_exit ${project_name} "Failed to compile sass files!" begin_task "${project_name}_tsc_sass" "TypeScript & SASS compiled" echo "" } function compile_native() { begin_task "${project_name}_native" "Compiling native extensions" local build_path="native/out/${build_os_type}_${build_os_arch}/" [[ -d ${build_path} ]] && rm -r ${build_path} mkdir -p ${build_path} check_err_exit ${project_name} "Failed to create build directory!" cd ${build_path} check_err_exit ${project_name} "Failed to enter build directory!" cmake ../../ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_MODULE_PATH="/home/wolverindev/TeaSpeak-Client/cmake/" -DCMAKE_PLATFORM_INCLUDE="/home/wolverindev/TeaSpeak-Client/cmake/config/tearoot-client.cmake" -DLIBRARY_PATH="/home/wolverindev/TeaSpeak-Client/third_party/" check_err_exit ${project_name} "Failed create build targets!" cmake --build `pwd` --target teaclient_connection -- -j 12 check_err_exit ${project_name} "Failed build teaclient connection!" cmake --build `pwd` --target teaclient_crash_handler -- -j 12 check_err_exit ${project_name} "Failed build teaclient crash handler!" cmake --build `pwd` --target teaclient_ppt -- -j 12 check_err_exit ${project_name} "Failed build teaclient ppt!" begin_task "${project_name}_native" "Native extensions compiled" } install_npm compile_scripts compile_native