diff options
Diffstat (limited to 'DEVELOPMENT.md')
-rw-r--r-- | DEVELOPMENT.md | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 3e48510..5873300 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -19,64 +19,65 @@ Swift is written in cross-platform C++11. It is continuously tested with GCC, Cl ## Testing Swift has unit and integration tests. To run the unit tests, pass `test=unit`, and to run the integration tests, pass `test=system`, or pass `test=all` to run both. The integration tests require external setup and parameters to run. - `SWIFT_CLIENTTEST_JID=user@domain` - `SWIFT_CLIENTTEST_PASS=password` - `SWIFT_FILETRANSFERTEST_JID=user@domain` - `SWIFT_FILETRANSFERTEST_PASS=password` - `SWIFT_FILETRANSFERTEST2_JID=anotheruser@domain` - `SWIFT_FILETRANSFERTEST2_PASS=password` - `SWIFT_NETWORK_TEST_IPV4=0.0.0.0` Note: The unit and integration tests are build targets. When passing specific build targets to SCons the tests will not be build and run (even with `test=all`) unless the build targets for the tests are added as arguments to the `scons` call. ## Packaging ### Mac OS X The Mac OS X package consists of a disk image (.dmg) file containing an independently deployable **Swift.app** application bundle. For creating the Mac OS X package, i.e. the disk image, simply call `./scons.sh dist=1`. To additionally code sign the **Swift.app** application bundle, append `codesign_identity="Developer ID Application: Something here"` with your developer certificate identity to the `scons` command. **WARNING: Code signing has not been tested with third-party signed certificates yet!** ### Windows The Windows package consist of a Widnows Installer (.msi) file. This is generated using the Windows Installer XML Toolset. For packaging use: - Microsoft VS 2013 Express - WiX -- Download the C++ redistributable package from Microsoft and put it at `C:\Program Files (x86)\Common Files\Merge Modules\` +- Swift has a dependency on C++ redistributable package from Microsoft that needs to be deployed during install. If the common tools for Visual C++ is installed, then the installation file should be located under `C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\1033\` (for Visual Studio 2013). If not download from Microsoft and put it at `C:\Program Files (x86)\Common Files\Merge Modules\` - `config.py` should contain: qt = "c:\\qt\\5.4.2" - vcredist = "C:\\Program Files (x86)\\Common Files\\Merge Modules\\vcredist_x86.exe" + vcredist = "C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\redist\\vcredist_x86.exe" + vcredistdir = "C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\redist\\x86\Microsoft.VC120.CRT\\" debug = 1 optimize = 1 wix_bindir = "c:\\program files\\Windows Installer XML v3.5\\bin" - Run the following commands. Two scons runs are required as 'scons dist=1' requires the Swift.exe to be in place. ``` scons scons dist=1 ``` To sign the resulting MSI file, append the `signtool_key_pfx` and `signtool_timestamp_url` parameters to the `scons dist=1` programm call, e.g. `scons dist=1 signtool_key_pfx=C:\Users\Swift\SwiftSPC.pfx signtool_timestamp_url=http://timestamp.verisign.com/scripts/timstamp.dll`. Notes: - The settings `debug = 1` and `optimize = 1` are **strictly required** if you use a precompiled Qt release from the Qt Project; otherwise you will get linker errors - On 64-bit Windows it's "Program Files (x86)" instead of "Program Files" in the paths - Currently only 32-bit builds of the Swift client are supported ## Automatic Software Updates Automatic software updates allow distribution of updates directly to the end users. This is useful for general feature updates, bug fixes and especially for security updates. ### Automatic Software Updates for Mac OS X using Sparkle Swift supports integration with the software update framework [Sparkle](https://sparkle-project.org/) on OS X. For security reasons, Sparkle requires the application to be either code-signed or a bundled public DSA key. In case you do not code-sign, you can provide the path to the public DSA key to be bundled with the application bundle via the `sparkle_public_dsa_key` SCons argument. |