All of lore.kernel.org
 help / color / mirror / Atom feed
From: "hongxu" <hongxu.jia@windriver.com>
To: randy.macleod@windriver.com, philip@balister.org,
	akuster808@gmail.com, marek.belisko@gmail.com,
	yocto@yoctoproject.org
Subject: [meta-tensorflow][PATCH 21/25] add classes/bazel-base.bbclass and imporve classes/bazel-base.bbclass
Date: Wed, 16 Dec 2020 21:08:18 +0800	[thread overview]
Message-ID: <20201216130822.28476-22-hongxu.jia@windriver.com> (raw)
In-Reply-To: <20201216130822.28476-1-hongxu.jia@windriver.com>

- Move common config settings to bazel-base.bbclass

- Improve bazel_get_flags to make each flag per line with comments

- Use BAZEL_MEM rather than hardcoded for option --local_ram_resources

- Explicitly remove dir ${BAZEL_DIR} before do_clean

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 classes/bazel-base.bbclass                   | 11 +++++
 classes/bazel.bbclass                        | 47 ++++++++++++--------
 recipes-devtools/bazel/bazel-native_3.7.1.bb |  6 +--
 3 files changed, 41 insertions(+), 23 deletions(-)
 create mode 100644 classes/bazel-base.bbclass

diff --git a/classes/bazel-base.bbclass b/classes/bazel-base.bbclass
new file mode 100644
index 0000000..a067733
--- /dev/null
+++ b/classes/bazel-base.bbclass
@@ -0,0 +1,11 @@
+export JAVA_HOME="${STAGING_LIBDIR_NATIVE}/jvm/openjdk-8-native"
+
+BAZEL_JOBS ??= "4"
+
+# Memory 4GB
+BAZEL_MEM ??= "4096"
+
+TS_DL_DIR ??= "${DL_DIR}"
+
+CCACHE_DISABLE = "1"
+
diff --git a/classes/bazel.bbclass b/classes/bazel.bbclass
index 3ace2ba..8a3dadf 100644
--- a/classes/bazel.bbclass
+++ b/classes/bazel.bbclass
@@ -3,6 +3,8 @@ DEPENDS += "bazel-native \
           "
 DEPENDS_append_class-target = " python3"
 
+inherit bazel-base
+
 BAZEL_DIR ?= "${WORKDIR}/bazel"
 BAZEL_OUTPUTBASE_DIR ?= "${BAZEL_DIR}/output_base"
 export BAZEL_ARGS="--output_user_root=${BAZEL_DIR}/user_root \
@@ -11,8 +13,6 @@ export BAZEL_ARGS="--output_user_root=${BAZEL_DIR}/user_root \
                    --batch  \
                   "
 
-export JAVA_HOME="${STAGING_LIBDIR_NATIVE}/jvm/openjdk-8-native"
-
 BAZEL ?= "${BAZEL_DIR}/bazel"
 
 do_prepare_recipe_sysroot[postfuncs] += "do_install_bazel"
@@ -26,56 +26,64 @@ do_install_bazel() {
 def bazel_get_flags(d):
     flags = ""
     for i in d.getVar("CC").split()[1:]:
-        flags += "--conlyopt=%s --cxxopt=%s --linkopt=%s " % (i, i, i)
+        flags += "# From CC\n"
+        flags += "build --conlyopt=%s --cxxopt=%s --linkopt=%s\n" % (i, i, i)
 
     for i in d.getVar("CFLAGS").split():
         if i == "-g":
             continue
-        flags += "--conlyopt=%s " % i
+        flags += "# From CFLAGS\n"
+        flags += "build --conlyopt=%s\n" % i
 
     for i in d.getVar("BUILD_CFLAGS").split():
-        flags += "--host_conlyopt=%s " % i
+        flags += "# From BUILD_CFLAGS\n"
+        flags += "build --host_conlyopt=%s\n" % i
 
     for i in d.getVar("CXXFLAGS").split():
         if i == "-g":
             continue
-        flags += "--cxxopt=%s " % i
+        flags += "# From CXXFLAGS\n"
+        flags += "build --cxxopt=%s\n" % i
 
     for i in d.getVar("BUILD_CXXFLAGS").split():
-        flags += "--host_cxxopt=%s " % i
+        flags += "# From BUILD_CXXFLAGS\n"
+        flags += "build --host_cxxopt=%s\n" % i
 
     for i in d.getVar("CPPFLAGS").split():
         if i == "-g":
             continue
-        flags += "--conlyopt=%s --cxxopt=%s " % (i, i)
+        flags += "# From CPPFLAGS\n"
+        flags += "build --conlyopt=%s --cxxopt=%s\n" % (i, i)
 
     for i in d.getVar("BUILD_CPPFLAGS").split():
-        flags += "--host_conlyopt=%s --host_cxxopt=%s " % (i, i)
+        flags += "# From BUILD_CPPFLAGS\n"
+        flags += "build --host_conlyopt=%s --host_cxxopt=%s\n" % (i, i)
 
     for i in d.getVar("LDFLAGS").split():
         if i == "-Wl,--as-needed":
             continue
-        flags += "--linkopt=%s " % i
+        flags += "# From LDFLAGS\n"
+        flags += "build --linkopt=%s\n" % i
 
     for i in d.getVar("BUILD_LDFLAGS").split():
         if i == "-Wl,--as-needed":
             continue
-        flags += "--host_linkopt=%s " % i
+        flags += "# From BUILD_LDFLAGS\n"
+        flags += "build --host_linkopt=%s\n" % i
 
     for i in d.getVar("TOOLCHAIN_OPTIONS").split():
         if i == "-Wl,--as-needed":
             continue
-        flags += "--linkopt=%s " % i
+        flags += "# From TOOLCHAIN_OPTIONS\n"
+        flags += "build --linkopt=%s\n" % i
 
     return flags
 
-TS_DL_DIR ??= "${DL_DIR}"
-BAZEL_JOBS ??= "4"
 bazel_do_configure () {
     cat > "${S}/bazelrc" <<-EOF
 build --verbose_failures
 build --spawn_strategy=standalone --genrule_strategy=standalone
-#build --jobs=${BAZEL_JOBS} --local_ram_resources=4096 --local_cpu_resources=${BAZEL_JOBS}
+build --jobs=${BAZEL_JOBS} --local_ram_resources=${BAZEL_MEM} --local_cpu_resources=${BAZEL_JOBS}
 test --verbose_failures --verbose_test_summary
 test --spawn_strategy=standalone --genrule_strategy=standalone
 
@@ -98,8 +106,10 @@ EOF
 
 bazel_do_configure_append_class-target () {
     cat >> "${S}/bazelrc" <<-EOF
-# FLAGS
-build ${@bazel_get_flags(d)}
+# FLAGS begin
+${@bazel_get_flags(d)}
+# FLAGS end
+
 build --linkopt=-Wl,-latomic
 
 EOF
@@ -109,8 +119,6 @@ EOF
 
 EXPORT_FUNCTIONS do_configure
 
-CCACHE_DISABLE = "1"
-
 PSEUDO_IGNORE_PATHS .= ",${WORKDIR}/bazel"
 
 inherit unsupportarch
@@ -125,4 +133,5 @@ clean_bazel() {
             ${BAZEL} clean
         fi
     fi
+    rm ${BAZEL_DIR} -rf
 }
diff --git a/recipes-devtools/bazel/bazel-native_3.7.1.bb b/recipes-devtools/bazel/bazel-native_3.7.1.bb
index a1575d6..03cff37 100644
--- a/recipes-devtools/bazel/bazel-native_3.7.1.bb
+++ b/recipes-devtools/bazel/bazel-native_3.7.1.bb
@@ -25,19 +25,17 @@ DEPENDS = "coreutils-native \
 
 S="${WORKDIR}"
 
-TS_DL_DIR ??= "${DL_DIR}"
+inherit bazel-base
 
-BAZEL_JOBS ??= "4"
 EXTRA_BAZEL_ARGS = " \
     --host_javabase=@local_jdk//:jdk \
     --python_path=python3 \
     --jobs=${BAZEL_JOBS} \
-    --local_ram_resources=4096 \
+    --local_ram_resources=${BAZEL_MEM} \
     --local_cpu_resources=${BAZEL_JOBS} \
 "
 
 do_compile () {
-    export JAVA_HOME="${STAGING_LIBDIR_NATIVE}/jvm/openjdk-8-native"
     TMPDIR="${TOPDIR}/bazel" \
     VERBOSE=yes \
     EXTRA_BAZEL_ARGS="${EXTRA_BAZEL_ARGS}" \
-- 
2.21.0


  parent reply	other threads:[~2020-12-16 13:09 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-16 13:07 Review request 0/25:[meta-tensorflow] upgrade tensorflow 1.13.1 -> 2.4.0.rc4 hongxu
2020-12-16 13:07 ` [meta-tensorflow][PATCH 1/25] openjdk-8-native: 212b04 -> 275b01 hongxu
2020-12-16 16:49   ` [yocto] " Kent Dorfman
2020-12-16 13:07 ` [meta-tensorflow][PATCH 2/25] bazel-native: 0.21.0 -> 3.1.0 hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 3/25] tensorflow: 1.13.0 -> 2.4.0 hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 4/25] add python3-gast 0.3.3 hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 5/25] python3-opt-einsum: add 3.3.0 hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 6/25] python3-google-pasta: add 0.2.0 hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 7/25] python3-astunparse: add 1.6.3 hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 8/25] tensorflow-estimator: 1.13 -> 2.4 hongxu
2021-01-04 10:30   ` Marek Belisko
2021-01-07 17:51     ` [yocto] " Randy MacLeod
2021-01-07 18:47       ` Marek Belisko
2021-01-07 20:47         ` Randy MacLeod
2021-01-25 18:57           ` Marek Belisko
2021-01-25 20:46             ` Randy MacLeod
2020-12-16 13:08 ` [meta-tensorflow][PATCH 9/25] bazel-native/bazel.bbclass: use default Bazel toolchain to build Yocto native tools hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 10/25] bazel-native/bazel.bbclass: replace deprecated --local_resources hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 11/25] tensorflow: update cross compile support hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 12/25] tensorflow: fix Multiple shlib providers for libtensorflow_framework.so hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 13/25] classes/bazel.bbclass: clean up bazel files before do_clean hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 14/25] python3-google-auth: 1.6.3 -> 1.24.0 hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 15/25] python3-google-auth-oauthlib: add version 0.4.2 hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 16/25] python3-pyasn1: add 0.4.8 hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 17/25] python3-pyasn1-modules: add version 0.2.8 hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 18/25] tensorboard: 1.12.2 -> 2.4 hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 19/25] tensorflow: clean up CROSSTOOL.tpl hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 20/25] bazel-native: 3.1.0 -> 3.7.1 hongxu
2020-12-16 13:08 ` hongxu [this message]
2020-12-16 13:08 ` [meta-tensorflow][PATCH 22/25] bazel-native/bazel.bbclass: support bazel build without limitation hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 23/25] BUILD.md: update quick start for tensorflow 2 hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 24/25] tensorflow: split sub packages hongxu
2020-12-16 13:08 ` [meta-tensorflow][PATCH 25/25] update LIMITATION.md hongxu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201216130822.28476-22-hongxu.jia@windriver.com \
    --to=hongxu.jia@windriver.com \
    --cc=akuster808@gmail.com \
    --cc=marek.belisko@gmail.com \
    --cc=philip@balister.org \
    --cc=randy.macleod@windriver.com \
    --cc=yocto@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.