1*33edd672SMark# Copyright 2021 Code Intelligence GmbH 2*33edd672SMark# 3*33edd672SMark# Licensed under the Apache License, Version 2.0 (the "License"); 4*33edd672SMark# you may not use this file except in compliance with the License. 5*33edd672SMark# You may obtain a copy of the License at 6*33edd672SMark# 7*33edd672SMark# http://www.apache.org/licenses/LICENSE-2.0 8*33edd672SMark# 9*33edd672SMark# Unless required by applicable law or agreed to in writing, software 10*33edd672SMark# distributed under the License is distributed on an "AS IS" BASIS, 11*33edd672SMark# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*33edd672SMark# See the License for the specific language governing permissions and 13*33edd672SMark# limitations under the License. 14*33edd672SMark 15*33edd672SMark"""Contains the external dependencies required to build Jazzer (but not the examples).""" 16*33edd672SMark 17*33edd672SMarkload("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_jar") 18*33edd672SMarkload("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") 19*33edd672SMarkload("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") 20*33edd672SMark 21*33edd672SMarkdef jazzer_dependencies(android = False): 22*33edd672SMark maybe( 23*33edd672SMark http_archive, 24*33edd672SMark name = "platforms", 25*33edd672SMark sha256 = "5308fc1d8865406a49427ba24a9ab53087f17f5266a7aabbfc28823f3916e1ca", 26*33edd672SMark urls = [ 27*33edd672SMark "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.6/platforms-0.0.6.tar.gz", 28*33edd672SMark "https://github.com/bazelbuild/platforms/releases/download/0.0.6/platforms-0.0.6.tar.gz", 29*33edd672SMark ], 30*33edd672SMark ) 31*33edd672SMark 32*33edd672SMark maybe( 33*33edd672SMark http_archive, 34*33edd672SMark name = "bazel_skylib", 35*33edd672SMark sha256 = "b8a1527901774180afc798aeb28c4634bdccf19c4d98e7bdd1ce79d1fe9aaad7", 36*33edd672SMark urls = [ 37*33edd672SMark "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.4.1/bazel-skylib-1.4.1.tar.gz", 38*33edd672SMark "https://github.com/bazelbuild/bazel-skylib/releases/download/1.4.1/bazel-skylib-1.4.1.tar.gz", 39*33edd672SMark ], 40*33edd672SMark ) 41*33edd672SMark 42*33edd672SMark maybe( 43*33edd672SMark http_archive, 44*33edd672SMark name = "io_bazel_rules_kotlin", 45*33edd672SMark sha256 = "01293740a16e474669aba5b5a1fe3d368de5832442f164e4fbfc566815a8bc3a", 46*33edd672SMark url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.8/rules_kotlin_release.tgz", 47*33edd672SMark ) 48*33edd672SMark 49*33edd672SMark maybe( 50*33edd672SMark http_archive, 51*33edd672SMark name = "rules_jvm_external", 52*33edd672SMark sha256 = "f86fd42a809e1871ca0aabe89db0d440451219c3ce46c58da240c7dcdc00125f", 53*33edd672SMark strip_prefix = "rules_jvm_external-5.2", 54*33edd672SMark url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/5.2/rules_jvm_external-5.2.tar.gz", 55*33edd672SMark ) 56*33edd672SMark 57*33edd672SMark maybe( 58*33edd672SMark http_archive, 59*33edd672SMark name = "build_bazel_apple_support", 60*33edd672SMark sha256 = "ce80afe548fd71ef27b48cb48a283ca21256a0900caec3c7ed9416241e000bfe", 61*33edd672SMark strip_prefix = "apple_support-dab92884a6f031e63ac263e5de8a02f13ac42508", 62*33edd672SMark url = "https://github.com/bazelbuild/apple_support/archive/dab92884a6f031e63ac263e5de8a02f13ac42508.tar.gz", 63*33edd672SMark ) 64*33edd672SMark 65*33edd672SMark maybe( 66*33edd672SMark http_archive, 67*33edd672SMark name = "com_google_absl", 68*33edd672SMark sha256 = "5366d7e7fa7ba0d915014d387b66d0d002c03236448e1ba9ef98122c13b35c36", 69*33edd672SMark strip_prefix = "abseil-cpp-20230125.3", 70*33edd672SMark url = "https://github.com/abseil/abseil-cpp/archive/refs/tags/20230125.3.tar.gz", 71*33edd672SMark ) 72*33edd672SMark 73*33edd672SMark maybe( 74*33edd672SMark http_archive, 75*33edd672SMark name = "com_github_johnynek_bazel_jar_jar", 76*33edd672SMark sha256 = "85260ebdaf86cf0ce6d0d0f0a3268a09f628c815513141a6b99a023116523f96", 77*33edd672SMark strip_prefix = "bazel_jar_jar-78c8c13ff437e8397ffe80c9a4c905376720a339", 78*33edd672SMark url = "https://github.com/bazeltools/bazel_jar_jar/archive/78c8c13ff437e8397ffe80c9a4c905376720a339.tar.gz", 79*33edd672SMark ) 80*33edd672SMark 81*33edd672SMark maybe( 82*33edd672SMark http_archive, 83*33edd672SMark name = "com_github_jhalterman_typetools", 84*33edd672SMark build_file = Label("//third_party:typetools.BUILD"), 85*33edd672SMark sha256 = "4e11a613aebb3c35deef58d5d942e44802da1a6c6ef7f127419261f00a0a082c", 86*33edd672SMark strip_prefix = "typetools-commit-887153d2a9adf032fac9f145594d0a0248618d48", 87*33edd672SMark url = "https://github.com/CodeIntelligenceTesting/typetools/archive/refs/tags/commit-887153d2a9adf032fac9f145594d0a0248618d48.tar.gz", 88*33edd672SMark ) 89*33edd672SMark 90*33edd672SMark maybe( 91*33edd672SMark http_archive, 92*33edd672SMark build_file = Label("//third_party:classgraph.BUILD"), 93*33edd672SMark name = "com_github_classgraph_classgraph", 94*33edd672SMark sha256 = "39a594834ec24ef8f604485e4ee54b8b6dfe0b0ee5020e70601a9dab538d5c9e", 95*33edd672SMark strip_prefix = "classgraph-classgraph-4.8.160", 96*33edd672SMark url = "https://github.com/classgraph/classgraph/archive/refs/tags/classgraph-4.8.160.tar.gz", 97*33edd672SMark ) 98*33edd672SMark 99*33edd672SMark maybe( 100*33edd672SMark http_archive, 101*33edd672SMark name = "fmeum_rules_jni", 102*33edd672SMark sha256 = "530a02c4d86f7bcfabd61e7de830f8c78fcb2ea70943eab8f2bfdad96620f1f5", 103*33edd672SMark strip_prefix = "rules_jni-0.7.0", 104*33edd672SMark url = "https://github.com/fmeum/rules_jni/archive/refs/tags/v0.7.0.tar.gz", 105*33edd672SMark ) 106*33edd672SMark 107*33edd672SMark maybe( 108*33edd672SMark http_jar, 109*33edd672SMark name = "net_bytebuddy_byte_buddy_agent", 110*33edd672SMark sha256 = "55f19862b870f5d85890ba5386b1b45e9bbc88d5fe1f819abe0c788b4929fa6b", 111*33edd672SMark url = "https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy-agent/1.14.5/byte-buddy-agent-1.14.5.jar", 112*33edd672SMark ) 113*33edd672SMark 114*33edd672SMark maybe( 115*33edd672SMark http_jar, 116*33edd672SMark name = "org_ow2_asm_asm", 117*33edd672SMark sha256 = "b62e84b5980729751b0458c534cf1366f727542bb8d158621335682a460f0353", 118*33edd672SMark url = "https://repo1.maven.org/maven2/org/ow2/asm/asm/9.5/asm-9.5.jar", 119*33edd672SMark ) 120*33edd672SMark 121*33edd672SMark maybe( 122*33edd672SMark http_jar, 123*33edd672SMark name = "org_ow2_asm_asm_commons", 124*33edd672SMark sha256 = "72eee9fbafb9de8d9463f20dd584a48ceeb7e5152ad4c987bfbe17dd4811c9ae", 125*33edd672SMark url = "https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar", 126*33edd672SMark ) 127*33edd672SMark 128*33edd672SMark maybe( 129*33edd672SMark http_jar, 130*33edd672SMark name = "org_ow2_asm_asm_tree", 131*33edd672SMark sha256 = "3c33a648191079aeaeaeb7c19a49b153952f9e40fe86fbac5205554ddd9acd94", 132*33edd672SMark url = "https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar", 133*33edd672SMark ) 134*33edd672SMark 135*33edd672SMark maybe( 136*33edd672SMark http_jar, 137*33edd672SMark name = "com_github_jsqlparser_jsqlparser", 138*33edd672SMark sha256 = "61b02b8520fda987b7bc12878833b223234450e505de83c36e78abe6d69c0184", 139*33edd672SMark url = "https://repo1.maven.org/maven2/com/github/jsqlparser/jsqlparser/4.6/jsqlparser-4.6.jar", 140*33edd672SMark ) 141*33edd672SMark 142*33edd672SMark maybe( 143*33edd672SMark http_jar, 144*33edd672SMark name = "com_google_errorprone_error_prone_annotations", 145*33edd672SMark sha256 = "9e6814cb71816988a4fd1b07a993a8f21bb7058d522c162b1de849e19bea54ae", 146*33edd672SMark url = "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations/2.18.0/error_prone_annotations-2.18.0.jar", 147*33edd672SMark ) 148*33edd672SMark 149*33edd672SMark maybe( 150*33edd672SMark http_jar, 151*33edd672SMark name = "com_google_errorprone_error_prone_type_annotations", 152*33edd672SMark sha256 = "d2ab73bc6807277f7463391504313e47bc3465ab1916339c8e82be633a9ab375", 153*33edd672SMark url = "https://repo1.maven.org/maven2/com/google/errorprone/error_prone_type_annotations/2.18.0/error_prone_type_annotations-2.18.0.jar", 154*33edd672SMark ) 155*33edd672SMark 156*33edd672SMark maybe( 157*33edd672SMark http_jar, 158*33edd672SMark name = "com_google_protobuf_protobuf_java", 159*33edd672SMark sha256 = "18a057f5e0f828daa92b71c19df91f6bcc2aad067ca2cdd6b5698055ca7bcece", 160*33edd672SMark # Keep in sync with com_google_protobuf in WORKSPACE. 161*33edd672SMark url = "https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.23.2/protobuf-java-3.23.2.jar", 162*33edd672SMark ) 163*33edd672SMark 164*33edd672SMark maybe( 165*33edd672SMark http_archive, 166*33edd672SMark name = "jazzer_jacoco", 167*33edd672SMark build_file = Label("//third_party:jacoco_internal.BUILD"), 168*33edd672SMark patches = [ 169*33edd672SMark Label("//third_party:jacoco-make-probe-adapter-subclassable.patch"), 170*33edd672SMark Label("//third_party:jacoco-make-probe-inserter-subclassable.patch"), 171*33edd672SMark Label("//third_party:jacoco-ignore-offline-instrumentation.patch"), 172*33edd672SMark ], 173*33edd672SMark sha256 = "b6b90469db034dff01a8577d8e91da51bc40f328a988359028652771f20abf1d", 174*33edd672SMark strip_prefix = "jacoco-0.8.9", 175*33edd672SMark url = "https://github.com/jacoco/jacoco/archive/refs/tags/v0.8.9.tar.gz", 176*33edd672SMark ) 177*33edd672SMark 178*33edd672SMark maybe( 179*33edd672SMark http_archive, 180*33edd672SMark name = "jazzer_libfuzzer", 181*33edd672SMark build_file = Label("//third_party:libFuzzer.BUILD"), 182*33edd672SMark sha256 = "200b32c897b1171824462706f577d7f1d6175da602eccfe570d2dceeac11d490", 183*33edd672SMark strip_prefix = "llvm-project-jazzer-2023-04-25/compiler-rt/lib/fuzzer", 184*33edd672SMark url = "https://github.com/CodeIntelligenceTesting/llvm-project-jazzer/archive/refs/tags/2023-04-25.tar.gz", 185*33edd672SMark ) 186*33edd672SMark 187*33edd672SMark if android: 188*33edd672SMark maybe( 189*33edd672SMark git_repository, 190*33edd672SMark name = "jazzer_slicer", 191*33edd672SMark remote = "https://android.googlesource.com/platform/tools/dexter", 192*33edd672SMark build_file = "//third_party:slicer.BUILD", 193*33edd672SMark commit = "0fe35538da107ff48da6e9f9b92b55b014973bf8", 194*33edd672SMark ) 195