Add Eigen 5.0.0 (#6006)
Turns out Eigen 5 is (about to be) released!
https://gitlab.com/libeigen/eigen/-/releases/5.0.0
This is an alternative to
https://github.com/bazelbuild/bazel-central-registry/pull/6004
diff --git a/modules/eigen/5.0.0/MODULE.bazel b/modules/eigen/5.0.0/MODULE.bazel
new file mode 100644
index 0000000..e3c051c
--- /dev/null
+++ b/modules/eigen/5.0.0/MODULE.bazel
@@ -0,0 +1,9 @@
+module(
+ name = "eigen",
+ version = "5.0.0",
+ bazel_compatibility = [">=7.2.1"],
+ compatibility_level = 1,
+)
+
+bazel_dep(name = "rules_cc", version = "0.0.17")
+bazel_dep(name = "rules_license", version = "1.0.0")
diff --git a/modules/eigen/5.0.0/overlay/BUILD.bazel b/modules/eigen/5.0.0/overlay/BUILD.bazel
new file mode 100644
index 0000000..78d8c68
--- /dev/null
+++ b/modules/eigen/5.0.0/overlay/BUILD.bazel
@@ -0,0 +1,61 @@
+load("@rules_cc//cc:cc_library.bzl", "cc_library")
+load("@rules_license//rules:license.bzl", "license")
+
+package(
+ default_applicable_licenses = [
+ ":license.APACHE",
+ ":license.BSD",
+ ":license.MINPACK", # Only used by unsupported/** not by Eigen/**.
+ ":license.MPL2",
+ ],
+)
+
+exports_files(glob(["COPYING.*"]))
+
+# Note: Eigen is primarily an MPL2 library with small bits of code under other
+# licenses. Previous versions of Eigen contained LGPL code which needed to be
+# carefully excluded, but as of approximately 2023-02-07 all LGPL code has been
+# removed upstream so does not need any special handling here.
+
+license(
+ name = "license.APACHE",
+ license_kinds = ["@rules_license//licenses/spdx:Apache-2.0"],
+ license_text = "COPYING.APACHE",
+)
+
+license(
+ name = "license.BSD",
+ license_kinds = ["@rules_license//licenses/spdx:BSD-3-Clause"],
+ license_text = "COPYING.BSD",
+)
+
+license(
+ name = "license.MINPACK",
+ license_kinds = ["@rules_license//licenses/spdx:BSD-3-Clause-Attribution"],
+ license_text = "COPYING.MINPACK",
+)
+
+license(
+ name = "license.MPL2",
+ license_kinds = ["@rules_license//licenses/spdx:MPL-2.0"],
+ license_text = "COPYING.MPL2",
+)
+
+HDRS = glob(
+ [
+ "Eigen/**",
+ "unsupported/Eigen/**",
+ ],
+ exclude = [
+ # We don't want any documentation files.
+ "**/*.md",
+ "**/*.txt",
+ ],
+)
+
+cc_library(
+ name = "eigen",
+ hdrs = HDRS,
+ includes = ["."],
+ visibility = ["//visibility:public"],
+)
diff --git a/modules/eigen/5.0.0/overlay/MODULE.bazel b/modules/eigen/5.0.0/overlay/MODULE.bazel
new file mode 120000
index 0000000..9b599e3
--- /dev/null
+++ b/modules/eigen/5.0.0/overlay/MODULE.bazel
@@ -0,0 +1 @@
+../MODULE.bazel
\ No newline at end of file
diff --git a/modules/eigen/5.0.0/presubmit.yml b/modules/eigen/5.0.0/presubmit.yml
new file mode 100644
index 0000000..e19268a
--- /dev/null
+++ b/modules/eigen/5.0.0/presubmit.yml
@@ -0,0 +1,18 @@
+matrix:
+ platform:
+ - debian10
+ - debian11
+ - ubuntu2004
+ - ubuntu2204
+ - ubuntu2404
+ - macos
+ - macos_arm64
+ - windows
+ bazel: ["7.x", "8.x", "rolling"]
+tasks:
+ verify_targets:
+ name: Verify build targets
+ platform: ${{ platform }}
+ bazel: ${{ bazel }}
+ build_targets:
+ - '@eigen//:eigen'
diff --git a/modules/eigen/5.0.0/source.json b/modules/eigen/5.0.0/source.json
new file mode 100644
index 0000000..5a3a1b6
--- /dev/null
+++ b/modules/eigen/5.0.0/source.json
@@ -0,0 +1,14 @@
+{
+ "url": "https://gitlab.com/libeigen/eigen/-/package_files/233618368/download",
+ "mirror_urls": [
+ "https://github.com/eigen-mirror/eigen/archive/refs/tags/5.0.0.tar.gz",
+ "https://gitlab.com/libeigen/eigen/-/archive/5.0.0/eigen-5.0.0.tar.gz"
+ ],
+ "archive_type": "tar.gz",
+ "integrity": "sha256-MVyIHhnhdUKn1CjFqjfRE8iblQDTUMQzeXtzDNRJwFY=",
+ "strip_prefix": "eigen-5.0.0",
+ "overlay": {
+ "BUILD.bazel": "sha256-FLG3o0e8uef58dPphOjnCjAfXYUMBvJQYbr1tfkNYO0=",
+ "MODULE.bazel": "sha256-ZaobPfzzsivUUVDtSrW/refN2jyoVzX7Rm1FOGoXIsA="
+ }
+}
diff --git a/modules/eigen/metadata.json b/modules/eigen/metadata.json
index 5b2b331..2179a7f 100644
--- a/modules/eigen/metadata.json
+++ b/modules/eigen/metadata.json
@@ -19,7 +19,8 @@
"4.0.0-20241125",
"4.0.0-20241125.bcr.1",
"4.0.0-20241125.bcr.2",
- "4.0.0-20241125.bcr.3"
+ "4.0.0-20241125.bcr.3",
+ "5.0.0"
],
"yanked_versions": {}
}