56 lines
2.2 KiB
Markdown
56 lines
2.2 KiB
Markdown
# AppVeyor Scripts for EPICS Modules
|
|
|
|
## Features
|
|
|
|
- Use different compilers (Visual Studio, MinGW)
|
|
- Use different VS versions (2008, 2010, 2012, 2013, 2015, 2017, 2019)
|
|
- Compile for Windows 32bit and 64bit
|
|
- Create static libraries or DLLs (plus the matching executables)
|
|
- Create optimized or debug builds
|
|
|
|
## How to Use these Scripts
|
|
|
|
1. Get an account on [AppVeyor](https://www.appveyor.com/), connect
|
|
it to your GitHub account and activate your support module's
|
|
repository. For more details, please refer to the
|
|
[AppVeyor documentation](https://www.appveyor.com/docs/).
|
|
|
|
2. Add the ci-scripts respository as a Git Submodule
|
|
(see [README](../README.md) one level above).
|
|
|
|
3. Add settings files defining which dependencies in which versions
|
|
you want to build against
|
|
(see [README](../README.md) one level above).
|
|
|
|
4. Create an AppVeyor configuration by copying one of the examples into
|
|
the root directory of your module.
|
|
```
|
|
$ cp .ci/appveyor/.appveyor.yml.example-full .appveyor.yml
|
|
```
|
|
|
|
5. Edit the `.appveyor.yml` configuration to include the jobs you want
|
|
AppVeyor to run.
|
|
|
|
AppVeyor automatically creates a build matrix with the following axes:
|
|
1. `configuration:` \
|
|
Select static or dynamic (DLL) as well as regular or debug builds.
|
|
2. `platform:` \
|
|
Select 32bit or 64bit processor architecture.
|
|
3. `environment: / matrix:` \
|
|
List of environment variable settings. Each list element (starting with
|
|
a dash) is one step on the axis of the build matrix. \
|
|
Set `CMP` to select the compiler: `mingw` for the native
|
|
[MinGW](http://mingw-w64.org/) GNU compiler, `vs2008` ...`vs2019`
|
|
(options listed above) for the Microsoft Visual Studio compilers.
|
|
|
|
Your builds will take long. \
|
|
AppVeyor only grants a single worker VM - all jobs of the matrix are
|
|
executed sequentially. Each job will take around 10 minutes.
|
|
|
|
The `matrix: / exclude:` setting can be used to reduce the number of
|
|
jobs. Check the [AppVeyor docs](https://www.appveyor.com/docs/build-configuration/#build-matrix)
|
|
for more ways to reduce the build matrix size.
|
|
|
|
6. Push your changes and check
|
|
[ci.appveyor.com](https://ci.appveyor.com/) for your build results.
|