summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.clang-tidy1
-rw-r--r--Makefile1
-rwxr-xr-xscripts/clang-tidy.sh19
-rw-r--r--scripts/main.mk14
4 files changed, 32 insertions, 3 deletions
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