mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-04-24 17:51:25 +08:00
Enable building of test generator programs against shared libraries (#5404)
Build test generator programs against shared libraries, if available, by default. Otherwise, build them against static libraries. If HDF5_BUILD_STATIC_TOOLS is set to ON, the tools test generator programs will be built against static libraries even if shared libraries are available.
This commit is contained in:
parent
53f415ddfa
commit
be63ed0cb0
hl/test
test
tools/test
h5copy
h5diff
h5dump
h5format_convert
h5jam
h5repack
h5stat
misc
@ -87,16 +87,25 @@ endif ()
|
||||
# This executable is used to generate test files for the test_ds test.
|
||||
# It should only be run during development when new test files are needed
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_BUILD_GENERATORS AND BUILD_STATIC_LIBS)
|
||||
if (HDF5_BUILD_GENERATORS)
|
||||
add_executable (hl_gen_test_ds gen_test_ds.c)
|
||||
target_compile_options(hl_gen_test_ds PRIVATE "${HDF5_CMAKE_C_FLAGS}")
|
||||
target_include_directories (hl_gen_test_ds PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
TARGET_C_PROPERTIES (hl_gen_test_ds STATIC)
|
||||
target_link_libraries (hl_gen_test_ds PRIVATE
|
||||
${HDF5_HL_LIB_TARGET}
|
||||
${HDF5_TEST_LIB_TARGET}
|
||||
${HDF5_LIB_TARGET}
|
||||
)
|
||||
if (NOT BUILD_SHARED_LIBS)
|
||||
TARGET_C_PROPERTIES (hl_gen_test_ds STATIC)
|
||||
target_link_libraries (hl_gen_test_ds PRIVATE
|
||||
${HDF5_HL_LIB_TARGET}
|
||||
${HDF5_TEST_LIB_TARGET}
|
||||
${HDF5_LIB_TARGET}
|
||||
)
|
||||
else ()
|
||||
TARGET_C_PROPERTIES (hl_gen_test_ds SHARED)
|
||||
target_link_libraries (hl_gen_test_ds PRIVATE
|
||||
${HDF5_HL_LIBSH_TARGET}
|
||||
${HDF5_TEST_LIBSH_TARGET}
|
||||
${HDF5_LIBSH_TARGET}
|
||||
)
|
||||
endif ()
|
||||
set_target_properties (hl_gen_test_ds PROPERTIES FOLDER test/hl/gen)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@ -109,12 +118,21 @@ if (HDF5_BUILD_GENERATORS AND BUILD_STATIC_LIBS)
|
||||
add_executable (hl_gen_test_ld gen_test_ld.c)
|
||||
target_compile_options(hl_gen_test_ld PRIVATE "${HDF5_CMAKE_C_FLAGS}")
|
||||
target_include_directories (hl_gen_test_ld PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
TARGET_C_PROPERTIES (hl_gen_test_ld STATIC)
|
||||
target_link_libraries (hl_gen_test_ld PRIVATE
|
||||
${HDF5_HL_LIB_TARGET}
|
||||
${HDF5_TEST_LIB_TARGET}
|
||||
${HDF5_LIB_TARGET}
|
||||
)
|
||||
if (NOT BUILD_SHARED_LIBS)
|
||||
TARGET_C_PROPERTIES (hl_gen_test_ld STATIC)
|
||||
target_link_libraries (hl_gen_test_ld PRIVATE
|
||||
${HDF5_HL_LIB_TARGET}
|
||||
${HDF5_TEST_LIB_TARGET}
|
||||
${HDF5_LIB_TARGET}
|
||||
)
|
||||
else ()
|
||||
TARGET_C_PROPERTIES (hl_gen_test_ld SHARED)
|
||||
target_link_libraries (hl_gen_test_ld PRIVATE
|
||||
${HDF5_HL_LIBSH_TARGET}
|
||||
${HDF5_TEST_LIBSH_TARGET}
|
||||
${HDF5_LIBSH_TARGET}
|
||||
)
|
||||
endif ()
|
||||
set_target_properties (hl_gen_test_ld PROPERTIES FOLDER test/hl/gen)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
@ -1023,12 +1023,17 @@ endif ()
|
||||
##############################################################################
|
||||
##############################################################################
|
||||
|
||||
if (HDF5_BUILD_GENERATORS AND BUILD_STATIC_LIBS)
|
||||
if (HDF5_BUILD_GENERATORS)
|
||||
macro (ADD_H5_GENERATOR genfile)
|
||||
add_executable (${genfile} ${HDF5_TEST_SOURCE_DIR}/${genfile}.c)
|
||||
target_include_directories (${genfile} PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
TARGET_C_PROPERTIES (${genfile} STATIC)
|
||||
target_link_libraries (${genfile} PRIVATE ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
|
||||
if (NOT BUILD_SHARED_LIBS)
|
||||
TARGET_C_PROPERTIES (${genfile} STATIC)
|
||||
target_link_libraries (${genfile} PRIVATE ${HDF5_TEST_LIB_TARGET} ${HDF5_LIB_TARGET})
|
||||
else ()
|
||||
TARGET_C_PROPERTIES (${genfile} SHARED)
|
||||
target_link_libraries (${genfile} PRIVATE ${HDF5_TEST_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
|
||||
endif ()
|
||||
set_target_properties (${genfile} PROPERTIES FOLDER generator/test)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
@ -4,11 +4,16 @@ project (HDF5_TOOLS_TEST_H5COPY C)
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5copy test executables
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_BUILD_GENERATORS AND BUILD_STATIC_LIBS)
|
||||
if (HDF5_BUILD_GENERATORS)
|
||||
add_executable (h5copygentest ${HDF5_TOOLS_TEST_H5COPY_SOURCE_DIR}/h5copygentest.c)
|
||||
target_include_directories (h5copygentest PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
TARGET_C_PROPERTIES (h5copygentest STATIC)
|
||||
target_link_libraries (h5copygentest PRIVATE ${HDF5_LIB_TARGET})
|
||||
if (HDF5_BUILD_STATIC_TOOLS)
|
||||
TARGET_C_PROPERTIES (h5copygentest STATIC)
|
||||
target_link_libraries (h5copygentest PRIVATE ${HDF5_LIB_TARGET})
|
||||
else ()
|
||||
TARGET_C_PROPERTIES (h5copygentest SHARED)
|
||||
target_link_libraries (h5copygentest PRIVATE ${HDF5_LIBSH_TARGET})
|
||||
endif ()
|
||||
set_target_properties (h5copygentest PROPERTIES FOLDER generator/tools)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
@ -4,11 +4,17 @@ project (HDF5_TOOLS_TEST_H5DIFF C)
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5diff and test executables
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_BUILD_GENERATORS AND BUILD_STATIC_LIBS)
|
||||
if (HDF5_BUILD_GENERATORS)
|
||||
add_executable (h5diffgentest ${HDF5_TOOLS_TEST_H5DIFF_SOURCE_DIR}/h5diffgentest.c)
|
||||
target_include_directories (h5diffgentest PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
TARGET_C_PROPERTIES (h5diffgentest STATIC)
|
||||
target_link_libraries (h5diffgentest PRIVATE ${HDF5_LIB_TARGET})
|
||||
if (HDF5_BUILD_STATIC_TOOLS)
|
||||
TARGET_C_PROPERTIES (h5diffgentest STATIC)
|
||||
target_link_libraries (h5diffgentest PRIVATE ${HDF5_LIB_TARGET})
|
||||
else ()
|
||||
TARGET_C_PROPERTIES (h5diffgentest SHARED)
|
||||
# Link to HDF5_REQUIRED_LIBRARIES to include the math lib if necessary
|
||||
target_link_libraries (h5diffgentest PRIVATE ${HDF5_LIBSH_TARGET} ${HDF5_REQUIRED_LIBRARIES})
|
||||
endif ()
|
||||
set_target_properties (h5diffgentest PROPERTIES FOLDER generator/tools)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
@ -40,11 +40,16 @@ endif ()
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5dump test executable
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_BUILD_GENERATORS AND BUILD_STATIC_LIBS)
|
||||
if (HDF5_BUILD_GENERATORS)
|
||||
add_executable (h5dumpgentest ${HDF5_TOOLS_TEST_H5DUMP_SOURCE_DIR}/h5dumpgentest.c)
|
||||
target_include_directories (h5dumpgentest PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_TEST_SRC_DIR};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
TARGET_C_PROPERTIES (h5dumpgentest STATIC)
|
||||
target_link_libraries (h5dumpgentest PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
|
||||
if (HDF5_BUILD_STATIC_TOOLS)
|
||||
TARGET_C_PROPERTIES (h5dumpgentest STATIC)
|
||||
target_link_libraries (h5dumpgentest PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
|
||||
else ()
|
||||
TARGET_C_PROPERTIES (h5dumpgentest SHARED)
|
||||
target_link_libraries (h5dumpgentest PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
|
||||
endif ()
|
||||
set_target_properties (h5dumpgentest PROPERTIES FOLDER generator/tools)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
@ -22,11 +22,16 @@ if (HDF5_ENABLE_FORMATTERS)
|
||||
clang_format (HDF5_TOOLS_TEST_H5FC_h5fc_chk_idx_FORMAT h5fc_chk_idx)
|
||||
endif ()
|
||||
|
||||
if (HDF5_BUILD_GENERATORS AND BUILD_STATIC_LIBS)
|
||||
if (HDF5_BUILD_GENERATORS)
|
||||
add_executable (h5fc_gentest ${HDF5_TOOLS_TEST_H5FC_SOURCE_DIR}/h5fc_gentest.c)
|
||||
target_include_directories (h5fc_gentest PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
TARGET_C_PROPERTIES (h5fc_gentest STATIC)
|
||||
target_link_libraries (h5fc_gentest PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
|
||||
if (HDF5_BUILD_STATIC_TOOLS)
|
||||
TARGET_C_PROPERTIES (h5fc_gentest STATIC)
|
||||
target_link_libraries (h5fc_gentest PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
|
||||
else ()
|
||||
TARGET_C_PROPERTIES (h5fc_gentest SHARED)
|
||||
target_link_libraries (h5fc_gentest PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
|
||||
endif ()
|
||||
set_target_properties (h5fc_gentest PROPERTIES FOLDER generator/tools)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
@ -4,11 +4,16 @@ project (HDF5_TOOLS_TEST_H5JAM C)
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5jam test executables
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_BUILD_GENERATORS AND BUILD_STATIC_LIBS)
|
||||
if (HDF5_BUILD_GENERATORS)
|
||||
add_executable (h5jamgentest ${HDF5_TOOLS_TEST_H5JAM_SOURCE_DIR}/h5jamgentest.c)
|
||||
target_include_directories (h5jamgentest PRIVATE "${HDF5_TOOLS_ROOT_DIR}/lib;${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
TARGET_C_PROPERTIES (h5jamgentest STATIC)
|
||||
target_link_libraries (h5jamgentest PRIVATE ${HDF5_LIB_TARGET})
|
||||
if (HDF5_BUILD_STATIC_TOOLS)
|
||||
TARGET_C_PROPERTIES (h5jamgentest STATIC)
|
||||
target_link_libraries (h5jamgentest PRIVATE ${HDF5_LIB_TARGET})
|
||||
else ()
|
||||
TARGET_C_PROPERTIES (h5jamgentest SHARED)
|
||||
target_link_libraries (h5jamgentest PRIVATE ${HDF5_LIBSH_TARGET})
|
||||
endif ()
|
||||
set_target_properties (h5jamgentest PROPERTIES FOLDER generator/tools)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
@ -97,11 +97,16 @@ endif ()
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5repack test executable
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_BUILD_GENERATORS AND BUILD_STATIC_LIBS)
|
||||
if (HDF5_BUILD_GENERATORS)
|
||||
add_executable (h5repackgentest ${HDF5_TOOLS_TEST_H5REPACK_SOURCE_DIR}/h5repackgentest.c)
|
||||
target_include_directories (h5repackgentest PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
TARGET_C_PROPERTIES (h5repackgentest STATIC)
|
||||
target_link_libraries (h5repackgentest PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
|
||||
if (HDF5_BUILD_STATIC_TOOLS)
|
||||
TARGET_C_PROPERTIES (h5repackgentest STATIC)
|
||||
target_link_libraries (h5repackgentest PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_LIB_TARGET})
|
||||
else ()
|
||||
TARGET_C_PROPERTIES (h5repackgentest SHARED)
|
||||
target_link_libraries (h5repackgentest PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
|
||||
endif ()
|
||||
set_target_properties (h5repackgentest PROPERTIES FOLDER generator/tools)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
@ -4,11 +4,16 @@ project (HDF5_TOOLS_TEST_H5STAT C)
|
||||
# --------------------------------------------------------------------
|
||||
# Add the h5stat test executables
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_BUILD_GENERATORS AND BUILD_STATIC_LIBS)
|
||||
if (HDF5_BUILD_GENERATORS)
|
||||
add_executable (h5stat_gentest ${HDF5_TOOLS_TEST_H5STAT_SOURCE_DIR}/h5stat_gentest.c)
|
||||
target_include_directories (h5stat_gentest PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
TARGET_C_PROPERTIES (h5stat_gentest STATIC)
|
||||
target_link_libraries (h5stat_gentest PRIVATE ${HDF5_LIB_TARGET})
|
||||
if (HDF5_BUILD_STATIC_TOOLS)
|
||||
TARGET_C_PROPERTIES (h5stat_gentest STATIC)
|
||||
target_link_libraries (h5stat_gentest PRIVATE ${HDF5_LIB_TARGET})
|
||||
else ()
|
||||
TARGET_C_PROPERTIES (h5stat_gentest SHARED)
|
||||
target_link_libraries (h5stat_gentest PRIVATE ${HDF5_LIBSH_TARGET})
|
||||
endif ()
|
||||
set_target_properties (h5stat_gentest PROPERTIES FOLDER generator/tools)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
@ -4,11 +4,16 @@ project (HDF5_TOOLS_TEST_MISC C)
|
||||
# --------------------------------------------------------------------
|
||||
# Add the misc test executables
|
||||
# --------------------------------------------------------------------
|
||||
if (HDF5_BUILD_GENERATORS AND BUILD_STATIC_LIBS)
|
||||
if (HDF5_BUILD_GENERATORS)
|
||||
add_executable (h5repart_gentest ${HDF5_TOOLS_TEST_MISC_SOURCE_DIR}/h5repart_gentest.c)
|
||||
target_include_directories (h5repart_gentest PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
TARGET_C_PROPERTIES (h5repart_gentest STATIC)
|
||||
target_link_libraries (h5repart_gentest PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
|
||||
if (HDF5_BUILD_STATIC_TOOLS)
|
||||
TARGET_C_PROPERTIES (h5repart_gentest STATIC)
|
||||
target_link_libraries (h5repart_gentest PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
|
||||
else ()
|
||||
TARGET_C_PROPERTIES (h5repart_gentest SHARED)
|
||||
target_link_libraries (h5repart_gentest PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_TEST_LIBSH_TARGET})
|
||||
endif ()
|
||||
set_target_properties (h5repart_gentest PROPERTIES FOLDER generator/tools)
|
||||
#add_test (NAME h5repart_gentest COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5repart_gentest>)
|
||||
|
||||
@ -21,8 +26,13 @@ if (HDF5_BUILD_GENERATORS AND BUILD_STATIC_LIBS)
|
||||
|
||||
add_executable (h5clear_gentest ${HDF5_TOOLS_TEST_MISC_SOURCE_DIR}/h5clear_gentest.c)
|
||||
target_include_directories (h5clear_gentest PRIVATE "${HDF5_SRC_INCLUDE_DIRS};${HDF5_TEST_SRC_DIR};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>")
|
||||
TARGET_C_PROPERTIES (h5clear_gentest STATIC)
|
||||
target_link_libraries (h5clear_gentest PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
|
||||
if (HDF5_BUILD_STATIC_TOOLS)
|
||||
TARGET_C_PROPERTIES (h5clear_gentest STATIC)
|
||||
target_link_libraries (h5clear_gentest PRIVATE ${HDF5_TOOLS_LIB_TARGET} ${HDF5_TEST_LIB_TARGET})
|
||||
else ()
|
||||
TARGET_C_PROPERTIES (h5clear_gentest SHARED)
|
||||
target_link_libraries (h5clear_gentest PRIVATE ${HDF5_TOOLS_LIBSH_TARGET} ${HDF5_TEST_LIBSH_TARGET})
|
||||
endif ()
|
||||
set_target_properties (h5clear_gentest PROPERTIES FOLDER tools)
|
||||
#add_test (NAME H5CLEAR-h5clear_gentest COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5clear_gentest>)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user