diff options
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r-- | src/CMakeLists.txt | 105 |
1 files changed, 44 insertions, 61 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ef3e760..2c9ca8a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -165,13 +165,13 @@ IDE_GENERATED_PROPERTIES ("H5EA" "${H5EA_HDRS}" "${H5EA_SRCS}" ) set (H5F_SRCS ${HDF5_SRC_DIR}/H5F.c - ${HDF5_SRC_DIR}/H5Fint.c ${HDF5_SRC_DIR}/H5Faccum.c ${HDF5_SRC_DIR}/H5Fcwfs.c ${HDF5_SRC_DIR}/H5Fdbg.c ${HDF5_SRC_DIR}/H5Fdeprec.c ${HDF5_SRC_DIR}/H5Fefc.c ${HDF5_SRC_DIR}/H5Ffake.c + ${HDF5_SRC_DIR}/H5Fint.c ${HDF5_SRC_DIR}/H5Fio.c ${HDF5_SRC_DIR}/H5Fmount.c ${HDF5_SRC_DIR}/H5Fmpi.c @@ -193,8 +193,8 @@ set (H5FA_SRCS ${HDF5_SRC_DIR}/H5FA.c ${HDF5_SRC_DIR}/H5FAcache.c ${HDF5_SRC_DIR}/H5FAdbg.c - ${HDF5_SRC_DIR}/H5FAdblock.c ${HDF5_SRC_DIR}/H5FAdblkpage.c + ${HDF5_SRC_DIR}/H5FAdblock.c ${HDF5_SRC_DIR}/H5FAhdr.c ${HDF5_SRC_DIR}/H5FAstat.c ${HDF5_SRC_DIR}/H5FAtest.c @@ -338,7 +338,9 @@ set (H5HL_SRCS ${HDF5_SRC_DIR}/H5HL.c ${HDF5_SRC_DIR}/H5HLcache.c ${HDF5_SRC_DIR}/H5HLdbg.c + ${HDF5_SRC_DIR}/H5HLdblk.c ${HDF5_SRC_DIR}/H5HLint.c + ${HDF5_SRC_DIR}/H5HLprfx.c ) set (H5HL_HDRS @@ -501,14 +503,6 @@ set (H5R_HDRS IDE_GENERATED_PROPERTIES ("H5R" "${H5R_HDRS}" "${H5R_SRCS}" ) -set (H5UC_SRCS - ${HDF5_SRC_DIR}/H5UC.c -) -set (H5UC_HDRS -) -IDE_GENERATED_PROPERTIES ("H5UC" "${H5UC_HDRS}" "${H5UC_SRCS}" ) - - set (H5RS_SRCS ${HDF5_SRC_DIR}/H5RS.c ) @@ -607,6 +601,14 @@ set (H5TS_HDRS IDE_GENERATED_PROPERTIES ("H5TS" "${H5TS_HDRS}" "${H5TS_SRCS}" ) +set (H5UC_SRCS + ${HDF5_SRC_DIR}/H5UC.c +) +set (H5UC_HDRS +) +IDE_GENERATED_PROPERTIES ("H5UC" "${H5UC_HDRS}" "${H5UC_SRCS}" ) + + set (H5VM_SRCS ${HDF5_SRC_DIR}/H5VM.c ) @@ -780,38 +782,21 @@ set (H5_GENERATED_HEADERS option (HDF5_GENERATE_HEADERS "Rebuild Generated Files" ON) mark_as_advanced (HDF5_GENERATE_HEADERS) if (HDF5_GENERATE_HEADERS) + set_source_files_properties(${H5_GENERATED_HEADERS} PROPERTIES GENERATED TRUE) find_package (Perl) if (PERL_FOUND) - add_custom_command ( - OUTPUT ${HDF5_SRC_DIR}/H5Edefin.h ${HDF5_SRC_DIR}/H5Einit.h ${HDF5_SRC_DIR}/H5Epubgen.h ${HDF5_SRC_DIR}/H5Eterm.h - PRE_BUILD - COMMAND ${PERL_EXECUTABLE} - ARGS ${HDF5_SOURCE_DIR}/bin/make_err ${HDF5_SRC_DIR}/H5err.txt - DEPENDS ${HDF5_SRC_DIR}/H5err.txt - COMMENT " Creating err header" + execute_process ( + COMMAND ${PERL_EXECUTABLE} ${HDF5_SOURCE_DIR}/bin/make_err ${HDF5_SRC_DIR}/H5err.txt OUTPUT_VARIABLE SCRIPT_OUTPUT ) - - add_custom_command ( - OUTPUT ${HDF5_SRC_DIR}/H5version.h - PRE_BUILD - COMMAND ${PERL_EXECUTABLE} - ARGS ${HDF5_SOURCE_DIR}/bin/make_vers ${HDF5_SRC_DIR}/H5vers.txt - DEPENDS ${HDF5_SRC_DIR}/H5vers.txt - COMMENT " Creating API version macro" - ) - - add_custom_command ( - OUTPUT ${HDF5_SRC_DIR}/H5overflow.h - PRE_BUILD - COMMAND ${PERL_EXECUTABLE} - ARGS ${HDF5_SOURCE_DIR}/bin/make_overflow ${HDF5_SRC_DIR}/H5overflow.txt - DEPENDS ${HDF5_SRC_DIR}/H5overflow.txt - COMMENT " Creating Assignment overflow macro" + message(STATUS ${SCRIPT_OUTPUT}) + execute_process ( + COMMAND ${PERL_EXECUTABLE} ${HDF5_SOURCE_DIR}/bin/make_vers ${HDF5_SRC_DIR}/H5vers.txt OUTPUT_VARIABLE SCRIPT_OUTPUT ) - - add_custom_target(run_perl_scripts ALL - DEPENDS ${HDF5_SRC_DIR}/H5Edefin.h ${HDF5_SRC_DIR}/H5Einit.h ${HDF5_SRC_DIR}/H5Epubgen.h ${HDF5_SRC_DIR}/H5Eterm.h ${HDF5_SRC_DIR}/H5version.h ${HDF5_SRC_DIR}/H5overflow.h + message(STATUS ${SCRIPT_OUTPUT}) + execute_process ( + COMMAND ${PERL_EXECUTABLE} ${HDF5_SOURCE_DIR}/bin/make_overflow ${HDF5_SRC_DIR}/H5overflow.txt OUTPUT_VARIABLE SCRIPT_OUTPUT ) + message(STATUS ${SCRIPT_OUTPUT}) else (PERL_FOUND) message (STATUS "Cannot generate headers - perl not found") endif (PERL_FOUND) @@ -826,11 +811,6 @@ TARGET_C_PROPERTIES (H5detect STATIC " " " ") if (MSVC OR MINGW) target_link_libraries (H5detect "ws2_32.lib") endif (MSVC OR MINGW) -if (HDF5_GENERATE_HEADERS) - add_dependencies(H5detect run_perl_scripts) -else (HDF5_GENERATE_HEADERS) - add_dependencies(H5detect "${H5_GENERATED_HEADERS}") -endif (HDF5_GENERATE_HEADERS) set (CMD $<TARGET_FILE:H5detect>) add_custom_command ( @@ -845,11 +825,6 @@ TARGET_C_PROPERTIES (H5make_libsettings STATIC " " " ") if (MSVC OR MINGW) target_link_libraries (H5make_libsettings "ws2_32.lib") endif (MSVC OR MINGW) -if (HDF5_GENERATE_HEADERS) - add_dependencies(H5make_libsettings run_perl_scripts) -else (HDF5_GENERATE_HEADERS) - add_dependencies(H5make_libsettings "${H5_GENERATED_HEADERS}") -endif (HDF5_GENERATE_HEADERS) set (CMD $<TARGET_FILE:H5make_libsettings>) add_custom_command ( @@ -863,10 +838,9 @@ add_custom_command ( #----------------------------------------------------------------------------- # Add H5Tinit source to build - generated by H5Detect/CMake at configure time #----------------------------------------------------------------------------- -set (common_SRCS ${common_SRCS} ${HDF5_BINARY_DIR}/H5Tinit.c) -set (common_SRCS ${common_SRCS} ${HDF5_BINARY_DIR}/H5lib_settings.c) +set (gen_SRCS ${HDF5_BINARY_DIR}/H5Tinit.c ${HDF5_BINARY_DIR}/H5lib_settings.c) -add_library (${HDF5_LIB_TARGET} STATIC ${common_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS} ${H5_GENERATED_HEADERS}) +add_library (${HDF5_LIB_TARGET} STATIC ${common_SRCS} ${gen_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS} ${H5_GENERATED_HEADERS}) TARGET_C_PROPERTIES (${HDF5_LIB_TARGET} STATIC " " " ") target_link_libraries (${HDF5_LIB_TARGET} ${LINK_LIBS}) if (NOT WIN32) @@ -881,11 +855,6 @@ set_target_properties (${HDF5_LIB_TARGET} PROPERTIES FOLDER libraries INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>" ) -if (HDF5_GENERATE_HEADERS) - add_dependencies(${HDF5_LIB_TARGET} run_perl_scripts) -else (HDF5_GENERATE_HEADERS) - add_dependencies(${HDF5_LIB_TARGET} "${HDF5_SRC_DIR}/H5Edefin.h;${HDF5_SRC_DIR}/H5Einit.h;${HDF5_SRC_DIR}/H5Epubgen.h;${HDF5_SRC_DIR}/H5Eterm.h") -endif (HDF5_GENERATE_HEADERS) option (HDF5_ENABLE_DEBUG_APIS "Turn on debugging in all packages" OFF) if (HDF5_ENABLE_DEBUG_APIS) @@ -897,7 +866,25 @@ endif (HDF5_ENABLE_DEBUG_APIS) set (install_targets ${HDF5_LIB_TARGET}) if (BUILD_SHARED_LIBS) - add_library (${HDF5_LIBSH_TARGET} SHARED ${common_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS} ${H5_GENERATED_HEADERS}) + file (MAKE_DIRECTORY "${HDF5_BINARY_DIR}/shared") + set (CMD $<TARGET_FILE:H5detect>) + add_custom_command ( + OUTPUT ${HDF5_BINARY_DIR}/shared/H5Tinit.c + COMMAND ${CMD} + ARGS > ${HDF5_BINARY_DIR}/shared/H5Tinit.c + DEPENDS H5detect + WORKING_DIRECTORY ${HDF5_BINARY_DIR}/shared + ) + set (CMD $<TARGET_FILE:H5make_libsettings>) + add_custom_command ( + OUTPUT ${HDF5_BINARY_DIR}/shared/H5lib_settings.c + COMMAND ${CMD} + ARGS > ${HDF5_BINARY_DIR}/shared/H5lib_settings.c + DEPENDS H5make_libsettings + WORKING_DIRECTORY ${HDF5_BINARY_DIR} + ) + set (shared_gen_SRCS ${HDF5_BINARY_DIR}/shared/H5Tinit.c ${HDF5_BINARY_DIR}/shared/H5lib_settings.c) + add_library (${HDF5_LIBSH_TARGET} SHARED ${common_SRCS} ${shared_gen_SRCS} ${H5_PUBLIC_HEADERS} ${H5_PRIVATE_HEADERS} ${H5_GENERATED_HEADERS}) TARGET_C_PROPERTIES (${HDF5_LIBSH_TARGET} SHARED " " " ") target_link_libraries (${HDF5_LIBSH_TARGET} ${LINK_SHARED_LIBS}) if (NOT WIN32) @@ -914,16 +901,12 @@ if (BUILD_SHARED_LIBS) INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>" INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1 ) - if (HDF5_GENERATE_HEADERS) - add_dependencies(${HDF5_LIBSH_TARGET} run_perl_scripts) - else (HDF5_GENERATE_HEADERS) - add_dependencies(${HDF5_LIBSH_TARGET} "${HDF5_SRC_DIR}/H5Edefin.h;${HDF5_SRC_DIR}/H5Einit.h;${HDF5_SRC_DIR}/H5Epubgen.h;${HDF5_SRC_DIR}/H5Eterm.h") - endif (HDF5_GENERATE_HEADERS) if (HDF5_ENABLE_THREADSAFE) set_property (TARGET ${HDF5_LIBSH_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS "H5_HAVE_THREADSAFE" ) + target_link_libraries (${HDF5_LIBSH_TARGET} Threads::Threads) endif (HDF5_ENABLE_THREADSAFE) if (HDF5_ENABLE_DEBUG_APIS) |