#!/bin/bash -e # IBM_PROLOG_BEGIN_TAG # This is an automatically generated prolog. # # $Source: src/build/tools/build-cppcheck $ # # OpenPOWER HostBoot Project # # Contributors Listed Below - COPYRIGHT 2019 # [+] International Business Machines Corp. # # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied. See the License for the specific language governing # permissions and limitations under the License. # # IBM_PROLOG_END_TAG source $PROJECT_ROOT/src/build/citest/etc/cppcheck update_toolconfig(){ echo "commit: $CPPCHECK_COMMIT" echo "gcc version: $(gcc -dumpversion)" echo "S: $(uname -o)" echo "arch: $(uname -m)" echo "$(lsb_release -i)" echo "$(lsb_release -r)" } if [ -n "${OPENPOWER_BUILD}" ]; then exit fi cd $PROJECT_ROOT/src/build/tools if [[ ! -d "cpptools" ]]; then mkdir cpptools fi cd cpptools if [[ ! -d "cppcheck" ]]; then # cppcheck folder does not exist, clone repo for the first time git clone git@github.com:danmar/cppcheck.git cd cppcheck git reset --hard $CPPCHECK_COMMIT #update to cppcheck commit update_toolconfig >.cpp_toollevel SHOULDMAKE=1 else cd cppcheck if ! cmp -s .cpp_toollevel <(update_toolconfig) ; then # cppcheck repo is not at the # level set in $PROJECT_ROOT/src/build/citest/etc/cppcheck if ! git fetch origin; then cd $PROJECT_ROOT/src/build/tools/cpptools rm -rf cppcheck git clone git@github.com:danmar/cppcheck.git cd cppcheck fi git reset --hard $CPPCHECK_COMMIT update_toolconfig >.cpp_toollevel SHOULDMAKE=1 fi if [[ ! -f "cppcheck" ]]; then SHOULDMAKE=1 fi fi if [ "${SHOULDMAKE}" ]; then # Check if CXX is set, if it is not then try to find it with CXXPATH # if CXXPATH does not exist, default to host's g++ if [ -z "$CXX" ]; then if [ -z "${CXXPATH}" ]; then export CXX=g++ else export CXX=${CXXPATH}/g++ fi fi make fi cd $PROJECT_ROOT