Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature/versioning-for-desktop #181

Merged
merged 24 commits into from
May 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
005bb39
added version.h file generation
Nethius Mar 8, 2023
b292908
moved some cmake calls for ios and mac
Nethius Mar 8, 2023
248a1eb
added dependency of the version in the installer on the version in CM…
Nethius Mar 10, 2023
6f53abb
changed data format for RELEASE_DATE variable
Nethius Mar 10, 2023
cbc21e5
Bump release number
pokamest Mar 15, 2023
d64d9b9
Merge branch 'dev' into feature/versioning-for-desktop
pokamest Mar 16, 2023
46f31c2
Update readme
Mar 21, 2023
671ef2a
changed folder for generated files to CMAKE_BINARY_DIR
Nethius Mar 24, 2023
c28bb6d
added copying installer files to build folder for linux
Nethius Mar 27, 2023
a3db42f
Merge branch 'dev' of github.com:amnezia-vpn/desktop-client into feat…
Nethius Apr 8, 2023
d466122
fixed include with version.h in migrations.cpp
Nethius Apr 8, 2023
ce58837
Clean up to fix iOS build
bakhtiyork Apr 21, 2023
8377e12
Reverting back iOS framework embedding
bakhtiyork Apr 21, 2023
4e18970
Merge pull request #229 from bakhtiyork/feature/versioning-for-desktop
pokamest Apr 21, 2023
fec34c4
Cleanup .pri and .pro
pokamest Apr 21, 2023
acf65c2
Merge branch 'dev' into feature/versioning-for-desktop
pokamest Apr 21, 2023
366ef07
Passing project version into iOS build
May 8, 2023
7f05073
Delete unnecessary iOS Info.plist files
May 9, 2023
9c8a8c6
Cmake fixes for iOS
pokamest May 11, 2023
1ab6f51
Revert "Passing project version into iOS build"
pokamest May 11, 2023
0b06f37
Cmake fixes for iOS
pokamest May 15, 2023
9b01415
Project cleanup
pokamest May 15, 2023
fd4862e
Set for MacOS CMAKE_OSX_DEPLOYMENT_TARGET 10.15
pokamest May 15, 2023
7f3128f
Fix readme
pokamest May 16, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -129,4 +129,4 @@ captures/
client/3rd/ShadowSocks/ss_ios.xcconfig

# UML generated pics
out/
out/
6 changes: 0 additions & 6 deletions AmneziaVPN.pro

This file was deleted.

10 changes: 9 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
cmake_minimum_required(VERSION 3.25.0 FATAL_ERROR)

set(PROJECT AmneziaVPN)
project(${PROJECT})

project(${PROJECT} VERSION 3.0.7.1
DESCRIPTION "AmneziaVPN"
HOMEPAGE_URL "https://amnezia.org/"
)
set(RELEASE_DATE "2023-05-15")
set(APP_MAJOR_VERSION ${CMAKE_PROJECT_VERSION_MAJOR}.${CMAKE_PROJECT_VERSION_MINOR}.${CMAKE_PROJECT_VERSION_PATCH})

if(ANDROID)
set(QT_ANDROID_BUILD_ALL_ABIS ON)
Expand All @@ -15,4 +21,6 @@ add_subdirectory(client)

if(NOT IOS AND NOT ANDROID)
add_subdirectory(service)

include(${CMAKE_SOURCE_DIR}/deploy/installer/config.cmake)
endif()
53 changes: 24 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,9 @@ Amnezia is a VPN client with the key feature of deploying your own VPN server on

## Features
- Very easy to use - enter your ip address, ssh login and password, and Amnezia client will automatically install VPN docker containers to your server and connect to VPN.
- OpenVPN and OpenVPN over ShadowSocks protocols support.
- Custom VPN routing mode support - add any sites to client to enable VPN only for them.
- Windows and MacOS support.
- Unsecure sharing connection profile for family use.
- OpenVPN, ShadowSocks, WireGuard, IKEv2 protocols support.
- Split tunneling support - add any sites to client to enable VPN only for them (only for desktops)
- Windows, MacOS, Linux, Android, iOS releases.

## Tech

Expand All @@ -20,7 +19,7 @@ AmneziaVPN uses a number of open source projects to work:
- [OpenVPN](https://openvpn.net/)
- [ShadowSocks](https://shadowsocks.org/)
- [Qt](https://www.qt.io/)
- [QtSsh](https://github.com/jaredtao/QtSsh) - forked form Qt Creator
- [LibSsh](https://libssh.org) - forked form Qt Creator
- and more...

## Checking out the source code
Expand All @@ -36,47 +35,43 @@ git submodule update --init
Want to contribute? Welcome!

### Building sources and deployment
Easiest way to build your own executables - is to fork project and configure [Travis CI](https://travis-ci.com/)
Or you can build sources manually using Qt Creator. Qt >= 14.2 supported.
Look to the `build_macos.sh` and `build_windows.bat` scripts in `deploy` folder for details.
Look deploy folder for build scripts.

### How to build iOS app from source code on MacOS

1. First, make sure you have [XCode](https://developer.apple.com/xcode/) installed,
at least version 12 or higher.
1. First, make sure you have [XCode](https://developer.apple.com/xcode/) installed, at least version 14 or higher.

2. We use `qmake` to generate the XCode project and then we "patch" it to add
extra components such as the wireguard, the browser bridge and so on. We patch
the XCode project using [xcodeproj](https://github.com/CocoaPods/Xcodeproj). To
install it:
```bash
gem install xcodeproj # probably you want to run this command with `sudo`
```
3. You also need to install go >= v1.16. If you don't have it done already,
download go from the [official website](https://golang.org/dl/) or use Homebrew.
Latest version is recommended.
2. We use QT to generate the XCode project. we need QT version 6.4. Install QT for macos in [here](https://doc.qt.io/qt-6/macos.html)

4. Navigate inside client folder and generate the XCode project using our script:
3. Install cmake is require. We recommend cmake version 3.25. You can install cmake in [here](https://cmake.org/download/)

4. You also need to install go >= v1.16. If you don't have it done already,
download go from the [official website](https://golang.org/dl/) or use Homebrew.
Latest version is recommended. Install gomobile
```bash
cd client
./scripts/apple_compile.sh ios
export PATH=$PATH:~/go/bin
go install golang.org/x/mobile/cmd/gomobile@latest
gomobile init
```

If you have more than one version of Qt installed, you'll most likely get
a "`qmake` cannot be found in your `$PATH`" error. In this case run this script
using QT\IOS\_BIN env to set the path for the Qt5 macos build bin folder.
For example, the path could look like this:
5. Build project
```bash
QT_IOS_BIN="/Users/username/Qt/6.4.1/ios/bin" ./scripts/apple_compile.sh ios
export QT_BIN_DIR="<PATH-TO-QT-FOLDER>/Qt/<QT-VERSION>/ios/bin"
export QT_IOS_BIN=$QT_BIN_DIR
export PATH=$PATH:~/go/bin
mkdir build-ios
$QT_IOS_BIN/qt-cmake . -B build-ios -GXcode -DQT_HOST_PATH=$QT_BIN_DIR
```
Replace PATH-TO-QT-FOLDER and QT-VERSION to your environment


If you get `gomobile: command not found` make sure to set PATH to the location
of the bin folder where gomobile was installed. Usually, it's in `GOPATH`.
```bash
export PATH=$(PATH):/path/to/GOPATH/bin
```

5. Xcode should automatically open. You can then run/test/archive/ship the app.
5. Open XCode project. You can then run/test/archive/ship the app.

If build fails with the following error
```
Expand Down
249 changes: 0 additions & 249 deletions client/AmneziaVPN-Swift.h

This file was deleted.

14 changes: 0 additions & 14 deletions client/AmneziaVPN.entitlements

This file was deleted.

Loading