# CMP0020

Automatically link Qt executables to `qtmain` target on Windows.

CMake 2.8.10 and lower required users of Qt to always specify a link dependency to the `qtmain.lib` static library manually on Windows. CMake 2.8.11 gained the ability to evaluate generator expressions while determining the link dependencies from `IMPORTED` targets. This allows CMake itself to automatically link executables which link to Qt to the `qtmain.lib` library when using `IMPORTED` Qt targets. For applications already linking to `qtmain.lib`, this should have little impact. For applications which supply their own alternative WinMain implementation and for applications which use the QAxServer library, this automatic linking will need to be disabled as per the documentation.

The `OLD` behavior for this policy is not to link executables to `qtmain.lib` automatically when they link to the QtCore `IMPORTED` target. The `NEW` behavior for this policy is to link executables to `qtmain.lib` automatically when they link to QtCore `IMPORTED` target.

This policy was introduced in CMake version 2.8.11. CMake version 3.23.3 warns when the policy is not set and uses `OLD` behavior. Use the `cmake_policy()` command to set it to `OLD` or `NEW` explicitly.

Note

The `OLD` behavior of a policy is `deprecated by definition` and may be removed in a future version of CMake.