QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = i2pd_qt TEMPLATE = app QMAKE_CXXFLAGS *= -std=c++11 DEFINES += USE_UPNP # change to your own path, where you will store all needed libraries with 'git clone' commands below. MAIN_PATH = /path/to/libraries # git clone https://github.com/PurpleI2P/Boost-for-Android-Prebuilt.git # git clone https://github.com/PurpleI2P/OpenSSL-for-Android-Prebuilt.git # git clone https://github.com/PurpleI2P/MiniUPnP-for-Android-Prebuilt.git # git clone https://github.com/PurpleI2P/android-ifaddrs.git BOOST_PATH = $$MAIN_PATH/Boost-for-Android-Prebuilt OPENSSL_PATH = $$MAIN_PATH/OpenSSL-for-Android-Prebuilt MINIUPNP_PATH = $$MAIN_PATH/MiniUPnP-for-Android-Prebuilt IFADDRS_PATH = $$MAIN_PATH/android-ifaddrs # Steps in Android SDK manager: # 1) Check Extras/Google Support Library https://developer.android.com/topic/libraries/support-library/setup.html # 2) Check API 11 # Finally, click Install. SOURCES += DaemonQT.cpp mainwindow.cpp # ../../HTTPServer.cpp ../../I2PControl.cpp ../../Daemon.cpp ../../Config.cpp \ # ../../AddressBook.cpp ../../api.cpp ../../Base.cpp ../../BOB.cpp ../../ClientContext.cpp \ # ../../Crypto.cpp ../../Datagram.cpp ../../Destination.cpp ../../Family.cpp ../../FS.cpp \ # ../../Garlic.cpp ../../HTTP.cpp ../../HTTPProxy.cpp ../../I2CP.cpp ../../I2NPProtocol.cpp \ # ../../I2PEndian.cpp ../../I2PService.cpp ../../I2PTunnel.cpp ../../Identity.cpp \ # ../../LeaseSet.cpp ../../Log.cpp ../../NetDb.cpp ../../NetDbRequests.cpp \ # ../../NTCPSession.cpp ../../Profiling.cpp ../../Reseed.cpp ../../RouterContext.cpp \ # ../../RouterInfo.cpp ../../SAM.cpp ../../Signature.cpp ../../SOCKS.cpp ../../SSU.cpp \ # ../../SSUData.cpp ../../SSUSession.cpp ../../Streaming.cpp ../../TransitTunnel.cpp \ # ../../Transports.cpp ../../Tunnel.cpp ../../TunnelEndpoint.cpp ../../TunnelGateway.cpp \ # ../../TunnelPool.cpp ../../UPnP.cpp ../../Gzip.cpp ../../Timestamp.cpp ../../util.cpp \ # ../../Event.cpp ../../BloomFiler.cpp ../../Gost.cpp ../../MatchedDestination.cpp \ # ../../i2pd.cpp SOURCES += $$files(../../libi2pd/*.cpp) SOURCES += $$files(../../libi2pd_client/*.cpp) SOURCES += $$files(../../daemon/*.cpp) SOURCES += $$files(./*.cpp) SOURCES -= ../../daemon/UnixDaemon.cpp HEADERS += DaemonQT.h mainwindow.h # ../../HTTPServer.h ../../I2PControl.h ../../UPnP.h ../../Daemon.h ../../Config.h \ # ../../AddressBook.h ../../api.h ../../Base.h ../../BOB.h ../../ClientContext.h \ # ../../Crypto.h ../../Datagram.h ../../Destination.h ../../Family.h ../../FS.h \ # ../../Garlic.h ../../HTTP.h ../../HTTPProxy.h ../../I2CP.h ../../I2NPProtocol.h \ # ../../I2PEndian.h ../../I2PService.h ../../I2PTunnel.h ../../Identity.h ../../LeaseSet.h \ # ../../LittleBigEndian.h ../../Log.h ../../NetDb.h ../../NetDbRequests.h ../../NTCPSession.h \ # ../../Profiling.h ../../Queue.h ../../Reseed.h ../../RouterContext.h ../../RouterInfo.h \ # ../../SAM.h ../../Signature.h ../../SOCKS.h ../../SSU.h ../../SSUData.h ../../SSUSession.h \ # ../../Streaming.h ../../Timestamp.h ../../TransitTunnel.h ../../Transports.h \ # ../../TransportSession.h ../../Tunnel.h ../../TunnelBase.h ../../TunnelConfig.h \ # ../../TunnelEndpoint.h ../../TunnelGateway.h ../../TunnelPool.h ../../UPnP.h \ # ../../util.h ../../version.h ../../Gzip.h ../../Tag.h \ # ../../BloomFiler.h ../../Event.h ../../Gost.h ../../MatchedDestination.h INCLUDEPATH += ../../libi2pd INCLUDEPATH += ../../libi2pd_client INCLUDEPATH += ../../daemon INCLUDEPATH += . FORMS += mainwindow.ui \ tunnelform.ui CONFIG += mobility MOBILITY = LIBS += -lz android { message("Using Android settings") DEFINES += ANDROID=1 DEFINES += __ANDROID__ INCLUDEPATH += $$BOOST_PATH/boost_1_53_0/include \ $$OPENSSL_PATH/openssl-1.0.2/include \ $$MINIUPNP_PATH/miniupnp-2.0/include \ $$IFADDRS_PATH DISTFILES += android/AndroidManifest.xml ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android SOURCES += $$IFADDRS_PATH/ifaddrs.c HEADERS += $$IFADDRS_PATH/ifaddrs.h equals(ANDROID_TARGET_ARCH, armeabi-v7a){ DEFINES += ANDROID_ARM7A # http://stackoverflow.com/a/30235934/529442 LIBS += -L$$BOOST_PATH/boost_1_53_0/armeabi-v7a/lib \ -lboost_system-gcc-mt-1_53 -lboost_date_time-gcc-mt-1_53 \ -lboost_filesystem-gcc-mt-1_53 -lboost_program_options-gcc-mt-1_53 \ -L$$OPENSSL_PATH/openssl-1.0.2/armeabi-v7a/lib/ -lcrypto -lssl \ -L$$MINIUPNP_PATH/miniupnp-2.0/armeabi-v7a/lib/ -lminiupnpc PRE_TARGETDEPS += $$OPENSSL_PATH/openssl-1.0.2/armeabi-v7a/lib/libcrypto.a \ $$OPENSSL_PATH/openssl-1.0.2/armeabi-v7a/lib/libssl.a DEPENDPATH += $$OPENSSL_PATH/openssl-1.0.2/include ANDROID_EXTRA_LIBS += $$OPENSSL_PATH/openssl-1.0.2/armeabi-v7a/lib/libcrypto_1_0_0.so \ $$OPENSSL_PATH/openssl-1.0.2/armeabi-v7a/lib/libssl_1_0_0.so \ $$MINIUPNP_PATH/miniupnp-2.0/armeabi-v7a/lib/libminiupnpc.so } equals(ANDROID_TARGET_ARCH, x86){ # http://stackoverflow.com/a/30235934/529442 LIBS += -L$$BOOST_PATH/boost_1_53_0/x86/lib \ -lboost_system-gcc-mt-1_53 -lboost_date_time-gcc-mt-1_53 \ -lboost_filesystem-gcc-mt-1_53 -lboost_program_options-gcc-mt-1_53 \ -L$$OPENSSL_PATH/openssl-1.0.2/x86/lib/ -lcrypto -lssl \ -L$$MINIUPNP_PATH/miniupnp-2.0/x86/lib/ -lminiupnpc PRE_TARGETDEPS += $$OPENSSL_PATH/openssl-1.0.2/x86/lib/libcrypto.a \ $$OPENSSL_PATH/openssl-1.0.2/x86/lib/libssl.a DEPENDPATH += $$OPENSSL_PATH/openssl-1.0.2/include ANDROID_EXTRA_LIBS += $$OPENSSL_PATH/openssl-1.0.2/x86/lib/libcrypto_1_0_0.so \ $$OPENSSL_PATH/openssl-1.0.2/x86/lib/libssl_1_0_0.so \ $$MINIUPNP_PATH/miniupnp-2.0/x86/lib/libminiupnpc.so } } linux:!android { message("Using Linux settings") LIBS += -lcrypto -lssl -lboost_system -lboost_date_time -lboost_filesystem -lboost_program_options -lpthread -lminiupnpc } !android:!symbian:!maemo5:!simulator { message("Build with a system tray icon") # see also http://doc.qt.io/qt-4.8/qt-desktop-systray-systray-pro.html for example on wince* #sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS i2pd_qt.pro resources images RESOURCES = i2pd.qrc QT += xml #INSTALLS += sources } DISTFILES += \ ../../android/bin/classes.dex \ ../../android/bin/I2PD.apk \ ../../android/bin/AndroidManifest.xml \ ../../android/AndroidManifest.xml \ ../../libi2pd.a \ ../../libi2pdclient.a \ ../../i2pd \ ../../android/bin/classes/org/purplei2p/i2pd/BuildConfig.class \ ../../android/bin/classes/org/purplei2p/i2pd/DaemonSingleton$1.class \ ../../android/bin/classes/org/purplei2p/i2pd/DaemonSingleton$State.class \ ../../android/bin/classes/org/purplei2p/i2pd/DaemonSingleton$StateChangeListener.class \ ../../android/bin/classes/org/purplei2p/i2pd/DaemonSingleton.class \ ../../android/bin/classes/org/purplei2p/i2pd/ForegroundService$LocalBinder.class \ ../../android/bin/classes/org/purplei2p/i2pd/ForegroundService.class \ ../../android/bin/classes/org/purplei2p/i2pd/I2PD$1$1.class \ ../../android/bin/classes/org/purplei2p/i2pd/I2PD$1.class \ ../../android/bin/classes/org/purplei2p/i2pd/I2PD$2.class \ ../../android/bin/classes/org/purplei2p/i2pd/I2PD$3$1.class \ ../../android/bin/classes/org/purplei2p/i2pd/I2PD$3.class \ ../../android/bin/classes/org/purplei2p/i2pd/I2PD.class \ ../../android/bin/classes/org/purplei2p/i2pd/I2PD_JNI.class \ ../../android/bin/classes/org/purplei2p/i2pd/NetworkStateChangeReceiver.class \ ../../android/bin/classes/org/purplei2p/i2pd/R$attr.class \ ../../android/bin/classes/org/purplei2p/i2pd/R$drawable.class \ ../../android/bin/classes/org/purplei2p/i2pd/R$id.class \ ../../android/bin/classes/org/purplei2p/i2pd/R$menu.class \ ../../android/bin/classes/org/purplei2p/i2pd/R$string.class \ ../../android/bin/classes/org/purplei2p/i2pd/R.class \ ../../android/bin/dexedLibs/android-support-v4-bddf40bf5b9bc79d6d6d4419e6234206.jar \ ../../android/libs/android-support-v4.jar \ android/libs/android-support-v4.jar \ ../../debian/i2pd.init \ ../../debian/postinst \ ../../debian/postrm \ ../../entrypoint.sh \ ../../contrib/certificates/family/i2p-dev.crt \ ../../contrib/certificates/family/i2pd-dev.crt \ ../../contrib/certificates/family/mca2-i2p.crt \ ../../contrib/certificates/family/volatile.crt \ ../../contrib/certificates/reseed/atomike_at_mail.i2p.crt \ ../../contrib/certificates/reseed/backup_at_mail.i2p.crt \ ../../contrib/certificates/reseed/bugme_at_mail.i2p.crt \ ../../contrib/certificates/reseed/echelon_at_mail.i2p.crt \ ../../contrib/certificates/reseed/hottuna_at_mail.i2p.crt \ ../../contrib/certificates/reseed/meeh_at_mail.i2p.crt \ ../../contrib/certificates/reseed/parg_at_mail.i2p.crt \ ../../contrib/certificates/reseed/r4sas_at_mail.i2p.crt \ ../../contrib/certificates/reseed/zmx_at_mail.i2p.crt \ ../../contrib/certificates/router/killyourtv_at_mail.i2p.crt \ ../../contrib/certificates/router/orignal_at_mail.i2p.crt \ ../../contrib/certificates/router/str4d_at_mail.i2p.crt \ ../../contrib/certificates/router/zzz_at_mail.i2p.crt \ ../../build/fig.yml \ ../../appveyor.yml \ ../../android/res/menu/options_main.xml \ ../../android/res/values/strings.xml \ ../../android/build.xml \ android/res/layout/splash.xml \ android/res/values/libs.xml \ android/res/values/strings.xml \ android/res/values-de/strings.xml \ android/res/values-el/strings.xml \ android/res/values-es/strings.xml \ android/res/values-et/strings.xml \ android/res/values-fa/strings.xml \ android/res/values-fr/strings.xml \ android/res/values-id/strings.xml \ android/res/values-it/strings.xml \ android/res/values-ja/strings.xml \ android/res/values-ms/strings.xml \ android/res/values-nb/strings.xml \ android/res/values-nl/strings.xml \ android/res/values-pl/strings.xml \ android/res/values-pt-rBR/strings.xml \ android/res/values-ro/strings.xml \ android/res/values-rs/strings.xml \ android/res/values-ru/strings.xml \ android/res/values-zh-rCN/strings.xml \ android/res/values-zh-rTW/strings.xml \ ../../android/bin/resources.ap_ \ ../../Win32/ictoopie.bmp \ ../../Win32/mask.bmp \ ../../android/bin/res/crunch/drawable/icon.png \ ../../android/bin/res/crunch/drawable/itoopie_notification_icon.png \ ../../android/res/drawable/icon.png \ ../../android/res/drawable/itoopie_notification_icon.png \ ../../docs/itoopieImage.png \ android/res/drawable/itoopie_notification_icon.png \ android/res/drawable-hdpi/icon.png \ ../../Win32/ictoopie.ico \ ../../Win32/mask.ico \ docs/patch_openssl_so_libs.html \ ../../android/bin/jarlist.cache \ ../../android/jni/Android.mk \ ../../android/jni/Application.mk \ ../../android/proguard-project.txt \ ../../android/project.properties \ ../../build/cmake_modules/NSIS.template.in \ ../../build/docker/old-ubuntu-based/Dockerfile \ ../../contrib/debian/i2pd.service \ ../../contrib/debian/i2pd.tmpfile \ ../../contrib/rpm/i2pd.service \ ../../debian/patches/series \ ../../debian/source/format \ ../../debian/compat \ ../../debian/control \ ../../debian/copyright \ ../../debian/docs \ ../../debian/i2pd.1 \ ../../debian/i2pd.default \ ../../debian/i2pd.dirs \ ../../debian/i2pd.install \ ../../debian/i2pd.links \ ../../debian/i2pd.manpages \ ../../debian/i2pd.openrc \ ../../debian/i2pd.upstart \ ../../debian/logrotate \ ../../debian/watch \ ../../docs/Doxyfile \ ../../docs/index.rst \ ../../docs/subscriptions.txt \ ../../docs/tunnels.conf \ android/src/org/kde/necessitas/ministro/IMinistro.aidl \ android/src/org/kde/necessitas/ministro/IMinistroCallback.aidl \ android/build.gradle \ android/project.properties \ ../../Win32/nsi/helper_readme.nsh \ ../../Win32/nsi/servicelib.nsh \ ../../Win32/i2pd.sln \ ../../Win32/i2pd.vcxproj \ ../../Win32/i2pd.vcxproj.filters \ ../../Win32/inno_installer.iss \ ../../Win32/install_service.bat \ ../../Win32/installer.iss \ ../../Win32/Itoopie.cmd \ ../../Win32/PurpleI2P.nsi \ ../../Win32/uninstall_service.bat \ ../../Dockerfile \ ../../filelist.mk \ ../../LICENSE \ ../../debian/changelog \ ../../ChangeLog \ ../../build/cmake_modules/FindMiniUPnPc.cmake \ ../../build/CMakeLists.txt \ ../../android/gen/org/purplei2p/i2pd/BuildConfig.java \ ../../android/gen/org/purplei2p/i2pd/R.java \ ../../android/src/org/purplei2p/i2pd/DaemonSingleton.java \ ../../android/src/org/purplei2p/i2pd/ForegroundService.java \ ../../android/src/org/purplei2p/i2pd/I2PD.java \ ../../android/src/org/purplei2p/i2pd/I2PD_JNI.java \ ../../android/src/org/purplei2p/i2pd/NetworkStateChangeReceiver.java \ android/src/org/purplei2p/i2pd/I2PDMainActivity.java \ android/src/org/purplei2p/i2pd/LocalService.java \ android/src/org/qtproject/qt5/android/bindings/QtActivity.java \ android/src/org/qtproject/qt5/android/bindings/QtApplication.java \ ../../debian/rules \ ../../build/docker/README.md \ ../../docs/building/android.md \ ../../docs/building/cross.md \ ../../docs/building/ios.md \ ../../docs/building/requirements.md \ ../../docs/building/unix.md \ ../../docs/building/windows.md \ ../../docs/config_opts_after_2.3.0.md \ ../../docs/configuration.md \ ../../docs/family.md \ ../../docs/hacking.md \ ../../docs/usage.md \ README.md \ ../../README.md \ ../../docs/i2pd.conf \ ../../build/cmake-zlib-amd64.patch \ ../../build/cmake-zlib-static.patch \ ../../debian/patches/01-tune-build-opts.patch \ ../../docs/conf.py \ ../../contrib/debian/README \ ../../contrib/rpm/i2pd.spec