From c80745ad131d2b8e34d8db5ad94376ea92e5412a Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Sun, 28 Sep 2008 00:18:03 +0000 Subject: [PATCH] experimental CMakeList file --- CMakeLists.txt | 185 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 000000000..8110d59e7 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,185 @@ +cmake_minimum_required(VERSION 2.6) +project(libtorrent) + +set(sources + alert + assert + connection_queue + create_torrent + disk_buffer_holder + entry + error_code + file_storage + lazy_bdecode + escape_string + file + gzip + http_connection + http_stream + http_parser + identify_client + ip_filter + peer_connection + bt_peer_connection + web_peer_connection + instantiate_connection + natpmp + piece_picker + policy + session + session_impl + socks4_stream + socks5_stream + stat + storage +# mapped_storage + torrent + torrent_handle + torrent_info + tracker_manager + http_tracker_connection + udp_tracker_connection + sha1 + udp_socket + upnp + logger + file_pool + lsd + disk_io_thread + enum_net + broadcast_socket + magnet_uri + parse_url + +# -- extensions -- + metadata_transfer + ut_pex + ut_metadata + smart_ban +) + +set(kademlia_sources + closest_nodes + dht_tracker + node + refresh + rpc_manager + find_data + node_id + routing_table + traversal_algorithm +) + +set(zlib_sources + adler32 + compress + crc32 + deflate + gzio + infback + inffast + inflate + inftrees + trees + uncompr + zutil +) + +set(includes include zlib) + +option(WITH_TCMALLOC "link against google performance tools tcmalloc" OFF) +option(USE_POOL_ALLOCATORS "Uses a pool allocator for disk and piece buffers" ON) +option(ENABLE_ENCRYPTION "link against openssl and enable encryption" ON) +option(ENABLE_GEOIP "link against LGPL GeoIP code from Maxmind, to enable geoip database support" OFF) +option(ENABLE_DHT "enable support for Mainline DHT" ON) +option(ENABLE_RESOLVE_COUNTRIES "enable support for resolving countries from peer IPs" ON) +option(ENABLE_UNICODE "enable unicode support" ON) +option(WITH_DEPRECATED_FUNCTIONS "enable deprecated functions for backwards compatibility" ON) + +if (ENABLE_ENCRYPTION) + list(APPEND sources pe_crypto) +endif (ENABLE_ENCRYPTION) + +foreach(s ${sources}) + list(APPEND sources2 src/${s}) +endforeach(s) +foreach(s ${zlib_sources}) + list(APPEND zlib_sources2 zlib/${s}) +endforeach(s) + +if (ENABLE_DHT) + foreach(s ${kademlia_sources}) + list(APPEND sources2 src/kademlia/${s}) + endforeach(s) +else (ENABLE_DHT) + add_definitions(-DTORRENT_DISABLE_DHT) +endif (ENABLE_DHT) + +add_library(z ${zlib_sources2}) +add_library(torrent SHARED ${sources2} ${kademlia_sources2} ${zlib_sources2}) + +set(library_search_paths /usr/local/lib /usr/lib /opt/local/lib) +find_library(fs boost_filesystem-mt-1_35 ${library_search_paths}) +target_link_libraries(torrent ${fs}) +find_library(th boost_thread-mt-1_35 ${library_search_paths}) +target_link_libraries(torrent ${th}) +find_library(sys boost_system-mt-1_35 ${library_search_paths}) +target_link_libraries(torrent ${sys}) + +if (WIN32) + target_link_libraries(torrent wsock32 ws2_32) +endif (WIN32) + +if (ENABLE_ENCRYPTION) + add_definitions(-DTORRENT_USE_OPENSSL) + if (WIN32) + target_link_libraries(torrent ssleay32 libeay32 advapi32 user32 shell32 gdi32) + else (WIN32) + target_link_libraries(torrent crypto ssl) + endif (WIN32) +else (ENABLE_ENCRYPTION) + add_definitions(-DTORRENT_DISABLE_ENCRYPTION) +endif (ENABLE_ENCRYPTION) + +if (NOT USE_POOL_ALLOCATORS) + add_definitions(-DTORRENT_DISABLE_POOL_ALLOCATOR) +endif (NOT USE_POOL_ALLOCATORS) + +if (NOT ENABLE_GEOIP) + add_definitions(-DTORRENT_DISABLE_GEO_IP) +endif (NOT ENABLE_GEOIP) + +if (NOT ENABLE_RESOLVE_COUNTRIES) + add_definitions(-DTORRENT_DISABLE_RESOLVE_COUNTRIES) +endif (NOT ENABLE_RESOLVE_COUNTRIES) + +if (ENABLE_UNICODE) + add_definitions(-DUNICODE -D_UNICODE) +endif (ENABLE_UNICODE) + +if (NOT WITH_DEPRECATED_FUNCTIONS) + add_definitions(-DTORRENT_NO_DEPRECATE) +endif (NOT WITH_DEPRECATED_FUNCTIONS) + +if (MSVC) +# disable bogus deprecation warnings on msvc8 + add_definitions(-D_SCL_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE) +# these compiler settings just makes the compiler standard conforming + add_definitions(/Zc:wchar_t /Zc:forScope) + +# msvc,release:/OPT:ICF=5 +# msvc,release:/OPT:REF +endif(MSVC) + +message(${CMAKE_CONFIGURATION_TYPES}) + +add_definitions(-D_FILE_OFFSET_BITS=64) + +if (WITH_TCMALLOC) + target_link_libraries(torrent tcmalloc) +endif (WITH_TCMALLOC) + +target_link_libraries(torrent ${libraries} z) +include_directories(${includes}) + +