diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/sollve/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/sollve/package.py | 549 |
1 files changed, 324 insertions, 225 deletions
diff --git a/var/spack/repos/builtin/packages/sollve/package.py b/var/spack/repos/builtin/packages/sollve/package.py index ff9f06091f..72e9f87e4b 100644 --- a/var/spack/repos/builtin/packages/sollve/package.py +++ b/var/spack/repos/builtin/packages/sollve/package.py @@ -8,305 +8,404 @@ from spack.package import * class Sollve(CMakePackage): """The SOLLVE Project aims at scaling OpenMP by leveraging LLVM for - exascale performance and portability of applications. This package - provides a collection of Clang/LLVM compilers and an OpenMP runtime - library. + exascale performance and portability of applications. This package + provides a collection of Clang/LLVM compilers and an OpenMP runtime + library. """ - homepage = 'https://www.bnl.gov/compsci/projects/SOLLVE/' - git = "https://github.com/SOLLVE/llvm.git" + homepage = "https://www.bnl.gov/compsci/projects/SOLLVE/" + git = "https://github.com/SOLLVE/llvm.git" - family = 'compiler' # Used by lmod + family = "compiler" # Used by lmod # NOTE: The debug version of LLVM is an order of magnitude larger than # the release version, and may take up 20-30 GB of space. If you want # to save space, build with `build_type=Release`. - variant('clang', default=True, - description="Build the LLVM C/C++/Objective-C compiler frontend") - variant('lldb', default=True, description="Build the LLVM debugger") - variant('lld', default=True, description="Build the LLVM linker") - variant('internal_unwind', default=True, - description="Build the libcxxabi libunwind") - variant('polly', default=True, - description="Build the LLVM polyhedral optimization plugin") - variant('libcxx', default=True, - description="Build the LLVM C++ standard library") - variant('compiler-rt', default=True, - description="Build LLVM compiler runtime, including sanitizers") - variant('gold', default=True, - description="Add support for LTO with the gold linker plugin") - variant('shared_libs', default=False, - description="Build all components as shared libraries, faster, " - "less memory to build, less stable") - variant('link_dylib', default=False, - description="Build and link the libLLVM shared library rather " - "than static") - variant('all_targets', default=False, - description="Build all supported targets, default targets " - "<current arch>,NVPTX,AMDGPU,CppBackend") - variant('build_type', default='Release', - description='CMake build type', - values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel')) - variant('omp_tsan', default=False, - description="Build with OpenMP capable thread sanitizer") - variant('python', default=False, description="Install python bindings") - variant('argobots', default=True, description="Use Argobots in BOLT") - extends('python', when='+python') + variant( + "clang", default=True, description="Build the LLVM C/C++/Objective-C compiler frontend" + ) + variant("lldb", default=True, description="Build the LLVM debugger") + variant("lld", default=True, description="Build the LLVM linker") + variant("internal_unwind", default=True, description="Build the libcxxabi libunwind") + variant("polly", default=True, description="Build the LLVM polyhedral optimization plugin") + variant("libcxx", default=True, description="Build the LLVM C++ standard library") + variant( + "compiler-rt", + default=True, + description="Build LLVM compiler runtime, including sanitizers", + ) + variant("gold", default=True, description="Add support for LTO with the gold linker plugin") + variant( + "shared_libs", + default=False, + description="Build all components as shared libraries, faster, " + "less memory to build, less stable", + ) + variant( + "link_dylib", + default=False, + description="Build and link the libLLVM shared library rather " "than static", + ) + variant( + "all_targets", + default=False, + description="Build all supported targets, default targets " + "<current arch>,NVPTX,AMDGPU,CppBackend", + ) + variant( + "build_type", + default="Release", + description="CMake build type", + values=("Debug", "Release", "RelWithDebInfo", "MinSizeRel"), + ) + variant("omp_tsan", default=False, description="Build with OpenMP capable thread sanitizer") + variant("python", default=False, description="Install python bindings") + variant("argobots", default=True, description="Use Argobots in BOLT") + extends("python", when="+python") # Build dependency - depends_on('cmake@3.4.3:', type='build') - depends_on('python', type='build') + depends_on("cmake@3.4.3:", type="build") + depends_on("python", type="build") # openmp dependencies - depends_on('perl-data-dumper', type=('build')) - depends_on('argobots', when='+argobots') + depends_on("perl-data-dumper", type=("build")) + depends_on("argobots", when="+argobots") # lldb dependencies - depends_on('ncurses', when='+lldb') - depends_on('swig', when='+lldb') - depends_on('libedit', when='+lldb') - depends_on('py-six', when='+lldb +python', type=('build', 'run')) + depends_on("ncurses", when="+lldb") + depends_on("swig", when="+lldb") + depends_on("libedit", when="+lldb") + depends_on("py-six", when="+lldb +python", type=("build", "run")) # gold support - depends_on('binutils+gold', when='+gold') + depends_on("binutils+gold", when="+gold") # develop version. version("develop", deprecated=True) - resource(name='compiler-rt', - svn='http://llvm.org/svn/llvm-project/compiler-rt/trunk', - destination='projects', when='@develop+compiler-rt', - placement='compiler-rt') - resource(name='openmp', git='https://github.com/pmodels/bolt.git', - destination='projects', when='@develop+clang', placement='openmp') - resource(name='polly', git='https://github.com/SOLLVE/polly.git', - destination='tools', when='@develop+polly', placement='polly') - resource(name='libcxx', git='https://github.com/SOLLVE/libcxx.git', - destination='projects', when='@develop+libcxx', - placement='libcxx') - resource(name='libcxxabi', git='https://github.com/SOLLVE/libcxxabi.git', - destination='projects', when='@develop+libcxx', - placement='libcxxabi') - resource(name='cfe', git='https://github.com/SOLLVE/clang.git', - destination='tools', when='@develop+clang', placement='clang') - resource(name='lldb', svn='http://llvm.org/svn/llvm-project/lldb/trunk', - destination='tools', when='@develop+lldb', placement='lldb') - resource(name='lld', svn='http://llvm.org/svn/llvm-project/lld/trunk', - destination='tools', when='@develop+lld', placement='lld') - resource(name='libunwind', - svn='http://llvm.org/svn/llvm-project/libunwind/trunk', - destination='projects', when='@develop+internal_unwind', - placement='libunwind') + resource( + name="compiler-rt", + svn="http://llvm.org/svn/llvm-project/compiler-rt/trunk", + destination="projects", + when="@develop+compiler-rt", + placement="compiler-rt", + ) + resource( + name="openmp", + git="https://github.com/pmodels/bolt.git", + destination="projects", + when="@develop+clang", + placement="openmp", + ) + resource( + name="polly", + git="https://github.com/SOLLVE/polly.git", + destination="tools", + when="@develop+polly", + placement="polly", + ) + resource( + name="libcxx", + git="https://github.com/SOLLVE/libcxx.git", + destination="projects", + when="@develop+libcxx", + placement="libcxx", + ) + resource( + name="libcxxabi", + git="https://github.com/SOLLVE/libcxxabi.git", + destination="projects", + when="@develop+libcxx", + placement="libcxxabi", + ) + resource( + name="cfe", + git="https://github.com/SOLLVE/clang.git", + destination="tools", + when="@develop+clang", + placement="clang", + ) + resource( + name="lldb", + svn="http://llvm.org/svn/llvm-project/lldb/trunk", + destination="tools", + when="@develop+lldb", + placement="lldb", + ) + resource( + name="lld", + svn="http://llvm.org/svn/llvm-project/lld/trunk", + destination="tools", + when="@develop+lld", + placement="lld", + ) + resource( + name="libunwind", + svn="http://llvm.org/svn/llvm-project/libunwind/trunk", + destination="projects", + when="@develop+internal_unwind", + placement="libunwind", + ) # 1.0a2 based on LLVM 9.0+ - version("1.0a2", commit="cb4343bda9e57076a74dee23236ac9737e07594f", - deprecated=True) - resource(name='compiler-rt', - svn='https://llvm.org/svn/llvm-project/compiler-rt/trunk', - revision=373130, destination='projects', - when='@1.0a2+compiler-rt', placement='compiler-rt') - resource(name='openmp', git='https://github.com/pmodels/bolt.git', - commit="0a0033b09cfb672c119cf41eeb54eda7664681bc", - destination='projects', when='@1.0a2+clang', placement='openmp') - resource(name='polly', git='https://github.com/SOLLVE/polly.git', - commit="96168ae6fb436e95cd756950855a57b895070047", - destination='tools', when='@1.0a2+polly', placement='polly') - resource(name='libcxx', git='https://github.com/SOLLVE/libcxx.git', - commit="9637883af0357acf02c87fae5efb71661d21f516", - destination='projects', when='@1.0a2+libcxx', placement='libcxx') - resource(name='libcxxabi', git='https://github.com/SOLLVE/libcxxabi.git', - commit="3ed912b3b014a3af862c3b2cd0795ad43afadf31", - destination='projects', when='@1.0a2+libcxx', - placement='libcxxabi') - resource(name='cfe', git='https://github.com/SOLLVE/clang.git', - commit="774bc67094a1baa2dbdab705b0cac061048a062e", - destination='tools', when='@1.0a2+clang', placement='clang') - resource(name='lldb', - svn='http://llvm.org/svn/llvm-project/lldb/trunk', - revision=373127, destination='tools', when='@1.0a2+lldb', - placement='lldb') - resource(name='lld', svn='http://llvm.org/svn/llvm-project/lld/trunk/', - revision=373077, destination='tools', when='@1.0a2+lld', - placement='lld') - resource(name='libunwind', - svn='http://llvm.org/svn/llvm-project/libunwind/trunk', - revision=372427, destination='projects', - when='@1.0a2+internal_unwind', placement='libunwind') - - conflicts('+lldb', when='~clang') - - conflicts('%gcc@:5.0') - conflicts('+omp_tsan') - - patch('disable_unused_lock.patch', when='@1.0a2', working_dir='projects/openmp') - - @run_before('cmake') + version("1.0a2", commit="cb4343bda9e57076a74dee23236ac9737e07594f", deprecated=True) + resource( + name="compiler-rt", + svn="https://llvm.org/svn/llvm-project/compiler-rt/trunk", + revision=373130, + destination="projects", + when="@1.0a2+compiler-rt", + placement="compiler-rt", + ) + resource( + name="openmp", + git="https://github.com/pmodels/bolt.git", + commit="0a0033b09cfb672c119cf41eeb54eda7664681bc", + destination="projects", + when="@1.0a2+clang", + placement="openmp", + ) + resource( + name="polly", + git="https://github.com/SOLLVE/polly.git", + commit="96168ae6fb436e95cd756950855a57b895070047", + destination="tools", + when="@1.0a2+polly", + placement="polly", + ) + resource( + name="libcxx", + git="https://github.com/SOLLVE/libcxx.git", + commit="9637883af0357acf02c87fae5efb71661d21f516", + destination="projects", + when="@1.0a2+libcxx", + placement="libcxx", + ) + resource( + name="libcxxabi", + git="https://github.com/SOLLVE/libcxxabi.git", + commit="3ed912b3b014a3af862c3b2cd0795ad43afadf31", + destination="projects", + when="@1.0a2+libcxx", + placement="libcxxabi", + ) + resource( + name="cfe", + git="https://github.com/SOLLVE/clang.git", + commit="774bc67094a1baa2dbdab705b0cac061048a062e", + destination="tools", + when="@1.0a2+clang", + placement="clang", + ) + resource( + name="lldb", + svn="http://llvm.org/svn/llvm-project/lldb/trunk", + revision=373127, + destination="tools", + when="@1.0a2+lldb", + placement="lldb", + ) + resource( + name="lld", + svn="http://llvm.org/svn/llvm-project/lld/trunk/", + revision=373077, + destination="tools", + when="@1.0a2+lld", + placement="lld", + ) + resource( + name="libunwind", + svn="http://llvm.org/svn/llvm-project/libunwind/trunk", + revision=372427, + destination="projects", + when="@1.0a2+internal_unwind", + placement="libunwind", + ) + + conflicts("+lldb", when="~clang") + + conflicts("%gcc@:5.0") + conflicts("+omp_tsan") + + patch("disable_unused_lock.patch", when="@1.0a2", working_dir="projects/openmp") + + @run_before("cmake") def check_darwin_lldb_codesign_requirement(self): - if not self.spec.satisfies('+lldb platform=darwin'): + if not self.spec.satisfies("+lldb platform=darwin"): return - codesign = which('codesign') - mkdir('tmp') - llvm_check_file = join_path('tmp', 'llvm_check') - copy('/usr/bin/false', llvm_check_file) + codesign = which("codesign") + mkdir("tmp") + llvm_check_file = join_path("tmp", "llvm_check") + copy("/usr/bin/false", llvm_check_file) try: - codesign('-f', '-s', 'lldb_codesign', '--dryrun', - llvm_check_file) + codesign("-f", "-s", "lldb_codesign", "--dryrun", llvm_check_file) except ProcessError: - explanation = ('The "lldb_codesign" identity must be available' - ' to build LLVM with LLDB. See https://llvm.org/' - 'svn/llvm-project/lldb/trunk/docs/code-signing' - '.txt for details on how to create this identity.') + explanation = ( + 'The "lldb_codesign" identity must be available' + " to build LLVM with LLDB. See https://llvm.org/" + "svn/llvm-project/lldb/trunk/docs/code-signing" + ".txt for details on how to create this identity." + ) raise RuntimeError(explanation) def setup_build_environment(self, env): - env.append_flags('CXXFLAGS', self.compiler.cxx11_flag) + env.append_flags("CXXFLAGS", self.compiler.cxx11_flag) def setup_run_environment(self, env): - if '+clang' in self.spec: - env.set('CC', join_path(self.spec.prefix.bin, 'clang')) - env.set('CXX', join_path(self.spec.prefix.bin, 'clang++')) + if "+clang" in self.spec: + env.set("CC", join_path(self.spec.prefix.bin, "clang")) + env.set("CXX", join_path(self.spec.prefix.bin, "clang++")) def cmake_args(self): spec = self.spec cmake_args = [ - '-DLLVM_REQUIRES_RTTI:BOOL=ON', - '-DLLVM_ENABLE_RTTI:BOOL=ON', - '-DLLVM_ENABLE_EH:BOOL=ON', - '-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp', - '-DPYTHON_EXECUTABLE:PATH={0}'.format(spec['python'].command.path), + "-DLLVM_REQUIRES_RTTI:BOOL=ON", + "-DLLVM_ENABLE_RTTI:BOOL=ON", + "-DLLVM_ENABLE_EH:BOOL=ON", + "-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp", + "-DPYTHON_EXECUTABLE:PATH={0}".format(spec["python"].command.path), ] # TODO: Instead of unconditionally disabling CUDA, add a "cuda" variant # (see TODO above), and set the paths if enabled. - cmake_args.extend([ - '-DCUDA_TOOLKIT_ROOT_DIR:PATH=IGNORE', - '-DCUDA_SDK_ROOT_DIR:PATH=IGNORE', - '-DCUDA_NVCC_EXECUTABLE:FILEPATH=IGNORE', - '-DLIBOMPTARGET_DEP_CUDA_DRIVER_LIBRARIES:STRING=IGNORE']) - - if '+gold' in spec: - cmake_args.append('-DLLVM_BINUTILS_INCDIR=' + - spec['binutils'].prefix.include) - - if '+polly' in spec: - cmake_args.append('-DLINK_POLLY_INTO_TOOLS:Bool=ON') + cmake_args.extend( + [ + "-DCUDA_TOOLKIT_ROOT_DIR:PATH=IGNORE", + "-DCUDA_SDK_ROOT_DIR:PATH=IGNORE", + "-DCUDA_NVCC_EXECUTABLE:FILEPATH=IGNORE", + "-DLIBOMPTARGET_DEP_CUDA_DRIVER_LIBRARIES:STRING=IGNORE", + ] + ) + + if "+gold" in spec: + cmake_args.append("-DLLVM_BINUTILS_INCDIR=" + spec["binutils"].prefix.include) + + if "+polly" in spec: + cmake_args.append("-DLINK_POLLY_INTO_TOOLS:Bool=ON") else: - cmake_args.extend(['-DLLVM_EXTERNAL_POLLY_BUILD:Bool=OFF', - '-DLLVM_TOOL_POLLY_BUILD:Bool=OFF', - '-DLLVM_POLLY_BUILD:Bool=OFF', - '-DLLVM_POLLY_LINK_INTO_TOOLS:Bool=OFF']) - - if '+python' in spec and '+lldb' in spec: - cmake_args.append('-DLLDB_USE_SYSTEM_SIX:Bool=TRUE') + cmake_args.extend( + [ + "-DLLVM_EXTERNAL_POLLY_BUILD:Bool=OFF", + "-DLLVM_TOOL_POLLY_BUILD:Bool=OFF", + "-DLLVM_POLLY_BUILD:Bool=OFF", + "-DLLVM_POLLY_LINK_INTO_TOOLS:Bool=OFF", + ] + ) + + if "+python" in spec and "+lldb" in spec: + cmake_args.append("-DLLDB_USE_SYSTEM_SIX:Bool=TRUE") else: - cmake_args.append('-DLLDB_USE_SYSTEM_SIX:Bool=FALSE') + cmake_args.append("-DLLDB_USE_SYSTEM_SIX:Bool=FALSE") - if '+clang' in spec: - cmake_args.append('-DLLVM_EXTERNAL_CLANG_BUILD:Bool=ON') + if "+clang" in spec: + cmake_args.append("-DLLVM_EXTERNAL_CLANG_BUILD:Bool=ON") else: - cmake_args.append('-DLLVM_EXTERNAL_CLANG_BUILD:Bool=OFF') + cmake_args.append("-DLLVM_EXTERNAL_CLANG_BUILD:Bool=OFF") - if '+lldb' in spec: - cmake_args.extend(['-DLLVM_EXTERNAL_LLDB_BUILD:Bool=ON', - '-DLLVM_TOOL_LLDB_BUILD:Bool=ON']) + if "+lldb" in spec: + cmake_args.extend( + ["-DLLVM_EXTERNAL_LLDB_BUILD:Bool=ON", "-DLLVM_TOOL_LLDB_BUILD:Bool=ON"] + ) else: - cmake_args.extend(['-DLLVM_EXTERNAL_LLDB_BUILD:Bool=OFF', - '-DLLVM_TOOL_LLDB_BUILD:Bool=OFF']) + cmake_args.extend( + ["-DLLVM_EXTERNAL_LLDB_BUILD:Bool=OFF", "-DLLVM_TOOL_LLDB_BUILD:Bool=OFF"] + ) - if '+lld' in spec: - cmake_args.append('-DLLVM_TOOL_LLD_BUILD:Bool=ON') + if "+lld" in spec: + cmake_args.append("-DLLVM_TOOL_LLD_BUILD:Bool=ON") else: - cmake_args.append('-DLLVM_TOOL_LLD_BUILD:Bool=OFF') + cmake_args.append("-DLLVM_TOOL_LLD_BUILD:Bool=OFF") - if '+internal_unwind' in spec: - cmake_args.append('-DLLVM_EXTERNAL_LIBUNWIND_BUILD:Bool=ON') + if "+internal_unwind" in spec: + cmake_args.append("-DLLVM_EXTERNAL_LIBUNWIND_BUILD:Bool=ON") else: - cmake_args.append('-DLLVM_EXTERNAL_LIBUNWIND_BUILD:Bool=OFF') + cmake_args.append("-DLLVM_EXTERNAL_LIBUNWIND_BUILD:Bool=OFF") - if '+libcxx' in spec: - cmake_args.append('-DCLANG_DEFAULT_CXX_STDLIB=libc++') - cmake_args.append('-DLLVM_EXTERNAL_LIBCXX_BUILD:Bool=ON') - cmake_args.append('-DLLVM_EXTERNAL_LIBCXXABI_BUILD:Bool=ON') + if "+libcxx" in spec: + cmake_args.append("-DCLANG_DEFAULT_CXX_STDLIB=libc++") + cmake_args.append("-DLLVM_EXTERNAL_LIBCXX_BUILD:Bool=ON") + cmake_args.append("-DLLVM_EXTERNAL_LIBCXXABI_BUILD:Bool=ON") else: - cmake_args.append('-DLLVM_EXTERNAL_LIBCXX_BUILD:Bool=OFF') - cmake_args.append('-DLLVM_EXTERNAL_LIBCXXABI_BUILD:Bool=OFF') + cmake_args.append("-DLLVM_EXTERNAL_LIBCXX_BUILD:Bool=OFF") + cmake_args.append("-DLLVM_EXTERNAL_LIBCXXABI_BUILD:Bool=OFF") - if '+compiler-rt' in spec: - cmake_args.append('-DLLVM_EXTERNAL_COMPILER_RT_BUILD:Bool=ON') + if "+compiler-rt" in spec: + cmake_args.append("-DLLVM_EXTERNAL_COMPILER_RT_BUILD:Bool=ON") else: - cmake_args.append('-DLLVM_EXTERNAL_COMPILER_RT_BUILD:Bool=OFF') + cmake_args.append("-DLLVM_EXTERNAL_COMPILER_RT_BUILD:Bool=OFF") - if '+shared_libs' in spec: - cmake_args.append('-DBUILD_SHARED_LIBS:Bool=ON') + if "+shared_libs" in spec: + cmake_args.append("-DBUILD_SHARED_LIBS:Bool=ON") else: - cmake_args.append('-DBUILD_SHARED_LIBS:Bool=OFF') + cmake_args.append("-DBUILD_SHARED_LIBS:Bool=OFF") - if '+link_dylib' in spec: - cmake_args.append('-DLLVM_LINK_LLVM_DYLIB:Bool=ON') + if "+link_dylib" in spec: + cmake_args.append("-DLLVM_LINK_LLVM_DYLIB:Bool=ON") else: - cmake_args.append('-DLLVM_LINK_LLVM_DYLIB:Bool=OFF') + cmake_args.append("-DLLVM_LINK_LLVM_DYLIB:Bool=OFF") - if '+all_targets' not in spec: # all is default on cmake + if "+all_targets" not in spec: # all is default on cmake targets = [] - if spec.target.family == 'x86' or spec.target.family == 'x86_64': - targets.append('X86') - elif spec.target.family == 'arm': - targets.append('ARM') - elif spec.target.family == 'aarch64': - targets.append('AArch64') - elif (spec.target.family == 'sparc' or - spec.target.family == 'sparc64'): - targets.append('Sparc') - elif (spec.target.family == 'ppc64' or - spec.target.family == 'ppc64le' or - spec.target.family == 'ppc' or - spec.target.family == 'ppcle'): - targets.append('PowerPC') - - cmake_args.append( - '-DLLVM_TARGETS_TO_BUILD:STRING=' + ';'.join(targets)) - - if '+omp_tsan' in spec: - cmake_args.append('-DLIBOMP_TSAN_SUPPORT=ON') + if spec.target.family == "x86" or spec.target.family == "x86_64": + targets.append("X86") + elif spec.target.family == "arm": + targets.append("ARM") + elif spec.target.family == "aarch64": + targets.append("AArch64") + elif spec.target.family == "sparc" or spec.target.family == "sparc64": + targets.append("Sparc") + elif ( + spec.target.family == "ppc64" + or spec.target.family == "ppc64le" + or spec.target.family == "ppc" + or spec.target.family == "ppcle" + ): + targets.append("PowerPC") + + cmake_args.append("-DLLVM_TARGETS_TO_BUILD:STRING=" + ";".join(targets)) + + if "+omp_tsan" in spec: + cmake_args.append("-DLIBOMP_TSAN_SUPPORT=ON") else: - cmake_args.append('-DLIBOMP_TSAN_SUPPORT=OFF') - - if '+argobots' in spec: - cmake_args.extend([ - '-DLIBOMP_USE_ITT_NOTIFY=OFF', - '-DLIBOMP_USE_ARGOBOTS=ON', - '-DLIBOMP_ARGOBOTS_INSTALL_DIR=' + spec['argobots'].prefix]) + cmake_args.append("-DLIBOMP_TSAN_SUPPORT=OFF") + + if "+argobots" in spec: + cmake_args.extend( + [ + "-DLIBOMP_USE_ITT_NOTIFY=OFF", + "-DLIBOMP_USE_ARGOBOTS=ON", + "-DLIBOMP_ARGOBOTS_INSTALL_DIR=" + spec["argobots"].prefix, + ] + ) else: # LIBOMP_USE_ITT_NOTIFY should be set to a default value. - cmake_args.append('-DLIBOMP_USE_ARGOBOTS=OFF') + cmake_args.append("-DLIBOMP_USE_ARGOBOTS=OFF") - if self.compiler.name == 'gcc': + if self.compiler.name == "gcc": gcc_prefix = ancestor(self.compiler.cc, 2) - cmake_args.append('-DGCC_INSTALL_PREFIX=' + gcc_prefix) + cmake_args.append("-DGCC_INSTALL_PREFIX=" + gcc_prefix) - if spec.satisfies('platform=linux'): - cmake_args.append('-DCMAKE_BUILD_WITH_INSTALL_RPATH=1') + if spec.satisfies("platform=linux"): + cmake_args.append("-DCMAKE_BUILD_WITH_INSTALL_RPATH=1") return cmake_args - @run_before('build') + @run_before("build") def pre_install(self): with working_dir(self.build_directory): # When building shared libraries these need to be installed first - make('install-LLVMTableGen') - if self.spec.version >= Version('4.0.0'): + make("install-LLVMTableGen") + if self.spec.version >= Version("4.0.0"): # LLVMDemangle target was added in 4.0.0 - make('install-LLVMDemangle') - make('install-LLVMSupport') + make("install-LLVMDemangle") + make("install-LLVMSupport") - @run_after('install') + @run_after("install") def post_install(self): - if '+clang' in self.spec and '+python' in self.spec: - install_tree( - 'tools/clang/bindings/python/clang', - join_path(python_platlib, 'clang')) + if "+clang" in self.spec and "+python" in self.spec: + install_tree("tools/clang/bindings/python/clang", join_path(python_platlib, "clang")) with working_dir(self.build_directory): - install_tree('bin', self.prefix.libexec.llvm) + install_tree("bin", self.prefix.libexec.llvm) |