You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.8 KiB
57 lines
1.8 KiB
# Third-Party Dependencies
|
|
|
|
The Open Screen library includes its dependencies as DEPS in the source
|
|
tree under the `//third_party/` directory. They are structured as follows:
|
|
|
|
```
|
|
//third_party/<library>
|
|
BUILD.gn
|
|
...other necessary adapter files...
|
|
src/
|
|
<library>'s source
|
|
```
|
|
|
|
## Adding a new dependency
|
|
|
|
When adding a new dependency to the project, you should first add an entry
|
|
to the DEPS file. For example, let's say we want to add a
|
|
new library called `alpha`. Opening up DEPS, you would add
|
|
|
|
``` python
|
|
deps = {
|
|
...
|
|
'src/third_party/alpha/src': 'https://repo.com/path/to/alpha.git'
|
|
+ '@' + '<revision>'
|
|
```
|
|
|
|
Then you need to add a BUILD.gn file for it under `//third_party/alpha`,
|
|
assuming it doesn't already provide its own BUILD.gn.
|
|
|
|
Finally, add a new entry for the "src" directory of your dependency to
|
|
the //third_party/.gitignore.
|
|
|
|
## Roll a dependency to a new version
|
|
|
|
Rolling a dependency forward (or to any different version really) consists of
|
|
two steps:
|
|
1. Update the revision string for the dependency in the DEPS file.
|
|
1. `git add` the DEPS file and commit, then run gclient sync.
|
|
|
|
Of course, you should also make sure that the new change is still compatible
|
|
with the rest of the project, including any adapter files under
|
|
`//third_party/<library>` (e.g. BUILD.gn). Any necessary updates to make the
|
|
rest of the project work with the new dependency version should happen in the
|
|
same change.
|
|
|
|
## Build Failures
|
|
|
|
If after running `gclient sync`, your build starts failing due to errors in
|
|
`//third_party/`, then do the following:
|
|
|
|
1. Delete the `//out/` directory.
|
|
1. Delete the `src/` directory of the failing `//third_party` library.
|
|
1. Re-run `gclient sync`.
|
|
|
|
This will remove any directories and files which were removed in the updated
|
|
library but not deleted by `gclient sync`.
|