File indexing completed on 2025-03-09 03:35:02
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