2016-05-12 12:22:25 +08:00
|
|
|
##############################################################################
|
2017-09-07 11:44:16 +08:00
|
|
|
# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
|
2016-05-12 12:22:25 +08:00
|
|
|
# Produced at the Lawrence Livermore National Laboratory.
|
|
|
|
#
|
|
|
|
# This file is part of Spack.
|
|
|
|
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
|
|
|
# LLNL-CODE-647188
|
|
|
|
#
|
2017-11-05 08:08:04 +08:00
|
|
|
# For details, see https://github.com/spack/spack
|
2017-06-25 13:22:55 +08:00
|
|
|
# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
|
2016-05-12 12:22:25 +08:00
|
|
|
#
|
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
|
|
# it under the terms of the GNU Lesser General Public License (as
|
|
|
|
# published by the Free Software Foundation) version 2.1, February 1999.
|
|
|
|
#
|
|
|
|
# This program is distributed in the hope that it will be useful, but
|
|
|
|
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
|
|
|
# conditions of the GNU Lesser General Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
|
|
# License along with this program; if not, write to the Free Software
|
|
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
##############################################################################
|
2015-09-22 07:19:50 +08:00
|
|
|
from spack import *
|
2017-09-26 01:47:55 +08:00
|
|
|
import spack.util.web
|
2015-09-22 07:19:50 +08:00
|
|
|
|
2016-08-10 16:50:00 +08:00
|
|
|
|
2017-08-02 21:03:31 +08:00
|
|
|
class Protobuf(CMakePackage):
|
2015-09-22 07:19:50 +08:00
|
|
|
"""Google's data interchange format."""
|
|
|
|
|
|
|
|
homepage = "https://developers.google.com/protocol-buffers"
|
2017-04-05 20:59:18 +08:00
|
|
|
url = "https://github.com/google/protobuf/archive/v3.2.0.tar.gz"
|
2017-08-02 21:03:31 +08:00
|
|
|
root_cmakelists_dir = "cmake"
|
2015-09-22 07:19:50 +08:00
|
|
|
|
2017-09-25 05:12:35 +08:00
|
|
|
version('3.4.0', '1d077a7d4db3d75681f5c333f2de9b1a')
|
2017-09-26 01:47:55 +08:00
|
|
|
version('3.3.0', 'f0f712e98de3db0c65c0c417f5e7aca8')
|
|
|
|
version('3.2.0', 'efaa08ae635664fb5e7f31421a41a995')
|
|
|
|
version('3.1.0', '39d6a4fa549c0cce164aa3064b1492dc')
|
|
|
|
version('3.0.2', '7349a7f43433d72c6d805c6ca22b7eeb')
|
2017-08-02 21:03:31 +08:00
|
|
|
# does not build with CMake:
|
|
|
|
# version('2.5.0', '9c21577a03adc1879aba5b52d06e25cf')
|
2017-02-08 02:05:02 +08:00
|
|
|
|
2017-08-02 21:03:31 +08:00
|
|
|
depends_on('zlib')
|
2017-04-08 02:11:22 +08:00
|
|
|
|
2017-04-25 02:32:27 +08:00
|
|
|
conflicts('%gcc@:4.6') # Requires c++11
|
|
|
|
|
2017-08-02 21:03:31 +08:00
|
|
|
# first fixed in 3.4.0: https://github.com/google/protobuf/pull/3406
|
|
|
|
patch('pkgconfig.patch', when='@:3.3.2')
|
2017-04-08 02:11:22 +08:00
|
|
|
|
2018-01-04 23:48:22 +08:00
|
|
|
patch('intel_inline.patch', when='@3.2.0: %intel')
|
|
|
|
|
2017-09-26 01:47:55 +08:00
|
|
|
def fetch_remote_versions(self):
|
|
|
|
"""Ignore additional source artifacts uploaded with releases,
|
|
|
|
only keep known versions
|
2017-11-05 08:08:04 +08:00
|
|
|
fix for https://github.com/spack/spack/issues/5356"""
|
2017-09-26 01:47:55 +08:00
|
|
|
return dict(map(
|
|
|
|
lambda u: (u, self.url_for_version(u)),
|
|
|
|
spack.util.web.find_versions_of_archive(
|
|
|
|
self.all_urls, self.list_url, self.list_depth)
|
|
|
|
))
|
|
|
|
|
2017-08-02 21:03:31 +08:00
|
|
|
def cmake_args(self):
|
|
|
|
args = [
|
|
|
|
'-Dprotobuf_BUILD_TESTS:BOOL=OFF',
|
|
|
|
'-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON'
|
|
|
|
]
|
|
|
|
return args
|