148 lines
7.8 KiB
Bash
148 lines
7.8 KiB
Bash
#!/bin/bash
|
|
|
|
#GENERATE
|
|
generate () {
|
|
if [[ -z ${CMD_LINE_PARAM} ]]; then
|
|
# Without parameter, we ask choice for modules activation
|
|
read -p "Enter TRUE or FALSE to define the default state(ON or OFF) for Ubiservices SDK's modules: " MODULES_ACTIVATION
|
|
elif [ "${CMD_LINE_PARAM}" == "modules_all_on" ]; then
|
|
MODULES_ACTIVATION=TRUE
|
|
elif [ "${CMD_LINE_PARAM}" == "modules_all_off" ]; then
|
|
MODULES_ACTIVATION=FALSE
|
|
else
|
|
# Provided parameter is invalid !!!
|
|
echo There was an error with the input. The only command line accepted parameter are modules_all_on or modules_all_off.
|
|
echo Ex: build_ubiservices.cmd modules_all_on
|
|
echo
|
|
echo "... Exit build process (5)"
|
|
echo
|
|
exit 5
|
|
fi
|
|
|
|
if [ "${MODULES_ACTIVATION}" != "TRUE" ] && [ "${MODULES_ACTIVATION}" != "FALSE" ]; then
|
|
echo There was an error with the input. The only values accepted are TRUE or FALSE.
|
|
echo
|
|
echo "... Exit build process (5)"
|
|
echo
|
|
exit 5
|
|
fi
|
|
|
|
mkdir -m 777 $CONFIGURATION_DIR
|
|
if [ "$(uname)" == "Darwin" ]; then
|
|
cp -n ${0%/*}/private/platformsConfigurationApple $CONFIGURATION_DIR
|
|
else
|
|
cp -n ${0%/*}/private/platformsConfigurationLinux $CONFIGURATION_DIR
|
|
fi
|
|
|
|
cp -n ${0%/*}/private/cmake/productConfiguration.template.cmake $CONFIGURATION_DIR/productConfiguration.cmake
|
|
cp -n ${0%/*}/private/cmake/harbourConfiguration.template.cmake $CONFIGURATION_DIR/harbourConfiguration.cmake
|
|
|
|
chmod 777 $CONFIGURATION_DIR/*
|
|
|
|
pushd $CONFIGURATION_DIR
|
|
|
|
# The following options are flags for the _configuration/productConfiguration.cmake file
|
|
sed -ibak "s/\${US_USE_PRIVATE_EXTERNAL_HARBOUR_CONFIGURATION}//g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_PRIVATE_HARBOUR_CONFIGURATION_PATH}//g" productConfiguration.cmake
|
|
|
|
sed -ibak "s/\${US_USE_PRIVATE_LOG_ENABLED_RETAIL}/FALSE/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_HIDE_DEBUG_INFO_IN_RETAIL}/FALSE/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_STEAM_AUTHENTICATION}/FALSE/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_PC_USES_UNMANAGED_PRIMARY_STORE}/FALSE/g" productConfiguration.cmake
|
|
|
|
# The following options are flags for the unity configuration inside the configuration/productConfiguration.cmake file
|
|
sed -ibak "s/\${US_USE_PRIVATE_UNITY3D_PATH}/FALSE/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_PRIVATE_UNIY3D_PATH}//g" productConfiguration.cmake
|
|
|
|
# The following options are flags for the module configuration inside the _configuration/productConfiguration.cmake file
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_APPLICATION}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_BATTLEPASS}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_BLOCKLIST}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_CHALLENGE}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_CLUB}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_ENTITY}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_FRIEND}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_GAMESPLAYED}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_LEADERBOARD}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_LOCALIZATION}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_MATCHMAKING}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_MODERATION}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_NEWS}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_PERSONA}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_PLAYER_ONLINE_STATUS}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_PLAYERREPORTS}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_PROFILE}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_RECOMMENDATIONS}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_SECONDARYSTORE_INSTANTIATION}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_STATS}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_STORE}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_TLOG}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_UGC}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_UPLAY}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_USER}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
sed -ibak "s/\${US_USE_PRIVATE_US_MODULE_VOICECHAT}/${MODULES_ACTIVATION}/g" productConfiguration.cmake
|
|
|
|
# The following options are flags for the _configuration/harbourConfiguration.cmake file
|
|
# ---- EAL configuration ----
|
|
sed -ibak 's/\${HARBOUR_PRIVATE_BUILD_HARBOUR_EAL}//g' harbourConfiguration.cmake
|
|
sed -ibak 's/\${HARBOUR_PRIVATE_EAL_INCLUDE_DIRECTORY}//g' harbourConfiguration.cmake
|
|
|
|
# ---- libraries(ubiservices, rdv, harbourEal, etc) outputs ----
|
|
sed -ibak 's/\${HARBOUR_PRIVATE_LIB_OUTPUT_DIRECTORY}/.\/../g' harbourConfiguration.cmake
|
|
|
|
# ---- sharpmake configuration ----
|
|
sed -ibak 's/\${HARBOUR_PRIVATE_GENERATE_SHARPMAKE_INTERFACES}//g' harbourConfiguration.cmake
|
|
|
|
# ---- OpenSSL configuration ----
|
|
sed -i -e 's/\${HARBOUR_PRIVATE_USE_DEPRECATED_OPENSSL_1_0_2}//g' harbourConfiguration.cmake
|
|
sed -i -e 's/\${HARBOUR_PRIVATE_USE_LATEST_OPENSSL_WITH_QUIC_SUPPORT}//g' harbourConfiguration.cmake
|
|
|
|
# ---- blob and unicode configuration ----
|
|
sed -ibak 's/\${HARBOUR_PRIVATE_USE_BLOB}/TRUE/g' harbourConfiguration.cmake
|
|
sed -ibak 's/\${HARBOUR_PRIVATE_USE_UNICODE}/FALSE/g' harbourConfiguration.cmake
|
|
|
|
# ---- XBoxOne C++11 live sdk ----
|
|
sed -ibak 's/${HARBOUR_PRIVATE_XBOXLIVESDKCPP_INCLUDE_DIR}//g' harbourConfiguration.cmake
|
|
sed -ibak 's/${HARBOUR_PRIVATE_XBOXLIVESDKCPP_CPPRESTSDK_INCLUDE_DIR}//g' harbourConfiguration.cmake
|
|
|
|
# Using -ibak syntax here is a trick to avoid a conflict between linux and mac sed syntax.
|
|
# -ibak creates a backup file with suffix "bak", before applying the modification in the original file.
|
|
# As this is just a workaround to make it work both on linux and mac, we delete those backup files after the modification.
|
|
rm -f *bak
|
|
|
|
popd
|
|
|
|
echo ##############################################################################
|
|
echo
|
|
echo Generating platformsConfiguration, productConfiguration.cmake, harbourConfiguration.cmake
|
|
echo at location : $CONFIGURATION_DIR
|
|
echo To run this build script again , these configuration files must be edited properly.
|
|
echo
|
|
echo ##############################################################################
|
|
}
|
|
|
|
US_PACKAGE_ROOT=$(cd "${0%/*}/.." ; pwd)
|
|
export US_PACKAGE_ROOT
|
|
|
|
CMD_LINE_PARAM="$1"
|
|
echo Command line argument: ${CMD_LINE_PARAM}
|
|
|
|
CONFIGURATION_DIR=$US_PACKAGE_ROOT/_configurations
|
|
|
|
#CLEAN
|
|
rm -f $US_PACKAGE_ROOT/build/build.*.out
|
|
|
|
#BUILD
|
|
if [ -d $CONFIGURATION_DIR ]; then
|
|
if [ "$(uname)" == "Darwin" ]; then
|
|
$CONFIGURATION_DIR/platformsConfigurationApple
|
|
else
|
|
$CONFIGURATION_DIR/platformsConfigurationLinux
|
|
fi
|
|
else
|
|
generate
|
|
fi
|
|
|
|
echo
|
|
echo ... Exit build process
|
|
echo
|