vcpkg/docs/maintainers/vcpkg_extract_source_archive_ex.md

53 lines
1.7 KiB
Markdown
Raw Normal View History

# vcpkg_extract_source_archive_ex
Extract an archive into the source directory. Replaces [`vcpkg_extract_source_archive`](vcpkg_extract_source_archive.md).
## Usage
```cmake
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH <SOURCE_PATH>
ARCHIVE <${ARCHIVE}>
[REF <1.0.0>]
[NO_REMOVE_ONE_LEVEL]
[WORKING_DIRECTORY <${CURRENT_BUILDTREES_DIR}/src>]
[PATCHES <a.patch>...]
)
```
## Parameters
### OUT_SOURCE_PATH
Specifies the out-variable that will contain the extracted location.
This should be set to `SOURCE_PATH` by convention.
### ARCHIVE
The full path to the archive to be extracted.
This is usually obtained from calling [`vcpkg_download_distfile`](vcpkg_download_distfile.md).
### REF
A friendly name that will be used instead of the filename of the archive.
By convention, this is set to the version number or tag fetched
### WORKING_DIRECTORY
If specified, the archive will be extracted into the working directory instead of `${CURRENT_BUILDTREES_DIR}/src/`.
Note that the archive will still be extracted into a subfolder underneath that directory (`${WORKING_DIRECTORY}/${REF}-${HASH}/`).
### PATCHES
A list of patches to be applied to the extracted sources.
Relative paths are based on the port directory.
### NO_REMOVE_ONE_LEVEL
Specifies that the default removal of the top level folder should not occur.
## Examples
* [bzip2](https://github.com/Microsoft/vcpkg/blob/master/ports/bzip2/portfile.cmake)
* [sqlite3](https://github.com/Microsoft/vcpkg/blob/master/ports/sqlite3/portfile.cmake)
* [cairo](https://github.com/Microsoft/vcpkg/blob/master/ports/cairo/portfile.cmake)
## Source
[scripts/cmake/vcpkg_extract_source_archive_ex.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_extract_source_archive_ex.cmake)