Explorar o código

gn: add new host tool

Signed-off-by: Tianling Shen <[email protected]>
Tianling Shen %!s(int64=2) %!d(string=hai) anos
pai
achega
7afb855b2b
Modificáronse 3 ficheiros con 81 adicións e 0 borrados
  1. 61 0
      gn/Makefile
  2. 11 0
      gn/patches/010-gcc.patch
  3. 9 0
      gn/src/out/last_commit_position.h

+ 61 - 0
gn/Makefile

@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: GPL-3.0-only
+#
+# Copyright (C) 2022 ImmortalWrt.org
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=gn
+PKG_RELEASE:=2
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://gn.googlesource.com/gn.git
+PKG_SOURCE_DATE:=2023-01-29
+PKG_SOURCE_VERSION:=84c8431f3e03cc6226c59dd49637c15ea31169a1
+PKG_MIRROR_HASH:=3be8b3c27be8b4f16c8922d9e70d8135a66279ac3679c636b259e4e829a7a9fc
+
+PKG_LICENSE:=BSD 3-Clause
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Tianling Shen <[email protected]>
+
+ifneq ($(wildcard $(TOPDIR)/feeds/packages/devel/ninja/ninja.mk),)
+PKG_BUILD_DEPENDS+= ninja/host
+endif
+PKG_HOST_ONLY:=1
+HOST_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Package/gn
+  SECTION:=devel
+  CATEGORY:=Development
+  TITLE:=A meta-build system that generates build files for Ninja
+  URL:=https://gn.googlesource.com/gn/
+  BUILDONLY:=1
+endef
+
+define Package/gn/description
+  GN can generate Ninja build files for C, C++, Rust, Objective C,
+  and Swift source on most popular platforms.
+endef
+
+define Host/Configure
+	$(PYTHON) $(HOST_BUILD_DIR)/build/gen.py \
+		--no-last-commit-position
+endef
+
+define Host/Compile
+	ninja -C $(HOST_BUILD_DIR)/out
+endef
+
+define Host/Install
+	$(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin/
+	$(INSTALL_BIN) $(HOST_BUILD_DIR)/out/gn $(STAGING_DIR_HOSTPKG)/bin/
+endef
+
+define Host/Clean
+	$(RM) $(STAGING_DIR_HOSTPKG)/bin/gn
+endef
+
+$(eval $(call HostBuild))
+$(eval $(call BuildPackage,gn))

+ 11 - 0
gn/patches/010-gcc.patch

@@ -0,0 +1,11 @@
+--- a/build/gen.py
++++ b/build/gen.py
+@@ -368,7 +368,7 @@ def WriteGNNinja(path, platform, host, o
+     cxx = os.environ.get('CXX', 'g++')
+     ld = os.environ.get('LD', 'g++')
+     ar = os.environ.get('AR', 'ar -X64')
+-  elif platform.is_msys() or platform.is_mingw():
++  elif platform.is_msys() or platform.is_mingw() or platform.is_linux():
+     cxx = os.environ.get('CXX', 'g++')
+     ld = os.environ.get('LD', 'g++')
+     ar = os.environ.get('AR', 'ar')

+ 9 - 0
gn/src/out/last_commit_position.h

@@ -0,0 +1,9 @@
+// Generated by build/gen.py.
+
+#ifndef OUT_LAST_COMMIT_POSITION_H_
+#define OUT_LAST_COMMIT_POSITION_H_
+
+#define LAST_COMMIT_POSITION_NUM 2079
+#define LAST_COMMIT_POSITION "2079 (84c8431f3e03)"
+
+#endif  // OUT_LAST_COMMIT_POSITION_H_