# 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 ARCHIVE <${ARCHIVE}> [REF <1.0.0>] [NO_REMOVE_ONE_LEVEL] [WORKING_DIRECTORY <${CURRENT_BUILDTREES_DIR}/src>] [PATCHES ...] ) ``` ## 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)