diff --git a/var/spack/repos/builtin.mock/packages/bowtie/package.py b/var/spack/repos/builtin.mock/packages/bowtie/package.py index 860f646e9b6..f6bb8b41ec2 100644 --- a/var/spack/repos/builtin.mock/packages/bowtie/package.py +++ b/var/spack/repos/builtin.mock/packages/bowtie/package.py @@ -15,5 +15,8 @@ class Bowtie(Package): version("1.2.2", md5="1c837ecd990bb022d07e7aab32b09847") version("1.2.0", md5="1c837ecd990bb022d07e7aab32b09847") + depends_on("c", type="build") + conflicts("%gcc@:4.5.0", when="@1.2.2") - conflicts("%gcc@:10.2.1", when="@:1.3.0") + conflicts("%gcc@:10.2.1", when="@:1.2.9") + conflicts("%gcc", when="@1.3") diff --git a/var/spack/repos/builtin.mock/packages/callpath/package.py b/var/spack/repos/builtin.mock/packages/callpath/package.py index 7184c15dcbb..cf3d52707f7 100644 --- a/var/spack/repos/builtin.mock/packages/callpath/package.py +++ b/var/spack/repos/builtin.mock/packages/callpath/package.py @@ -13,6 +13,8 @@ class Callpath(Package): version("0.9", md5="0123456789abcdef0123456789abcdef") version("1.0", md5="0123456789abcdef0123456789abcdef") + depends_on("c", type="build") + depends_on("dyninst") depends_on("mpi") diff --git a/var/spack/repos/builtin.mock/packages/cmake-client/package.py b/var/spack/repos/builtin.mock/packages/cmake-client/package.py index c28e19518c2..c9bf018e960 100644 --- a/var/spack/repos/builtin.mock/packages/cmake-client/package.py +++ b/var/spack/repos/builtin.mock/packages/cmake-client/package.py @@ -29,6 +29,8 @@ class CmakeClient(CMakePackage): variant("single", description="", default="blue", values=("blue", "red", "green"), multi=False) variant("truthy", description="", default=True) + depends_on("c", type="build") + callback_counter = 0 flipped = False diff --git a/var/spack/repos/builtin.mock/packages/cmake/package.py b/var/spack/repos/builtin.mock/packages/cmake/package.py index 203b6815ad3..d32dc8bb1c9 100644 --- a/var/spack/repos/builtin.mock/packages/cmake/package.py +++ b/var/spack/repos/builtin.mock/packages/cmake/package.py @@ -20,6 +20,9 @@ class Cmake(Package): homepage = "https://www.cmake.org" url = "https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz" + depends_on("c", type="build") + depends_on("cxx", type="build") + version( "3.23.1", md5="4cb3ff35b2472aae70f542116d616e63", diff --git a/var/spack/repos/builtin.mock/packages/conflict-parent/package.py b/var/spack/repos/builtin.mock/packages/conflict-parent/package.py index 57cad8615c6..6dc3240c24c 100644 --- a/var/spack/repos/builtin.mock/packages/conflict-parent/package.py +++ b/var/spack/repos/builtin.mock/packages/conflict-parent/package.py @@ -14,6 +14,7 @@ class ConflictParent(Package): version("1.0", md5="0123456789abcdef0123456789abcdef") depends_on("conflict") + depends_on("c", type="build") conflicts("^conflict~foo", when="@0.9") diff --git a/var/spack/repos/builtin.mock/packages/conflict/package.py b/var/spack/repos/builtin.mock/packages/conflict/package.py index 209cd78539b..1b36c351518 100644 --- a/var/spack/repos/builtin.mock/packages/conflict/package.py +++ b/var/spack/repos/builtin.mock/packages/conflict/package.py @@ -17,6 +17,8 @@ class Conflict(Package): conflicts("%clang", when="+foo") + depends_on("c", type="build") + def install(self, spec, prefix): configure("--prefix=%s" % prefix) make() diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py index 1082bb350be..dcc6cd77eb2 100644 --- a/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py +++ b/var/spack/repos/builtin.mock/packages/dt-diamond-bottom/package.py @@ -12,3 +12,5 @@ class DtDiamondBottom(Package): url = "http://www.example.com/dt-diamond-bottom-1.0.tar.gz" version("1.0", md5="0123456789abcdef0123456789abcdef") + + depends_on("c", type="build") diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py index 682218390f1..a9337a576eb 100644 --- a/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py +++ b/var/spack/repos/builtin.mock/packages/dt-diamond-left/package.py @@ -14,3 +14,4 @@ class DtDiamondLeft(Package): version("1.0", md5="0123456789abcdef0123456789abcdef") depends_on("dt-diamond-bottom", type="build") + depends_on("c", type="build") diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py index 9b3c42f800b..ed2b39973b3 100644 --- a/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py +++ b/var/spack/repos/builtin.mock/packages/dt-diamond-right/package.py @@ -14,3 +14,4 @@ class DtDiamondRight(Package): version("1.0", md5="0123456789abcdef0123456789abcdef") depends_on("dt-diamond-bottom", type=("build", "link", "run")) + depends_on("c", type="build") diff --git a/var/spack/repos/builtin.mock/packages/dt-diamond/package.py b/var/spack/repos/builtin.mock/packages/dt-diamond/package.py index 3774de7f932..0d60584a4f3 100644 --- a/var/spack/repos/builtin.mock/packages/dt-diamond/package.py +++ b/var/spack/repos/builtin.mock/packages/dt-diamond/package.py @@ -15,3 +15,5 @@ class DtDiamond(Package): depends_on("dt-diamond-left") depends_on("dt-diamond-right") + + depends_on("c", type="build") diff --git a/var/spack/repos/builtin.mock/packages/dyninst/package.py b/var/spack/repos/builtin.mock/packages/dyninst/package.py index 900737dd312..5f2d1e232d9 100644 --- a/var/spack/repos/builtin.mock/packages/dyninst/package.py +++ b/var/spack/repos/builtin.mock/packages/dyninst/package.py @@ -28,6 +28,8 @@ class Dyninst(Package): depends_on("libelf") depends_on("libdwarf") + depends_on("c", type="build") + def install(self, spec, prefix): mkdirp(prefix) touch(join_path(prefix, "dummyfile")) diff --git a/var/spack/repos/builtin.mock/packages/fftw/package.py b/var/spack/repos/builtin.mock/packages/fftw/package.py index 4ffb4c000d6..a169b4aa27e 100644 --- a/var/spack/repos/builtin.mock/packages/fftw/package.py +++ b/var/spack/repos/builtin.mock/packages/fftw/package.py @@ -18,4 +18,6 @@ class Fftw(Package): variant("mpi", default=False, description="Enable MPI") + depends_on("c", type="build") + depends_on("mpi", when="+mpi") diff --git a/var/spack/repos/builtin.mock/packages/gcc-runtime b/var/spack/repos/builtin.mock/packages/gcc-runtime new file mode 120000 index 00000000000..6f620d9d8c2 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/gcc-runtime @@ -0,0 +1 @@ +../../builtin/packages/gcc-runtime \ No newline at end of file diff --git a/var/spack/repos/builtin.mock/packages/gcc/package.py b/var/spack/repos/builtin.mock/packages/gcc/package.py index 5aae4bae941..d054d22cf21 100644 --- a/var/spack/repos/builtin.mock/packages/gcc/package.py +++ b/var/spack/repos/builtin.mock/packages/gcc/package.py @@ -1,6 +1,7 @@ # Copyright Spack Project Developers. See COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os.path from spack.package import * @@ -23,7 +24,9 @@ class Gcc(CompilerPackage, Package): description="Compilers and runtime libraries to build", ) - depends_on("conflict", when="@3.0") + provides("c", when="languages=c") + provides("cxx", when="languages=c++") + provides("fortran", when="languages=fortran") c_names = ["gcc"] cxx_names = ["g++"] @@ -33,9 +36,100 @@ class Gcc(CompilerPackage, Package): compiler_version_regex = r"(?