Commit d4fdc2ea authored by Simon Morlat's avatar Simon Morlat

Add instructions in README.md for windows build.

Without them you'll be busy for 3-4 hours before you have a running build.
parent f035657d
......@@ -4,19 +4,43 @@ Meta repository holding all the dependencies to build a full Linphone SDK.
The currently supported platforms are Android, iOS, Desktop (Linux, Windows, Mac OS X) and UWP (Universal Windows Platform).
## Dependencies
## Build dependencies
### Common to all target platforms
The following tools must be installed on the build machine:
- cmake >= 3.6
- python = 2.7 (python 3.7 if C# wrapper generation is disabled)
- pip
- yasm
- nasm
- doxygen
- Pystache (use `pip install pystache`)
- six (use `pip install six`)
### Windows
SDK is working with Visual Studio 15 2017.
Also you need to have MinGW with GCC and G++ module.
## Building and customizing the SDK
SDK compilation is supported on Visual Studio 15 2017.
Setting the build environment on Windows is a bit tricky.
In addition to the common components listed above, these components must be installed:
- MinGW (select all installer options except Ada and Fortran)
- Yasm:
- download yasm-1.3.0-win32.exe
- copy it to a `bin` directory of your user directory,
- rename yasm-1.3.0-win32.exe as yasm.exe
Visual Studio must also be properly configured with addons. Under "Tools"->"Obtain tools and features", make sure that the following components are installed:
- Tasks: Select Windows Universal Platform development, Desktop C++ Development, .NET Development
- Individual component: Windows 8.1 SDK
Finally add your user `bin` directory and `C:\Mingw\bin` to the PATH environement variable from windows advanced settings.
The build system is based on CMake, so you need to install it first if you don't have it on your machine.
## Building and customizing the SDK
The steps to build the SDK are:
1. Create and go inside a directory where the SDK will be built:
`mkdir build-desktop && cd build-desktop`
`mkdir build && cd build
2. Execute CMake to configure the project:
`cmake ..`
3. Build the SDK:
......@@ -28,6 +52,13 @@ You can pass some options to CMake at the second step to configure the SDK as yo
For instance, to build an iOS SDK (the default being Desktop):
`cmake .. -DLINPHONESDK_PLATFORM=IOS`
### Windows
`cmake --build .` works on Windows as for all platforms.
However it may be convenient to build from Visual Studio, which you can do:
- open `linphone-sdk.sln` with Visual Studio
- make sure that RelWithDebInfo mode is selected unless you specified -DCMAKE_BUILD_TYPE=Debug to cmake (see customization options below).
- use `Build solution` to build.
## Upgrading your SDK
Simply re-invoking `cmake --build .` in your build directory should update your SDK. If compilation fails, you may need to rebuilding everything by erasing your build directory and restarting your build as explained above.
......@@ -55,7 +86,7 @@ This SDK can be generated in 2 flavors:
* GPL third parties enabled means that the Linphone SDK includes GPL third parties like FFmpeg. If you choose this flavor, your final application **must comply with GPL in any case**. This is the default mode.
* NO GPL third parties means that the Linphone SDK will only use non GPL code except for the code from Belledonne Communications. If you choose this flavor, your final application is **still subject to GPL except if you have a [commercial license from Belledonne Communications](http://www.belledonne-communications.com/products.html)**.
* NO GPL third parties means that the Linphone SDK will only use non GPL code except for the code from Belledonne Communications. If you choose this flavor, your final application is **still subject to the GPL except if you have a [commercial license from Belledonne Communications](http://www.belledonne-communications.com/products.html)**.
To generate the a SDK without GPL third parties, use the `-DENABLE_GPL_THIRD_PARTIES=NO` option when configuring the project.
......
Subproject commit fac98dcfd6c7fbea2ec4190df37ca77d98a59f32
Subproject commit 6b07dd895eb428fd249b0b1be1188b307becbe37
Subproject commit 2932506baba62515b72cb3f50605baf639864a71
Subproject commit e449dc9f2c6269f852ce2e0ba5157f6ffe8632fe
Subproject commit 3bd1400765c54da95ca94c0e8aa14be5a0951a18
Subproject commit 2bf71911f18fd717602c67aeac0eddd43e70b7e2
Subproject commit a4b077aebbcb6880afd134390f34b9a8d83737b9
Subproject commit e7668f38d02987eb2750ec9e9b4763b76ddb37a6
Subproject commit 06e4d63ea81898e82dd09d8d31463844a7614917
Subproject commit 81e83f99796037fa5c08b04188ddc4f4a7a023b3
Subproject commit 1611e415e9ce69dae4721304d3e617b073f61d54
Subproject commit fe0282b790fc552746b14071dc9359ca9cce76f9
Subproject commit 35469e79ea07571555507924c3f2123a490edafc
Subproject commit 8191fb2f1ad6cebba0be39555bba22e3ebac2254
Subproject commit 446885629b42345149ac1accb3de93f3aa325907
Subproject commit 0bd101e9dd2820fe578e22876b10bcc41fce7ccf
Subproject commit abdcc6a806e7c7fd7755ef317be7d1bf266e39cb
Subproject commit 084d191ab2f7c1263a7eb640d9cc4c5ae0dd0a22
Subproject commit 4806746c6acd4d3e38f1d7cf980e9c1d6e6d82be
Subproject commit ef054e47fb9811ea3b6472458e0c3fd706db5ee7
Subproject commit 43bc703c78484e5f50996e5ebd4cd4dc2440fb40
Subproject commit 1a0eb15770e343dbc64548664e5bd15d79dadbea
Subproject commit 230579a651b1478446cb810d2fce69e8e291da5f
Subproject commit c98e26f66c425b0617a385f1ca6472d855678beb
Subproject commit 206c1bab07f15cff47232cb34917d6efc20c0433
Subproject commit 5512912bd539e1110ff9607d8e5670c45a241c18
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment