2020-02-13 07:58:43 +08:00
# vcpkg_fixup_cmake_targets
2021-03-11 01:56:07 +08:00
The latest version of this document lives in the [vcpkg repo ](https://github.com/Microsoft/vcpkg/blob/master/docs/maintainers/vcpkg_fixup_cmake_targets.md ).
2021-03-01 05:17:19 +08:00
**This function has been deprecated in favor of `vcpkg_cmake_config_fixup` from the vcpkg-cmake-config port.**
2020-02-13 07:58:43 +08:00
Merge release and debug CMake targets and configs to support multiconfig generators.
Additionally corrects common issues with targets, such as absolute paths and incorrectly placed binaries.
## Usage
```cmake
2021-04-01 03:47:35 +08:00
vcpkg_fixup_cmake_targets([CONFIG_PATH < share / $ { PORT } > ]
[TARGET_PATH < share / $ { PORT } > ]
[TOOLS_PATH < tools / $ { PORT } > ]
[DO_NOT_DELETE_PARENT_CONFIG_PATH])
2020-02-13 07:58:43 +08:00
```
## Parameters
### CONFIG_PATH
Subpath currently containing `*.cmake` files subdirectory (like `lib/cmake/${PORT}` ). Should be relative to `${CURRENT_PACKAGES_DIR}` .
Defaults to `share/${PORT}` .
### TARGET_PATH
Subpath to which the above `*.cmake` files should be moved. Should be relative to `${CURRENT_PACKAGES_DIR}` .
This needs to be specified if the port name differs from the `find_package()` name.
Defaults to `share/${PORT}` .
2021-03-01 05:17:19 +08:00
### DO_NOT_DELETE_PARENT_CONFIG_PATH
2020-06-25 05:59:32 +08:00
By default the parent directory of CONFIG_PATH is removed if it is named "cmake".
Passing this option disable such behavior, as it is convenient for ports that install
more than one CMake package configuration file.
2020-12-02 05:37:26 +08:00
### NO_PREFIX_CORRECTION
Disables the correction of_IMPORT_PREFIX done by vcpkg due to moving the targets.
Currently the correction does not take into account how the files are moved and applies
I rather simply correction which in some cases will yield the wrong results.
2021-04-01 03:47:35 +08:00
### TOOLS_PATH
Define the base path to tools. Default: `tools/<PORT>`
2020-02-13 07:58:43 +08:00
## Notes
Transform all `/debug/<CONFIG_PATH>/*targets-debug.cmake` files and move them to `/<TARGET_PATH>` .
Removes all `/debug/<CONFIG_PATH>/*targets.cmake` and `/debug/<CONFIG_PATH>/*config.cmake` .
2021-04-01 03:47:35 +08:00
Transform all references matching `/bin/*.exe` to `/${TOOLS_PATH}/*.exe` on Windows.
Transform all references matching `/bin/*` to `/${TOOLS_PATH}/*` on other platforms.
2020-02-13 07:58:43 +08:00
Fix `${_IMPORT_PREFIX}` in auto generated targets to be one folder deeper.
Replace `${CURRENT_INSTALLED_DIR}` with `${_IMPORT_PREFIX}` in configs and targets.
## Examples
* [concurrentqueue ](https://github.com/Microsoft/vcpkg/blob/master/ports/concurrentqueue/portfile.cmake )
* [curl ](https://github.com/Microsoft/vcpkg/blob/master/ports/curl/portfile.cmake )
* [nlohmann-json ](https://github.com/Microsoft/vcpkg/blob/master/ports/nlohmann-json/portfile.cmake )
## Source
2021-03-01 05:17:19 +08:00
[scripts/cmake/vcpkg\_fixup\_cmake\_targets.cmake ](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_fixup_cmake_targets.cmake )