diff --git a/bazel/deps.bzl b/bazel/deps.bzl index 0b37e1f..6632665 100644 --- a/bazel/deps.bzl +++ b/bazel/deps.bzl @@ -6,6 +6,6 @@ def deps(): if "build_bazel_rules_nodejs" not in excludes: http_archive( name = "build_bazel_rules_nodejs", - sha256 = "0f2de53628e848c1691e5729b515022f5a77369c76a09fbe55611e12731c90e3", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/2.0.1/rules_nodejs-2.0.1.tar.gz"], + sha256 = "4501158976b9da216295ac65d872b1be51e3eeb805273e68c516d2eb36ae1fbb", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.1/rules_nodejs-4.4.1.tar.gz"], ) diff --git a/bazel/test_external/BUILD b/bazel/test_external/BUILD index 136b805..f2b720c 100644 --- a/bazel/test_external/BUILD +++ b/bazel/test_external/BUILD @@ -10,16 +10,37 @@ wasm_cc_binary( cc_target = ":hello-world", ) +BASE_LINKOPTS = [ + "--bind", # Enable embind + "-sMODULARIZE", +] + +RELEASE_OPTS = [ + "--closure 1", # Run the closure compiler +] + +DEBUG_OPTS = [ + "--closure 0", # Do not use closure +] + +config_setting( + name = "release_opts", + values = {"compilation_mode": "opt"}, +) + +config_setting( + name = "debug_opts", + values = {"compilation_mode": "dbg"}, +) + cc_binary( name = "hello-embind", srcs = ["hello-embind.cc"], - # It's probably a good idea to use select() and config_setting - # to add different linkopts to BASE_LINKOPTS depending on things - # like a "opt" or "dbg" compilation mode. - linkopts = [ - "--bind", # Enable embind - "-sMODULARIZE", - ], + linkopts = select({ + ":debug_opts": BASE_LINKOPTS + DEBUG_OPTS, + ":release_opts": BASE_LINKOPTS + RELEASE_OPTS, + "//conditions:default": BASE_LINKOPTS + RELEASE_OPTS, + }), # This target won't build successfully on its own because of missing emscripten # headers etc. Therefore, we hide it from wildcards. tags = ["manual"], diff --git a/test/test_bazel.sh b/test/test_bazel.sh index ce1a13c..5b06692 100755 --- a/test/test_bazel.sh +++ b/test/test_bazel.sh @@ -26,4 +26,6 @@ bazel build //hello-world:hello-world-wasm-simd cd test_external bazel build //:hello-world-wasm -bazel build //:hello-embind-wasm +bazel build //:hello-embind-wasm --compilation_mode dbg # debug +# Test use of the closure compiler +bazel build //:hello-embind-wasm --compilation_mode opt # release