| load("@bazel_skylib//rules:common_settings.bzl", "bool_flag") |
| load("@rules_jvm_external//:defs.bzl", "java_export") |
| load("//:maven.bzl", "JAZZER_API_COORDINATES", "JAZZER_COORDINATES", "JAZZER_JUNIT_COORDINATES") |
| load("//bazel:compat.bzl", "SKIP_ON_WINDOWS") |
| |
| bool_flag( |
| name = "linked_javadoc", |
| build_setting_default = False, |
| ) |
| |
| config_setting( |
| name = "emit_linked_javadoc", |
| flag_values = { |
| ":linked_javadoc": "True", |
| }, |
| visibility = ["//:__subpackages__"], |
| ) |
| |
| sh_binary( |
| name = "deploy", |
| srcs = ["deploy.sh"], |
| args = [JAZZER_COORDINATES], |
| ) |
| |
| java_export( |
| name = "jazzer-api", |
| javadocopts = select({ |
| ":emit_linked_javadoc": [ |
| "-link", |
| "https://docs.oracle.com/en/java/javase/17/docs/api/", |
| ], |
| "//conditions:default": [], |
| }), |
| maven_coordinates = JAZZER_API_COORDINATES, |
| pom_template = "//deploy:jazzer-api.pom", |
| visibility = ["//visibility:public"], |
| runtime_deps = ["//src/main/java/com/code_intelligence/jazzer/api"], |
| ) |
| |
| java_export( |
| name = "jazzer", |
| maven_coordinates = JAZZER_COORDINATES, |
| pom_template = "jazzer.pom", |
| # Do not generate an implicit javadocs target - the current target is based on the shaded deploy |
| # JAR, for which the docs JAR generated by default would be empty. |
| tags = ["no-javadocs"], |
| visibility = ["//visibility:public"], |
| runtime_deps = [ |
| "//src/main/java/com/code_intelligence/jazzer:jazzer_import", |
| ], |
| ) |
| |
| alias( |
| name = "jazzer-docs", |
| actual = "//src/main/java/com/code_intelligence/jazzer:jazzer-docs", |
| ) |
| |
| alias( |
| name = "jazzer-sources", |
| actual = "//src/main/java/com/code_intelligence/jazzer:jazzer-sources", |
| ) |
| |
| java_export( |
| name = "jazzer-junit", |
| # Exclude the unshaded classes comprising com.code-intelligence:jazzer since the java_library |
| # target comprising jazzer-junit depend on the individual libraries, not the shaded jar. |
| deploy_env = ["//src/main/java/com/code_intelligence/jazzer:jazzer_lib"], |
| javadocopts = select({ |
| ":emit_linked_javadoc": [ |
| "-link", |
| "https://docs.oracle.com/en/java/javase/17/docs/api/", |
| "-link", |
| "https://codeintelligencetesting.github.io/jazzer-docs/jazzer-api/", |
| "-link", |
| "https://codeintelligencetesting.github.io/jazzer-docs/jazzer/", |
| "-link", |
| "https://junit.org/junit5/docs/current/api/", |
| ], |
| "//conditions:default": [], |
| }), |
| maven_coordinates = JAZZER_JUNIT_COORDINATES, |
| pom_template = "jazzer-junit.pom", |
| visibility = ["//visibility:public"], |
| runtime_deps = [ |
| # These deps' only effect is to include a dependency on the 'jazzer' and 'jazzer-api' Maven artifacts in the |
| # POM. |
| "//deploy:jazzer", |
| "//deploy:jazzer-api", |
| "//src/main/java/com/code_intelligence/jazzer/junit", |
| ], |
| ) |
| |
| [ |
| sh_test( |
| name = artifact + "_artifact_test", |
| srcs = [artifact + "_artifact_test.sh"], |
| args = [ |
| "$(rootpath :%s)" % artifact, |
| ], |
| data = [ |
| ":" + artifact, |
| "@local_jdk//:bin/jar", |
| ], |
| tags = [ |
| # Coverage instrumentation necessarily adds files to the jar that we |
| # wouldn't want to release and thus causes this test to fail. |
| "no-coverage", |
| ], |
| target_compatible_with = SKIP_ON_WINDOWS, |
| ) |
| for artifact in [ |
| "jazzer-api", |
| "jazzer", |
| "jazzer-junit", |
| ] |
| ] |