set(CPPKAFKA_HEADER "${CMAKE_CURRENT_BINARY_DIR}/cppkafka.h") # Local function to auto-generate main cppkafka.h header file function(make_cppkafka_header) file(GLOB INCLUDE_HEADERS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "*.h" "utils/*.h") list(SORT INCLUDE_HEADERS) foreach(header ${INCLUDE_HEADERS}) if (NOT ${header} MATCHES "cppkafka.h") SET(CPPKAFKA_HEADERS "${CPPKAFKA_HEADERS}#include \n") endif() endforeach() #create file from template configure_file("${PROJECT_SOURCE_DIR}/cmake/cppkafka.h.in" "${CPPKAFKA_HEADER}" @ONLY) endfunction() # Run file generation function make_cppkafka_header() # Install headers including the auto-generated cppkafka.h file(GLOB INCLUDE_FILES "*.h") file(GLOB UTILS_INCLUDE_FILES "utils/*.h") file(GLOB DETAIL_INCLUDE_FILES "detail/*.h") install( FILES ${INCLUDE_FILES} DESTINATION include/cppkafka/ COMPONENT Headers ) install( FILES ${UTILS_INCLUDE_FILES} DESTINATION include/cppkafka/utils/ COMPONENT Headers ) install( FILES ${DETAIL_INCLUDE_FILES} DESTINATION include/cppkafka/detail/ COMPONENT Headers ) install( FILES "${CPPKAFKA_HEADER}" DESTINATION include/cppkafka/ COMPONENT Headers )