find_package(SYSTEMD REQUIRED) find_package(NFNETLINK REQUIRED) add_executable(tfe src/acceptor_kni_v1.cpp src/acceptor_kni_v2.cpp src/acceptor_kni_v3.cpp src/ssl_stream.cpp src/key_keeper.cpp src/ssl_fetch_cert.cpp src/ssl_sess_cache.cpp src/ssl_sess_ticket.cpp src/ssl_service_cache.cpp src/ssl_trusted_cert_storage.cpp src/ev_root_ca_metadata.cpp src/ssl_utils.cpp src/tcp_stream.cpp src/main.cpp src/proxy.cpp src/sender_scm.cpp src/watchdog_kni.cpp src/watchdog_tfe.cpp src/ssl_ja3.cpp) target_include_directories(tfe PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include/external) target_include_directories(tfe PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include/internal) target_include_directories(tfe PRIVATE ${SYSTEMD_INCLUDE_DIRS}) target_link_libraries(tfe common tango-cache-client) target_link_libraries(tfe pthread dl nfnetlink libnetfilter_queue-static openssl-ssl-static openssl-crypto-static libevent-static libevent-static-openssl libevent-static-pthreads MESA_handle_logger MESA_prof_load cjson libcurl-static hiredis-static MESA_htable wiredcfg MESA_field_stat breakpad_mini ${SYSTEMD_LIBRARIES}) if(ENABLE_PLUGIN_HTTP) target_link_libraries(tfe -Wl,--whole-archive http -Wl,--no-whole-archive) endif() if(ENABLE_PLUGIN_HTTP2) target_link_libraries(tfe -Wl,--whole-archive http2 -Wl,--no-whole-archive) endif() if(ENABLE_PLUGIN_DOH) target_link_libraries(tfe -Wl,--whole-archive doh -Wl,--no-whole-archive) endif() if(ENABLE_PLUGIN_PANGU_HTTP) target_link_libraries(tfe -Wl,--whole-archive pangu-http -Wl,--no-whole-archive) endif() if(ENABLE_PLUGIN_SSL_POLICY) target_link_libraries(tfe -Wl,--whole-archive ssl-policy -Wl,--no-whole-archive) endif() if(ENABLE_PLUGIN_TRAFFIC_MIRROR) target_link_libraries(tfe -Wl,--whole-archive traffic-mirror -Wl,--no-whole-archive) endif() install(TARGETS tfe RUNTIME DESTINATION bin COMPONENT Program) #### test_key_keeper #add_executable(test_key_keeper test/test_key_keeper.cpp src/key_keeper.cpp src/ssl_sess_cache.cpp src/ssl_utils.cpp ) # #target_include_directories(test_key_keeper PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include/internal) # #target_link_libraries(test_key_keeper common) #target_link_libraries(test_key_keeper pthread dl # openssl-ssl-static # openssl-crypto-static # pthread libevent-static # libevent-static-openssl # libevent-static-pthreads # MESA_handle_logger # MESA_prof_load # cjson # curl # MESA_htable wiredcfg # MESA_field_stat) # #### test_tfe_rpc #add_executable(test_tfe_rpc test/test_tfe_rpc.cpp src/key_keeper.cpp src/ssl_sess_cache.cpp src/ssl_utils.cpp) # #target_include_directories(test_tfe_rpc PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include/internal) # #target_link_libraries(test_tfe_rpc common) #target_link_libraries(test_tfe_rpc pthread dl # openssl-ssl-static # openssl-crypto-static # pthread libevent-static # libevent-static-openssl # libevent-static-pthreads # MESA_handle_logger # MESA_prof_load # MESA_htable wiredcfg # cjson # curl # MESA_field_stat) # #### test_chello_parse #add_executable(test_chello_parse test/test_chello_parse.cpp src/ssl_utils.cpp) #target_include_directories(test_chello_parse PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include/internal) #target_link_libraries(test_chello_parse common) #target_link_libraries(test_chello_parse pthread dl # openssl-ssl-static # openssl-crypto-static # pthread libevent-static # libevent-static-openssl # libevent-static-pthreads # MESA_handle_logger # MESA_prof_load # MESA_htable wiredcfg # cjson # MESA_field_stat) ##### test_sender_scm #add_executable(test_sender_scm src/sender_scm.cpp test/test_sender_scm.cpp) #target_include_directories(test_sender_scm PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include/internal) #target_link_libraries(test_sender_scm common) #target_link_libraries(test_sender_scm pthread dl MESA_prof_load MESA_handle_logger)