parent
aae7a22d39
commit
8564ab19c3
20 changed files with 67 additions and 64 deletions
|
@ -6,7 +6,6 @@
|
|||
import re
|
||||
|
||||
from spack.package import *
|
||||
from spack.util.environment import is_system_path
|
||||
|
||||
|
||||
class Bash(AutotoolsPackage, GNUMirrorPackage):
|
||||
|
@ -187,10 +186,10 @@ def configure_args(self):
|
|||
"--enable-readline",
|
||||
"--with-installed-readline",
|
||||
]
|
||||
if spec["iconv"].name == "libc":
|
||||
if spec["iconv"].name == "libiconv":
|
||||
args.append(f"--with-libiconv-prefix={spec['iconv'].prefix}")
|
||||
else:
|
||||
args.append("--without-libiconv-prefix")
|
||||
elif not is_system_path(spec["iconv"].prefix):
|
||||
args.append("--with-libiconv-prefix={0}".format(spec["iconv"].prefix))
|
||||
return args
|
||||
|
||||
def check(self):
|
||||
|
|
|
@ -112,7 +112,7 @@ def determine_variants(cls, exes, version_str):
|
|||
conflicts("%gcc@7.0:7.9", when="@1.9:")
|
||||
|
||||
def patch(self):
|
||||
if self.spec["iconv"].name == "libc":
|
||||
if self.spec["iconv"].name != "libiconv":
|
||||
return
|
||||
# On Linux systems, iconv is provided by libc. Since CMake finds the
|
||||
# symbol in libc, it does not look for libiconv, which leads to linker
|
||||
|
|
|
@ -128,10 +128,10 @@ def configure_args(self):
|
|||
args.append("--with-zstd=%s" % spec["zstd"].prefix)
|
||||
|
||||
if spec.satisfies("@0.183:"):
|
||||
if spec["iconv"].name == "libc":
|
||||
if spec["iconv"].name == "libiconv":
|
||||
args.append(f"--with-libiconv-prefix={spec['iconv'].prefix}")
|
||||
else:
|
||||
args.append("--without-libiconv-prefix")
|
||||
elif not is_system_path(spec["iconv"].prefix):
|
||||
args.append("--with-libiconv-prefix=" + format(spec["iconv"].prefix))
|
||||
|
||||
if "+nls" in spec:
|
||||
# Prior to 0.183, only msgfmt is used from gettext.
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
from spack.build_systems.autotools import AutotoolsBuilder
|
||||
from spack.build_systems.cmake import CMakeBuilder
|
||||
from spack.package import *
|
||||
from spack.util.environment import filter_system_paths, is_system_path
|
||||
from spack.util.environment import filter_system_paths
|
||||
|
||||
|
||||
class Gdal(CMakePackage, AutotoolsPackage, PythonExtension):
|
||||
|
@ -718,10 +718,10 @@ def configure_args(self):
|
|||
self.with_or_without("php"),
|
||||
]
|
||||
if "+iconv" in self.spec:
|
||||
if self.spec["iconv"].name == "libc":
|
||||
if self.spec["iconv"].name == "libiconv":
|
||||
args.append(f"--with-libiconv-prefix={self.spec['iconv'].prefix}")
|
||||
else:
|
||||
args.append("--without-libiconv-prefix")
|
||||
elif not is_system_path(self.spec["iconv"].prefix):
|
||||
args.append("--with-libiconv-prefix=" + self.spec["iconv"].prefix)
|
||||
|
||||
# Renamed or modified flags
|
||||
if self.spec.satisfies("@3:"):
|
||||
|
@ -755,7 +755,7 @@ def configure_args(self):
|
|||
|
||||
if "+hdf4" in self.spec:
|
||||
hdf4 = self.spec["hdf"]
|
||||
if "+external-xdr" in hdf4 and hdf4["rpc"].name != "libc":
|
||||
if "+external-xdr" in hdf4 and hdf4["rpc"].name == "libtirpc":
|
||||
args.append("LIBS=" + hdf4["rpc"].libs.link_flags)
|
||||
|
||||
# Remove empty strings
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
import re
|
||||
|
||||
from spack.package import *
|
||||
from spack.util.environment import is_system_path
|
||||
|
||||
|
||||
class Gettext(AutotoolsPackage, GNUMirrorPackage):
|
||||
|
@ -114,10 +113,10 @@ def configure_args(self):
|
|||
|
||||
config_args.extend(self.enable_or_disable("shared"))
|
||||
|
||||
if self.spec["iconv"].name == "libc":
|
||||
if self.spec["iconv"].name == "libiconv":
|
||||
config_args.append(f"--with-libiconv-prefix={self.spec['iconv'].prefix}")
|
||||
else:
|
||||
config_args.append("--without-libiconv-prefix")
|
||||
elif not is_system_path(self.spec["iconv"].prefix):
|
||||
config_args.append("--with-libiconv-prefix=" + self.spec["iconv"].prefix)
|
||||
|
||||
if "+curses" in spec:
|
||||
config_args.append("--with-ncurses-prefix={0}".format(spec["ncurses"].prefix))
|
||||
|
|
|
@ -278,12 +278,8 @@ def configure_args(self):
|
|||
"--with-zlib={0}".format(spec["zlib-api"].prefix),
|
||||
]
|
||||
|
||||
if not self.spec["iconv"].name == "libc":
|
||||
configure_args.append(
|
||||
"--with-iconv={0}".format(
|
||||
"yes" if is_system_path(spec["iconv"].prefix) else spec["iconv"].prefix
|
||||
)
|
||||
)
|
||||
if self.spec["iconv"].name == "libiconv":
|
||||
configure_args.append(f"--with-iconv={self.spec['iconv'].prefix}")
|
||||
|
||||
if "+perl" in self.spec:
|
||||
configure_args.append("--with-perl={0}".format(spec["perl"].command.path))
|
||||
|
|
|
@ -317,13 +317,13 @@ def meson_args(self):
|
|||
if self.spec.satisfies("@:2.72"):
|
||||
args.append("-Dgettext=external")
|
||||
if self.spec.satisfies("@:2.74"):
|
||||
if self.spec["iconv"].name == "libc":
|
||||
args.append("-Diconv=libc")
|
||||
else:
|
||||
if self.spec["iconv"].name == "libiconv":
|
||||
if self.spec.satisfies("@2.61.0:"):
|
||||
args.append("-Diconv=external")
|
||||
else:
|
||||
args.append("-Diconv=gnu")
|
||||
else:
|
||||
args.append("-Diconv=libc")
|
||||
return args
|
||||
|
||||
|
||||
|
@ -338,10 +338,10 @@ def configure_args(self):
|
|||
args.append(
|
||||
"--with-python={0}".format(os.path.basename(self.spec["python"].command.path))
|
||||
)
|
||||
if self.spec["iconv"].name == "libc":
|
||||
args.append("--with-libiconv=maybe")
|
||||
else:
|
||||
if self.spec["iconv"].name == "libiconv":
|
||||
args.append("--with-libiconv=gnu")
|
||||
else:
|
||||
args.append("--with-libiconv=maybe")
|
||||
if self.spec.satisfies("@2.56:"):
|
||||
for value in ("dtrace", "systemtap"):
|
||||
if ("tracing=" + value) in self.spec:
|
||||
|
|
|
@ -207,3 +207,7 @@ def build(self, spec, prefix):
|
|||
@property
|
||||
def libs(self):
|
||||
return LibraryList([])
|
||||
|
||||
@property
|
||||
def headers(self):
|
||||
return HeaderList([])
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
import re
|
||||
|
||||
from spack.package import *
|
||||
from spack.util.environment import is_system_path
|
||||
|
||||
|
||||
class Gnupg(AutotoolsPackage):
|
||||
|
@ -95,10 +94,10 @@ def configure_args(self):
|
|||
f"--with-npth-prefix={self.spec['npth'].prefix}",
|
||||
]
|
||||
)
|
||||
if self.spec["iconv"].name == "libc":
|
||||
args.append("--without-libiconv-prefix")
|
||||
elif not is_system_path(self.spec["iconv"].prefix):
|
||||
if self.spec["iconv"].name == "libiconv":
|
||||
args.append(f"--with-libiconv-prefix={self.spec['iconv'].prefix}")
|
||||
else:
|
||||
args.append("--without-libiconv-prefix")
|
||||
|
||||
if self.spec.satisfies("@:1"):
|
||||
args.extend(
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
import re
|
||||
|
||||
from spack.package import *
|
||||
from spack.util.environment import is_system_path
|
||||
|
||||
|
||||
class Groff(AutotoolsPackage, GNUMirrorPackage):
|
||||
|
@ -80,10 +79,10 @@ def configure_args(self):
|
|||
args.extend(self.with_or_without("x"))
|
||||
if "@1.22.4:" in self.spec:
|
||||
args.extend(self.with_or_without("uchardet"))
|
||||
if self.spec["iconv"].name == "libc":
|
||||
if self.spec["iconv"].name == "libiconv":
|
||||
args.append(f"--with-libiconv-prefix={self.spec['iconv'].prefix}")
|
||||
else:
|
||||
args.append("--without-libiconv-prefix")
|
||||
elif not is_system_path(self.spec["iconv"].prefix):
|
||||
args.append("--with-libiconv-prefix={0}".format(self.spec["iconv"].prefix))
|
||||
return args
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
|
|
|
@ -130,8 +130,8 @@ def setup_build_environment(self, env):
|
|||
# Add flags to LDFLAGS for any dependencies that need it
|
||||
extra_ldflags = []
|
||||
# hdf might have link dependency on rpc, if so need to add flags
|
||||
if "rpc" in self.spec:
|
||||
tmp = self.spec["rpc"].libs.ld_flags
|
||||
if self.spec.satisfies("^libtirpc"):
|
||||
tmp = self.spec["libtirpc"].libs.ld_flags
|
||||
extra_ldflags.append(tmp)
|
||||
# Set LDFLAGS
|
||||
env.set("LDFLAGS", " ".join(extra_ldflags))
|
||||
|
|
|
@ -132,7 +132,7 @@ def libs(self):
|
|||
libs += self.spec["zlib:transitive"].libs
|
||||
if "+szip" in self.spec:
|
||||
libs += self.spec["szip:transitive"].libs
|
||||
if "+external-xdr" in self.spec and self.spec["rpc"].name != "libc":
|
||||
if "+external-xdr" in self.spec and self.spec["rpc"].name == "libtirpc":
|
||||
libs += self.spec["rpc:transitive"].libs
|
||||
|
||||
return libs
|
||||
|
@ -178,7 +178,7 @@ def configure_args(self):
|
|||
|
||||
if "~external-xdr" in self.spec:
|
||||
config_args.append("--enable-hdf4-xdr")
|
||||
elif self.spec["rpc"].name != "libc":
|
||||
elif self.spec["rpc"].name == "libtirpc":
|
||||
# We should not specify '--disable-hdf4-xdr' due to a bug in the
|
||||
# configure script.
|
||||
config_args.append("LIBS=%s" % self.spec["rpc"].libs.link_flags)
|
||||
|
|
|
@ -37,10 +37,10 @@ def configure_args(self):
|
|||
"--with-zlib={0}".format(self.spec["zlib-api"].prefix),
|
||||
"--disable-dependency-tracking",
|
||||
]
|
||||
if self.spec["iconv"].name == "libc":
|
||||
args.append("--without-libiconv-prefix")
|
||||
if self.spec["iconv"].name == "libiconv":
|
||||
args.append(f"--with-libiconv-prefix={self.spec['iconv'].prefix}")
|
||||
elif not is_system_path(self.spec["iconv"].prefix):
|
||||
args.append("--with-libiconv-prefix={0}".format(self.spec["iconv"].prefix))
|
||||
args.append("--without-libiconv-prefix")
|
||||
if "intl" not in self.spec["gettext"].libs.names:
|
||||
args.append("--without-libintl-prefix")
|
||||
elif not is_system_path(self.spec["gettext"].prefix):
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.package import *
|
||||
from spack.util.environment import is_system_path
|
||||
|
||||
|
||||
class Libarchive(AutotoolsPackage):
|
||||
|
@ -132,10 +131,10 @@ def configure_args(self):
|
|||
args += self.enable_or_disable("programs")
|
||||
|
||||
if "+iconv" in spec:
|
||||
if spec["iconv"].name == "libc":
|
||||
if spec["iconv"].name == "libiconv":
|
||||
args.append(f"--with-libiconv-prefix={spec['iconv'].prefix}")
|
||||
else:
|
||||
args.append("--without-libiconv-prefix")
|
||||
elif not is_system_path(spec["iconv"].prefix):
|
||||
args.append("--with-libiconv-prefix={p}".format(p=spec["iconv"].prefix))
|
||||
else:
|
||||
args.append("--without-iconv")
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack.package import *
|
||||
from spack.util.environment import is_system_path
|
||||
|
||||
|
||||
class Mono(AutotoolsPackage):
|
||||
|
@ -77,8 +76,8 @@ def patch(self):
|
|||
|
||||
def configure_args(self):
|
||||
args = []
|
||||
if self.spec["iconv"].name == "libc":
|
||||
if self.spec["iconv"].name == "libiconv":
|
||||
args.append(f"--with-libiconv-prefix={self.spec['iconv'].prefix}")
|
||||
else:
|
||||
args.append("--without-libiconv-prefix")
|
||||
elif not is_system_path(self.spec["iconv"].prefix):
|
||||
args.append("--with-libiconv-prefix={p}".format(p=self.spec["iconv"].prefix))
|
||||
return args
|
||||
|
|
|
@ -67,3 +67,11 @@ def configure_args(self):
|
|||
|
||||
def edit(self, spec, prefix):
|
||||
configure(*self.configure_args())
|
||||
|
||||
@property
|
||||
def libs(self):
|
||||
return LibraryList([])
|
||||
|
||||
@property
|
||||
def headers(self):
|
||||
return HeaderList([])
|
||||
|
|
|
@ -236,9 +236,11 @@ def prepare_site_config(self):
|
|||
f.writelines(
|
||||
[
|
||||
"#define HdfDefines\n",
|
||||
"#define StdDefines -DByteSwapped\n#define ByteSwapped\n"
|
||||
if self.spec.satisfies("+byteswapped")
|
||||
else "",
|
||||
(
|
||||
"#define StdDefines -DByteSwapped\n#define ByteSwapped\n"
|
||||
if self.spec.satisfies("+byteswapped")
|
||||
else ""
|
||||
),
|
||||
"#define CppCommand '/usr/bin/env cpp -traditional'\n",
|
||||
"#define CCompiler {0}\n".format(spack_cc),
|
||||
"#define FCompiler {0}\n".format(spack_fc),
|
||||
|
@ -367,7 +369,7 @@ def prepare_install_config(self):
|
|||
with open(config_answers_filename, "r") as f:
|
||||
config_script(input=f)
|
||||
|
||||
if self.spec.satisfies("^hdf+external-xdr") and not self.spec["hdf"].satisfies("^libc"):
|
||||
if self.spec.satisfies("^hdf+external-xdr ^libtirpc"):
|
||||
hdf4 = self.spec["hdf"]
|
||||
replace_str = hdf4["rpc"].libs.link_flags
|
||||
|
||||
|
|
|
@ -460,7 +460,7 @@ def configure_args(self):
|
|||
# introduced by the configure script:
|
||||
if "+szip" in hdf:
|
||||
extra_libs.append(hdf["szip"].libs)
|
||||
if "+external-xdr" in hdf:
|
||||
if "+external-xdr ^libtirpc" in hdf:
|
||||
extra_libs.append(hdf["rpc"].libs)
|
||||
extra_libs.append(hdf["zlib-api"].libs)
|
||||
|
||||
|
|
|
@ -70,9 +70,9 @@ def configure_args(self):
|
|||
else:
|
||||
args.append("--disable-nls")
|
||||
|
||||
if spec["iconv"].name == "libc":
|
||||
if spec["iconv"].name == "libiconv":
|
||||
args.append(f"--with-libiconv-prefix={spec['iconv'].prefix}")
|
||||
else:
|
||||
args.append("--without-libiconv-prefix")
|
||||
elif not is_system_path(spec["iconv"].prefix):
|
||||
args.append("--with-libiconv-prefix={0}".format(spec["iconv"].prefix))
|
||||
|
||||
return args
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
import re
|
||||
|
||||
from spack.package import *
|
||||
from spack.util.environment import is_system_path
|
||||
|
||||
|
||||
class Tar(AutotoolsPackage, GNUMirrorPackage):
|
||||
|
@ -74,10 +73,10 @@ def configure_args(self):
|
|||
"--with-bzip2={0}".format(spec["bzip2"].prefix.bin.bzip2),
|
||||
]
|
||||
|
||||
if spec["iconv"].name == "libc":
|
||||
if spec["iconv"].name == "libiconv":
|
||||
args.append(f"--with-libiconv-prefix={spec['iconv'].prefix}")
|
||||
else:
|
||||
args.append("--without-libiconv-prefix")
|
||||
elif not is_system_path(spec["iconv"].prefix):
|
||||
args.append("--with-libiconv-prefix={0}".format(spec["iconv"].prefix))
|
||||
|
||||
if "^zstd" in spec:
|
||||
args.append("--with-zstd={0}".format(spec["zstd"].prefix.bin.zstd))
|
||||
|
|
Loading…
Reference in a new issue