From fe6e89494b540435a66931e881d05099b7185bd0 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck <wdconinc@gmail.com> Date: Mon, 20 Dec 2021 22:55:06 +0000 Subject: [PATCH] fmt + shared; rm local fmt --- spack.yaml | 2 +- .../fmt/fmt-attributes-cpp11_4.1.0.patch | 13 --- .../fmt/fmt-no-export-cpp11flag_3.0.0.patch | 13 --- .../fmt-use-cmake-cxx-standard_3.0.0.patch | 15 ---- spack/packages/fmt/package.py | 88 ------------------- 5 files changed, 1 insertion(+), 130 deletions(-) delete mode 100644 spack/packages/fmt/fmt-attributes-cpp11_4.1.0.patch delete mode 100644 spack/packages/fmt/fmt-no-export-cpp11flag_3.0.0.patch delete mode 100644 spack/packages/fmt/fmt-use-cmake-cxx-standard_3.0.0.patch delete mode 100644 spack/packages/fmt/package.py diff --git a/spack.yaml b/spack.yaml index 75c893519..d84d5cd0d 100644 --- a/spack.yaml +++ b/spack.yaml @@ -10,7 +10,7 @@ spack: - eigen@3.3.9 - emacs@27.0:27.99 toolkit=athena - fastjet@3.3.3 - - fmt@7.1.2 cxxstd=17 + - fmt@7.1.2 +shared cxxstd=17 - gaudi@36.0 - geant4@10.7.1 cxxstd=17 +opengl +vecgeom +x11 +qt +threads - genfit@2.00.00 diff --git a/spack/packages/fmt/fmt-attributes-cpp11_4.1.0.patch b/spack/packages/fmt/fmt-attributes-cpp11_4.1.0.patch deleted file mode 100644 index cc7f7f3ca..000000000 --- a/spack/packages/fmt/fmt-attributes-cpp11_4.1.0.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/fmt/format.h b/fmt/format.h -index 561a9e0..9faf5ca 100644 ---- a/fmt/format.h -+++ b/fmt/format.h -@@ -153,7 +153,7 @@ typedef __int64 intmax_t; - # define FMT_HAS_CPP_ATTRIBUTE(x) 0 - #endif - --#if FMT_HAS_CPP_ATTRIBUTE(maybe_unused) -+#if FMT_HAS_CPP_ATTRIBUTE(maybe_unused) && __cplusplus >= 201103L - # define FMT_HAS_CXX17_ATTRIBUTE_MAYBE_UNUSED - // VC++ 1910 support /std: option and that will set _MSVC_LANG macro - // Clang with Microsoft CodeGen doesn't define _MSVC_LANG macro diff --git a/spack/packages/fmt/fmt-no-export-cpp11flag_3.0.0.patch b/spack/packages/fmt/fmt-no-export-cpp11flag_3.0.0.patch deleted file mode 100644 index 6b5ea4d86..000000000 --- a/spack/packages/fmt/fmt-no-export-cpp11flag_3.0.0.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/fmt/CMakeLists.txt b/fmt/CMakeLists.txt -index c0ef02e..1634924 100644 ---- a/fmt/CMakeLists.txt -+++ b/fmt/CMakeLists.txt -@@ -14,8 +14,6 @@ if (FMT_CPPFORMAT) - add_library(cppformat ${FMT_SOURCES} ${FMT_HEADERS}) - endif () - --# Starting with cmake 3.1 the CXX_STANDARD property can be used instead. --target_compile_options(fmt PUBLIC ${CPP11_FLAG}) - if (FMT_PEDANTIC) - target_compile_options(fmt PRIVATE ${PEDANTIC_COMPILE_FLAGS}) - endif () diff --git a/spack/packages/fmt/fmt-use-cmake-cxx-standard_3.0.0.patch b/spack/packages/fmt/fmt-use-cmake-cxx-standard_3.0.0.patch deleted file mode 100644 index 407430bcf..000000000 --- a/spack/packages/fmt/fmt-use-cmake-cxx-standard_3.0.0.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/support/cmake/cxx11.cmake b/support/cmake/cxx11.cmake -index 31ea106..8581b9a 100644 ---- a/support/cmake/cxx11.cmake -+++ b/support/cmake/cxx11.cmake -@@ -37,6 +37,10 @@ if (FMT_USE_CPP11) - endif () - endif () - -+if (CMAKE_CXX_STANDARD) -+ set(CPP11_FLAG ) -+endif () -+ - set(CMAKE_REQUIRED_FLAGS ${CPP11_FLAG}) - - # Check if variadic templates are working and not affected by GCC bug 39653: diff --git a/spack/packages/fmt/package.py b/spack/packages/fmt/package.py deleted file mode 100644 index e0aea9bd4..000000000 --- a/spack/packages/fmt/package.py +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack import * - - -class Fmt(CMakePackage): - """fmt (formerly cppformat) is an open-source formatting library. - It can be used as a safe alternative to printf or as a fast alternative - to C++ IOStreams.""" - - homepage = "https://fmt.dev/" - url = "https://github.com/fmtlib/fmt/releases/download/7.1.3/fmt-7.1.3.zip" - - version('7.1.3', sha256='5d98c504d0205f912e22449ecdea776b78ce0bb096927334f80781e720084c9f') - version('7.1.2', sha256='4d6968ab7c01e95cc76df136755703defb985105a117b83057e4fd5d53680ea7') - version('7.1.0', sha256='308af4e36ee3ab527b51014a2a5d862682c84f5d16f7a597aea34c84853cbcb0') - version('6.1.2', sha256='63650f3c39a96371f5810c4e41d6f9b0bb10305064e6faf201cbafe297ea30e8') - version('5.3.0', sha256='4c0741e10183f75d7d6f730b8708a99b329b2f942dad5a9da3385ab92bb4a15c') - version('5.2.1', sha256='43894ab8fe561fc9e523a8024efc23018431fa86b95d45b06dbe6ddb29ffb6cd') - version('5.2.0', sha256='c016db7f825bce487a7929e1edb747b9902a2935057af6512cad3df3a080a027') - version('5.1.0', sha256='77ef9fea638dc846e484409fbc1ea710bb9bcea042e7b35b8805041bf7655ad5') - version('5.0.0', sha256='8dd58daf13e7e8adca99f8725ef3ae598f9c97efda7d6d8d4c49db5047879097') - version('4.1.0', sha256='9d49bf02ceb9d0eec51144b203b63b77e69d3798bb402fb82e7d0bdb06c79eeb') - version('4.0.0', sha256='10a9f184d4d66f135093a08396d3b0a0ebe8d97b79f8b3ddb8559f75fe4fcbc3') - version('3.0.2', sha256='51407b62a202b29d1a9c0eb5ecd4095d30031aea65407c42c25cb10cb5c59ad4') - version('3.0.1', sha256='4c9af0dc919a8ae7022b44e1a03c435e42d65c866f44667d8d920d342b098550') - version('3.0.0', sha256='1b050b66fa31b74f1d75a14f15e99e728ab79572f176a53b2f8ad7c201c30ceb') - - variant('cxxstd', - default='11', - values=('98', '11', '14', '17'), - multi=False, - description='Use the specified C++ standard when building') - variant('pic', default=True, description='Enable generation of position-independent code') - - depends_on('cmake@3.1.0:', type='build') - - # Supported compilers/standards are detailed here: - # http://fmtlib.net/latest/index.html#portability - conflicts('%gcc@:4.3.999', when='@5:') - conflicts('%llvm@:2.8.999', when='@5:') - # 5 and above require C++11 - conflicts('cxxstd=98', when='@5:') - # 5.0.0 enables C++14 auto return types in C++11 mode - conflicts('cxxstd=11', when='@5.0.0') - # 4.1 fails with C++17 (https://github.com/fmtlib/fmt/issues/722) - conflicts('cxxstd=17', when='@4.1.0') - - # Use CMAKE_CXX_STANDARD to define C++ flag, as in later versions - patch('fmt-use-cmake-cxx-standard_3.0.0.patch', when='@3.0.0') - - # Remove hardcoding of "-std=c++11/0x" in INTERFACE_COMPILE_OPTIONS - patch('fmt-no-export-cpp11flag_3.0.0.patch', when='@3.0.0:3.0.1') - - # Only allow [[attributes]] on C++11 and higher - patch('fmt-attributes-cpp11_4.1.0.patch', when='@4.1.0') - - def cmake_args(self): - spec = self.spec - args = [] - - if '+pic' in spec: - args.extend([ - '-DCMAKE_C_FLAGS={0}'.format(self.compiler.cc_pic_flag), - '-DCMAKE_CXX_FLAGS={0}'.format(self.compiler.cxx_pic_flag) - ]) - - args.append('-DCMAKE_CXX_STANDARD={0}'.format( - spec.variants['cxxstd'].value)) - # Require standard at configure time to guarantee the - # compiler supports the selected standard. - args.append('-DCMAKE_CXX_STANDARD_REQUIRED=ON') - - # S. Joosten --> hard build shared library version - args.append('-DBUILD_SHARED_LIBS=TRUE') - - # When cxxstd is 98, must disable FMT_USE_CPP11 - if 'cxxstd=98' in spec: - args.append('-DFMT_USE_CPP11=OFF') - - # Can't build docs without doxygen+python+virtualenv - # and call to build "doc" target - args.append("-DFMT_DOC=OFF") - - return args -- GitLab