Skip to content

Commit a27b286

Browse files
committed
feat: Add support for a new architecture loongarch
1 parent 88523d4 commit a27b286

File tree

5 files changed

+16
-5
lines changed

5 files changed

+16
-5
lines changed

libmamba/include/mamba/specs/platform.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ namespace mamba::specs
3535
linux_s390x,
3636
linux_riscv32,
3737
linux_riscv64,
38+
linux_loongarch64,
3839
osx_64,
3940
osx_arm64,
4041
win_32,
@@ -190,6 +191,8 @@ namespace mamba::specs
190191
return "linux-riscv32";
191192
case KnownPlatform::linux_riscv64:
192193
return "linux-riscv64";
194+
case KnownPlatform::linux_loongarch64:
195+
return "linux-loongarch64";
193196
case KnownPlatform::osx_64:
194197
return "osx-64";
195198
case KnownPlatform::osx_arm64:

libmamba/src/specs/platform.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ namespace mamba::specs
3838
|| (plat == KnownPlatform::linux_ppc64) //
3939
|| (plat == KnownPlatform::linux_s390x) //
4040
|| (plat == KnownPlatform::linux_riscv32) //
41-
|| (plat == KnownPlatform::linux_riscv64);
41+
|| (plat == KnownPlatform::linux_riscv64) //
42+
|| (plat == KnownPlatform::linux_loongarch64);
4243
}
4344

4445
auto platform_is_linux(DynamicPlatform plat) -> bool
@@ -119,6 +120,8 @@ namespace mamba::specs
119120
return KnownPlatform::linux_riscv32;
120121
#elif defined(__riscv) && defined(__riscv_xlen) && (__riscv_xlen == 64)
121122
return KnownPlatform::linux_riscv64;
123+
#elif defined(__loongarch64)
124+
return KnownPlatform::linux_loongarch64;
122125
#else
123126
#error "Unknown Linux platform"
124127
#endif

libmamba/tests/src/specs/test_platform.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@ namespace
1717
SECTION("name")
1818
{
1919
REQUIRE(platform_name(KnownPlatform::linux_riscv32) == "linux-riscv32");
20+
REQUIRE(platform_name(KnownPlatform::linux_loongarch64) == "linux-loongarch64");
2021
REQUIRE(platform_name(KnownPlatform::osx_arm64) == "osx-arm64");
2122
REQUIRE(platform_name(KnownPlatform::win_64) == "win-64");
2223
}
2324

2425
SECTION("parse")
2526
{
2627
REQUIRE(platform_parse("linux-armv6l") == KnownPlatform::linux_armv6l);
28+
REQUIRE(platform_parse("linux-loongarch64") == KnownPlatform::linux_loongarch64);
2729
REQUIRE(platform_parse(" win-32 ") == KnownPlatform::win_32);
2830
REQUIRE(platform_parse(" OSX-64") == KnownPlatform::osx_64);
2931
REQUIRE(platform_parse("linus-46") == std::nullopt);
@@ -32,10 +34,11 @@ namespace
3234
SECTION("known_platform")
3335
{
3436
static constexpr decltype(known_platform_names()) expected{
35-
"noarch", "linux-32", "linux-64", "linux-armv6l", "linux-armv7l",
36-
"linux-aarch64", "linux-ppc64le", "linux-ppc64", "linux-s390x", "linux-riscv32",
37-
"linux-riscv64", "osx-64", "osx-arm64", "win-32", "win-64",
38-
"win-arm64", "zos-z",
37+
"noarch", "linux-32", "linux-64", "linux-armv6l",
38+
"linux-armv7l", "linux-aarch64", "linux-ppc64le", "linux-ppc64",
39+
"linux-s390x", "linux-riscv32", "linux-riscv64", "linux-loongarch64",
40+
"osx-64", "osx-arm64", "win-32", "win-64",
41+
"win-arm64", "zos-z",
3942

4043
};
4144
REQUIRE(expected == known_platform_names());

libmambapy/bindings/specs.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ namespace mambapy
7777
std::pair{ "linux_s390x", KnownPlatform::linux_s390x },
7878
std::pair{ "linux_riscv32", KnownPlatform::linux_riscv32 },
7979
std::pair{ "linux_riscv64", KnownPlatform::linux_riscv64 },
80+
std::pair{ "linux_loongarch64", KnownPlatform::linux_loongarch64},
8081
std::pair{ "osx_64", KnownPlatform::osx_64 },
8182
std::pair{ "osx_arm64", KnownPlatform::osx_arm64 },
8283
std::pair{ "win_32", KnownPlatform::win_32 },

libmambapy/tests/test_specs.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ def test_KnownPlatform():
4747
assert KnownPlatform.linux_s390x.name == "linux_s390x"
4848
assert KnownPlatform.linux_riscv32.name == "linux_riscv32"
4949
assert KnownPlatform.linux_riscv64.name == "linux_riscv64"
50+
assert KnownPlatform.linux_loongarch64.name == "linux_loongarch64"
5051
assert KnownPlatform.osx_64.name == "osx_64"
5152
assert KnownPlatform.osx_arm64.name == "osx_arm64"
5253
assert KnownPlatform.win_32.name == "win_32"

0 commit comments

Comments
 (0)