File indexing completed on 2024-12-08 08:10:48
0001 #!/bin/sh 0002 set -e 0003 set -x 0004 0005 # script for building ktechlab for development/testing 0006 # currently it (1) builds ktechlab with gcc-5 and (2) enables address sanitizer 0007 0008 #SCRIPTDIR=$(dirname $(readlink -f "$0")) 0009 0010 case "$(uname -s)" in 0011 0012 Darwin) 0013 echo 'Mac OS X' 0014 readlinkf(){ perl -MCwd -e 'print Cwd::abs_path shift' "$1";} 0015 SCRIPTDIR=$(dirname $(readlinkf "$0")) 0016 ;; 0017 0018 # taken from: https://en.wikipedia.org/wiki/Uname 0019 Linux|*BSD) 0020 echo 'Linux' 0021 SCRIPTDIR=$(dirname $(readlink -f "$0")) 0022 ;; 0023 0024 CYGWIN*|MINGW32*|MSYS*) 0025 echo 'MS Windows' 0026 SCRIPTDIR=$(dirname $(readlink -f "$0")) # untested 0027 ;; 0028 0029 # Add here more strings to compare 0030 # 0031 0032 *) 0033 echo 'other OS, please notify the developers' 0034 SCRIPTDIR=$(dirname $(readlink -f "$0")) # untested 0035 ;; 0036 esac 0037 0038 LOGFILE="$SCRIPTDIR/build-developer.log" 0039 0040 log_cmd() { 0041 "$@" 2>&1 | tee -a "$LOGFILE" 0042 } 0043 0044 log_cmd echo "== starting build at $( date ) == " 0045 0046 ( 0047 mkdir -p "$SCRIPTDIR/build-developer/" 0048 cd "$SCRIPTDIR/build-developer/" 0049 0050 if [ -f "$SCRIPTDIR/build-developer/CMakeCache.txt" ] ; then 0051 echo "buildsystem generated, using it" 0052 else 0053 echo "buildsystem being generated" 0054 0055 log_cmd cmake -DCMAKE_INSTALL_PREFIX="$SCRIPTDIR/inst-developer/" \ 0056 -DKTECHLAB_DEVELOPER_BUILD=true \ 0057 "$SCRIPTDIR" 0058 0059 # -DCMAKE_C_COMPILER=gcc-5 -DCMAKE_CXX_COMPILER=g++-5 \ # 2017.09.18 - deprecated 0060 0061 fi 0062 0063 # # bug in buildsystem: generated header files are not always built; work it around 0064 # 0065 # UI_HEADERS_TO_GENERATE=" 0066 # ./src/gui/ui_contexthelpwidget.h 0067 # ./src/gui/ui_generaloptionswidget.h 0068 # ./src/gui/ui_linkeroptionswidget.h 0069 # ./src/gui/ui_processingoptionswidget.h 0070 # ./src/gui/ui_programmerwidget.h 0071 # ./src/gui/ui_gpasmsettingswidget.h 0072 # ./src/gui/ui_newprojectwidget.h 0073 # ./src/gui/ui_newfilewidget.h 0074 # ./src/gui/ui_outputmethodwidget.h 0075 # ./src/gui/ui_scopescreenwidget.h 0076 # ./src/gui/ui_createsubprojectwidget.h 0077 # ./src/gui/ui_asmformattingwidget.h 0078 # ./src/gui/ui_oscilloscopewidget.h 0079 # ./src/gui/ui_microsettingswidget.h 0080 # ./src/gui/ui_newpinmappingwidget.h 0081 # ./src/gui/ui_logicwidget.h 0082 # ./src/gui/ui_sdccoptionswidget.h 0083 # ./src/gui/ui_picprogrammerconfigwidget.h 0084 # ./src/gui/ui_gplinksettingswidget.h 0085 # " 0086 # for HEADER in $UI_HEADERS_TO_GENERATE ; do 0087 # make -f src/gui/CMakeFiles/gui.dir/build.make "$HEADER" 0088 # done 0089 # 0090 # # work around the bug: core directory has to be built first 0091 # # ./src/core/ktlconfig.h 0092 # log_cmd make -C "$SCRIPTDIR/build-developer/src/core" 0093 0094 log_cmd make install -j"$( nproc )" 0095 )