summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/xerces-c/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/xerces-c/package.py')
-rw-r--r--var/spack/repos/builtin/packages/xerces-c/package.py81
1 files changed, 56 insertions, 25 deletions
diff --git a/var/spack/repos/builtin/packages/xerces-c/package.py b/var/spack/repos/builtin/packages/xerces-c/package.py
index 3e832784f8..a316e14d30 100644
--- a/var/spack/repos/builtin/packages/xerces-c/package.py
+++ b/var/spack/repos/builtin/packages/xerces-c/package.py
@@ -1,28 +1,10 @@
-##############################################################################
-# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
-# Produced at the Lawrence Livermore National Laboratory.
+# Copyright 2013-2018 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
-# This file is part of Spack.
-# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
-# LLNL-CODE-647188
-#
-# For details, see https://github.com/spack/spack
-# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
-#
-# 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
-##############################################################################
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
from spack import *
+import sys
class XercesC(AutotoolsPackage):
@@ -33,9 +15,58 @@ class XercesC(AutotoolsPackage):
APIs."""
homepage = "https://xerces.apache.org/xerces-c"
- url = "https://archive.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.4.tar.bz2"
+ url = "https://archive.apache.org/dist/xerces/c/3/sources/xerces-c-3.2.1.tar.bz2"
+ version('3.2.2', '4c395216ecbef3c88a756ff4090e6f7e')
+ version('3.2.1', '8f98a81a3589bbc2dad9837452f7d319')
version('3.1.4', 'd04ae9d8b2dee2157c6db95fa908abfd')
+ # It's best to be explicit about the transcoder or else xerces may
+ # choose another value.
+ if sys.platform == 'darwin':
+ default_transcoder = 'macos'
+ elif sys.platform.startswith('win') or sys.platform == 'cygwin':
+ default_transcoder = 'windows'
+ else:
+ default_transcoder = 'gnuiconv'
+
+ variant('transcoder', default=default_transcoder,
+ values=('gnuiconv', 'iconv', 'icu', 'macos', 'windows'),
+ multi=False,
+ description='Use the specified transcoder')
+
+ depends_on('libiconv', type='link', when='transcoder=gnuiconv')
+ depends_on('icu4c', type='link', when='transcoder=icu')
+
+ # Pass flags to configure. This is necessary for CXXFLAGS or else
+ # the xerces default will override the spack wrapper.
+ def flag_handler(self, name, flags):
+ spec = self.spec
+
+ # There is no --with-pkg for gnuiconv.
+ if name == 'ldflags' and 'transcoder=gnuiconv' in spec:
+ flags.append(spec['libiconv'].libs.ld_flags)
+
+ return (None, None, flags)
+
def configure_args(self):
- return ['--disable-network']
+ spec = self.spec
+ args = ['--disable-network']
+
+ if 'transcoder=gnuiconv' in spec:
+ args.append('--enable-transcoder-gnuiconv')
+
+ if 'transcoder=iconv' in spec:
+ args.append('--enable-transcoder-iconv')
+
+ if 'transcoder=icu' in spec:
+ args.append('--enable-transcoder-icu')
+ args.append('--with-icu=%s' % spec['icu4c'].prefix)
+
+ if 'transcoder=macos' in spec:
+ args.append('--enable-transcoder-macosunicodeconverter')
+
+ if 'transcoder=windows' in spec:
+ args.append('--enable-transcoder-windows')
+
+ return args