msmpi package: fix build (#50263)

Restores ability to build MSMPI from source.

* Modernizes the MSMPI package
* Strips out MSMPI build system that is long deprecated
* Adds patches to re-introduce missing functionality from said build system
* Adds builds + support for dependencies no longer fetched by build system
This commit is contained in:
John W. Parent
2025-05-16 18:03:33 -04:00
committed by GitHub
parent 70f4eef020
commit b12a64d687
7 changed files with 336 additions and 24 deletions

View File

@@ -24,6 +24,10 @@ class MSBuildPackage(spack.package_base.PackageBase):
build_system("msbuild")
conflicts("platform=linux", when="build_system=msbuild")
conflicts("platform=darwin", when="build_system=msbuild")
conflicts("platform=freebsd", when="build_system=msbuild")
def define(self, msbuild_arg, value):
return define(msbuild_arg, value)
@spack.builder.builder("msbuild")
@@ -87,7 +91,7 @@ def define_targets(self, *targets):
return "/target:" + ";".join(targets) if targets else ""
def define(self, msbuild_arg, value):
return "/p:{}={}".format(msbuild_arg, value)
return define(msbuild_arg, value)
def msbuild_args(self):
"""Define build arguments to MSbuild. This is an empty list by default.
@@ -121,3 +125,7 @@ def install(
pkg.module.msbuild(
*self.msbuild_install_args(), self.define_targets(*self.install_targets)
)
def define(msbuild_arg, value):
return "/p:{}={}".format(msbuild_arg, value)