diff --git a/start b/start index 5a33fff33..437c09a4e 100755 --- a/start +++ b/start @@ -65,11 +65,6 @@ parse_args () { *) usage 1 ;; esac done - - if $BZLMOD && [ $MODE != bindists ]; then - stderr "error: --with-bzlmod is only supported with --use-bindists" - exit 1 - fi } check_dir () { @@ -376,25 +371,105 @@ if $BZLMOD; then cat >MODULE.bazel < {}; haskell.packages.ghc$( echo "$GHC_VERSION" | tr -d . ).ghc""", + repository = "@nixpkgs", + version = "${GHC_VERSION}", + ) + EOF + ;; + esac >>MODULE.bazel -use_repo( - non_module_deps, - "zlib.dev", -) + cat >>MODULE.bazel <non_module_deps.bzl <<-EOF - load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - - def _non_module_deps_impl(_mctx): - http_archive( - name = "zlib.dev", - build_file = "//:${ZLIB_BUILD_FILE}", - sha256 = "b5b06d60ce49c8ba700e0ba517fa07de80b5d4628a037f4be8ad16955be7a7c0", - strip_prefix = "zlib-1.3", - urls = ["https://github.com/madler/zlib/archive/v1.3.tar.gz"], - ) - - non_module_deps = module_extension(implementation = _non_module_deps_impl) + case "${MODE}" in + "bindists") cat <<-EOF + load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + def _non_module_deps_impl(_mctx): + http_archive( + name = "zlib.dev", + build_file = "//:${ZLIB_BUILD_FILE}", + sha256 = "b5b06d60ce49c8ba700e0ba517fa07de80b5d4628a037f4be8ad16955be7a7c0", + strip_prefix = "zlib-1.3", + urls = ["https://github.com/madler/zlib/archive/v1.3.tar.gz"], + ) + non_module_deps = module_extension(implementation = _non_module_deps_impl) + EOF + ;; + "nix") cat <<-EOF + # Load nixpkgs_git_repository from rules_nixpkgs, + # which was already initialized by rules_haskell_dependencies above. + load("@rules_nixpkgs_cc//:cc.bzl", "nixpkgs_cc_configure") + load( + "@rules_nixpkgs_core//:nixpkgs.bzl", + "nixpkgs_git_repository", + "nixpkgs_package", + ) + load("@rules_nixpkgs_python//:python.bzl", "nixpkgs_python_configure") + def _non_module_deps_impl(_mctx): + # Fetch a version of nixpkgs from GitHub. + # For more information see the documentation of rules_nixpkgs at + # https://github.com/tweag/rules_nixpkgs/blob/master/README.md + nixpkgs_git_repository( + name = "nixpkgs", + revision = "nixos-23.11", + ) + nixpkgs_cc_configure( + name = "local_config_cc", + repository = "@nixpkgs", + register = False, + ) + nixpkgs_python_configure( + name = "nixpkgs_python_toolchain", + repository = "@nixpkgs", + register = False, + ) + # For zlib.BUILD.bazel + nixpkgs_package( + name = "nixpkgs_zlib", + attribute_path = "zlib", + repository = "@nixpkgs", + ) + nixpkgs_package( + name = "zlib.dev", + build_file = "//:zlib.BUILD.bazel", + repository = "@nixpkgs", + ) + non_module_deps = module_extension(implementation = _non_module_deps_impl) EOF + ;; + esac >non_module_deps.bzl + fi ## Write .bazelrc File #################################################