summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'DEVELOPMENT.md')
-rw-r--r--DEVELOPMENT.md5
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.