From 678a5ca91e7e763efc5140102ea9d537b05308e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Mon, 30 Nov 2015 18:47:30 +0100 Subject: [build] add ninja + compilation database support --- Makefile | 7 ++++++- deps/ninja/ninja-linux | Bin 0 -> 166960 bytes deps/ninja/ninja-osx | Bin 0 -> 171356 bytes scripts/main.mk | 17 +++++++++++++++++ 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100755 deps/ninja/ninja-linux create mode 100755 deps/ninja/ninja-osx diff --git a/Makefile b/Makefile index 48fdef164d..1baddf711a 100644 --- a/Makefile +++ b/Makefile @@ -22,9 +22,10 @@ default: ; @printf "You must specify a valid target\n" #### OS X targets ############################################################## ifeq ($(BUILD),osx) -.PHONY: osx xosx run-osx run-xosx +.PHONY: osx xosx nosx run-osx run-xosx osx: ; $(RUN) HOST=osx HOST_VERSION=x86_64 Makefile/osxapp xosx: ; $(RUN) HOST=osx HOST_VERSION=x86_64 Xcode/osxapp +nosx: ; $(RUN) HOST=osx HOST_VERSION=x86_64 Ninja/osxapp run-osx: osx ; @"build/osx-x86_64/$(BUILDTYPE)/Mapbox GL.app/Contents/MacOS/Mapbox GL" run-xosx: xosx ; @"gyp/build/$(BUILDTYPE)/Mapbox GL.app/Contents/MacOS/Mapbox GL" @@ -61,10 +62,14 @@ endif .PHONY: linux run-linux run-valgrind-linux linux: ; $(RUN) Makefile/linuxapp +nlinux: ; $(RUN) Ninja/linuxapp run-linux: linux ; (cd build/linux-x86_64/$(BUILDTYPE) && ./mapbox-gl) run-valgrind-linux: linux (cd build/linux-x86_64/$(BUILDTYPE) && valgrind --leak-check=full --suppressions=../../../scripts/valgrind.sup ./mapbox-gl) +# Generates a compilation database with ninja for use in clang tooling +compdb: ; $(RUN) Ninja/compdb + .PHONY: android android-lib # Builds a particular android architecture. android-lib-%: ; $(RUN) HOST=android HOST_VERSION=$* Makefile/androidapp diff --git a/deps/ninja/ninja-linux b/deps/ninja/ninja-linux new file mode 100755 index 0000000000..e4a6202d99 Binary files /dev/null and b/deps/ninja/ninja-linux differ diff --git a/deps/ninja/ninja-osx b/deps/ninja/ninja-osx new file mode 100755 index 0000000000..64fcacc550 Binary files /dev/null and b/deps/ninja/ninja-osx differ diff --git a/scripts/main.mk b/scripts/main.mk index b4a5f9894e..8df100decc 100644 --- a/scripts/main.mk +++ b/scripts/main.mk @@ -94,6 +94,12 @@ Xcode/__project__: print-env $(SUBMODULES) config/$(HOST_SLUG).gypi $(QUIET)$(ENV) deps/run_gyp gyp/$(HOST).gyp $(GYP_FLAGS) \ -f xcode$(GYP_FLAVOR_SUFFIX) +.PHONY: Ninja/__project__ +Ninja/__project__: print-env $(SUBMODULES) config/$(HOST_SLUG).gypi + @printf "$(TEXT_BOLD)$(COLOR_GREEN)* Recreating project...$(FORMAT_END)\n" + $(QUIET)$(ENV) deps/run_gyp gyp/$(HOST).gyp -Gconfig=$(BUILDTYPE) $(GYP_FLAGS) \ + -f ninja + #### Build individual targets ################################################## NODE_PRE_GYP = $(shell npm bin)/node-pre-gyp @@ -136,6 +142,17 @@ Xcode/%: Xcode/__project__ -jobs $(JOBS) \ $(XCPRETTY) +Ninja/%: Ninja/__project__ + @printf "$(TEXT_BOLD)$(COLOR_GREEN)* Building target $*...$(FORMAT_END)\n" + $(QUIET)$(ENV) deps/ninja/ninja-$(HOST) -C build/$(HOST_SLUG)/$(BUILDTYPE) $* + + +Ninja/compdb: OUTPUT=build/$(HOST_SLUG)/$(BUILDTYPE)/compile_commands.json +Ninja/compdb: Ninja/__project__ + @printf "$(TEXT_BOLD)$(COLOR_GREEN)* Writing to $(OUTPUT)$(FORMAT_END)\n" + $(QUIET)$(ENV) deps/ninja/ninja-$(HOST) -C build/$(HOST_SLUG)/$(BUILDTYPE) \ + -t compdb cc cc_s cxx objc objcxx > $(OUTPUT) + #### Run tests ################################################################# test-%: Makefile/test -- cgit v1.2.1