xref: /aosp_15_r20/external/jazzer-api/deploy/BUILD.bazel (revision 33edd6723662ea34453766bfdca85dbfdd5342b8)
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