From 94b046dce6bb86fd22abd1831fc9056103f4aa5d Mon Sep 17 00:00:00 2001 From: pbattu123 Date: Wed, 22 May 2019 16:33:40 +0000 Subject: [PATCH] commit cmake for cmakehelpers --- vendor/websocketpp/cmake/CMakeHelpers.cmake | 109 ++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 vendor/websocketpp/cmake/CMakeHelpers.cmake diff --git a/vendor/websocketpp/cmake/CMakeHelpers.cmake b/vendor/websocketpp/cmake/CMakeHelpers.cmake new file mode 100644 index 0000000..c2a20e5 --- /dev/null +++ b/vendor/websocketpp/cmake/CMakeHelpers.cmake @@ -0,0 +1,109 @@ + +# Print build configuration +macro (print_used_build_config) + message ("\n=========== Used Build Configuration =============\n") + message (STATUS "ENABLE_CPP11 = " ${ENABLE_CPP11}) + message (STATUS "BUILD_EXAMPLES = " ${BUILD_EXAMPLES}) + message (STATUS "BUILD_TESTS = " ${BUILD_TESTS}) + message ("") + message (STATUS "WEBSOCKETPP_ROOT = " ${WEBSOCKETPP_ROOT}) + message (STATUS "WEBSOCKETPP_BIN = " ${WEBSOCKETPP_BIN}) + message (STATUS "WEBSOCKETPP_LIB = " ${WEBSOCKETPP_LIB}) + message (STATUS "Install prefix = " ${CMAKE_INSTALL_PREFIX}) + message ("") + message (STATUS "WEBSOCKETPP_BOOST_LIBS = ${WEBSOCKETPP_BOOST_LIBS}") + message (STATUS "WEBSOCKETPP_PLATFORM_LIBS = ${WEBSOCKETPP_PLATFORM_LIBS}") + message (STATUS "WEBSOCKETPP_PLATFORM_TLS_LIBS = ${WEBSOCKETPP_PLATFORM_TLS_LIBS}") + message ("") + message (STATUS "OPENSSL_FOUND = ${OPENSSL_FOUND}") + message (STATUS "OPENSSL_INCLUDE_DIR = ${OPENSSL_INCLUDE_DIR}") + message (STATUS "OPENSSL_LIBRARIES = ${OPENSSL_LIBRARIES}") + message (STATUS "OPENSSL_VERSION = ${OPENSSL_VERSION}") + message ("") +endmacro () + +# Adds the given folder_name into the source files of the current project. +# Use this macro when your module contains .cpp and .h files in several subdirectories. +# Your sources variable needs to be WSPP_SOURCE_FILES and headers variable WSPP_HEADER_FILES. +macro(add_source_folder folder_name) + file(GLOB H_FILES_IN_FOLDER_${folder_name} ${folder_name}/*.hpp ${folder_name}/*.h) + file(GLOB CPP_FILES_IN_FOLDER_${folder_name} ${folder_name}/*.cpp ${folder_name}/*.c) + source_group("Header Files\\${folder_name}" FILES ${H_FILES_IN_FOLDER_${folder_name}}) + source_group("Source Files\\${folder_name}" FILES ${CPP_FILES_IN_FOLDER_${folder_name}}) + set(WSPP_HEADER_FILES ${WSPP_HEADER_FILES} ${H_FILES_IN_FOLDER_${folder_name}}) + set(WSPP_SOURCE_FILES ${WSPP_SOURCE_FILES} ${CPP_FILES_IN_FOLDER_${folder_name}}) +endmacro() + +# Initialize target. +macro (init_target NAME) + set (TARGET_NAME ${NAME}) + message ("** " ${TARGET_NAME}) + + # Include our own module path. This makes #include "x.h" + # work in project subfolders to include the main directory headers. + include_directories (${CMAKE_CURRENT_SOURCE_DIR}) +endmacro () + +# Build executable for executables +macro (build_executable TARGET_NAME) + set (TARGET_LIB_TYPE "EXECUTABLE") + message (STATUS "-- Build Type:") + message (STATUS " " ${TARGET_LIB_TYPE}) + + add_executable (${TARGET_NAME} ${ARGN}) + + include_directories (${WEBSOCKETPP_ROOT} ${WEBSOCKETPP_INCLUDE}) + + target_link_libraries(${TARGET_NAME} ${WEBSOCKETPP_PLATFORM_LIBS}) + + set_target_properties (${TARGET_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${WEBSOCKETPP_BIN}) + set_target_properties (${TARGET_NAME} PROPERTIES DEBUG_POSTFIX d) +endmacro () + +# Build executable and register as test +macro (build_test TARGET_NAME) + build_executable (${TARGET_NAME} ${ARGN}) + + if (${CMAKE_VERSION} VERSION_LESS 3) + message(WARNING "CMake too old to register ${TARGET_NAME} as a test") + else () + add_test(NAME ${TARGET_NAME} COMMAND $) + endif () +endmacro () + +# Finalize target for all types +macro (final_target) + if ("${TARGET_LIB_TYPE}" STREQUAL "EXECUTABLE") + install (TARGETS ${TARGET_NAME} + RUNTIME DESTINATION "bin" + CONFIGURATIONS ${CMAKE_CONFIGURATION_TYPES}) + endif () + + # install headers, directly from current source dir and look for subfolders with headers + file (GLOB_RECURSE TARGET_INSTALL_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.hpp) + foreach (hppfile ${TARGET_INSTALL_HEADERS}) + get_filename_component (currdir ${hppfile} PATH) + install (FILES ${hppfile} DESTINATION "include/${TARGET_NAME}/${currdir}") + endforeach() +endmacro () + +macro (link_boost) + target_link_libraries (${TARGET_NAME} ${Boost_LIBRARIES}) +endmacro () + +macro (link_openssl) + target_link_libraries (${TARGET_NAME} ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY}) +endmacro () + +macro (link_zlib) + target_link_libraries (${TARGET_NAME} ${ZLIB_LIBRARIES}) +endmacro () + +macro (include_subdirs PARENT) + file (GLOB SDIRS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${PARENT}/*") + foreach (SUBDIR ${SDIRS}) + if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/CMakeLists.txt") + add_subdirectory ("${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}") + endif () + endforeach () +endmacro()