# Copyright (c) 2020. The YARA Authors. All Rights Reserved. # # Redistribution and use in source and binary forms, with or without modification, # are permitted provided that the following conditions are met: # # 1. Redistributions of source code must retain the above copyright notice, this # list of conditions and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation and/or # other materials provided with the distribution. # # 3. Neither the name of the copyright holder nor the names of its contributors # may be used to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Bazel (http://bazel.io/) BUILD file for the jansson library. load("@com_github_virustotal_yara//:bazel/jansson.bzl", "jansson_api_test") # Rule for generating header files required during the build. These header files # are normally generated by ./configure, but we just create empty files so that # #include statements can find them. genrule( name = "config_files", outs = [ "jansson_config.h", "jansson_private_config.h", ], cmd = """ touch $(location jansson_config.h) touch $(location jansson_private_config.h) """, ) cc_library( name = "jansson", srcs = glob(["src/*.c"]), hdrs = glob(["src/*.h"]) + [ "jansson_config.h", "jansson_private_config.h", ], copts = ["-Wno-unused-function"], # These defines are usually in jansson_config.h but we define them here, # as jansson_config.h is just an empty file. defines = [ "HAVE_STDINT_H=1", "JSON_INLINE=inline", "JSON_PARSER_MAX_DEPTH=2048", ], includes = [ ".", "src", ], visibility = ["//visibility:public"], ) jansson_api_test(name = "test_array") jansson_api_test(name = "test_chaos") jansson_api_test(name = "test_copy") jansson_api_test(name = "test_dump") jansson_api_test(name = "test_dump_callback") jansson_api_test(name = "test_equal") jansson_api_test(name = "test_load") jansson_api_test(name = "test_load_callback") jansson_api_test(name = "test_loadb") jansson_api_test(name = "test_memory_funcs") jansson_api_test(name = "test_number") jansson_api_test(name = "test_object") jansson_api_test(name = "test_pack") jansson_api_test(name = "test_simple") jansson_api_test(name = "test_sprintf") jansson_api_test(name = "test_unpack")