Compare commits
2 Commits
packages/c
...
hs/compile
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4c2dae308a | ||
|
|
bb735478fe |
@@ -216,16 +216,13 @@ def check_args_contents(cc, args, must_contain, must_not_contain):
|
||||
assert a not in cc_modified_args
|
||||
|
||||
|
||||
def check_env_var(executable, var, expected):
|
||||
"""Check environment variables updated by the passed compiler wrapper
|
||||
|
||||
This assumes that cc will print debug output when it's environment
|
||||
contains SPACK_TEST_COMMAND=dump-env-<variable-to-debug>
|
||||
"""
|
||||
executable = Executable(str(executable))
|
||||
with set_env(SPACK_TEST_COMMAND="dump-env-" + var):
|
||||
output = executable(*test_args, output=str).strip()
|
||||
assert executable.path + ": " + var + ": " + expected == output
|
||||
def check_wrapper_var(exe, *args, var, expected):
|
||||
"""Check variables set by the compiler wrapper. This works by setting SPACK_TEST_COMMAND to
|
||||
dump-var-<variable-to-debug>, which will print the variable and exit."""
|
||||
executable = Executable(str(exe))
|
||||
with set_env(SPACK_TEST_COMMAND=f"dump-var-{var}"):
|
||||
output = executable(*args, output=str).strip()
|
||||
assert f"{executable.path}: {var}: {expected}" == output
|
||||
|
||||
|
||||
def dump_mode(cc, args):
|
||||
@@ -749,11 +746,22 @@ def test_system_path_cleanup(wrapper_environment, wrapper_dir):
|
||||
"""
|
||||
cc = wrapper_dir / "cc"
|
||||
system_path = "/bin:/usr/bin:/usr/local/bin"
|
||||
with set_env(SPACK_COMPILER_WRAPPER_PATH=str(wrapper_dir), SPACK_CC="true"):
|
||||
with set_env(SPACK_COMPILER_WRAPPER_PATH=str(wrapper_dir)):
|
||||
with set_env(PATH=str(wrapper_dir) + ":" + system_path):
|
||||
check_env_var(cc, "PATH", system_path)
|
||||
check_wrapper_var(cc, *test_args, var="PATH", expected=system_path)
|
||||
with set_env(PATH=str(wrapper_dir) + "/:" + system_path):
|
||||
check_env_var(cc, "PATH", system_path)
|
||||
check_wrapper_var(cc, *test_args, var="PATH", expected=system_path)
|
||||
|
||||
|
||||
def test_language_from_flags(wrapper_environment, wrapper_dir):
|
||||
"""Test that the compiler language mode is determined by -x/--language flags if present"""
|
||||
cc = wrapper_dir / "cc"
|
||||
|
||||
for flag_value, lang in [("c", "CC"), ("c++", "CXX"), ("f77", "F77"), ("f95", "FC")]:
|
||||
check_wrapper_var(cc, "-c", "file", "-x", flag_value, var="comp", expected=lang)
|
||||
check_wrapper_var(cc, "-c", "file", f"-x{flag_value}", var="comp", expected=lang)
|
||||
check_wrapper_var(cc, "-c", "file", f"--language={flag_value}", var="comp", expected=lang)
|
||||
check_wrapper_var(cc, "-c", "file", "--language", flag_value, var="comp", expected=lang)
|
||||
|
||||
|
||||
def test_ld_deps_partial(wrapper_environment, wrapper_dir):
|
||||
|
||||
@@ -20,7 +20,6 @@ class Accfft(CMakePackage, CudaPackage):
|
||||
variant("pnetcdf", default=True, description="Add support for parallel NetCDF")
|
||||
variant("shared", default=True, description="Enables the build of shared libraries")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
# See: http://accfft.org/articles/install/#installing-dependencies
|
||||
|
||||
@@ -23,7 +23,6 @@ class Brigand(CMakePackage):
|
||||
version("1.1.0", sha256="afdcc6909ebff6994269d3039c31698c2b511a70280072f73382b26855221f64")
|
||||
version("1.0.0", sha256="8daf7686ff39792f851ef1977323808b80aab31c5f38ef0ba4e6a8faae491f8d")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
def cmake_args(self):
|
||||
|
||||
@@ -23,7 +23,6 @@ class Camellia(CMakePackage):
|
||||
description="Compile with MOAB to include support for reading standard mesh formats",
|
||||
)
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
depends_on(
|
||||
|
||||
@@ -178,9 +178,10 @@ execute() {
|
||||
unset IFS
|
||||
exit
|
||||
;;
|
||||
dump-env-*)
|
||||
var=${SPACK_TEST_COMMAND#dump-env-}
|
||||
dump-var-*)
|
||||
var=${SPACK_TEST_COMMAND#dump-var-}
|
||||
eval "printf '%s\n' \"\$0: \$var: \$$var\""
|
||||
exit
|
||||
;;
|
||||
*)
|
||||
die "Unknown test command: '$SPACK_TEST_COMMAND'"
|
||||
@@ -296,9 +297,36 @@ fi
|
||||
# Note. SPACK_ALWAYS_XFLAGS are applied for all compiler invocations,
|
||||
# including version checks (SPACK_XFLAGS variants are not applied
|
||||
# for version checks).
|
||||
command="${0##*/}"
|
||||
command_from_argv0="${0##*/}"
|
||||
command="$command_from_argv0"
|
||||
comp="CC"
|
||||
vcheck_flags=""
|
||||
|
||||
_command_from_flags() {
|
||||
while [ $# -ne 0 ]; do
|
||||
arg="$1"
|
||||
shift
|
||||
case "$arg" in
|
||||
-x|--language)
|
||||
_lang="$1"
|
||||
shift ;;
|
||||
-x*)
|
||||
_lang="${arg#-x}" ;;
|
||||
--language=*)
|
||||
_lang="${arg#--language=}" ;;
|
||||
*) continue ;;
|
||||
esac
|
||||
done
|
||||
|
||||
case "$_lang" in
|
||||
c) command=cc ;;
|
||||
c++|f77|f95) command="$_lang" ;;
|
||||
*) command="$command_from_argv0" ;; # drop unknown languages
|
||||
esac
|
||||
}
|
||||
|
||||
_command_from_flags "$@"
|
||||
|
||||
case "$command" in
|
||||
cpp)
|
||||
mode=cpp
|
||||
|
||||
@@ -43,7 +43,7 @@ class CompilerWrapper(Package):
|
||||
if sys.platform != "win32":
|
||||
version(
|
||||
"1.0",
|
||||
sha256="c65a9d2b2d4eef67ab5cb0684d706bb9f005bb2be94f53d82683d7055bdb837c",
|
||||
sha256="db44e5898aa9b8605e3cfe53a51649b4df504066f0f13562432f584fc88a5038",
|
||||
expand=False,
|
||||
)
|
||||
else:
|
||||
|
||||
@@ -14,7 +14,6 @@ class Cotter(CMakePackage):
|
||||
version("master", branch="master")
|
||||
version("20190205", commit="b7b07f3298a8d57b9dfff0b72fc21e68b23a42da")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
depends_on("erfa")
|
||||
|
||||
@@ -21,5 +21,4 @@ class CppLogger(CMakePackage):
|
||||
version("0.0.2", tag="v0.0.2", commit="329a48401033d2d2a1f1196141763cab029220ae")
|
||||
version("0.0.1", tag="v0.0.1", commit="d48b38ab14477bb7c53f8189b8b4be2ea214c28a")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
@@ -19,7 +19,6 @@ class Digitrounding(CMakePackage):
|
||||
version("2020-02-27", commit="7b18679aded7a85e6f221f7f5cd4f080f322bc33")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
depends_on("zlib-api")
|
||||
|
||||
|
||||
@@ -46,7 +46,6 @@ class Ectrans(CMakePackage):
|
||||
variant("transi", default=True, description="Compile TransI C-interface to trans")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("fortran", type="build") # generated
|
||||
|
||||
depends_on("ecbuild", type="build")
|
||||
|
||||
@@ -22,7 +22,6 @@ class Flcl(CMakePackage):
|
||||
version("0.4.0", sha256="0fe327906a991262866b126a7d58098eb48297148f117fd59a2dbcc14e76f394")
|
||||
version("0.3", sha256="fc18c8fa3ae33db61203b647ad9025d894612b0faaf7fe07426aaa8bbfa9e703")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("fortran", type="build") # generated
|
||||
|
||||
|
||||
@@ -40,7 +40,6 @@ class Hipace(CMakePackage):
|
||||
description="Floating point precision (single/double)",
|
||||
)
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
depends_on("cmake@3.18.0:", type="build", when="@23.05:")
|
||||
|
||||
@@ -22,7 +22,4 @@ class JediCmake(CMakePackage):
|
||||
)
|
||||
version("1.3.0", commit="729a9b2ec97a7e93cbc58213493f28ca11f08754")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
depends_on("cmake @3.10:", type=("build"))
|
||||
|
||||
@@ -21,5 +21,4 @@ class Kumi(CMakePackage):
|
||||
version("2.0", sha256="c9f2d2014d3513c57db4457c5a678c7adce1fa9bd061ee008847876f06dac355")
|
||||
version("1.0", sha256="d28be244e326b1c9f1651b47728af74bb6be80a7accd39f07441a246d49220f5")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
@@ -26,7 +26,6 @@ class Libevpath(CMakePackage):
|
||||
variant("enet_transport", default=False, description="Build an ENET transport for EVpath")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
depends_on("gtkorvo-enet", when="@4.4.0: +enet_transport")
|
||||
depends_on("gtkorvo-enet@1.3.13", when="@:4.2.4 +enet_transport")
|
||||
|
||||
@@ -19,7 +19,6 @@ class Libfive(CMakePackage):
|
||||
# and currently, all tags are from 2017:
|
||||
version("master", branch="master")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
depends_on("pkgconfig", type="build")
|
||||
|
||||
@@ -31,8 +31,6 @@ class Mdspan(CMakePackage):
|
||||
description="Whether to install headers to emulate standard library headers and namespace",
|
||||
)
|
||||
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
depends_on("benchmark", when="+benchmarks")
|
||||
depends_on("googletest@1.14:1", when="+tests")
|
||||
|
||||
|
||||
@@ -21,7 +21,6 @@ class MelissaApi(CMakePackage):
|
||||
version("develop", branch="develop")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("fortran", type="build") # generated
|
||||
|
||||
depends_on("cmake@3.7.2:", type="build")
|
||||
|
||||
@@ -38,7 +38,6 @@ class Mpiwrapper(CMakePackage):
|
||||
version("2.0.0", sha256="cdc81f3fae459569d4073d99d068810689a19cf507d9c4e770fa91e93650dbe4")
|
||||
version("1.0.1", sha256="29d5499a1a7a358d69dd744c581e57cac9223ebde94b52fa4a2b98c730ad47ff")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("fortran", type="build") # generated
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@ def url_for_version(self, version):
|
||||
variant("tbb", default=False, description="Builds with Intel TBB support")
|
||||
variant("openmp", default=False, description="Builds with OpenMP support")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
depends_on("cmake@2.8.6:", type="build")
|
||||
|
||||
@@ -25,7 +25,6 @@ class Parsplice(CMakePackage):
|
||||
version("multisplice", branch="multisplice")
|
||||
version("1.1", sha256="a011c4d14f66e7cdbc151cc74b5d40dfeae19ceea033ef48185d8f3b1bc2f86b")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
depends_on("cmake@3.1:", type="build")
|
||||
|
||||
@@ -46,7 +46,6 @@ class Parthenon(CMakePackage):
|
||||
# Dependencies
|
||||
# ------------------------------------------------------------#
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
depends_on("cmake@3.16:", type="build")
|
||||
|
||||
@@ -15,7 +15,6 @@ class SrcmlIdentifierGetterTool(CMakePackage):
|
||||
|
||||
version("2022-10-17", commit="01394c247ae6f61cc5864a9697e72e3623d8e7fb", submodules=True)
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
depends_on("libxml2")
|
||||
|
||||
@@ -15,7 +15,6 @@ class TemplightTools(CMakePackage):
|
||||
|
||||
version("develop", branch="master")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
|
||||
depends_on("cmake @2.8.7:", type="build")
|
||||
|
||||
Reference in New Issue
Block a user