| CMP0216 |
| ------- |
| |
| .. versionadded:: 4.4 |
| |
| Swift targets have a default project name. |
| |
| CMake 4.3 and below did not compile Swift targets with ``-package-name``. |
| The package name is useful because Swift package access control makes types, |
| functions, and properties visible to other libraries within the same package, |
| but not from sources outside of the package. CMake 4.4 and above prefer to |
| pass ``-package-name`` by default using the :variable:`PROJECT_NAME` variable |
| value. This policy provides compatibility for projects that have not been |
| updated to expect a package name. |
| |
| .. note:: |
| |
| Package access control was added in Swift 5.8 and Xcode 15. This policy has |
| no effect when using an earlier version of Swift or Xcode. |
| |
| The ``OLD`` behavior for this policy is to build Swift source files without |
| passing a package-name. The ``NEW`` behavior for this policy is to build |
| Swift source files with a default package name from :variable:`PROJECT_NAME`. |
| |
| Regardless of whether this policy is set, the :prop_tgt:`Swift_PACKAGE_NAME` |
| target property may be set to explicitly specify or suppress a package name. |
| |
| .. |INTRODUCED_IN_CMAKE_VERSION| replace:: 4.4 |
| .. |WARNS_OR_DOES_NOT_WARN| replace:: does *not* warn |
| .. include:: include/STANDARD_ADVICE.rst |
| |
| .. include:: include/DEPRECATED.rst |