1 Star 0 Fork 0

hzcc/czmq

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
CMakeLists.txt 25.30 KB
一键复制 编辑 原始数据 按行查看 历史
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826
################################################################################
# THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
# Read the zproject/README.md for information about making permanent changes. #
################################################################################
########################################################################
# Project setup
########################################################################
cmake_minimum_required(VERSION 2.8.12)
project(czmq)
enable_language(C)
enable_testing()
set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
# Select flags
if(MSVC)
SET(CMAKE_C_FLAGS_RELEASE "/O2")
else()
SET(CMAKE_C_FLAGS_RELEASE "-O3")
endif()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/builds/cmake/Modules)
# Will be used to add flags to pkg-config useful when apps want to statically link
set(pkg_config_libs_private "")
set(pkg_config_names_private "")
########################################################################
# options
########################################################################
if (NOT CMAKE_BUILD_TYPE)
if (EXISTS "${SOURCE_DIR}/.git")
set (CMAKE_BUILD_TYPE Debug)
else ()
# http://xit0.org/2013/04/cmake-use-git-branch-and-commit-details-in-project/
# http://stackoverflow.com/questions/6797395/cmake-execute-process-always-fails-with-no-such-file-or-directory-when-i-cal
execute_process(
COMMAND git rev-parse --show-toplevel
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
RESULT_VARIABLE git_result
OUTPUT_VARIABLE git_root
OUTPUT_STRIP_TRAILING_WHITESPACE
)
message(STATUS "git workspace root [${git_result}]: ${git_root}")
if ( "${git_result}" STREQUAL "0" )
set (CMAKE_BUILD_TYPE Debug)
else ()
set (CMAKE_BUILD_TYPE Release)
endif ()
endif ()
endif ()
if (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
OPTION (ENABLE_DRAFTS "Build and install draft classes and methods" ON)
else ()
OPTION (ENABLE_DRAFTS "Build and install draft classes and methods" OFF)
endif ()
IF (ENABLE_DRAFTS)
ADD_DEFINITIONS (-DCZMQ_BUILD_DRAFT_API)
ENDIF (ENABLE_DRAFTS)
########################################################################
# 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(REMOVE "${SOURCE_DIR}/src/platform.h")
file(WRITE "${PROJECT_BINARY_DIR}/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("${PROJECT_BINARY_DIR}/platform.h.in" "${PROJECT_BINARY_DIR}/platform.h")
if (WIN32)
#The MSVC C compiler is too out of date,
#so the sources have to be compiled as c++
if (MSVC AND NOT (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
enable_language(CXX)
file(GLOB sources "${SOURCE_DIR}/src/*.c")
set_source_files_properties(
${sources}
PROPERTIES LANGUAGE CXX
)
endif()
set(MORE_LIBRARIES ws2_32 Rpcrt4 Iphlpapi)
endif()
# specific case of windows UWP
if( "${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore" AND "${CMAKE_SYSTEM_VERSION}" STREQUAL "10.0")
ADD_DEFINITIONS(-DZMQ_HAVE_WINDOWS_UWP)
ADD_DEFINITIONS(-D_WIN32_WINNT=_WIN32_WINNT_WIN10)
endif()
# required libraries for mingw
if (MINGW)
set(MORE_LIBRARIES -lws2_32 -lrpcrt4 -liphlpapi)
endif()
# required libraries for cygwin
if (CYGWIN)
set(MORE_LIBRARIES)
endif()
list(APPEND CMAKE_MODULE_PATH "${SOURCE_DIR}")
set(OPTIONAL_LIBRARIES)
set(OPTIONAL_LIBRARIES_STATIC)
########################################################################
# LIBZMQ dependency
########################################################################
find_package(libzmq REQUIRED)
IF (LIBZMQ_FOUND)
include_directories(${LIBZMQ_INCLUDE_DIRS})
list(APPEND MORE_LIBRARIES ${LIBZMQ_LIBRARIES})
IF (PC_LIBZMQ_FOUND)
set(pkg_config_names_private "${pkg_config_names_private} libzmq")
list(APPEND OPTIONAL_LIBRARIES_STATIC ${PC_LIBZMQ_STATIC_LDFLAGS})
ELSE (PC_LIBZMQ_FOUND)
set(pkg_config_libs_private "${pkg_config_libs_private} -lzmq")
ENDIF (PC_LIBZMQ_FOUND)
ELSE (LIBZMQ_FOUND)
message( FATAL_ERROR "libzmq not found." )
ENDIF (LIBZMQ_FOUND)
########################################################################
# UUID dependency
########################################################################
find_package(uuid)
option(CZMQ_WITH_UUID "Build czmq with uuid" ${UUID_FOUND})
IF (CZMQ_WITH_UUID AND UUID_FOUND)
include_directories(${UUID_INCLUDE_DIRS})
list(APPEND MORE_LIBRARIES ${UUID_LIBRARIES})
IF (PC_UUID_FOUND)
set(pkg_config_names_private "${pkg_config_names_private} uuid")
list(APPEND OPTIONAL_LIBRARIES_STATIC ${PC_UUID_STATIC_LDFLAGS})
ELSE (PC_UUID_FOUND)
set(pkg_config_libs_private "${pkg_config_libs_private} -luuid")
ENDIF (PC_UUID_FOUND)
add_definitions(-DHAVE_UUID)
list(APPEND OPTIONAL_LIBRARIES ${UUID_LIBRARIES})
ENDIF (CZMQ_WITH_UUID AND UUID_FOUND)
########################################################################
# SYSTEMD dependency
########################################################################
find_package(systemd)
option(CZMQ_WITH_SYSTEMD "Build czmq with systemd" ${SYSTEMD_FOUND})
IF (CZMQ_WITH_SYSTEMD AND SYSTEMD_FOUND)
include_directories(${SYSTEMD_INCLUDE_DIRS})
list(APPEND MORE_LIBRARIES ${SYSTEMD_LIBRARIES})
IF (PC_SYSTEMD_FOUND)
set(pkg_config_names_private "${pkg_config_names_private} libsystemd >= 200.0.0")
list(APPEND OPTIONAL_LIBRARIES_STATIC ${PC_SYSTEMD_STATIC_LDFLAGS})
ELSE (PC_SYSTEMD_FOUND)
set(pkg_config_libs_private "${pkg_config_libs_private} -lsystemd")
ENDIF (PC_SYSTEMD_FOUND)
add_definitions(-DHAVE_LIBSYSTEMD)
list(APPEND OPTIONAL_LIBRARIES ${SYSTEMD_LIBRARIES})
ENDIF (CZMQ_WITH_SYSTEMD AND SYSTEMD_FOUND)
########################################################################
# LZ4 dependency
########################################################################
find_package(lz4)
option(CZMQ_WITH_LZ4 "Build czmq with lz4" ${LZ4_FOUND})
IF (CZMQ_WITH_LZ4 AND LZ4_FOUND)
include_directories(${LZ4_INCLUDE_DIRS})
list(APPEND MORE_LIBRARIES ${LZ4_LIBRARIES})
IF (PC_LZ4_FOUND)
set(pkg_config_names_private "${pkg_config_names_private} liblz4")
list(APPEND OPTIONAL_LIBRARIES_STATIC ${PC_LZ4_STATIC_LDFLAGS})
ELSE (PC_LZ4_FOUND)
set(pkg_config_libs_private "${pkg_config_libs_private} -llz4")
ENDIF (PC_LZ4_FOUND)
add_definitions(-DHAVE_LIBLZ4)
list(APPEND OPTIONAL_LIBRARIES ${LZ4_LIBRARIES})
ENDIF (CZMQ_WITH_LZ4 AND LZ4_FOUND)
########################################################################
# LIBCURL dependency
########################################################################
find_package(libcurl)
option(CZMQ_WITH_LIBCURL "Build czmq with libcurl" ${LIBCURL_FOUND})
IF (CZMQ_WITH_LIBCURL AND LIBCURL_FOUND)
include_directories(${LIBCURL_INCLUDE_DIRS})
list(APPEND MORE_LIBRARIES ${LIBCURL_LIBRARIES})
IF (PC_LIBCURL_FOUND)
set(pkg_config_names_private "${pkg_config_names_private} libcurl >= 7.28.0")
list(APPEND OPTIONAL_LIBRARIES_STATIC ${PC_LIBCURL_STATIC_LDFLAGS})
ELSE (PC_LIBCURL_FOUND)
set(pkg_config_libs_private "${pkg_config_libs_private} -lcurl")
ENDIF (PC_LIBCURL_FOUND)
add_definitions(-DHAVE_LIBCURL)
list(APPEND OPTIONAL_LIBRARIES ${LIBCURL_LIBRARIES})
ENDIF (CZMQ_WITH_LIBCURL AND LIBCURL_FOUND)
########################################################################
# NSS dependency
########################################################################
find_package(nss)
option(CZMQ_WITH_NSS "Build czmq with nss" ${NSS_FOUND})
IF (CZMQ_WITH_NSS AND NSS_FOUND)
include_directories(${NSS_INCLUDE_DIRS})
list(APPEND MORE_LIBRARIES ${NSS_LIBRARIES})
IF (PC_NSS_FOUND)
set(pkg_config_names_private "${pkg_config_names_private} nss")
list(APPEND OPTIONAL_LIBRARIES_STATIC ${PC_NSS_STATIC_LDFLAGS})
ELSE (PC_NSS_FOUND)
set(pkg_config_libs_private "${pkg_config_libs_private} -lnss")
ENDIF (PC_NSS_FOUND)
add_definitions(-DHAVE_NSS)
list(APPEND OPTIONAL_LIBRARIES ${NSS_LIBRARIES})
ENDIF (CZMQ_WITH_NSS AND NSS_FOUND)
########################################################################
# LIBMICROHTTPD dependency
########################################################################
find_package(libmicrohttpd)
option(CZMQ_WITH_LIBMICROHTTPD "Build czmq with libmicrohttpd" ${LIBMICROHTTPD_FOUND})
IF (CZMQ_WITH_LIBMICROHTTPD AND LIBMICROHTTPD_FOUND)
include_directories(${LIBMICROHTTPD_INCLUDE_DIRS})
list(APPEND MORE_LIBRARIES ${LIBMICROHTTPD_LIBRARIES})
IF (PC_LIBMICROHTTPD_FOUND)
set(pkg_config_names_private "${pkg_config_names_private} libmicrohttpd")
list(APPEND OPTIONAL_LIBRARIES_STATIC ${PC_LIBMICROHTTPD_STATIC_LDFLAGS})
ELSE (PC_LIBMICROHTTPD_FOUND)
set(pkg_config_libs_private "${pkg_config_libs_private} -lmicrohttpd")
ENDIF (PC_LIBMICROHTTPD_FOUND)
add_definitions(-DHAVE_LIBMICROHTTPD)
list(APPEND OPTIONAL_LIBRARIES ${LIBMICROHTTPD_LIBRARIES})
ENDIF (CZMQ_WITH_LIBMICROHTTPD AND LIBMICROHTTPD_FOUND)
########################################################################
# version
########################################################################
set(CZMQ_VERSION_MAJOR 4)
set(CZMQ_VERSION_MINOR 2)
set(CZMQ_VERSION_PATCH 1)
set(CZMQ_VERSION "${CZMQ_VERSION_MAJOR}.${CZMQ_VERSION_MINOR}.${CZMQ_VERSION_PATCH}")
message(STATUS "Detected CZMQ Version - ${CZMQ_VERSION}")
########################################################################
# includes
########################################################################
set (czmq_headers
include/czmq_library.h
include/czmq_prelude.h
include/czmq.h
include/zactor.h
include/zarmour.h
include/zcert.h
include/zcertstore.h
include/zchunk.h
include/zclock.h
include/zconfig.h
include/zdigest.h
include/zdir.h
include/zdir_patch.h
include/zfile.h
include/zframe.h
include/zhash.h
include/zhashx.h
include/ziflist.h
include/zlist.h
include/zlistx.h
include/zloop.h
include/zmsg.h
include/zpoller.h
include/zsock.h
include/zstr.h
include/zsys.h
include/zuuid.h
include/zauth.h
include/zbeacon.h
include/zgossip.h
include/zmonitor.h
include/zproxy.h
include/zrex.h
src/zgossip_msg.h
src/zsock_option.inc
src/zgossip_engine.inc
src/zhash_primes.inc
src/foreign/sha1/sha1.inc_c
src/foreign/sha1/sha1.h
src/foreign/slre/slre.inc_c
src/foreign/slre/slre.h
src/foreign/slre/readme.txt
)
IF (ENABLE_DRAFTS)
list(APPEND czmq_headers
include/zargs.h
include/zproc.h
include/ztimerset.h
include/ztrie.h
include/zhttp_client.h
include/zhttp_server.h
include/zhttp_server_options.h
include/zhttp_request.h
include/zhttp_response.h
include/zosc.h
)
ENDIF (ENABLE_DRAFTS)
source_group ("Header Files" FILES ${czmq_headers})
install(FILES ${czmq_headers} DESTINATION include)
########################################################################
# library
########################################################################
include_directories("${SOURCE_DIR}/src" "${SOURCE_DIR}/include" "${PROJECT_BINARY_DIR}")
set (czmq_sources
src/zactor.c
src/zarmour.c
src/zcert.c
src/zcertstore.c
src/zchunk.c
src/zclock.c
src/zconfig.c
src/zdigest.c
src/zdir.c
src/zdir_patch.c
src/zfile.c
src/zframe.c
src/zhash.c
src/zhashx.c
src/ziflist.c
src/zlist.c
src/zlistx.c
src/zloop.c
src/zmsg.c
src/zpoller.c
src/zsock.c
src/zstr.c
src/zsys.c
src/zuuid.c
src/zauth.c
src/zbeacon.c
src/zgossip.c
src/zmonitor.c
src/zproxy.c
src/zrex.c
src/zgossip_msg.c
)
IF (ENABLE_DRAFTS)
list (APPEND czmq_sources
src/zargs.c
src/zproc.c
src/ztimerset.c
src/ztrie.c
src/zhttp_client.c
src/zhttp_server.c
src/zhttp_server_options.c
src/zhttp_request.c
src/zhttp_response.c
src/zosc.c
)
ENDIF (ENABLE_DRAFTS)
IF (ENABLE_DRAFTS)
list (APPEND czmq_sources
src/czmq_private_selftest.c
)
ENDIF (ENABLE_DRAFTS)
source_group("Source Files" FILES ${czmq_sources})
option(CZMQ_BUILD_SHARED "Whether or not to build the shared object" ON)
option(CZMQ_BUILD_STATIC "Whether or not to build the static archive" ON)
if (NOT CZMQ_BUILD_SHARED AND NOT CZMQ_BUILD_STATIC)
message(FATAL_ERROR "Neither static nor shared library build enabled")
endif()
IF (NOT MSVC)
# avoid building everything twice for shared + static
# only on *nix, as Windows needs different preprocessor defines in static builds
add_library (czmq_objects OBJECT ${czmq_sources})
set_property(TARGET czmq_objects PROPERTY POSITION_INDEPENDENT_CODE ON)
ENDIF (NOT MSVC)
# shared
if (CZMQ_BUILD_SHARED)
IF (APPLE)
add_library(czmq SHARED ${czmq_sources})
ELSE (APPLE)
IF (MSVC)
add_library(czmq SHARED ${czmq_sources})
ELSE (MSVC)
add_library(czmq SHARED $<TARGET_OBJECTS:czmq_objects>)
ENDIF (MSVC)
ENDIF(APPLE)
set_target_properties (czmq PROPERTIES
PUBLIC_HEADER "${public_headers}"
DEFINE_SYMBOL "CZMQ_EXPORTS"
SOVERSION "4"
VERSION "${CZMQ_VERSION}"
COMPILE_DEFINITIONS "DLL_EXPORT"
OUTPUT_NAME "czmq"
PREFIX "lib"
)
target_link_libraries(czmq
PUBLIC ${MORE_LIBRARIES}
)
install(TARGETS czmq
EXPORT czmq-targets
LIBRARY DESTINATION "lib${LIB_SUFFIX}" # .so file
ARCHIVE DESTINATION "lib${LIB_SUFFIX}" # .lib file
RUNTIME DESTINATION bin # .dll file
)
target_include_directories(czmq
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
endif()
# static
if (CZMQ_BUILD_STATIC)
IF (APPLE)
add_library(czmq-static STATIC ${czmq_sources})
ELSE (APPLE)
IF (MSVC)
add_library(czmq-static STATIC ${czmq_sources})
ELSE (MSVC)
add_library(czmq-static STATIC $<TARGET_OBJECTS:czmq_objects>)
ENDIF (MSVC)
ENDIF (APPLE)
set_target_properties(czmq-static PROPERTIES
PUBLIC_HEADER "${public_headers}"
COMPILE_DEFINITIONS "CZMQ_STATIC"
OUTPUT_NAME "czmq"
PREFIX "lib"
)
target_link_libraries(czmq-static
PUBLIC ${MORE_LIBRARIES}
)
install(TARGETS czmq-static
EXPORT czmq-targets
LIBRARY DESTINATION "lib${LIB_SUFFIX}" # .so file
ARCHIVE DESTINATION "lib${LIB_SUFFIX}" # .lib file
RUNTIME DESTINATION bin # .dll file
)
target_include_directories(czmq-static
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
target_compile_definitions(czmq-static
PUBLIC CZMQ_STATIC
)
endif()
include(${CMAKE_CURRENT_SOURCE_DIR}/src/CMakeLists-local.txt) # Optional project-local hook
########################################################################
# pkgconfig
########################################################################
set (VERSION "4.2.1")
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 "-DCZMQ_BUILD_DRAFT_API=1")
ELSE (ENABLE_DRAFTS)
set (pkg_config_defines "")
ENDIF (ENABLE_DRAFTS)
configure_file(
"${SOURCE_DIR}/src/libczmq.pc.in"
"${SOURCE_DIR}/src/libczmq.pc"
@ONLY)
install(
FILES "${SOURCE_DIR}/src/libczmq.pc"
DESTINATION "lib${LIB_SUFFIX}/pkgconfig"
)
########################################################################
# installer
########################################################################
include(CMakePackageConfigHelpers)
if (WIN32)
set(CMAKECONFIG_INSTALL_DIR "CMake" CACHE STRING "install path for czmqConfig.cmake")
else()
# GNUInstallDirs "DATADIR" wrong here; CMake search path wants "share".
set(CMAKECONFIG_INSTALL_DIR "share/cmake/czmq" CACHE STRING "install path for czmqConfig.cmake")
endif()
if (NOT CMAKE_VERSION VERSION_LESS 3.0)
export(EXPORT czmq-targets
FILE "${CMAKE_CURRENT_BINARY_DIR}/czmqTargets.cmake")
endif()
configure_package_config_file(builds/cmake/Config.cmake.in
"${CMAKE_CURRENT_BINARY_DIR}/czmqConfig.cmake"
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR})
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/czmqConfigVersion.cmake
VERSION ${CZMQ_VERSION}
COMPATIBILITY AnyNewerVersion)
install(EXPORT czmq-targets
FILE czmqTargets.cmake
DESTINATION ${CMAKECONFIG_INSTALL_DIR})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/czmqConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/czmqConfigVersion.cmake
DESTINATION ${CMAKECONFIG_INSTALL_DIR})
########################################################################
# executables
########################################################################
add_executable(
zmakecert
"${SOURCE_DIR}/src/zmakecert.c"
)
if (TARGET czmq)
target_link_libraries(
zmakecert
czmq
${LIBZMQ_LIBRARIES}
${OPTIONAL_LIBRARIES}
)
endif()
if (NOT TARGET czmq AND TARGET czmq-static)
target_link_libraries(
zmakecert
czmq-static
${LIBZMQ_LIBRARIES}
${OPTIONAL_LIBRARIES}
${OPTIONAL_LIBRARIES_STATIC}
)
endif()
install(TARGETS zmakecert
RUNTIME DESTINATION bin
)
add_executable(
zsp
"${SOURCE_DIR}/src/zsp.c"
)
if (TARGET czmq)
target_link_libraries(
zsp
czmq
${LIBZMQ_LIBRARIES}
${OPTIONAL_LIBRARIES}
)
endif()
if (NOT TARGET czmq AND TARGET czmq-static)
target_link_libraries(
zsp
czmq-static
${LIBZMQ_LIBRARIES}
${OPTIONAL_LIBRARIES}
${OPTIONAL_LIBRARIES_STATIC}
)
endif()
add_executable(
test_randof
"${SOURCE_DIR}/src/test_randof.c"
)
if (TARGET czmq)
target_link_libraries(
test_randof
czmq
${LIBZMQ_LIBRARIES}
${OPTIONAL_LIBRARIES}
)
endif()
if (NOT TARGET czmq AND TARGET czmq-static)
target_link_libraries(
test_randof
czmq-static
${LIBZMQ_LIBRARIES}
${OPTIONAL_LIBRARIES}
${OPTIONAL_LIBRARIES_STATIC}
)
endif()
add_executable(
czmq_selftest
"${SOURCE_DIR}/src/czmq_selftest.c"
)
if (TARGET czmq)
target_link_libraries(
czmq_selftest
czmq
${LIBZMQ_LIBRARIES}
${OPTIONAL_LIBRARIES}
)
endif()
if (NOT TARGET czmq AND TARGET czmq-static)
target_link_libraries(
czmq_selftest
czmq-static
${LIBZMQ_LIBRARIES}
${OPTIONAL_LIBRARIES}
${OPTIONAL_LIBRARIES_STATIC}
)
endif()
########################################################################
# tests
########################################################################
set(CLASSTEST_TIMEOUT 60 CACHE STRING "Timeout of the selftest of a class")
set(TOTAL_TIMEOUT 600 CACHE STRING "Timout of the total testsuite")
if(UNIX)
find_program(MEMORYCHECK_COMMAND valgrind)
set(MEMORYCHECK_COMMAND_OPTIONS "--leak-check=full --show-reachable=yes
--error-exitcode=1
--suppressions=src/.valgrind.supp")
endif()
set(TEST_CLASSES
zactor
zarmour
zcert
zcertstore
zchunk
zclock
zconfig
zdigest
zdir
zdir_patch
zfile
zframe
zhash
zhashx
ziflist
zlist
zlistx
zloop
zmsg
zpoller
zsock
zstr
zsys
zuuid
zauth
zbeacon
zgossip
zmonitor
zproxy
zrex
)
IF (ENABLE_DRAFTS)
list (APPEND TEST_CLASSES
zargs
zproc
ztimerset
ztrie
zhttp_client
zhttp_server
zhttp_server_options
zhttp_request
zhttp_response
zosc
)
ENDIF (ENABLE_DRAFTS)
IF (ENABLE_DRAFTS)
list (APPEND TEST_CLASSES
private_classes
)
ENDIF (ENABLE_DRAFTS)
if (NOT TARGET copy-selftest-ro)
add_custom_target(
copy-selftest-ro ALL
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/src/selftest-ro ${PROJECT_BINARY_DIR}/src/selftest-ro
)
endif()
if (NOT TARGET make-selftest-rw)
add_custom_target(
make-selftest-rw ALL
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/src/selftest-rw
)
endif()
set_directory_properties(
PROPERTIES
ADDITIONAL_MAKE_CLEAN_FILES "${PROJECT_BINARY_DIR}/src/selftest-ro;${PROJECT_BINARY_DIR}/src/selftest-rw"
)
foreach(TEST_CLASS ${TEST_CLASSES})
add_test(
NAME ${TEST_CLASS}
COMMAND czmq_selftest --continue --verbose --test ${TEST_CLASS}
)
IF (WIN32 AND CMAKE_PREFIX_PATH)
file(TO_NATIVE_PATH "${CMAKE_PREFIX_PATH}" CMAKE_PREFIX_PATH_WIN)
set_tests_properties(
${TEST_CLASS}
PROPERTIES ENVIRONMENT "PATH=%PATH%\;${CMAKE_PREFIX_PATH_WIN}\\bin"
)
ENDIF (WIN32 AND CMAKE_PREFIX_PATH)
set_tests_properties(
${TEST_CLASS}
PROPERTIES TIMEOUT ${CLASSTEST_TIMEOUT}
)
set_tests_properties(
${TEST_CLASS}
PROPERTIES DEPENDS "copy-selftest-ro;make-selftest-rw"
)
endforeach(TEST_CLASS)
include(CTest)
########################################################################
# cleanup
########################################################################
if (NOT TARGET distclean)
add_custom_target (distclean @echo Cleaning for source distribution)
endif()
set(cmake_generated ${PROJECT_BINARY_DIR}/CMakeCache.txt
${PROJECT_BINARY_DIR}/cmake_install.cmake
${PROJECT_BINARY_DIR}/Makefile
${PROJECT_BINARY_DIR}/CMakeFiles
${PROJECT_BINARY_DIR}/CTestTestfile.cmake
${PROJECT_BINARY_DIR}/DartConfiguration.tcl
${PROJECT_BINARY_DIR}/Testing
${PROJECT_BINARY_DIR}/compile_commands.json
${PROJECT_BINARY_DIR}/platform.h
${PROJECT_BINARY_DIR}/src/libczmq.pc
${PROJECT_BINARY_DIR}/src/libczmq.so
${PROJECT_BINARY_DIR}/src/czmq_selftest
${PROJECT_BINARY_DIR}/src/zmakecert
${PROJECT_BINARY_DIR}/src/zsp
${PROJECT_BINARY_DIR}/src/test_randof
${PROJECT_BINARY_DIR}/src/czmq_selftest
)
add_custom_command(
DEPENDS clean
COMMENT "distribution clean"
COMMAND rm
ARGS -rf CMakeTmp ${cmake_generated}
TARGET distclean
)
include(ClangFormat OPTIONAL)
########################################################################
# summary
########################################################################
message ("")
message (STATUS "******************* Configuration Summary *******************")
message (STATUS "General:")
message (STATUS " Version : ${VERSION}")
message (STATUS " System : ${CMAKE_SYSTEM_NAME}")
message (STATUS " C compiler : ${CMAKE_C_COMPILER}")
message (STATUS " Debug C flags : ${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS}")
message (STATUS " Release C flags : ${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS}")
message (STATUS " Build type : ${CMAKE_BUILD_TYPE}")
message (STATUS " Static build : ${CZMQ_BUILD_STATIC}")
message (STATUS " Shared build : ${CZMQ_BUILD_SHARED}")
IF (ENABLE_DRAFTS)
message (STATUS " Draft API : Yes")
ELSE (ENABLE_DRAFTS)
message (STATUS " Draft API : No")
ENDIF (ENABLE_DRAFTS)
message (STATUS "")
message (STATUS "Dependencies:")
include(FeatureSummary)
feature_summary (WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
message (STATUS "")
message (STATUS "Install:")
message (STATUS " Install prefix :" "${CMAKE_INSTALL_PREFIX}")
message (STATUS "")
message (STATUS "************************* Options ***************************")
message (STATUS "Options:")
message (STATUS " Use the Draft API (default = yes):")
message (STATUS " -DENABLE-DRAFTS=[yes|no]")
message (STATUS "")
message (STATUS "*************************************************************")
message (STATUS "Configuration complete! Now procced with:")
message (STATUS " 'make' compile the project")
message (STATUS " 'make test' run the project's selftest")
message (STATUS " 'make install' install the project to ${CMAKE_INSTALL_PREFIX}")
message (STATUS "")
message (STATUS "Further options are:")
message (STATUS " 'ctest -V run test with verbose logging")
message (STATUS " 'ctest -R <test_name>' run a specific test")
message (STATUS " 'ctest -T memcheck' run the project's selftest with")
message (STATUS " valgrind to check for memory leaks")
message (STATUS "")
################################################################################
# THIS FILE IS 100% GENERATED BY ZPROJECT; DO NOT EDIT EXCEPT EXPERIMENTALLY #
# Read the zproject/README.md for information about making permanent changes. #
################################################################################
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/hwang_zc/czmq.git
git@gitee.com:hwang_zc/czmq.git
hwang_zc
czmq
czmq
master

搜索帮助

D67c1975 1850385 1daf7b77 1850385