CMakeLists.txt 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. list(APPEND EXAMPLES
  2. hloop_test
  3. htimer_test
  4. nc
  5. tinyhttpd
  6. tcp_echo_server
  7. tcp_chat_server
  8. tcp_proxy_server
  9. udp_echo_server
  10. udp_proxy_server
  11. jsonrpc_client
  12. jsonrpc_server
  13. )
  14. include_directories(.. ../base ../ssl ../event ../util)
  15. add_executable(hloop_test hloop_test.c)
  16. target_link_libraries(hloop_test ${HV_LIBRARIES})
  17. add_executable(htimer_test htimer_test.c)
  18. target_link_libraries(htimer_test ${HV_LIBRARIES})
  19. add_executable(nc nc.c)
  20. target_link_libraries(nc ${HV_LIBRARIES})
  21. add_executable(tinyhttpd tinyhttpd.c)
  22. target_link_libraries(tinyhttpd ${HV_LIBRARIES})
  23. add_executable(tcp_echo_server tcp_echo_server.c)
  24. target_link_libraries(tcp_echo_server ${HV_LIBRARIES})
  25. add_executable(tcp_chat_server tcp_chat_server.c)
  26. target_link_libraries(tcp_chat_server ${HV_LIBRARIES})
  27. add_executable(tcp_proxy_server tcp_proxy_server.c)
  28. target_link_libraries(tcp_proxy_server ${HV_LIBRARIES})
  29. add_executable(udp_echo_server udp_echo_server.c)
  30. target_link_libraries(udp_echo_server ${HV_LIBRARIES})
  31. add_executable(udp_proxy_server udp_proxy_server.c)
  32. target_link_libraries(udp_proxy_server ${HV_LIBRARIES})
  33. add_executable(jsonrpc_client jsonrpc/jsonrpc_client.c jsonrpc/cJSON.c)
  34. target_link_libraries(jsonrpc_client ${HV_LIBRARIES})
  35. add_executable(jsonrpc_server jsonrpc/jsonrpc_server.c jsonrpc/cJSON.c)
  36. target_link_libraries(jsonrpc_server ${HV_LIBRARIES})
  37. if(WITH_EVPP)
  38. include_directories(../cpputil ../evpp)
  39. # hmain_test
  40. add_executable(hmain_test hmain_test.cpp)
  41. target_link_libraries(hmain_test ${HV_LIBRARIES})
  42. # nmap
  43. glob_headers_and_sources(NMAP_FILES nmap)
  44. add_executable(nmap ${NMAP_FILES})
  45. target_compile_definitions(nmap PRIVATE PRINT_DEBUG)
  46. target_link_libraries(nmap ${HV_LIBRARIES})
  47. list(APPEND EXAMPLES hmain_test nmap)
  48. if(WITH_HTTP)
  49. include_directories(../http)
  50. # wrk
  51. add_executable(wrk wrk.cpp)
  52. target_link_libraries(wrk ${HV_LIBRARIES})
  53. list(APPEND EXAMPLES wrk)
  54. if(WITH_HTTP_SERVER)
  55. include_directories(../http/server)
  56. # http_server_test
  57. add_executable(http_server_test http_server_test.cpp)
  58. target_link_libraries(http_server_test ${HV_LIBRARIES})
  59. # websocket_server_test
  60. add_executable(websocket_server_test websocket_server_test.cpp)
  61. target_link_libraries(websocket_server_test ${HV_LIBRARIES})
  62. list(APPEND EXAMPLES http_server_test websocket_server_test)
  63. endif()
  64. if(WITH_HTTP_CLIENT)
  65. include_directories(../http/client)
  66. # curl
  67. set(CURL_TARGET_NAME curl)
  68. if(WITH_CURL)
  69. set(CURL_TARGET_NAME hv_curl)
  70. endif()
  71. add_executable(${CURL_TARGET_NAME} curl.cpp)
  72. if(WITH_CURL)
  73. set_target_properties(${CURL_TARGET_NAME} PROPERTIES OUTPUT_NAME curl)
  74. endif()
  75. target_link_libraries(${CURL_TARGET_NAME} ${HV_LIBRARIES})
  76. # wget
  77. add_executable(wget wget.cpp)
  78. target_link_libraries(wget ${HV_LIBRARIES})
  79. # consul
  80. glob_headers_and_sources(CONSUL_FILES consul)
  81. add_executable(consul ${CONSUL_FILES})
  82. target_compile_definitions(consul PRIVATE PRINT_DEBUG)
  83. target_link_libraries(consul ${HV_LIBRARIES})
  84. # http_client_test
  85. add_executable(http_client_test http_client_test.cpp)
  86. target_link_libraries(http_client_test ${HV_LIBRARIES})
  87. # websocket_client_test
  88. add_executable(websocket_client_test websocket_client_test.cpp)
  89. target_link_libraries(websocket_client_test ${HV_LIBRARIES})
  90. list(APPEND EXAMPLES ${CURL_TARGET_NAME} wget consul http_client_test websocket_client_test)
  91. if(WITH_HTTP_SERVER)
  92. # httpd
  93. glob_headers_and_sources(HTTPD_FILES httpd)
  94. add_executable(httpd ${HTTPD_FILES})
  95. target_link_libraries(httpd ${HV_LIBRARIES})
  96. list(APPEND EXAMPLES httpd)
  97. endif()
  98. endif()
  99. endif()
  100. endif()
  101. add_custom_target(examples DEPENDS ${EXAMPLES})