diff --git a/mace/BUILD.bazel b/mace/BUILD.bazel index f9af9abe7cb3267da42fb24c322077b8523717f0..8a3fe30b990e1d3f9b8e32b90fc478d4bff12a0f 100644 --- a/mace/BUILD.bazel +++ b/mace/BUILD.bazel @@ -1,3 +1,11 @@ +config_setting( + name = "linux_base", + define_values = { + "linux_base": "true", + }, + visibility = ["//visibility:public"], +) + config_setting( name = "android", values = { diff --git a/mace/libmace/BUILD.bazel b/mace/libmace/BUILD.bazel index c1588792dc967ee55b24e373854ce633f65e3484..f884998e24a2725e427a2514d0d09ed1255b3f54 100644 --- a/mace/libmace/BUILD.bazel +++ b/mace/libmace/BUILD.bazel @@ -15,6 +15,7 @@ load( "if_hexagon_enabled", "if_hta_enabled", "if_linux", + "if_linux_base", "if_neon_enabled", "if_opencl_enabled", "if_openmp_enabled", @@ -99,9 +100,10 @@ genrule( "//mace/public", "//mace/utils", "//mace/proto:mace_cc", - "//mace/port/linux_base:port_linux_base", "@com_google_protobuf//:protobuf_lite", - ] + if_android([ + ] + if_linux_base([ + "//mace/port/linux_base:port_linux_base", + ]) + if_android([ "//mace/port/android:port_android", ]) + if_linux([ "//mace/port/linux:port_linux", @@ -134,13 +136,15 @@ genrule( "$(locations //mace/libmace:libmace) " + "$(locations //mace/port:port_base) " + "$(locations //mace/port/posix:port_posix) " + + if_linux_base( + "$(locations //mace/port/linux_base:port_linux_base) ", + default_value = "", + ) + if_android( - "$(locations //mace/port/linux_base:port_linux_base) " + "$(locations //mace/port/android:port_android) ", default_value = "", ) + if_linux( - "$(locations //mace/port/linux_base:port_linux_base) " + "$(locations //mace/port/linux:port_linux) ", default_value = "", ) + diff --git a/mace/mace.bzl b/mace/mace.bzl index 1f577e7e47d02f6ce23391205110687b49d1efdf..d379c6e7979c49cbfa884e6c9597eadd21a8b04b 100644 --- a/mace/mace.bzl +++ b/mace/mace.bzl @@ -1,5 +1,11 @@ # -*- Python -*- +def if_linux_base(a, default_value = []): + return select({ + "//mace:linux_base": a, + "//conditions:default": default_value, + }) + def if_android(a, default_value = []): return select({ "//mace:android": a, diff --git a/tools/bazel.rc b/tools/bazel.rc index f0c6d64f27ebc1bc964cd6e487a9f6d1b5112a20..7081296c9fd2ea9060f6410be42c6392b8bc5b42 100644 --- a/tools/bazel.rc +++ b/tools/bazel.rc @@ -12,6 +12,7 @@ build --copt=-DGEMMLOWP_USE_MACE_THREAD_POOL build --copt=-DMACE_DEPTHWISE_U8_USE_MULTI_THREAD # Usage example: bazel build --config android +build:android --define linux_base=true build:android --linkopt=-pie build:android --linkopt=-ldl build:android --linkopt=-llog @@ -24,6 +25,7 @@ build:android --copt -Wno-mismatched-tags build:android --copt -Wno-missing-braces # Linux host build, --config linux +build:linux --define linux_base=true build:linux --define linux=true # MacOS host build, --config darwin @@ -44,6 +46,7 @@ build:ios --copt -Wno-missing-braces # Used to fix library not find linking issue, see also: # https://github.com/bazelbuild/bazel/issues/6653, # https://github.com/bazelbuild/bazel/issues/6189 +build:arm_linux_gnueabihf --define linux_base=true build:arm_linux_gnueabihf --define linux=true build:arm_linux_gnueabihf --spawn_strategy=standalone build:arm_linux_gnueabihf --distinct_host_configuration=true @@ -58,6 +61,7 @@ build:arm_linux_gnueabihf --copt -Wno-sequence-point build:arm_linux_gnueabihf --copt -Wno-implicit-fallthrough # Usage example: bazel build --config aarch64_linux_gnu +build:aarch64_linux_gnu --define linux_base=true build:aarch64_linux_gnu --define linux=true build:aarch64_linux_gnu --spawn_strategy=standalone build:aarch64_linux_gnu --distinct_host_configuration=true