summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author健美猫 <weijianwen@gmail.com>2018-04-30 23:03:24 +0800
committerAdam J. Stewart <ajstewart426@gmail.com>2018-04-30 10:03:24 -0500
commit094eb5f9a852ae75591cf278bd3182b5a37e8af0 (patch)
tree45bdb4c5e315ada0459874650aa3d97628512965
parentd02b5b96d3a49c6cd08cd458ae85892cf78a6115 (diff)
downloadspack-094eb5f9a852ae75591cf278bd3182b5a37e8af0.tar.gz
spack-094eb5f9a852ae75591cf278bd3182b5a37e8af0.tar.bz2
spack-094eb5f9a852ae75591cf278bd3182b5a37e8af0.tar.xz
spack-094eb5f9a852ae75591cf278bd3182b5a37e8af0.zip
Build shared libs for tinyxml. (#7914)
-rw-r--r--var/spack/repos/builtin/packages/tinyxml/CMakeLists.txt22
-rw-r--r--var/spack/repos/builtin/packages/tinyxml/package.py7
2 files changed, 20 insertions, 9 deletions
diff --git a/var/spack/repos/builtin/packages/tinyxml/CMakeLists.txt b/var/spack/repos/builtin/packages/tinyxml/CMakeLists.txt
index 93f124d716..32db119762 100644
--- a/var/spack/repos/builtin/packages/tinyxml/CMakeLists.txt
+++ b/var/spack/repos/builtin/packages/tinyxml/CMakeLists.txt
@@ -1,17 +1,21 @@
cmake_minimum_required(VERSION 2.6)
project(TinyXml)
+
OPTION(TIXML_USE_STL "Use STL with TIXML" ON)
+OPTION(BUILD_SHARED_LIBS "build as shared library" ON)
+
if(TIXML_USE_STL)
add_definitions(-DTIXML_USE_STL)
endif(TIXML_USE_STL)
-add_library(
- tinyxml
- tinyxml.cpp
- tinystr.cpp
- tinyxmlerror.cpp
- tinyxmlparser.cpp
-)
-INSTALL( FILES tinyxml.h tinystr.h DESTINATION include )
-INSTALL( TARGETS tinyxml ARCHIVE DESTINATION lib )
+if(BUILD_SHARED_LIBS)
+ add_library(tinyxml SHARED tinyxml.cpp tinystr.cpp tinyxmlerror.cpp tinyxmlparser.cpp)
+ install(TARGETS tinyxml LIBRARY DESTINATION lib)
+else()
+ add_library(tinyxml_static STATIC tinyxml.cpp tinystr.cpp tinyxmlerror.cpp tinyxmlparser.cpp)
+ set_target_properties(tinyxml_static PROPERTIES OUTPUT_NAME tinyxml)
+ install(TARGETS tinyxml_static ARCHIVE DESTINATION lib)
+endif(BUILD_SHARED_LIBS)
+
+install(FILES tinyxml.h tinystr.h DESTINATION include)
diff --git a/var/spack/repos/builtin/packages/tinyxml/package.py b/var/spack/repos/builtin/packages/tinyxml/package.py
index d1f16fae57..e34315882f 100644
--- a/var/spack/repos/builtin/packages/tinyxml/package.py
+++ b/var/spack/repos/builtin/packages/tinyxml/package.py
@@ -35,6 +35,8 @@ class Tinyxml(CMakePackage):
version('2.6.2', 'cba3f50dd657cb1434674a03b21394df9913d764')
+ variant('shared', default=True, description='Build a shared library')
+
def url_for_version(self, version):
url = "https://sourceforge.net/projects/tinyxml/files/tinyxml/{0}/tinyxml_{1}.tar.gz"
return url.format(version.dotted, version.underscored)
@@ -42,3 +44,8 @@ class Tinyxml(CMakePackage):
def patch(self):
copyfile(join_path(os.path.dirname(__file__),
"CMakeLists.txt"), "CMakeLists.txt")
+
+ def cmake_args(self):
+ spec = self.spec
+ return [
+ '-DBUILD_SHARED_LIBS=%s' % ('YES' if '+shared' in spec else 'NO')]