Документация на русском
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.2 KiB

Сборка для iOS

How to build i2pd for iOS 9 and iOS Simulator 386/x64

Prerequisites

XCode7+, cmake 3.2+

Dependencies

Building

Assume you have folder structure

lib
	libboost_date_time.a
	libboost_filesystem.a
	libboost_program_options.a
	libboost_system.a
	libboost.a
	libcrypto.a
	libssl.a
include
	boost
	openssl
ios-cmake
i2pd
mkdir -p build/simulator/lib build/ios/lib include/i2pd

pushd build/simulator && \
cmake   -DIOS_PLATFORM=SIMULATOR \
        -DPATCH=/usr/bin/patch \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_TOOLCHAIN_FILE=../../ios-cmake/toolchain/iOS.cmake \
        -DWITH_STATIC=yes \
        -DWITH_BINARY=no \
        -DBoost_INCLUDE_DIR=../../include \
        -DOPENSSL_INCLUDE_DIR=../../include \
        -DBoost_LIBRARY_DIR=../../lib \
        -DOPENSSL_SSL_LIBRARY=../../lib/libssl.a \
        -DOPENSSL_CRYPTO_LIBRARY=../../lib/libcrypto.a \
        ../../i2pd/build && \
make -j16 VERBOSE=1 && \
popd

pushd build/ios
cmake   -DIOS_PLATFORM=OS \
        -DPATCH=/usr/bin/patch \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_TOOLCHAIN_FILE=../../ios-cmake/toolchain/iOS.cmake \
        -DWITH_STATIC=yes \
        -DWITH_BINARY=no \
        -DBoost_INCLUDE_DIR=../../include \
        -DOPENSSL_INCLUDE_DIR=../../include \
        -DBoost_LIBRARY_DIR=../../lib \
        -DOPENSSL_SSL_LIBRARY=../../lib/libssl.a \
        -DOPENSSL_CRYPTO_LIBRARY=../../lib/libcrypto.a \
        ../../i2pd/build && \
make -j16 VERBOSE=1 && \
popd

libtool -static -o lib/libi2pdclient.a build/*/libi2pdclient.a
libtool -static -o lib/libi2pd.a build/*/libi2pd.a

cp i2pd/*.h include/i2pd

Include into project

  1. add all libraries in lib folder to Project linked frameworks.
  2. add libc++ and libz libraries from system libraries to Project linked frameworks.
  3. add path to i2p headers to your Headers search paths

Alternatively you may use swift wrapper https://github.com/vovasty/SwiftyI2P.git