Commit Graph

235 Commits

Author SHA1 Message Date
d-komarov f94b62acf7 CMake improvements
CMake build scripts improved to simplify configuring and building of
project and tests.

Better use of compile definitions by replacing add_definitions with
target_compile_definitions. Use INTERFACE, PUBLIC and PRIVATE keywords
to separate scope of TORRENT_BUILDING_SHARED and TORRENT_LINKING_SHARED
definitions.

* Move tests to the separate file - test/CmakeLists.txt
* Fix use of compile definitions
* Remove redundant tailqueue.cpp
2018-02-19 23:23:15 +01:00
Alden Torres 1baf5eabdf added minimal support for cmake build in appveyor CI 2018-02-04 10:02:23 +01:00
Alden Torres 971cffaed9 added include files to CMakeLists.txt and added minimal support for cmake build in CI (#2767) 2018-02-04 02:03:40 +01:00
arvidn c8bf782bd0 bump version number to 1.1.6 2017-12-29 15:53:51 +01:00
arvidn f0bac4cac7 merged RC_1_1 into master 2017-10-14 15:22:22 +02:00
arvidn e67cf0a055 add missing files to CMakeLists.txt for test suite 2017-10-14 13:32:21 +02:00
silver e2a65adbc0 added dbghelp lib and bigobj to cmake for msvc 2017-10-14 02:22:06 +02:00
silver 2e5e7bb8dd enabled bigobj for msvc cmake build 2017-10-13 02:42:49 +02:00
Steven Siloti 87832ce706 fix building/running unit tests with cmake
Make test_common a propper library so that it can inherit build
properties from libtorrent.
Set the working directory to the test directory so that tests can find
their data files.
Remove reference to obsolete bdecode_benchmark test.
2017-09-16 10:19:10 +02:00
arvidn bb51dcdbb9 move dht_settings into its own header cpp file-pair and dht_settings into the dht namespace 2017-09-04 22:38:16 +02:00
arvidn 061732ddec bump version 2017-09-04 15:35:45 +02:00
Arvid Norberg 1075ae3b8d remove session pool allocator and use the buffer class instead (#2274)
simplify append_buffer by using size() to determine size of the buffer. make the move explicit in chained_buffer::init_buffer_entry
2017-08-28 11:37:53 +02:00
Steven Siloti 626ce25225 cmake: build examples in the same solution as libtorrent
Keep the search script for reference
2017-08-26 08:38:05 +02:00
arvidn c167e28788 move stack allocator implementation into its own cpp file 2017-07-23 16:49:24 -07:00
Steven Siloti f0ae2145ea use a handle class for listen sockets instead of raw pointers
Listen socket handles need to be week_ptr so that they can detect when a listen
socket is removed in the middle of a tracker announce on it. Use a wrapper class
to enforce that no one outside of session_impl can hold ownership of the socket
across event boundaries.

To support unit tests, listen_socket_t is also split into a base class which
holds the members needed to support the public listen socket API.
2017-07-21 19:18:44 -07:00
arvidn c4659bc345 convert peer_flags and peer_source_flags to type-safe flags 2017-07-17 10:22:32 -07:00
Steven Siloti d48c835f65 add cmake package support
This enables libtorrent to be used with the find_package command for easy
integration with applications which use cmake.
2017-07-10 16:57:29 -07:00
Steven Siloti cba3ae4849 use target_* commands to configure msvc 2017-07-10 16:57:29 -07:00
Steven Siloti 41465678cd use target_* commands to configure exceptions 2017-07-10 16:57:29 -07:00
Steven Siloti 6343794900 remove kludge to set TORRENT_DEBUG 2017-07-10 16:57:29 -07:00
Steven Siloti 023ff527b7 remove unnecessary and inappropriate flags
Cmake already has reasonable defaults for these. In any case they represent
system or user level policy and should not be hard coded in the build script.
2017-07-10 16:57:29 -07:00
Steven Siloti 71e1924372 use target_compile_definitions
The add_definitions command appends to the properties of the current directory
which is usually not what you want. Using target_compile_definitions sets
the properties of the target and allows you to specify PUBLIC definitions which
should be propagated to dependent targets. This is similar to the usage
requirements property in boost build.
2017-07-10 16:57:29 -07:00
Steven Siloti 2ed51927bf remove obsolete disk-stats option 2017-07-10 16:57:29 -07:00
arvidn 5188c190db bump version number 2017-07-02 15:03:46 -04:00
arvidn fab8af6be2 don't depend on or define UNICODE and _UNICODE on windows 2017-07-02 11:05:53 -04:00
Alden Torres 48ef3b6bf7 implemented support for BEP 51 (#1652) 2017-06-12 11:54:11 +02:00
Alden Torres e38887cb3c added add_torrent_params.cpp and moved is_nothrow asserts to cpp files (#2059) 2017-06-07 16:41:28 +02:00
arvidn 680ca6ea2b merged RC_1_1 into master 2017-05-21 21:02:09 -04:00
Mokhtar Naamani aed1f4ef9d fix cmake Debug build
Flags added to CMAKE_C_FLAGS_DEBUG are not applied to C++ files, CMAKE_CXX_FLAGS_DEBUG should be used instead.
2017-05-21 17:00:30 -04:00
Steven Siloti 761436dc97 add support for utp over multiple interfaces (#1944) 2017-04-25 23:00:41 -04:00
arvidn 79d7ae3638 separate path and filesystem functions out into its own translation unit/header file pair, separating it from the file and directory class 2017-04-11 18:07:55 -04:00
Alden Torres e4bdd14ae7 implemented ip_change_notifier_macos (#1891)
implemented ip_change_notifier_macos
2017-04-07 17:53:12 -04:00
arvidn b065536023 bump version number 2017-04-02 18:34:45 -04:00
Arvid Norberg a34ce0278e add write_resume_data() function (#1776)
add write_resume_data() function. Make resume data alert use an add_torrent_params object
2017-03-05 09:31:28 -05:00
arvidn 6d40d3a167 bump version number 2017-02-20 12:43:34 -05:00
arvidn c239c2bdc4 factor out storage_piece_set into its own file 2017-01-22 09:29:52 -05:00
arvidn d03540e3b3 move disk_job_fence to its own file 2017-01-22 01:20:27 -05:00
Arvid Norberg 3d06371f31 factor out some common storage utilities out of storage.cpp (#1515)
factor out some common storage utilities out of storage.cpp
2017-01-11 00:42:10 -05:00
Steven Siloti e589e342ef reopen listen sockets when the system's IP changes (#1299)
reopen listen sockets when the system's IP changes. Only Linux and Windows supported for now.
2016-11-07 07:40:09 -05:00
arvidn 500bb24dba merged RC_1_1 into master 2016-10-26 23:30:58 -04:00
Arvid Norberg 61af222d92 add utility function for generating peer ID fingerprint (#1249)
add utility function for generating peer ID fingerprint
2016-10-25 08:03:26 -04:00
Alden Torres 6c31ea3d44 created dht state and session params refactor (#1100)
created dht state and session params refactor
2016-09-17 09:42:04 -04:00
Steven Siloti 578e9b3558 bump soname (#1094)
There's been lots of ABI breakage since 1.1.
2016-09-14 23:22:57 -04:00
Alden Torres 32f5f8f257 better integration and API for ed25519 (#1037)
better integration and API for ed25519. using shared_ptr in ed25519_add_scalar
2016-08-29 20:28:42 -04:00
Alden Torres 44d9f456f8 adding support for a more configurable sha512 hasher (#1028)
adding support for a more configurable sha512 hasher, digest32 template, using hasher512.
2016-08-25 19:07:16 -04:00
arvidn e247473b86 bump version number 2016-08-13 07:12:23 -04:00
Alden Torres 7ea9e76b37 refactor for separation of clz software/hardware based (#985)
refactor for separation of clz software/hardware based
2016-08-05 15:51:37 -04:00
Arvid Norberg 118d06b780 remove deprecated extensions lt_trackers and metadata_transfer (#941) 2016-07-24 23:39:56 -04:00
Alden Torres 7446a88425 version to 1.2 (#924)
update version to 1.2
2016-07-20 11:29:24 -07:00
Alden Torres 436b781003 option to use only the openssl's sha1 implementation (#845)
separated ssl and crypto build options
2016-06-23 13:20:35 -04:00
Alden Torres 15bac1e9b5 config.h cleanup (#834)
config.hpp and .travis.yml cleanup
2016-06-19 02:32:12 -04:00
Steven Siloti 2fed4103f8 scalable thread pool (#770) 2016-06-15 20:49:28 -04:00
Arvid Norberg 0583394af7 remove dependency on libtommath and use boost.multiprecision instead
remove dependency on libtommath and use boost.multiprecision instead
2016-05-30 14:33:24 -04:00
Eugene Shalygin 9489eb23f4 Fix compilation with cmake (#767)
fix tests building with cmake. cmake: restore options parity with autotools
2016-05-29 12:58:16 -04:00
Arvid Norberg 077e9bb10c improve node-id operations (#693)
improve node-id operations, to operate on 32 bits at a time instead of 8. move out some code into sha1_hash.cpp, from the header file
2016-05-03 08:29:27 -04:00
Arvid Norberg 045e9316ad update CMakeLists.txt to build with C++11 (#682) 2016-05-02 14:38:12 -04:00
arvidn 78bc269832 use std::chrono and not boost::chrono 2016-05-01 08:50:30 -04:00
Steven Siloti fef94a4c52 use standard random number classes (#679)
use standard random number classes
2016-05-01 08:35:28 -04:00
Arvid Norberg 20b41ad0b9 Threads (#671)
use std::thread, std::mutex, std::condition_variable instead of pulling them in from boost.asio internals.
2016-04-30 18:54:23 -04:00
Arvid Norberg f0d95f5e3e remove RSS feature (#662)
remove RSS feature
2016-04-29 15:54:21 -04:00
Arvid Norberg 10ec0234a7 remove resolve-country feature (#656) 2016-04-28 08:20:47 -04:00
arvidn 04a3c04075 merged RC_1_1 into master 2016-04-20 08:08:05 -04:00
Arvid Norberg 423ee1cef4 move some implementation details of bitfield into its own translation unit to not expose MMX and SSE internals (and fix shared linking) (#630) 2016-04-20 07:50:57 -04:00
arvidn 867b83ccda merged RC_1_1 into master 2016-04-08 02:20:24 -04:00
arvidn cee2b16949 fix some coverity warnings and move out code to torrent_status.cpp 2016-04-07 21:44:24 -04:00
Michael Smith 9b8b6b6c46 Add read_resume_data to CMakeLists.txt
Without read_resume_data, builds fail with CMake due to a missing
dependency.
2016-03-12 14:57:56 -08:00
Steven Siloti c6f1e0bd7b export verify_message and incoming_error
Also move these functions to a new msg.cpp. They are useful for plugins
which implement DHT extensions.
2015-12-05 18:20:08 -08:00
Thiago A. Correa e9830cb7dd Fix build with cmake under windows.
Fix build with MSVC, let cmake manage boost selection settings.
2015-12-03 09:38:34 -02:00
Arvid Norberg 42b129b9d5 Merge pull request #178 from thomas-yuan/put
Make dht_put_alert more accurate.
2015-11-21 02:30:45 -05:00
Thomas Yuan 194ad410dc Make dht_put_alert more accurate. 2015-11-20 00:06:08 -05:00
Alden Torres a03b18f803 Missing file version.cpp in CMakeLists.txt 2015-11-19 21:56:51 -05:00
arvidn b628692223 separate out announce_entry and torrent_status into their own headers 2015-09-18 08:08:08 -04:00
Alden Torres e2d682275a Implementing and using new dht storage interface 2015-09-16 08:30:27 -04:00
arvidn 0d9d632465 initial support for disabling proxy for tracker connections 2015-08-29 19:44:54 -04:00
arvidn bd177a857f make tailequeue a template, introduce type safety, remove old-style casts 2015-08-19 15:22:05 +02:00
arvidn 7f695f05d5 use boost.asio as headers only library again (simplify builds and hopefully fix shared linking of python module on gcc linux) 2015-07-27 23:09:24 -07:00
Jakob Petsovits 991f0c2a45 Rename test_bdecode_performance to bdecode_benchmark, fix CMake issues.
It's not a test as such, since it's got its own main() that takes
arguments, doesn't return a result that can be directly compared
against expected results, and doesn't make use of the test_common
infrastructure.

The CMake build attempts to build all files named test_*.cpp with
test_common, whose main() and load_file() symbols clash with those
that the benchmark provides. Instead of making an exception, let's
rename it to something that doesn't start with "test_". Its usage
message even claims it's called bdecode_benchmark, so we use that.

Also, complete the file listing for test_common in CMake and use
an OBJECT pseudo-library there instead of STATIC. It's just as good
and jives better with having symbols provided by the executable.
(Follow-up patch in the works to provide Asio symbols that way.)

test_natpmp is a proper test but doesn't currently build,
so exclude it from the build for now.
2015-07-17 20:59:39 -04:00
Jakob Petsovits a699cfae7e CMake build: Require Boost.Random from FindLibtorrentRasterbar.
Also remove outdated requirements for Boost.Thread and
Boost.DateTime linking.
2015-07-17 20:59:19 -04:00
Jakob Petsovits 4a5c6ec733 CMake build: Add file_progress.cpp and mpi.c which were not listed. 2015-07-17 20:13:14 -04:00
Jakob Petsovits f865fac7d9 CMake build: Modify CMAKE_CXX_FLAGS based on itself, not C flags.
Also, only use linker visibility when building shared.
2015-07-17 20:13:14 -04:00
Arvid Norberg 3340bbbfb4 Merge pull request #32 from ssiloti/peer_connection_handle
peer_connection_handle
2015-07-14 22:51:34 -04:00
Jakob Petsovits d138104c85 -Wno-c++11-extensions is a clang-specific option.
GCC doesn't have it, so don't enable it unless we specifically
know that clang is the compiler.
2015-07-14 17:47:21 -04:00
Steven Siloti 9bf1d6c5e9 peer_connection_handle 2015-07-12 14:40:03 -07:00
Steven Siloti b072b0ca5f create session_handle
The session_handle class exposes the same public interface to session_impl as
the session class. The difference being that session_handle does not own the
underlying session_impl so multiple session_handle instances can be created
and copied about as needed.

The intent is to chenge the plugin API to pass an instance of session_handle
instead of a pointer to session_impl. This change will be made in a separate
patch.

To maintain ABI compatibilty, the type signature of session was not changed.
The relevent functions have been modified to forward to session_handle and
all enums have been left in session.
2015-07-11 11:17:28 -07:00
Alden Torres 7edb9eb434 Removed kademlia/logging source code reference from CMakeLists.txt. 2015-06-18 14:38:46 -04:00
Arvid Norberg d128d36faa fix cpuid use (apparently it's not appropriate to use in an inlined function) 2015-04-26 18:46:45 +00:00
Arvid Norberg 2fb1a0f3c7 fix msvc build issue 2015-04-26 01:25:45 +00:00
Arvid Norberg f0336017d1 fix gcc warnings and missing header files in makefiles 2015-04-26 00:51:44 +00:00
Arvid Norberg 3bf9fa8fca move out merkle functions into their own file and test 2015-04-24 06:06:41 +00:00
Arvid Norberg 3ea67e2bf5 move time_now_string out to the unit test library (basically unused in libtorrent itself) 2015-04-24 03:48:08 +00:00
Arvid Norberg f5629eb403 cleanup and fixing of more warnings 2015-04-21 00:23:00 +00:00
Arvid Norberg 1faf2e201f inversed TORRENT_LOGGING build config to enable logging by default. It's now disabled by TORRENT_DISABLE_LOGGING 2015-04-17 01:15:33 +00:00
Arvid Norberg ccc7e45406 landed mutable torrents branch in trunk 2015-03-21 00:12:40 +00:00
Arvid Norberg 1b07ec491d fix build issue out of recent changes of exported functions 2015-03-16 04:38:28 +00:00
Arvid Norberg 6c1df7eb55 landed the bdecode branch in master. lazy_bdecode/lazy_entry is now being replaced by bdecode/bdecode_node 2015-03-12 05:20:12 +00:00
Arvid Norberg 0c8aee014c implemented utp extension header to indicate the reason to close the connection 2015-02-28 19:51:15 +00:00
Arvid Norberg 0f37e3403c transition from intrusive_ptr to shared_ptr. don't export initialize_default_settings 2015-01-06 08:08:49 +00:00
Arvid Norberg 09bc1550e9 simplify the debug logging mechanism. There's now only one build option, logging=on or logging=off. When logging is enabled, the log level is controlled by the alert mask. All log events are delivered as alerts and it's up to the client to write them to disk in whatever way seems appropriate. removed the pointless logger plugin 2014-12-09 09:08:26 +00:00
Arvid Norberg 1c91903c9c merged fixes from RC_1_0 2014-11-27 03:05:06 +00:00
Arvid Norberg 658e2ceefd merged Steven Siloti's peer crypto patch into trunk 2014-11-23 06:14:47 +00:00