set(CLIENT_SRC "BOB.cpp" "ClientContext.cpp" "Daemon.cpp" "HTTPProxy.cpp" "HTTPServer.cpp" "I2PService.cpp" "i2pcontrol/I2PControl.cpp" "i2pcontrol/I2PControlServer.cpp" "I2PTunnel.cpp" "SAM.cpp" "SOCKS.cpp" "i2p.cpp" ) include_directories(".") if(CMAKE_SYSTEM_NAME STREQUAL "Linux") list(APPEND CLIENT_SRC "DaemonLinux.cpp") elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") list(APPEND CLIENT_SRC "DaemonLinux.cpp") elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") list(APPEND CLIENT_SRC "DaemonLinux.cpp") elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") list(APPEND CLIENT_SRC "DaemonLinux.cpp") elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") list(APPEND CLIENT_SRC "DaemonWin32.cpp") list(APPEND CLIENT_SRC "Win32Service.cpp") endif() if(WITH_BINARY) add_executable(${CLIENT_NAME} ${CLIENT_SRC}) if(NOT MSVC) # FIXME: incremental linker file name (.ilk) collision for dll & exe set_target_properties(${CLIENT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}") if(WITH_STATIC) set_target_properties(${CLIENT_NAME} PROPERTIES LINK_FLAGS "-static" ) endif() endif() if(WITH_HARDENING AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") set_target_properties(${CLIENT_NAME} PROPERTIES LINK_FLAGS "-z relro -z now") endif() # FindBoost pulls pthread for thread which is broken for static linking # (at least on Ubuntu 15.04) list(GET Boost_LIBRARIES -1 LAST_Boost_LIBRARIES) if(${LAST_Boost_LIBRARIES} MATCHES ".*pthread.*") list(REMOVE_AT Boost_LIBRARIES -1) endif() target_link_libraries( ${CLIENT_NAME} ${CORE_NAME} ${DL_LIB} ${Boost_LIBRARIES} ${CRYPTO++_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) install(TARGETS ${CLIENT_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) if(MSVC) install(FILES $ DESTINATION "bin" CONFIGURATIONS DEBUG ) endif() endif()