Skip to content

Commit

Permalink
cmake: produce civetweb.h, again
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
mattbenjamin committed Nov 17, 2016
1 parent 2c06ab4 commit 53f6462
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions src/rgw/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 53f6462

Please sign in to comment.