2022-01-13 03:21:41 +08:00
|
|
|
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
|
2018-10-08 04:52:23 +08:00
|
|
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
2016-04-04 17:52:38 +08:00
|
|
|
#
|
2018-10-08 04:52:23 +08:00
|
|
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
|
|
|
2016-04-04 17:52:38 +08:00
|
|
|
import os
|
2022-03-17 04:41:34 +08:00
|
|
|
import sys
|
2016-04-04 17:52:38 +08:00
|
|
|
|
2021-07-09 06:12:30 +08:00
|
|
|
from spack import *
|
|
|
|
|
2022-03-17 04:41:34 +08:00
|
|
|
is_windows = sys.platform == 'win32'
|
|
|
|
|
2016-08-10 16:50:00 +08:00
|
|
|
|
2016-04-04 17:52:38 +08:00
|
|
|
def check(condition, msg):
|
|
|
|
"""Raise an install error if condition is False."""
|
|
|
|
if not condition:
|
|
|
|
raise InstallError(msg)
|
|
|
|
|
|
|
|
|
|
|
|
class Cmake(Package):
|
|
|
|
"""A dumy package for the cmake build system."""
|
|
|
|
homepage = 'https://www.cmake.org'
|
|
|
|
url = 'https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz'
|
|
|
|
|
|
|
|
version('3.4.3', '4cb3ff35b2472aae70f542116d616e63',
|
|
|
|
url='https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz')
|
|
|
|
|
2022-03-13 23:51:55 +08:00
|
|
|
def setup_build_environment(self, env):
|
2016-04-04 17:52:38 +08:00
|
|
|
spack_cc # Ensure spack module-scope variable is avaiable
|
2022-03-13 23:51:55 +08:00
|
|
|
env.set('for_install', 'for_install')
|
2016-04-04 17:52:38 +08:00
|
|
|
|
2022-03-13 23:51:55 +08:00
|
|
|
def setup_dependent_build_environment(self, env, dependent_spec):
|
2016-04-04 17:52:38 +08:00
|
|
|
spack_cc # Ensure spack module-scope variable is avaiable
|
2022-03-13 23:51:55 +08:00
|
|
|
env.set('from_cmake', 'from_cmake')
|
2016-04-04 17:52:38 +08:00
|
|
|
|
|
|
|
def setup_dependent_package(self, module, dspec):
|
|
|
|
spack_cc # Ensure spack module-scope variable is avaiable
|
|
|
|
|
|
|
|
self.spec.from_cmake = "from_cmake"
|
|
|
|
module.from_cmake = "from_cmake"
|
|
|
|
|
|
|
|
self.spec.link_arg = "test link arg"
|
|
|
|
|
|
|
|
def install(self, spec, prefix):
|
|
|
|
mkdirp(prefix.bin)
|
|
|
|
|
|
|
|
check(os.environ['for_install'] == 'for_install',
|
|
|
|
"Couldn't read env var set in compile envieonmnt")
|
2022-03-17 04:41:34 +08:00
|
|
|
cmake_exe_ext = ".exe" if is_windows else ''
|
|
|
|
cmake_exe = join_path(prefix.bin, 'cmake{}'.format(cmake_exe_ext))
|
2016-04-04 17:52:38 +08:00
|
|
|
touch(cmake_exe)
|
|
|
|
set_executable(cmake_exe)
|