ninja: use for CMake
authorRosen Penev <rosenp@gmail.com>
Mon, 7 Sep 2020 20:37:25 +0000 (13:37 -0700)
committerRosen Penev <rosenp@gmail.com>
Fri, 5 Mar 2021 07:49:54 +0000 (23:49 -0800)
CMake supports Ninja for faster compilation and less bugginess when it
comes to parallel compilation. That is, some CMake packages currently
have PKG_BUILD_PARALLEL set where it is not needed with ninja.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
(cherry picked from commit 54449e9c6689b17379c24ca68f52a80ec5688f22)

devel/ninja/Makefile
devel/ninja/ninja-cmake.mk [new file with mode: 0644]
devel/ninja/ninja.mk

index 73a162fa1589b3bff37376c7b32aac74dd912c88..08ab50ff5208a35580121a8a5763578324677074 100644 (file)
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ninja
 PKG_VERSION:=1.10.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/ninja-build/ninja/tar.gz/v$(PKG_VERSION)?
diff --git a/devel/ninja/ninja-cmake.mk b/devel/ninja/ninja-cmake.mk
new file mode 100644 (file)
index 0000000..3dc7deb
--- /dev/null
@@ -0,0 +1,25 @@
+include $(INCLUDE_DIR)/cmake.mk
+include ../../devel/ninja/ninja.mk
+
+CMAKE_HOST_OPTIONS += -DCMAKE_GENERATOR="Ninja"
+CMAKE_OPTIONS += -DCMAKE_GENERATOR="Ninja"
+
+define Host/Compile/Default
+       $(call Ninja,-C $(HOST_BUILD_DIR)/$(CMAKE_BINARY_SUBDIR),)
+endef
+
+define Host/Install/Default
+       $(call Ninja,-C $(HOST_BUILD_DIR)/$(CMAKE_BINARY_SUBDIR) install,DESTDIR="$(HOST_INSTALL_DIR)")
+endef
+
+define Host/Uninstall/Default
+       -$(call Ninja,-C $(HOST_BUILD_DIR)/$(CMAKE_BINARY_SUBDIR) uninstall,)
+endef
+
+define Build/Compile/Default
+       $(call Ninja,-C $(PKG_BUILD_DIR)/$(CMAKE_BINARY_SUBDIR),)
+endef
+
+define Build/Install/Default
+       $(call Ninja,-C $(PKG_BUILD_DIR)/$(CMAKE_BINARY_SUBDIR) install,DESTDIR="$(PKG_INSTALL_DIR)")
+endef
index 66554764ef82ac9a420a4c0a10e4e68cd61163e1..ef6a04a64d63fb18f028502cd4ac5f87918b8cb7 100644 (file)
@@ -6,6 +6,9 @@
 #   $(call Ninja,-C $(MY_NINJA_BUILD_DIR),$(MY_NINJA_ENV_VARS))
 # endef
 
+HOST_BUILD_DEPENDS += ninka/host
+PKG_BUILD_DEPENDS += ninja/host
+
 NINJA_ARGS:=$(filter -j%,$(filter-out -j,$(MAKEFLAGS)))
 ifneq ($(findstring c,$(OPENWRT_VERBOSE)),)
   NINJA_ARGS+=-v