""" Bazel cc_library definitions for Nixpkgs. """ load("@io_tweag_rules_nixpkgs//nixpkgs:nixpkgs.bzl", "nixpkgs_flake_package") def nixpkgs_cc_library_deps(): """ Generate cc_library rules for Nixpkgs. """ return [ nixpkgs_flake_package( name = "org_openssl_%s" % system, nix_flake_file = "//:flake.nix", nix_flake_lock_file = "//:flake.lock", package = "packages.%s.openssl" % system, build_file_content = OPENSSL_BUILD, ) for system in openssl_systems ] + [ nixpkgs_flake_package( name = "cryptsetup_%s" % system, nix_flake_file = "//:flake.nix", nix_flake_lock_file = "//:flake.lock", package = "cryptsetup", build_file_content = CRYPTSETUP_BUILD, ) for system in cryptsetup_systems ] + [ nixpkgs_flake_package( name = "libvirt_%s" % system, nix_flake_file = "//:flake.nix", nix_flake_lock_file = "//:flake.lock", package = "libvirt", build_file_content = LIBVIRT_BUILD, ) for system in libvirt_systems ] openssl_systems = [ "aarch64-linux", "aarch64-darwin", "x86_64-linux", "x86_64-darwin", ] cryptsetup_systems = [ "x86_64-linux", ] libvirt_systems = [ "x86_64-linux", ] OPENSSL_BUILD = """\ load("@rules_cc//cc:defs.bzl", "cc_library") filegroup( name = "include", srcs = glob(["include/**/*.h"]), visibility = ["//visibility:public"], ) cc_library( name = "org_openssl", srcs = glob(["lib/**/*.a"]), hdrs = [":include"], strip_include_prefix = "include", visibility = ["//visibility:public"], ) """ CRYPTSETUP_BUILD = """\ exports_files(["closure.tar", "rpath", "dynamic-linker"]) filegroup( name = "include", srcs = glob(["include/**/*.h"]), visibility = ["//visibility:public"], ) cc_library( name = "cryptsetup", srcs = glob(["lib/**/*.so*"]), hdrs = [":include"], strip_include_prefix = "include", target_compatible_with = [ "@platforms//os:linux", "@platforms//cpu:x86_64", ], visibility = ["//visibility:public"], ) """ LIBVIRT_BUILD = """\ exports_files(["bin-linktree.tar", "closure.tar", "rpath", "dynamic-linker"]) load("@rules_cc//cc:defs.bzl", "cc_library") filegroup( name = "include", srcs = glob(["include/**/*.h"]), visibility = ["//visibility:public"], ) cc_library( name = "libvirt", srcs = glob([ "lib/*.so", "lib/*.so.*", ]), hdrs = [":include"], strip_include_prefix = "include", target_compatible_with = [ "@platforms//os:linux", "@platforms//cpu:x86_64", ], visibility = ["//visibility:public"], ) """