summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2015-11-30 18:47:30 +0100
committerKonstantin Käfer <mail@kkaefer.com>2015-12-03 11:13:43 +0100
commit678a5ca91e7e763efc5140102ea9d537b05308e4 (patch)
treee9ec8a0501a54c29dd48db47a502210d93fa945e
parente5f136a16a9482d6ae4df65166a353e8ecd2f03f (diff)
downloadqtlocation-mapboxgl-678a5ca91e7e763efc5140102ea9d537b05308e4.tar.gz
[build] add ninja + compilation database support
-rw-r--r--Makefile7
-rwxr-xr-xdeps/ninja/ninja-linuxbin0 -> 166960 bytes
-rwxr-xr-xdeps/ninja/ninja-osxbin0 -> 171356 bytes
-rw-r--r--scripts/main.mk17
4 files changed, 23 insertions, 1 deletions
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
--- /dev/null
+++ b/deps/ninja/ninja-linux
Binary files differ
diff --git a/deps/ninja/ninja-osx b/deps/ninja/ninja-osx
new file mode 100755
index 0000000000..64fcacc550
--- /dev/null
+++ b/deps/ninja/ninja-osx
Binary files 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