1*33edd672SMarkload("@bazel_skylib//rules:common_settings.bzl", "bool_flag") 2*33edd672SMarkload("@rules_jvm_external//:defs.bzl", "java_export") 3*33edd672SMarkload("//:maven.bzl", "JAZZER_API_COORDINATES", "JAZZER_COORDINATES", "JAZZER_JUNIT_COORDINATES") 4*33edd672SMarkload("//bazel:compat.bzl", "SKIP_ON_WINDOWS") 5*33edd672SMark 6*33edd672SMarkbool_flag( 7*33edd672SMark name = "linked_javadoc", 8*33edd672SMark build_setting_default = False, 9*33edd672SMark) 10*33edd672SMark 11*33edd672SMarkconfig_setting( 12*33edd672SMark name = "emit_linked_javadoc", 13*33edd672SMark flag_values = { 14*33edd672SMark ":linked_javadoc": "True", 15*33edd672SMark }, 16*33edd672SMark visibility = ["//:__subpackages__"], 17*33edd672SMark) 18*33edd672SMark 19*33edd672SMarksh_binary( 20*33edd672SMark name = "deploy", 21*33edd672SMark srcs = ["deploy.sh"], 22*33edd672SMark args = [JAZZER_COORDINATES], 23*33edd672SMark) 24*33edd672SMark 25*33edd672SMarkjava_export( 26*33edd672SMark name = "jazzer-api", 27*33edd672SMark javadocopts = select({ 28*33edd672SMark ":emit_linked_javadoc": [ 29*33edd672SMark "-link", 30*33edd672SMark "https://docs.oracle.com/en/java/javase/17/docs/api/", 31*33edd672SMark ], 32*33edd672SMark "//conditions:default": [], 33*33edd672SMark }), 34*33edd672SMark maven_coordinates = JAZZER_API_COORDINATES, 35*33edd672SMark pom_template = "//deploy:jazzer-api.pom", 36*33edd672SMark visibility = ["//visibility:public"], 37*33edd672SMark runtime_deps = ["//src/main/java/com/code_intelligence/jazzer/api"], 38*33edd672SMark) 39*33edd672SMark 40*33edd672SMarkjava_export( 41*33edd672SMark name = "jazzer", 42*33edd672SMark maven_coordinates = JAZZER_COORDINATES, 43*33edd672SMark pom_template = "jazzer.pom", 44*33edd672SMark # Do not generate an implicit javadocs target - the current target is based on the shaded deploy 45*33edd672SMark # JAR, for which the docs JAR generated by default would be empty. 46*33edd672SMark tags = ["no-javadocs"], 47*33edd672SMark visibility = ["//visibility:public"], 48*33edd672SMark runtime_deps = [ 49*33edd672SMark "//src/main/java/com/code_intelligence/jazzer:jazzer_import", 50*33edd672SMark ], 51*33edd672SMark) 52*33edd672SMark 53*33edd672SMarkalias( 54*33edd672SMark name = "jazzer-docs", 55*33edd672SMark actual = "//src/main/java/com/code_intelligence/jazzer:jazzer-docs", 56*33edd672SMark) 57*33edd672SMark 58*33edd672SMarkalias( 59*33edd672SMark name = "jazzer-sources", 60*33edd672SMark actual = "//src/main/java/com/code_intelligence/jazzer:jazzer-sources", 61*33edd672SMark) 62*33edd672SMark 63*33edd672SMarkjava_export( 64*33edd672SMark name = "jazzer-junit", 65*33edd672SMark # Exclude the unshaded classes comprising com.code-intelligence:jazzer since the java_library 66*33edd672SMark # target comprising jazzer-junit depend on the individual libraries, not the shaded jar. 67*33edd672SMark deploy_env = ["//src/main/java/com/code_intelligence/jazzer:jazzer_lib"], 68*33edd672SMark javadocopts = select({ 69*33edd672SMark ":emit_linked_javadoc": [ 70*33edd672SMark "-link", 71*33edd672SMark "https://docs.oracle.com/en/java/javase/17/docs/api/", 72*33edd672SMark "-link", 73*33edd672SMark "https://codeintelligencetesting.github.io/jazzer-docs/jazzer-api/", 74*33edd672SMark "-link", 75*33edd672SMark "https://codeintelligencetesting.github.io/jazzer-docs/jazzer/", 76*33edd672SMark "-link", 77*33edd672SMark "https://junit.org/junit5/docs/current/api/", 78*33edd672SMark ], 79*33edd672SMark "//conditions:default": [], 80*33edd672SMark }), 81*33edd672SMark maven_coordinates = JAZZER_JUNIT_COORDINATES, 82*33edd672SMark pom_template = "jazzer-junit.pom", 83*33edd672SMark visibility = ["//visibility:public"], 84*33edd672SMark runtime_deps = [ 85*33edd672SMark # These deps' only effect is to include a dependency on the 'jazzer' and 'jazzer-api' Maven artifacts in the 86*33edd672SMark # POM. 87*33edd672SMark "//deploy:jazzer", 88*33edd672SMark "//deploy:jazzer-api", 89*33edd672SMark "//src/main/java/com/code_intelligence/jazzer/junit", 90*33edd672SMark ], 91*33edd672SMark) 92*33edd672SMark 93*33edd672SMark[ 94*33edd672SMark sh_test( 95*33edd672SMark name = artifact + "_artifact_test", 96*33edd672SMark srcs = [artifact + "_artifact_test.sh"], 97*33edd672SMark args = [ 98*33edd672SMark "$(rootpath :%s)" % artifact, 99*33edd672SMark ], 100*33edd672SMark data = [ 101*33edd672SMark ":" + artifact, 102*33edd672SMark "@local_jdk//:bin/jar", 103*33edd672SMark ], 104*33edd672SMark tags = [ 105*33edd672SMark # Coverage instrumentation necessarily adds files to the jar that we 106*33edd672SMark # wouldn't want to release and thus causes this test to fail. 107*33edd672SMark "no-coverage", 108*33edd672SMark ], 109*33edd672SMark target_compatible_with = SKIP_ON_WINDOWS, 110*33edd672SMark ) 111*33edd672SMark for artifact in [ 112*33edd672SMark "jazzer-api", 113*33edd672SMark "jazzer", 114*33edd672SMark "jazzer-junit", 115*33edd672SMark ] 116*33edd672SMark] 117