workspace(name = "io_tweag_inline_java") load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "rules_haskell", sha256 = "2b36e26fde296dc9fbaeed087c898fdce23af0247592e897c317d19345b0e259", strip_prefix = "rules_haskell-7a7f8545789dc4f3bc0780d5725e1337bb494ea6", urls = ["https://github.com/tweag/rules_haskell/archive/7a7f8545789dc4f3bc0780d5725e1337bb494ea6.zip"], ) load("@rules_haskell//haskell:repositories.bzl", "rules_haskell_dependencies") rules_haskell_dependencies() load( "@io_tweag_rules_nixpkgs//nixpkgs:nixpkgs.bzl", "nixpkgs_local_repository", "nixpkgs_package", "nixpkgs_python_configure", ) nixpkgs_local_repository( name = "nixpkgs", nix_file = "//:nixpkgs.nix", ) nixpkgs_python_configure(repository = "@nixpkgs") nixpkgs_package( name = "alex", attribute_path = "haskellPackages.alex", repository = "@nixpkgs", ) #nixpkgs_package( # name = "stack_ignore_global_hints", # attribute_path = "stack_ignore_global_hints", # repository = "@nixpkgs", #) # #load("//:config_settings/setup.bzl", "config_settings") #config_settings(name = "config_settings") #load("@config_settings//:info.bzl", "ghc_version") load("@rules_haskell//haskell:cabal.bzl", "stack_snapshot") stack_snapshot( name = "stackage", packages = [ "Cabal", "aeson", "async", "base", "bytestring", "choice", "constraints", "containers", "criterion", "deepseq", "directory", "distributed-closure", "exceptions", "filemanip", "filepath", "ghc", "hspec", "inline-c", "language-java", "monad-logger", "mtl", "process", "QuickCheck", "quickcheck-text", "quickcheck-unicode", "split", "streaming", "template-haskell", "temporary", "text", "time", "vector", "unix", # dependencies of th-desugar "fail", "ghc-prim", "linear-base", "ordered-containers", "semigroups", "singletons", "singletons-base", "stm", "syb", "th-abstraction", "th-lift", "th-orphans", "transformers-compat", # dependencies of singletons "ghc-boot-th", "pretty", "transformers", ], extra_deps = { "zlib" : ["@zlib.dev//:zlib"] }, components_dependencies = { "attoparsec": """{"lib:attoparsec": ["lib:attoparsec-internal"]}""", }, components = { "attoparsec": [ "lib", "lib:attoparsec-internal", ], }, local_snapshot = "//:snapshot-9.0.2.yaml", # stack = "@stack_ignore_global_hints//:bin/stack" if ghc_version == "9.0.1" else None, ) load("@rules_haskell//haskell:nixpkgs.bzl", "haskell_register_ghc_nixpkgs") nixpkgs_package( name = "glibc_locales", attribute_path = "glibcLocales", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "locale-archive", srcs = ["lib/locale/locale-archive"], ) """, repository = "@nixpkgs", ) haskell_register_ghc_nixpkgs( attribute_path = "haskell.compiler.ghc902", locale_archive = "@glibc_locales//:locale-archive", repositories = {"nixpkgs": "@nixpkgs"}, version = "9.0.2", compiler_flags = [ "-Werror", "-Wall", "-Wcompat", "-Wincomplete-record-updates", "-Wredundant-constraints", ], ) nixpkgs_package( name = "sed", attribute_path = "gnused", repository = "@nixpkgs", ) nixpkgs_package( name = "hspec-discover", attribute_path = "haskellPackages.hspec-discover", repository = "@nixpkgs", ) nixpkgs_package( name = "nixpkgs_zlib", attribute_path = "zlib", repository = "@nixpkgs", ) nixpkgs_package( name = "zlib.dev", repository = "@nixpkgs", build_file_content = """ load("@rules_cc//cc:defs.bzl", "cc_library") filegroup( name = "include", srcs = glob(["include/*.h"]), visibility = ["//visibility:public"], ) cc_library( name = "zlib", srcs = ["@nixpkgs_zlib//:lib"], hdrs = [":include"], linkstatic = 1, strip_include_prefix = "include", visibility = ["//visibility:public"], ) """, ) nixpkgs_package( name = "openjdk", attribute_path = "openjdk11", repository = "@nixpkgs", build_file_content = """ filegroup( name = "bin", srcs = ["bin/javac"], visibility = ["//visibility:public"], ) filegroup( name = "libjvm", srcs = select( { "@bazel_tools//src/conditions:darwin": ["lib/server/libjvm.dylib"], "@bazel_tools//src/conditions:linux_x86_64": ["lib/openjdk/lib/server/libjvm.so"], }), visibility = ["//visibility:public"], ) cc_library( name = "lib", srcs = [":libjvm"], hdrs = ["include/jni.h", "include/jni_md.h"], strip_include_prefix = "include", linkstatic = 1, visibility = ["//visibility:public"], ) # XXX Temporary workaround for # https://github.com/bazelbuild/bazel/issues/8180. genrule( name = "rpath", srcs = ["@openjdk//:libjvm"], cmd = "libjvm=$(location :libjvm); echo -rpath $$(dirname $$(realpath $$libjvm)) > $@", outs = ["openjdk_response_file"], visibility = ["//visibility:public"], ) """, ) RULES_JVM_EXTERNAL_TAG = "3.3" RULES_JVM_EXTERNAL_SHA = "d85951a92c0908c80bd8551002d66cb23c3434409c814179c0ff026b53544dab" http_archive( name = "rules_jvm_external", strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG, sha256 = RULES_JVM_EXTERNAL_SHA, url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG, ) load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( artifacts = [ "org.apache.commons:commons-collections4:4.1", "com.wizzardo:http:0.3", "com.wizzardo:epoll:0.3.4", "com.wizzardo:reactive-pg-client:0.10.2.1", "com.wizzardo.tools:tools-collections:0.23", "com.wizzardo.tools:tools-interfaces:0.23", ], repositories = [ "https://maven.google.com", "https://repo1.maven.org/maven2", ], ) http_archive( name = "inline_java", # sha256 = "2b36e26fde296dc9fbaeed087c898fdce23af0247592e897c317d19345b0e259", strip_prefix = "inline-java-1e2ce404b98ef84de7737665541aa73a426f5523", urls = ["https://github.com/tweag/inline-java/archive/1e2ce404b98ef84de7737665541aa73a426f5523.zip"], )