|
| 1 | +# Creating a release |
| 2 | + |
| 3 | +The WinCairoRequirements repository uses GitHub releases to host a distribution |
| 4 | +which are then downloaded by scripts contained in the WebKit repository. By |
| 5 | +default the latest release will be downloaded when doing a WebKit build. Each |
| 6 | +release corresponds to a tag within the git repository. |
| 7 | + |
| 8 | +## Tag names |
| 9 | + |
| 10 | +Tags are done based on the date of creation of the distribution. This is done |
| 11 | +because the third party requirements change sporatically and semantic |
| 12 | +versioning does not fit with the distribution. This provides a clear timeline |
| 13 | +on when the requirements changed. |
| 14 | + |
| 15 | +## Creating the tag |
| 16 | + |
| 17 | +To create the tag have the commit that is being released checked out locally. |
| 18 | +From there run the following commands where YYYY.MM.DD corresponds to the year |
| 19 | +month and day the tag is created. |
| 20 | + |
| 21 | +``` |
| 22 | +git tag -a vYYYY.MM.DD -m "vYYYY.MM.DD" |
| 23 | +git push origin vYYYY.MM.DD |
| 24 | +``` |
| 25 | + |
| 26 | +Once the tag is pushed a release can be created within GitHub. |
| 27 | + |
| 28 | +# Manually creating a distribution |
| 29 | + |
| 30 | +The repository contains a number of scripts to create a distribution. These are used to build locally consistently. |
| 31 | + |
| 32 | +All the scripts take a `triplet` value which specifies the toolchain. By |
| 33 | +default the `x64-windows-webkit` toolchain is used. For building |
| 34 | +WinCairoRequirements two toolchain files were created because there are some |
| 35 | +libraries that need to be built statically even when a dynamic build is wanted. |
| 36 | +Only the `x64-windows-webkit` toolchain is supported at this time. |
| 37 | + |
| 38 | +## Install script |
| 39 | + |
| 40 | +The `Install-Requirements.ps1` script is a wrapper around `vcpkg` which will |
| 41 | +invoke `vcpkg install` with a list of requirements. The requirements are |
| 42 | +defined in a .json file which is nothing more than a list of port names. |
| 43 | + |
| 44 | +## Renaming bin/lib |
| 45 | + |
| 46 | +The WebKit Windows port assumes that the bin and lib directory both contain a |
| 47 | +suffix for whether it is a 64-bit or 32-bit build. The |
| 48 | +`Rename-WithBitSuffix.ps1` script will rename according to the triplet passed |
| 49 | +in. |
| 50 | + |
| 51 | +## Creating the zip |
| 52 | + |
| 53 | +The `Package-Requirements.ps1` script creates a zip file containing the |
| 54 | +dependencies. If a different filename is required then set the `-Output` flag |
| 55 | +accordingly. |
| 56 | + |
| 57 | +## Command listing |
| 58 | + |
| 59 | +``` |
| 60 | +& Install-Requirements.ps1 |
| 61 | +
|
| 62 | +# TODO Remove |
| 63 | +.\vcpkg.exe install cflite --triplet x64-windows-webkit |
| 64 | +& Delete-PthreadHeaders.ps1 |
| 65 | +
|
| 66 | +& Package-Requirements.ps1 |
| 67 | +``` |
0 commit comments