diff options
author | Dana Robinson <derobins@hdfgroup.org> | 2015-12-03 19:58:12 (GMT) |
---|---|---|
committer | Dana Robinson <derobins@hdfgroup.org> | 2015-12-03 19:58:12 (GMT) |
commit | cb79a1fd86b2a78f1c7e82e81ffd01ce7d999799 (patch) | |
tree | 1ee0f70d9c041f14d64f1d0cb2b9ee5532bd76c4 /src/CMakeLists.txt | |
parent | 51eb52dd636cdb5ef365b2c331aea17817587471 (diff) | |
download | hdf5-cb79a1fd86b2a78f1c7e82e81ffd01ce7d999799.zip hdf5-cb79a1fd86b2a78f1c7e82e81ffd01ce7d999799.tar.gz hdf5-cb79a1fd86b2a78f1c7e82e81ffd01ce7d999799.tar.bz2 |
[svn-r28505] Merge of r28497 and 28499 from the trunk. Fixes a race condition in the build phase by separating the static and shared build directories.
Tested on: Windows 10 Pro w/ VS 2015 Pro and CMake 3.3.1.
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r-- | src/CMakeLists.txt | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a9d2c2e..0fbd32b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -850,10 +850,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) @@ -879,7 +878,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) |