summaryrefslogtreecommitdiff
path: root/apps/compiler/includes/functions.sh
diff options
context:
space:
mode:
authorYehonal <yehonal.azeroth@gmail.com>2021-05-04 11:35:24 +0200
committerGitHub <noreply@github.com>2021-05-04 11:35:24 +0200
commitf6c6123d85d467134ee24565c9d98efdfc3a0c41 (patch)
tree2b70863b40601c5f98d2fbe9e8aa51fa150e7ceb /apps/compiler/includes/functions.sh
parenta1b0c4541762320867aa7e7150c942224c18753d (diff)
feat(docker): production images, integrated ccache and many other improvements (#5551)
Diffstat (limited to 'apps/compiler/includes/functions.sh')
-rw-r--r--apps/compiler/includes/functions.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/apps/compiler/includes/functions.sh b/apps/compiler/includes/functions.sh
index 1e3c83c6ba..7c5ea483a1 100644
--- a/apps/compiler/includes/functions.sh
+++ b/apps/compiler/includes/functions.sh
@@ -8,6 +8,40 @@ function comp_clean() {
[ -d "$DIRTOCLEAN" ] && rm -rf $PATTERN
}
+function comp_ccacheEnable() {
+ [ "$AC_CCACHE" != true ] && return
+
+ export CCACHE_MAXSIZE=${CCACHE_MAXSIZE:-'1000MB'}
+ #export CCACHE_DEPEND=true
+ export CCACHE_SLOPPINESS=${CCACHE_SLOPPINESS:-pch_defines,time_macros,include_file_mtime}
+ export CCACHE_CPP2=${CCACHE_CPP2:-true} # optimization for clang
+ export CCACHE_COMPRESS=${CCACHE_COMPRESS:-1}
+ export CCACHE_COMPRESSLEVEL=${CCACHE_COMPRESSLEVEL:-9}
+ #export CCACHE_NODIRECT=true
+
+ export CCUSTOMOPTIONS="$CCUSTOMOPTIONS -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache"
+}
+
+function comp_ccacheClean() {
+ [ "$AC_CCACHE" != true ] && echo "ccache is disabled" && return
+
+ echo "Cleaning ccache"
+ ccache -C
+ ccache -s
+}
+
+function comp_ccacheResetStats() {
+ [ "$AC_CCACHE" != true ] && return
+
+ ccache -zc
+}
+
+function comp_ccacheShowStats() {
+ [ "$AC_CCACHE" != true ] && return
+
+ ccache -s
+}
+
function comp_configure() {
CWD=$(pwd)
@@ -16,6 +50,7 @@ function comp_configure() {
echo "Build path: $BUILDPATH"
echo "DEBUG info: $CDEBUG"
echo "Compilation type: $CTYPE"
+ echo "CCache: $AC_CCACHE"
# -DCMAKE_BUILD_TYPE=$CCTYPE disable optimization "slow and huge amount of ram"
# -DWITH_COREDEBUG=$CDEBUG compiled with debug information
@@ -28,6 +63,8 @@ function comp_configure() {
DCONF="-DCONF_DIR=$CONFDIR"
fi
+ comp_ccacheEnable
+
cmake $SRCPATH -DCMAKE_INSTALL_PREFIX=$BINPATH $DCONF -DSERVERS=$CSERVERS \
-DSCRIPTS=$CSCRIPTS \
-DBUILD_TESTING=$CBUILD_TESTING \
@@ -49,11 +86,21 @@ function comp_compile() {
cd $BUILDPATH
+ comp_ccacheResetStats
+
time make -j $MTHREADS
make -j $MTHREADS install
+ comp_ccacheShowStats
+
cd $CWD
+ if [ $DOCKER = 1 ]; then
+ echo "Generating confs..."
+ cp -n "env/dist/etc/worldserver.conf.dockerdist" "env/dist/etc/worldserver.conf"
+ cp -n "env/dist/etc/authserver.conf.dockerdist" "env/dist/etc/authserver.conf"
+ fi
+
runHooks "ON_AFTER_BUILD"
}