File indexing completed on 2024-04-21 03:48:16

0001 #!/bin/bash
0002 
0003 case $1 in
0004 "")
0005         BUILDDIR=build
0006         ;;
0007 clang)
0008         BUILDDIR=build-clang
0009         export CC=clang
0010         export CXX=clang++
0011         ;;
0012 clazy)
0013         BUILDDIR=build-clazy
0014         export CC=clang
0015         export CXX=clang++
0016         ;;
0017 debug)
0018         BUILDDIR=build-debug
0019         ;;
0020 devel)
0021         BUILDDIR=build-devel
0022         ;;
0023 intel)
0024         BUILDDIR=build-intel
0025         export CC=icc
0026         export CXX=icpc
0027         ;;
0028 macos)
0029         BUILDDIR=build-macos
0030         ;;
0031 pgi)
0032         BUILDDIR=build-pgi
0033         export CC=pgcc
0034         export CXX=pgc++
0035         ;;
0036 profile)
0037         BUILDDIR=build-profile
0038         ;;
0039 esac
0040 
0041 echo "BUILDDIR=$BUILDDIR"
0042 
0043 THREADS="${2:-6}"
0044 
0045 if [ ! -d $BUILDDIR ]; then
0046         mkdir $BUILDDIR
0047 fi
0048 
0049 cd $BUILDDIR
0050 
0051 case $1 in
0052 "")
0053 cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr && make -j $THREADS
0054 
0055 #cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DBUILD_COVERAGE=ON -DECM_ENABLE_SANITIZERS='address'  -DCMAKE_INSTALL_PREFIX=/usr && make -j 6
0056         ;;
0057 clang)
0058 cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr -DLOCAL_DBC_PARSER=ON -DLOCAL_VECTOR_BLF=ON && make -j $THREADS
0059 #cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr && make -j $THREADS
0060 # debug
0061 # -ftime-trace for clang >= 9
0062 #cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS="-D_GNU_SOURCE -O2 -Wall -Wextra -Wundef -Wpointer-arith -Wcast-align -Wunreachable-code -Wdeprecated -fno-omit-frame-pointer -fstack-protector -fno-exceptions -fsanitize=address -fsanitize=undefined -fPIE"  -DCMAKE_CXX_FLAGS="-D_GNU_SOURCE -std=c++11 -O2 -Wall -Wextra -Wundef -Wpointer-arith -Wcast-align -Wunreachable-code -Wdeprecated -fno-omit-frame-pointer -fstack-protector -fno-exceptions -fsanitize=address -fsanitize=undefined -fPIE" -DCMAKE_INSTALL_PREFIX=/usr && make -j $THREADS
0063 # tidy
0064 #cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_CLANG_TIDY=on -DCMAKE_INSTALL_PREFIX=/usr && make
0065         ;;
0066 clazy)
0067 #https://github.com/KDE/clazy
0068 # There are many checks and they are divided in levels:
0069 #
0070 # level0: Very stable checks, 99.99% safe, no false-positives
0071 # level1: Similar to level0, but sometimes (rarely) there might be some false-positives
0072 # level2: Sometimes has false-positives (20-30%).
0073 # level3: Not always correct, possibly very noisy, might require a knowledgeable developer to review, might have a very big rate of false-positives, might have bugs.
0074 
0075 export CLAZY_CHECKS="level2,no-qenums,no-qt-macros"
0076 
0077 cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-Xclang -load -Xclang ClazyPlugin.so -Xclang -add-plugin -Xclang clazy -D_GNU_SOURCE -O2 -Wall -Wextra -Wundef -Wpointer-arith -Wcast-align -Wunreachable-code -fno-omit-frame-pointer -fstack-protector -fno-exceptions" -DCMAKE_CXX_FLAGS="-D_GNU_SOURCE -std=c++11 -O2 -Wall -Wextra -Wundef -Wpointer-arith -Wcast-align -Wunreachable-code -fno-omit-frame-pointer -fstack-protector -fno-exceptions" -DCMAKE_INSTALL_PREFIX=/usr && make -j $THREADS
0078         ;;
0079 debug)
0080 # -DCMAKE_C_FLAGS="-ftime-report" -DCMAKE_CXX_FLAGS="-ftime-report" -DENABLE_FFTW=OFF
0081 cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr -DLOCAL_DBC_PARSER=ON -DLOCAL_VECTOR_BLF=ON && make -j $THREADS
0082         ;;
0083 devel)
0084 # debug w/o tests
0085 cmake .. -DCMAKE_BUILD_TYPE=Debug -DENABLE_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/usr -DLOCAL_DBC_PARSER=ON -DLOCAL_VECTOR_BLF=ON && make -j $THREADS
0086         ;;
0087 intel)
0088 cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr && make -j $THREADS
0089         ;;
0090 macos)
0091 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/Users/user/kde ..
0092 # no Cantor
0093 #cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_CANTOR=OFF -DCMAKE_INSTALL_PREFIX=/Users/user/kde ..
0094 # no tests
0095 #cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/Users/user/kde ..
0096 # Debug
0097 # cmake -DCMAKE_BUILD_TYPE=DebugFull -DCMAKE_INSTALL_PREFIX=/Users/user/kde ..
0098 make -j $THREADS
0099 sudo make install
0100         ;;
0101 pgi)
0102 cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr && make -k -j $THREADS
0103         ;;
0104 profile)
0105 cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-O2 -Wall -Wextra -Wundef -Wpointer-arith -Wcast-align -Wunreachable-code -fno-omit-frame-pointer -fstack-protector -fno-exceptions -pg" -DCMAKE_CXX_FLAGS="-std=c++11 -O2 -Wall -Wextra -Wundef -Wpointer-arith -Wcast-align -Wunreachable-code -fno-omit-frame-pointer -fstack-protector -fno-exceptions -pg" -DCMAKE_INSTALL_PREFIX=/usr && make -j $THREADS
0106         ;;
0107 esac