summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2014-09-03 17:12:52 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2014-09-03 17:12:52 (GMT)
commitc23f3a7ea577b66f103ab06e9310e819c13f5401 (patch)
tree5fd6bbaf00a3973ea0d0e591d9b6256b687c91a2 /tools
parent2154d1c6f1b791a2ba9125a48a098fd4da42f01f (diff)
downloadhdf5-c23f3a7ea577b66f103ab06e9310e819c13f5401.zip
hdf5-c23f3a7ea577b66f103ab06e9310e819c13f5401.tar.gz
hdf5-c23f3a7ea577b66f103ab06e9310e819c13f5401.tar.bz2
[svn-r25569] Added option to build tools static when building shared libraries. This will prevent 'dll' being appended to the tool name on windows. See HDFFV-8292.
Tested: local linux
Diffstat (limited to 'tools')
-rw-r--r--tools/h5copy/CMakeLists.txt11
-rw-r--r--tools/h5diff/CMakeLists.txt18
-rw-r--r--tools/h5dump/CMakeLists.txt9
-rw-r--r--tools/h5import/CMakeLists.txt9
-rw-r--r--tools/h5jam/CMakeLists.txt36
-rw-r--r--tools/h5ls/CMakeLists.txt9
-rw-r--r--tools/h5repack/CMakeLists.txt9
-rw-r--r--tools/h5stat/CMakeLists.txt9
-rw-r--r--tools/lib/CMakeLists.txt13
-rw-r--r--tools/misc/CMakeLists.txt27
10 files changed, 118 insertions, 32 deletions
diff --git a/tools/h5copy/CMakeLists.txt b/tools/h5copy/CMakeLists.txt
index 267d92b..6f42f5a 100644
--- a/tools/h5copy/CMakeLists.txt
+++ b/tools/h5copy/CMakeLists.txt
@@ -9,11 +9,16 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
# --------------------------------------------------------------------
# Add the h5copy and test executables
# --------------------------------------------------------------------
-add_executable (h5copy ${HDF5_TOOLS_H5COPY_SOURCE_DIR}/h5copy.c)
-TARGET_NAMING (h5copy ${LIB_TYPE})
+add_executable (h5copy ${HDF5_TOOLS_H5COPY_SOURCE_DIR}/h5copy.c )
TARGET_C_PROPERTIES (h5copy " " " ")
-target_link_libraries (h5copy ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (h5copy PROPERTIES FOLDER tools)
+if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5copy STATIC)
+ target_link_libraries (h5copy ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5copy ${LIB_TYPE})
+ target_link_libraries (h5copy ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+endif (ONLY_STATIC_TOOLS)
set (H5_DEP_EXECUTABLES h5copy)
diff --git a/tools/h5diff/CMakeLists.txt b/tools/h5diff/CMakeLists.txt
index 35c55a4..4e38fe1 100644
--- a/tools/h5diff/CMakeLists.txt
+++ b/tools/h5diff/CMakeLists.txt
@@ -13,10 +13,15 @@ add_executable (h5diff
${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diff_common.c
${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diff_main.c
)
-TARGET_NAMING (h5diff ${LIB_TYPE})
TARGET_C_PROPERTIES (h5diff " " " ")
-target_link_libraries (h5diff ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (h5diff PROPERTIES FOLDER tools)
+if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5diff STATIC)
+ target_link_libraries (h5diff ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5diff ${LIB_TYPE})
+ target_link_libraries (h5diff ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+endif (ONLY_STATIC_TOOLS)
set (H5_DEP_EXECUTABLES h5diff)
@@ -25,10 +30,15 @@ if (H5_HAVE_PARALLEL)
${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/h5diff_common.c
${HDF5_TOOLS_H5DIFF_SOURCE_DIR}/ph5diff_main.c
)
- TARGET_NAMING (ph5diff ${LIB_TYPE})
TARGET_C_PROPERTIES (ph5diff " " " ")
- target_link_libraries (ph5diff ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (ph5diff PROPERTIES FOLDER tools)
+ if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (ph5diff STATIC)
+ target_link_libraries (ph5diff ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+ else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (ph5diff ${LIB_TYPE})
+ target_link_libraries (ph5diff ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+ endif (ONLY_STATIC_TOOLS)
endif (H5_HAVE_PARALLEL)
if (BUILD_TESTING)
diff --git a/tools/h5dump/CMakeLists.txt b/tools/h5dump/CMakeLists.txt
index 584222e..4f30ce6 100644
--- a/tools/h5dump/CMakeLists.txt
+++ b/tools/h5dump/CMakeLists.txt
@@ -14,10 +14,15 @@ add_executable (h5dump
${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dump_ddl.c
${HDF5_TOOLS_H5DUMP_SOURCE_DIR}/h5dump_xml.c
)
-TARGET_NAMING (h5dump ${LIB_TYPE})
TARGET_C_PROPERTIES (h5dump " " " ")
-target_link_libraries (h5dump ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (h5dump PROPERTIES FOLDER tools)
+if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5dump STATIC)
+ target_link_libraries (h5dump ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5dump ${LIB_TYPE})
+ target_link_libraries (h5dump ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+endif (ONLY_STATIC_TOOLS)
set (H5_DEP_EXECUTABLES h5dump)
diff --git a/tools/h5import/CMakeLists.txt b/tools/h5import/CMakeLists.txt
index a18133f..7ba91fc 100644
--- a/tools/h5import/CMakeLists.txt
+++ b/tools/h5import/CMakeLists.txt
@@ -10,11 +10,16 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
# Add the h5import executables
# --------------------------------------------------------------------
add_executable (h5import ${HDF5_TOOLS_H5IMPORT_SOURCE_DIR}/h5import.c)
-TARGET_NAMING (h5import ${LIB_TYPE})
TARGET_C_PROPERTIES (h5import " " " ")
-target_link_libraries (h5import ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
#set_target_properties (h5import PROPERTIES COMPILE_DEFINITIONS H5DEBUGIMPORT)
set_target_properties (h5import PROPERTIES FOLDER tools)
+if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5import STATIC)
+ target_link_libraries (h5import ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5import ${LIB_TYPE})
+ target_link_libraries (h5import ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+endif (ONLY_STATIC_TOOLS)
set (H5_DEP_EXECUTABLES h5import)
diff --git a/tools/h5jam/CMakeLists.txt b/tools/h5jam/CMakeLists.txt
index a8e3a7c..bf6a0ef 100644
--- a/tools/h5jam/CMakeLists.txt
+++ b/tools/h5jam/CMakeLists.txt
@@ -10,28 +10,48 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
# Add the h5jam executables
# --------------------------------------------------------------------
add_executable (h5jam ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5jam.c)
-TARGET_NAMING (h5jam ${LIB_TYPE})
TARGET_C_PROPERTIES (h5jam " " " ")
-target_link_libraries (h5jam ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (h5jam PROPERTIES FOLDER tools)
+if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5jam STATIC)
+ target_link_libraries (h5jam ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5jam ${LIB_TYPE})
+ target_link_libraries (h5jam ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+endif (ONLY_STATIC_TOOLS)
add_executable (getub ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/getub.c)
-TARGET_NAMING (getub ${LIB_TYPE})
TARGET_C_PROPERTIES (getub " " " ")
-target_link_libraries (getub ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (getub PROPERTIES FOLDER tools)
+if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (getub STATIC)
+ target_link_libraries (getub ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (getub ${LIB_TYPE})
+ target_link_libraries (getub ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+endif (ONLY_STATIC_TOOLS)
add_executable (tellub ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/tellub.c)
-TARGET_NAMING (tellub ${LIB_TYPE})
TARGET_C_PROPERTIES (tellub " " " ")
-target_link_libraries (tellub ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (tellub PROPERTIES FOLDER tools)
+if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (tellub STATIC)
+ target_link_libraries (tellub ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (tellub ${LIB_TYPE})
+ target_link_libraries (tellub ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+endif (ONLY_STATIC_TOOLS)
add_executable (h5unjam ${HDF5_TOOLS_H5JAM_SOURCE_DIR}/h5unjam.c)
-TARGET_NAMING (h5unjam ${LIB_TYPE})
TARGET_C_PROPERTIES (h5unjam " " " ")
-target_link_libraries (h5unjam ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (h5unjam PROPERTIES FOLDER tools)
+if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5unjam STATIC)
+ target_link_libraries (h5unjam ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5unjam ${LIB_TYPE})
+ target_link_libraries (h5unjam ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+endif (ONLY_STATIC_TOOLS)
set (H5_DEP_EXECUTABLES
h5jam
diff --git a/tools/h5ls/CMakeLists.txt b/tools/h5ls/CMakeLists.txt
index f3749e3..7dbdbf4 100644
--- a/tools/h5ls/CMakeLists.txt
+++ b/tools/h5ls/CMakeLists.txt
@@ -10,10 +10,15 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
# Add the h5ls executable
#-----------------------------------------------------------------------------
add_executable (h5ls ${HDF5_TOOLS_H5LS_SOURCE_DIR}/h5ls.c)
-TARGET_NAMING (h5ls ${LIB_TYPE})
TARGET_C_PROPERTIES (h5ls " " " ")
-target_link_libraries (h5ls ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (h5ls PROPERTIES FOLDER tools)
+if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5ls STATIC)
+ target_link_libraries (h5ls ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5ls ${LIB_TYPE})
+ target_link_libraries (h5ls ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+endif (ONLY_STATIC_TOOLS)
set (H5_DEP_EXECUTABLES
h5ls
diff --git a/tools/h5repack/CMakeLists.txt b/tools/h5repack/CMakeLists.txt
index cb8720e..a45e3a5 100644
--- a/tools/h5repack/CMakeLists.txt
+++ b/tools/h5repack/CMakeLists.txt
@@ -21,10 +21,15 @@ set (REPACK_COMMON_SRCS
)
add_executable (h5repack ${REPACK_COMMON_SRCS} ${HDF5_TOOLS_H5REPACK_SOURCE_DIR}/h5repack_main.c)
-TARGET_NAMING (h5repack ${LIB_TYPE})
TARGET_C_PROPERTIES (h5repack " " " ")
-target_link_libraries (h5repack ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (h5repack PROPERTIES FOLDER tools)
+if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5repack STATIC)
+ target_link_libraries (h5repack ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5repack ${LIB_TYPE})
+ target_link_libraries (h5repack ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+endif (ONLY_STATIC_TOOLS)
set (H5_DEP_EXECUTABLES h5repack)
diff --git a/tools/h5stat/CMakeLists.txt b/tools/h5stat/CMakeLists.txt
index 0658216..045f632 100644
--- a/tools/h5stat/CMakeLists.txt
+++ b/tools/h5stat/CMakeLists.txt
@@ -10,10 +10,15 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
# Add the h5stat executables
# --------------------------------------------------------------------
add_executable (h5stat ${HDF5_TOOLS_H5STAT_SOURCE_DIR}/h5stat.c)
-TARGET_NAMING (h5stat ${LIB_TYPE})
TARGET_C_PROPERTIES (h5stat " " " ")
-target_link_libraries (h5stat ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (h5stat PROPERTIES FOLDER tools)
+if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5stat STATIC)
+ target_link_libraries (h5stat ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5stat ${LIB_TYPE})
+ target_link_libraries (h5stat ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+endif (ONLY_STATIC_TOOLS)
set (H5_DEP_EXECUTABLES h5stat)
diff --git a/tools/lib/CMakeLists.txt b/tools/lib/CMakeLists.txt
index e65673a..8c1cdb6 100644
--- a/tools/lib/CMakeLists.txt
+++ b/tools/lib/CMakeLists.txt
@@ -1,6 +1,7 @@
cmake_minimum_required (VERSION 2.8.11)
PROJECT (HDF5_TOOLS_LIB)
+option (ONLY_STATIC_TOOLS "Build Only Static Tools" OFF)
#-----------------------------------------------------------------------------
# Apply Definitions to compiler in this directory and below
#-----------------------------------------------------------------------------
@@ -36,7 +37,8 @@ set (H5_TOOLS_LIB_HDRS
${HDF5_TOOLS_LIB_SOURCE_DIR}/h5diff.h
)
-add_library (${HDF5_TOOLS_LIB_TARGET} ${LIB_TYPE} ${H5_TOOLS_LIB_SRCS} ${H5_TOOLS_LIB_HDRS})
+add_library (${HDF5_TOOLS_LIB_TARGET}_obj OBJECT ${H5_TOOLS_LIB_SRCS} ${H5_TOOLS_LIB_HDRS})
+add_library (${HDF5_TOOLS_LIB_TARGET} ${LIB_TYPE} $<TARGET_OBJECTS:${HDF5_TOOLS_LIB_TARGET}_obj>)
TARGET_C_PROPERTIES (${HDF5_TOOLS_LIB_TARGET} " " " ")
target_link_libraries (${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_TOOLS_LIB_TARGET}")
@@ -51,6 +53,15 @@ set_target_properties (${HDF5_TOOLS_LIB_TARGET} PROPERTIES
FOLDER libraries/tools
INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
)
+if (ONLY_STATIC_TOOLS)
+ add_library (${HDF5_TOOLS_LIB_TARGET}_static STATIC $<TARGET_OBJECTS:${HDF5_TOOLS_LIB_TARGET}_obj>)
+ TARGET_C_PROPERTIES (${HDF5_TOOLS_LIB_TARGET}_static " " " ")
+ target_link_libraries (${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+ H5_SET_LIB_OPTIONS (${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_TOOLS_LIB_NAME} STATIC)
+ set_target_properties (${HDF5_TOOLS_LIB_TARGET}_static PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+ )
+endif (ONLY_STATIC_TOOLS)
##############################################################################
##############################################################################
diff --git a/tools/misc/CMakeLists.txt b/tools/misc/CMakeLists.txt
index 8af05b4..3b08e1b 100644
--- a/tools/misc/CMakeLists.txt
+++ b/tools/misc/CMakeLists.txt
@@ -11,22 +11,37 @@ INCLUDE_DIRECTORIES (${HDF5_TOOLS_SRC_DIR}/lib)
# --------------------------------------------------------------------
#-- Misc Executables
add_executable (h5debug ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5debug.c)
-TARGET_NAMING (h5debug ${LIB_TYPE})
TARGET_C_PROPERTIES (h5debug " " " ")
-target_link_libraries (h5debug ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
set_target_properties (h5debug PROPERTIES FOLDER tools)
+if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5debug STATIC)
+ target_link_libraries (h5debug ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5debug ${LIB_TYPE})
+ target_link_libraries (h5debug ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+endif (ONLY_STATIC_TOOLS)
add_executable (h5repart ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5repart.c)
-TARGET_NAMING (h5repart ${LIB_TYPE})
TARGET_C_PROPERTIES (h5repart " " " ")
-target_link_libraries (h5repart ${HDF5_LIB_TARGET} ${HDF5_TOOLS_LIB_TARGET})
set_target_properties (h5repart PROPERTIES FOLDER tools)
+if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5repart STATIC)
+ target_link_libraries (h5repart ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5repart ${LIB_TYPE})
+ target_link_libraries (h5repart ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+endif (ONLY_STATIC_TOOLS)
add_executable (h5mkgrp ${HDF5_TOOLS_MISC_SOURCE_DIR}/h5mkgrp.c)
-TARGET_NAMING (h5mkgrp ${LIB_TYPE})
TARGET_C_PROPERTIES (h5mkgrp " " " ")
-target_link_libraries (h5mkgrp ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
set_target_properties (h5mkgrp PROPERTIES FOLDER tools)
+if (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5mkgrp STATIC)
+ target_link_libraries (h5mkgrp ${HDF5_TOOLS_LIB_TARGET}_static ${HDF5_LIB_TARGET}_static)
+else (ONLY_STATIC_TOOLS)
+ TARGET_NAMING (h5mkgrp ${LIB_TYPE})
+ target_link_libraries (h5mkgrp ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
+endif (ONLY_STATIC_TOOLS)
set (H5_DEP_EXECUTABLES
h5debug