Vladimir Golovnev
4 years ago
committed by
GitHub
13 changed files with 151 additions and 49 deletions
@ -0,0 +1,26 @@ |
|||||||
|
Source: libtorrent |
||||||
|
Version: 1.2.12 |
||||||
|
Homepage: https://github.com/arvidn/libtorrent |
||||||
|
Description: An efficient feature complete C++ BitTorrent implementation |
||||||
|
Build-Depends: openssl, boost-system, boost-date-time, boost-chrono, boost-random, boost-asio, boost-crc, boost-config, boost-iterator, boost-scope-exit, boost-multiprecision, boost-pool, boost-variant |
||||||
|
Supports: !uwp&!(windows&arm) |
||||||
|
|
||||||
|
Feature: deprfun |
||||||
|
Description: build with deprecated functions enabled |
||||||
|
|
||||||
|
Feature: examples |
||||||
|
Description: build the examples in the examples directory |
||||||
|
|
||||||
|
Feature: iconv |
||||||
|
Build-Depends: libiconv (windows) |
||||||
|
Description: build with libiconv on Windows |
||||||
|
|
||||||
|
Feature: python |
||||||
|
Build-Depends: boost-python |
||||||
|
Description: build the python bindings in bindings/python directory |
||||||
|
|
||||||
|
Feature: test |
||||||
|
Description: build the libtorrent tests |
||||||
|
|
||||||
|
Feature: tools |
||||||
|
Description: build the tools in the tools directory |
@ -0,0 +1,31 @@ |
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 9efd451fb..05066be82 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -643,26 +643,6 @@ target_optional_compile_definitions(torrent-rasterbar PUBLIC FEATURE NAME mutabl
|
||||||
|
target_optional_compile_definitions(torrent-rasterbar PUBLIC FEATURE NAME streaming DEFAULT ON |
||||||
|
DESCRIPTION "Enables support for piece deadline" DISABLED TORRENT_DISABLE_STREAMING) |
||||||
|
|
||||||
|
-find_public_dependency(Iconv)
|
||||||
|
-if(MSVC)
|
||||||
|
- set(iconv_package_type OPTIONAL)
|
||||||
|
-else()
|
||||||
|
- set(iconv_package_type RECOMMENDED)
|
||||||
|
-endif()
|
||||||
|
-
|
||||||
|
-set_package_properties(Iconv
|
||||||
|
- PROPERTIES
|
||||||
|
- URL "https://www.gnu.org/software/libiconv/"
|
||||||
|
- DESCRIPTION "GNU encoding conversion library"
|
||||||
|
- TYPE ${iconv_package_type}
|
||||||
|
- PURPOSE "Convert strings between various encodings"
|
||||||
|
-)
|
||||||
|
-
|
||||||
|
-if(Iconv_FOUND)
|
||||||
|
- target_compile_definitions(torrent-rasterbar PUBLIC TORRENT_USE_ICONV)
|
||||||
|
- target_link_libraries(torrent-rasterbar PRIVATE Iconv::Iconv)
|
||||||
|
-endif()
|
||||||
|
-
|
||||||
|
find_public_dependency(OpenSSL) |
||||||
|
set_package_properties(OpenSSL |
||||||
|
PROPERTIES |
@ -0,0 +1,66 @@ |
|||||||
|
vcpkg_fail_port_install(ON_TARGET "uwp") |
||||||
|
|
||||||
|
if(VCPKG_TARGET_IS_WINDOWS) |
||||||
|
# Building python bindings is currently broken on Windows |
||||||
|
if("python" IN_LIST FEATURES) |
||||||
|
message(FATAL_ERROR "The python feature is currently broken on Windows") |
||||||
|
endif() |
||||||
|
|
||||||
|
if(NOT "iconv" IN_LIST FEATURES) |
||||||
|
# prevent picking up libiconv if it happens to already be installed |
||||||
|
set(ICONV_PATCH "no_use_iconv.patch") |
||||||
|
endif() |
||||||
|
|
||||||
|
if(VCPKG_CRT_LINKAGE STREQUAL "static") |
||||||
|
set(_static_runtime ON) |
||||||
|
endif() |
||||||
|
endif() |
||||||
|
|
||||||
|
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS |
||||||
|
deprfun deprecated-functions |
||||||
|
examples build_examples |
||||||
|
python python-bindings |
||||||
|
test build_tests |
||||||
|
tools build_tools |
||||||
|
) |
||||||
|
|
||||||
|
# Note: the python feature currently requires `python3-dev` and `python3-setuptools` installed on the system |
||||||
|
if("python" IN_LIST FEATURES) |
||||||
|
vcpkg_find_acquire_program(PYTHON3) |
||||||
|
get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY) |
||||||
|
vcpkg_add_to_path(${PYTHON3_PATH}) |
||||||
|
|
||||||
|
file(GLOB BOOST_PYTHON_LIB "${CURRENT_INSTALLED_DIR}/lib/*boost_python*") |
||||||
|
string(REGEX REPLACE ".*(python)([0-9])([0-9]+).*" "\\1\\2\\3" _boost-python-module-name "${BOOST_PYTHON_LIB}") |
||||||
|
endif() |
||||||
|
|
||||||
|
vcpkg_from_github( |
||||||
|
OUT_SOURCE_PATH SOURCE_PATH |
||||||
|
REPO arvidn/libtorrent |
||||||
|
REF v1.2.12 |
||||||
|
SHA512 78be4c12e12f593154eda0960aaf9583fe27310e0223dbb21220400c5339744c9b2b11afa880fea30f77b4c0d07345937ff8a20d58d2d4ed7dcda84601380e20 |
||||||
|
HEAD_REF RC_1_2 |
||||||
|
PATCHES |
||||||
|
${ICONV_PATCH} |
||||||
|
) |
||||||
|
|
||||||
|
vcpkg_configure_cmake( |
||||||
|
SOURCE_PATH ${SOURCE_PATH} |
||||||
|
PREFER_NINJA # Disable this option if project cannot be built with Ninja |
||||||
|
OPTIONS |
||||||
|
${FEATURE_OPTIONS} |
||||||
|
-DCMAKE_CXX_STANDARD=17 |
||||||
|
-Dboost-python-module-name=${_boost-python-module-name} |
||||||
|
-Dstatic_runtime=${_static_runtime} |
||||||
|
-DPython3_USE_STATIC_LIBS=ON |
||||||
|
) |
||||||
|
|
||||||
|
vcpkg_install_cmake() |
||||||
|
|
||||||
|
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/LibtorrentRasterbar TARGET_PATH share/LibtorrentRasterbar) |
||||||
|
|
||||||
|
# Handle copyright |
||||||
|
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) |
||||||
|
|
||||||
|
# Do not duplicate include files |
||||||
|
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share ${CURRENT_PACKAGES_DIR}/share/cmake) |
Loading…
Reference in new issue