################################################################################ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY # # Please refer to the README for information about making permanent changes. # ################################################################################ ######################################################################## # Project setup ######################################################################## cmake_minimum_required(VERSION 2.8) project(zyre) enable_language(C) enable_testing() set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") ######################################################################## # options ######################################################################## ADD_DEFINITIONS (-DZYRE_BUILD_DRAFT_API) ######################################################################## # platform.h ######################################################################## include(CheckIncludeFile) CHECK_INCLUDE_FILE("linux/wireless.h" HAVE_LINUX_WIRELESS_H) CHECK_INCLUDE_FILE("net/if_media.h" HAVE_NET_IF_MEDIA_H) include(CheckFunctionExists) CHECK_FUNCTION_EXISTS("getifaddrs" HAVE_GETIFADDRS) CHECK_FUNCTION_EXISTS("freeifaddrs" HAVE_FREEIFADDRS) include(CheckIncludeFiles) check_include_files("sys/socket.h;net/if.h" HAVE_NET_IF_H) if (NOT HAVE_NET_IF_H) CHECK_INCLUDE_FILE("net/if.h" HAVE_NET_IF_H) endif() file(WRITE "${SOURCE_DIR}/src/platform.h.in" " #cmakedefine HAVE_LINUX_WIRELESS_H #cmakedefine HAVE_NET_IF_H #cmakedefine HAVE_NET_IF_MEDIA_H #cmakedefine HAVE_GETIFADDRS #cmakedefine HAVE_FREEIFADDRS ") configure_file("${SOURCE_DIR}/src/platform.h.in" "${SOURCE_DIR}/src/platform.h") #The MSVC C compiler is too out of date, #so the sources have to be compiled as c++ if (MSVC) enable_language(CXX) file(GLOB sources "${SOURCE_DIR}/src/*.c") set_source_files_properties( ${sources} PROPERTIES LANGUAGE CXX ) set(MORE_LIBRARIES ws2_32 Rpcrt4 Iphlpapi) endif() # required libraries for mingw if (MINGW) set(MORE_LIBRARIES -lws2_32 -lrpcrt4 -liphlpapi) endif() # required libraries for cygwin if (CYGWIN) set(MORE_LIBRARIES -luuid) endif() list(APPEND CMAKE_MODULE_PATH "${SOURCE_DIR}") set(OPTIONAL_LIBRARIES) ######################################################################## # LIBZMQ dependency ######################################################################## find_package(libzmq REQUIRED) IF (LIBZMQ_FOUND) include_directories(${LIBZMQ_INCLUDE_DIRS}) list(APPEND MORE_LIBRARIES ${LIBZMQ_LIBRARIES}) ELSE (LIBZMQ_FOUND) message( FATAL_ERROR "libzmq not found." ) ENDIF (LIBZMQ_FOUND) ######################################################################## # CZMQ dependency ######################################################################## find_package(czmq REQUIRED) IF (CZMQ_FOUND) include_directories(${CZMQ_INCLUDE_DIRS}) list(APPEND MORE_LIBRARIES ${CZMQ_LIBRARIES}) ELSE (CZMQ_FOUND) message( FATAL_ERROR "czmq not found." ) ENDIF (CZMQ_FOUND) ######################################################################## # includes ######################################################################## set (zyre_headers include/zyre_library.h src/zyre_peer.h src/zyre_group.h src/zyre_node.h ) IF (ENABLE_DRAFTS) list(APPEND zyre_headers include/zyre.h include/zyre_event.h include/zre_msg.h ) ENDIF (ENABLE_DRAFTS) source_group ("Header Files" FILES ${zyre_headers}) install(FILES ${zyre_headers} DESTINATION include) ######################################################################## # library ######################################################################## include_directories("${SOURCE_DIR}/src" "${SOURCE_DIR}/include") set (zyre_sources src/zyre_peer.c src/zyre_group.c src/zyre_node.c ) IF (ENABLE_DRAFTS) list (APPEND zyre_sources src/zyre.c src/zyre_event.c src/zre_msg.c ) ENDIF (ENABLE_DRAFTS) source_group("Source Files" FILES ${zyre_sources}) if (NOT DEFINED BUILD_SHARED_LIBS) SET(BUILD_SHARED_LIBS ON) endif() add_library(zyre ${zyre_sources}) set_target_properties(zyre PROPERTIES DEFINE_SYMBOL "LIBZYRE_EXPORTS" ) set_target_properties(zyre PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${SOURCE_DIR}/src" ) target_link_libraries(zyre ${ZEROMQ_LIBRARIES} ${MORE_LIBRARIES} ) install(TARGETS zyre LIBRARY DESTINATION "lib${LIB_SUFFIX}" # .so file ARCHIVE DESTINATION "lib${LIB_SUFFIX}" # .lib file RUNTIME DESTINATION bin # .dll file ) ######################################################################## # pkgconfig ######################################################################## set (VERSION "1.1.0") set (prefix "${CMAKE_INSTALL_PREFIX}") set (exec_prefix "\${prefix}") set (libdir "\${prefix}/lib${LIB_SUFFIX}") set (includedir "\${prefix}/include") IF (ENABLE_DRAFTS) set (pkg_config_defines "-DZYRE_BUILD_DRAFT_API=1") ELSE (ENABLE_DRAFTS) set (pkg_config_defines "") ENDIF (ENABLE_DRAFTS) configure_file( "${SOURCE_DIR}/src/libzyre.pc.in" "${SOURCE_DIR}/src/libzyre.pc" @ONLY) install( FILES "${SOURCE_DIR}/src/libzyre.pc" DESTINATION "lib${LIB_SUFFIX}/pkgconfig" ) ######################################################################## # executables ######################################################################## add_executable( perf_local "${SOURCE_DIR}/src/perf_local.c" ) target_link_libraries( perf_local zyre ${LIBZMQ_LIBRARIES} ${CZMQ_LIBRARIES} ${OPTIONAL_LIBRARIES} ) set_target_properties( perf_local PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src" ) add_executable( perf_remote "${SOURCE_DIR}/src/perf_remote.c" ) target_link_libraries( perf_remote zyre ${LIBZMQ_LIBRARIES} ${CZMQ_LIBRARIES} ${OPTIONAL_LIBRARIES} ) set_target_properties( perf_remote PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src" ) add_executable( zpinger "${SOURCE_DIR}/src/zpinger.c" ) target_link_libraries( zpinger zyre ${LIBZMQ_LIBRARIES} ${CZMQ_LIBRARIES} ${OPTIONAL_LIBRARIES} ) set_target_properties( zpinger PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src" ) add_executable( ztester_beacon "${SOURCE_DIR}/src/ztester_beacon.c" ) target_link_libraries( ztester_beacon zyre ${LIBZMQ_LIBRARIES} ${CZMQ_LIBRARIES} ${OPTIONAL_LIBRARIES} ) set_target_properties( ztester_beacon PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src" ) add_executable( ztester_gossip "${SOURCE_DIR}/src/ztester_gossip.c" ) target_link_libraries( ztester_gossip zyre ${LIBZMQ_LIBRARIES} ${CZMQ_LIBRARIES} ${OPTIONAL_LIBRARIES} ) set_target_properties( ztester_gossip PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src" ) add_executable( zyre_selftest "${SOURCE_DIR}/src/zyre_selftest.c" ) target_link_libraries( zyre_selftest zyre ${LIBZMQ_LIBRARIES} ${CZMQ_LIBRARIES} ${OPTIONAL_LIBRARIES} ) set_target_properties( zyre_selftest PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${SOURCE_DIR}/src" ) ######################################################################## # tests ######################################################################## set(CLASSTEST_TIMEOUT 5 CACHE STRING "Timeout of the selftest of a class") set(TOTAL_TIMEOUT 20 CACHE STRING "Timout of the total testsuite") set(TEST_CLASSES zyre_peer zyre_group zyre_node ) IF (ENABLE_DRAFTS) list (APPEND TEST_CLASSES zyre zyre_event zre_msg ) ENDIF (ENABLE_DRAFTS) foreach(TEST_CLASS ${TEST_CLASSES}) add_test( NAME ${TEST_CLASS} COMMAND zyre_selftest --continue --verbose --test ${TEST_CLASS} ) set_tests_properties( ${TEST_CLASS} PROPERTIES TIMEOUT ${CLASSTEST_TIMEOUT} ) endforeach(TEST_CLASS) ######################################################################## # summary ######################################################################## message (STATUS "*** Version number: ${VERSION}") message (STATUS "*** Install target: ${CMAKE_INSTALL_PREFIX}") ################################################################################ # THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY # # Please refer to the README for information about making permanent changes. # ################################################################################