From: Matt Benjamin Date: Tue, 15 Nov 2016 22:43:16 +0000 (-0500) Subject: cmake: produce civetweb.h, again X-Git-Tag: v11.1.0~243^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=53f6462a0133c693edfc2f959769978a8faf2fba;p=ceph.git cmake: produce civetweb.h, again The recent change to do this logic with file copy (and in src/rgw) resolved the build problem, but now updates to the civetweb submodule were not reflected in the build. Move the copy into a custom target which will always source the current submodule version at build time. Avoid using the BYPRODUCTS option, as it is not supported in many older cmake versions (e.g., Centos 7). Signed-off-by: Matt Benjamin --- diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt index 9bd186117962..768331ccb741 100644 --- a/src/rgw/CMakeLists.txt +++ b/src/rgw/CMakeLists.txt @@ -17,6 +17,13 @@ install(TARGETS DESTINATION bin) endif(WITH_TESTS) +add_custom_target(civetweb_h + COMMAND ${CMAKE_COMMAND} -E make_directory + "${CMAKE_BINARY_DIR}/src/include/civetweb" + COMMAND ${CMAKE_COMMAND} -E copy_if_different + "${CMAKE_SOURCE_DIR}/src/civetweb/include/civetweb.h" + "${CMAKE_BINARY_DIR}/src/include/civetweb" + COMMENT "keep civetweb.h up-to-date") set(rgw_a_srcs rgw_acl.cc @@ -96,16 +103,12 @@ set(rgw_a_srcs add_library(rgw_a STATIC ${rgw_a_srcs}) +add_dependencies(rgw_a civetweb_h) + target_include_directories(rgw_a PUBLIC "../Beast/include" ${FCGI_INCLUDE_DIR}) -# we want to include civetweb.h as "civetweb/civetweb.h". Make it so. -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/src/include/civetweb") -file(COPY - "${CMAKE_SOURCE_DIR}/src/civetweb/include/civetweb.h" - DESTINATION "${CMAKE_BINARY_DIR}/src/include/civetweb") - target_link_libraries(rgw_a librados cls_lock_client cls_rgw_client cls_refcount_client cls_log_client cls_statelog_client cls_timeindex_client cls_version_client cls_replica_log_client cls_user_client common common_utf8 global