From 0c8eeea665a783b8fe82c2b6d9f01cad6cb1054e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Tue, 1 Dec 2015 16:34:09 +0100 Subject: [build] add make target "tidy" for running clang-tidy --- .clang-tidy | 1 + Makefile | 1 + scripts/clang-tidy.sh | 19 +++++++++++++++++++ scripts/main.mk | 14 +++++++++++--- 4 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 .clang-tidy create mode 100755 scripts/clang-tidy.sh diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000000..b32f768630 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1 @@ +Checks: '-clang-analyzer-security.insecureAPI.rand' diff --git a/Makefile b/Makefile index 1baddf711a..6f64e2c745 100644 --- a/Makefile +++ b/Makefile @@ -69,6 +69,7 @@ run-valgrind-linux: linux # Generates a compilation database with ninja for use in clang tooling compdb: ; $(RUN) Ninja/compdb +tidy: ; $(RUN) tidy .PHONY: android android-lib # Builds a particular android architecture. diff --git a/scripts/clang-tidy.sh b/scripts/clang-tidy.sh new file mode 100755 index 0000000000..a0a0aa20e4 --- /dev/null +++ b/scripts/clang-tidy.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +export PATH="`pwd`/.mason:${PATH}" MASON_DIR="`pwd`/.mason" + +command -v ${CLANG_TIDY:-clang-tidy} >/dev/null 2>&1 || { + echo "Can't find ${CLANG_TIDY:-clang-tidy} in PATH." + if [ -z ${CLANG_TIDY} ]; then + echo "Alternatively, you can set CLANG_TIDY to point to clang-tidy." + fi + exit 1 +} + +cd build/${HOST}-${HOST_VERSION}/${BUILDTYPE} + +git ls-files '../../../src/mbgl/*.cpp' '../../../platform/*.cpp' '../../../test/*.cpp' | \ + xargs -I{} -P ${JOBS} ${CLANG_TIDY:-clang-tidy} -header-filter='\/mbgl\/' {} diff --git a/scripts/main.mk b/scripts/main.mk index 8df100decc..eab78ef626 100644 --- a/scripts/main.mk +++ b/scripts/main.mk @@ -3,12 +3,12 @@ ifeq (,$(V)) endif # Determine host platform -HOST ?= $(BUILD) +export HOST ?= $(BUILD) # Defines host defaults include scripts/$(HOST)/defaults.mk -HOST_VERSION ?= $(BUILD_VERSION) +export HOST_VERSION ?= $(BUILD_VERSION) # Optionally include version-specific host defaults -include scripts/$(HOST)/$(HOST_VERSION)/defaults.mk @@ -20,7 +20,7 @@ ifneq (,$(wildcard scripts/$(HOST)/$(HOST_VERSION)/configure.sh)) CONFIGURE_FILES += scripts/$(HOST)/$(HOST_VERSION)/configure.sh endif -HOST_SLUG = $(HOST)-$(HOST_VERSION) +export HOST_SLUG = $(HOST)-$(HOST_VERSION) CONFIGURE_FILES = scripts/$(HOST)/configure.sh ifneq (,$(wildcard scripts/$(HOST)/$(HOST_VERSION)/configure.sh)) CONFIGURE_FILES += scripts/$(HOST)/$(HOST_VERSION)/configure.sh @@ -153,6 +153,14 @@ Ninja/compdb: Ninja/__project__ $(QUIET)$(ENV) deps/ninja/ninja-$(HOST) -C build/$(HOST_SLUG)/$(BUILDTYPE) \ -t compdb cc cc_s cxx objc objcxx > $(OUTPUT) +#### Tidy ###################################################################### + +tidy: Ninja/compdb + @printf "$(TEXT_BOLD)$(COLOR_GREEN)* Generating header files...$(FORMAT_END)\n" + $(QUIET)$(ENV) deps/ninja/ninja-$(HOST) -C build/$(HOST_SLUG)/$(BUILDTYPE) version shaders + @printf "$(TEXT_BOLD)$(COLOR_GREEN)* Running tidy...$(FORMAT_END)\n" + @./scripts/clang-tidy.sh + #### Run tests ################################################################# test-%: Makefile/test -- cgit v1.2.1