diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2014-09-03 17:12:52 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2014-09-03 17:12:52 (GMT) |
commit | c23f3a7ea577b66f103ab06e9310e819c13f5401 (patch) | |
tree | 5fd6bbaf00a3973ea0d0e591d9b6256b687c91a2 /tools | |
parent | 2154d1c6f1b791a2ba9125a48a098fd4da42f01f (diff) | |
download | hdf5-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.txt | 11 | ||||
-rw-r--r-- | tools/h5diff/CMakeLists.txt | 18 | ||||
-rw-r--r-- | tools/h5dump/CMakeLists.txt | 9 | ||||
-rw-r--r-- | tools/h5import/CMakeLists.txt | 9 | ||||
-rw-r--r-- | tools/h5jam/CMakeLists.txt | 36 | ||||
-rw-r--r-- | tools/h5ls/CMakeLists.txt | 9 | ||||
-rw-r--r-- | tools/h5repack/CMakeLists.txt | 9 | ||||
-rw-r--r-- | tools/h5stat/CMakeLists.txt | 9 | ||||
-rw-r--r-- | tools/lib/CMakeLists.txt | 13 | ||||
-rw-r--r-- | tools/misc/CMakeLists.txt | 27 |
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 |