add_executable(tfe src/key_keeper.cpp src/kni_acceptor.cpp src/ssl_stream.cpp src/ssl_sess_cache.cpp src/ssl_utils.cc src/tcp_stream.cpp src/main.cpp src/proxy.cpp)

target_include_directories(tfe PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include/external)
target_include_directories(tfe PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include/internal)

target_link_libraries(tfe common tango-cache-client)
target_link_libraries(tfe pthread dl
		openssl-ssl-static
		openssl-crypto-static
		libevent-static
		libevent-static-openssl
		libevent-static-pthreads
		MESA_handle_logger
		MESA_prof_load
		cjson
		libcurl-static
		MESA_htable wiredcfg
		MESA_field_stat)

target_link_libraries(tfe -Wl,--whole-archive http -Wl,--no-whole-archive)
target_link_libraries(tfe -Wl,--whole-archive pangu-http -Wl,--no-whole-archive)

#target_link_libraries(tfe -Wl,--whole-archive decrypt-mirroring -Wl,--no-whole-archive)

install(TARGETS tfe RUNTIME DESTINATION ./)

### 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.cc )

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.cc)

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.cc)

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)
