From 6ac50df591b39a5fb9fcaac6ff2678127b86ef22 Mon Sep 17 00:00:00 2001 From: Craig Scott Date: Sat, 9 Dec 2023 15:10:25 +1100 Subject: Help: Add missing versionadded directives for IMPORTED_IMPLIB --- Help/prop_tgt/IMPORTED_IMPLIB.rst | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Help/prop_tgt/IMPORTED_IMPLIB.rst b/Help/prop_tgt/IMPORTED_IMPLIB.rst index 27601d2..1b4895a 100644 --- a/Help/prop_tgt/IMPORTED_IMPLIB.rst +++ b/Help/prop_tgt/IMPORTED_IMPLIB.rst @@ -6,11 +6,14 @@ Full path to the import library for an ``IMPORTED`` target. This property may be set: * On DLL platforms, to the location of the ``.lib`` part of the DLL. -* On AIX, to an import file (e.g. ``.imp``) created for executables that export - symbols (see the :prop_tgt:`ENABLE_EXPORTS` target property). -* On macOS, to an import file (e.g. ``.tbd``) created for shared libraries (see - the :prop_tgt:`ENABLE_EXPORTS` target property). For frameworks this is the - location of the ``.tbd`` file symlink just inside the framework folder. +* .. versionadded:: 3.16 + On AIX, to an import file (e.g. ``.imp``) created for executables that + export symbols (see the :prop_tgt:`ENABLE_EXPORTS` target property). +* .. versionadded:: 3.27 + On macOS platforms, to an import file (e.g. ``.tbd``) created for shared + libraries (see the :prop_tgt:`ENABLE_EXPORTS` target property). + For frameworks this is the location of the ``.tbd`` file symlink just + inside the framework folder. * .. versionadded:: 3.28 On non-DLL platforms, to the location of a shared library. When set without also specifying an :prop_tgt:`IMPORTED_LOCATION`, -- cgit v0.12 From 01735badee627450e0765151e1a18e87bcab17a6 Mon Sep 17 00:00:00 2001 From: Craig Scott Date: Sat, 9 Dec 2023 16:14:53 +1100 Subject: Help: XCFrameworks and stubs are supported on all Apple, not just macOS --- Help/command/target_link_libraries.rst | 6 +++--- Help/prop_tgt/ENABLE_EXPORTS.rst | 4 ++-- Help/prop_tgt/IMPORTED_IMPLIB.rst | 8 ++++---- Help/prop_tgt/IMPORTED_LOCATION.rst | 14 +++++--------- 4 files changed, 14 insertions(+), 18 deletions(-) diff --git a/Help/command/target_link_libraries.rst b/Help/command/target_link_libraries.rst index cc6bc0f..68d3598 100644 --- a/Help/command/target_link_libraries.rst +++ b/Help/command/target_link_libraries.rst @@ -68,9 +68,9 @@ Each ```` may be: .. versionadded:: 3.28 - The library file may point to a ``.xcframework`` folder on macOS. If it - does, the target will get the selected library's ``Headers`` directory as - a usage requirement. + The library file may point to a ``.xcframework`` folder on Apple platforms. + If it does, the target will get the selected library's ``Headers`` + directory as a usage requirement. .. versionadded:: 3.8 On :ref:`Visual Studio Generators` for VS 2010 and above, library files diff --git a/Help/prop_tgt/ENABLE_EXPORTS.rst b/Help/prop_tgt/ENABLE_EXPORTS.rst index e34c649..1902d94 100644 --- a/Help/prop_tgt/ENABLE_EXPORTS.rst +++ b/Help/prop_tgt/ENABLE_EXPORTS.rst @@ -35,8 +35,8 @@ the property instead for backward compatibility reasons. See below for alternative initialization behavior for shared library targets. .. versionadded:: 3.27 - On Apple platforms, to link with a shared library (either a bare library or a - framework), a linker import file can be used instead of the actual shared + To link with a shared library on macOS, or to a shared framework on any Apple + platform, a linker import file can be used instead of the actual shared library. These linker import files are also known as text-based stubs, and they have a ``.tbd`` file extension. diff --git a/Help/prop_tgt/IMPORTED_IMPLIB.rst b/Help/prop_tgt/IMPORTED_IMPLIB.rst index 1b4895a..7cbffeb 100644 --- a/Help/prop_tgt/IMPORTED_IMPLIB.rst +++ b/Help/prop_tgt/IMPORTED_IMPLIB.rst @@ -10,10 +10,10 @@ This property may be set: On AIX, to an import file (e.g. ``.imp``) created for executables that export symbols (see the :prop_tgt:`ENABLE_EXPORTS` target property). * .. versionadded:: 3.27 - On macOS platforms, to an import file (e.g. ``.tbd``) created for shared - libraries (see the :prop_tgt:`ENABLE_EXPORTS` target property). - For frameworks this is the location of the ``.tbd`` file symlink just - inside the framework folder. + On Apple platforms, to an import file (e.g. ``.tbd``) created for shared + libraries or frameworks (see the :prop_tgt:`ENABLE_EXPORTS` target + property). For frameworks, this is the location of the ``.tbd`` file + symlink just inside the framework folder. * .. versionadded:: 3.28 On non-DLL platforms, to the location of a shared library. When set without also specifying an :prop_tgt:`IMPORTED_LOCATION`, diff --git a/Help/prop_tgt/IMPORTED_LOCATION.rst b/Help/prop_tgt/IMPORTED_LOCATION.rst index 915085b..2351374 100644 --- a/Help/prop_tgt/IMPORTED_LOCATION.rst +++ b/Help/prop_tgt/IMPORTED_LOCATION.rst @@ -17,14 +17,10 @@ non-imported targets. .. versionadded:: 3.28 - For frameworks on macOS, this may be the location of the framework folder - itself. - -.. versionadded:: 3.28 - - This may be the location of a ``.xcframework`` folder on macOS. If it is, - any target that links against it will get the selected library's ``Headers`` - directory as a usage requirement. + For ordinary frameworks on Apple platforms, this may be the location of the + ``.framework`` folder itself. For XCFrameworks, it may be the location of + the ``.xcframework`` folder, in which case any target that links against it + will get the selected library's ``Headers`` directory as a usage requirement. The ``IMPORTED_LOCATION`` target property may be overridden for a given configuration ```` by the configuration-specific @@ -38,5 +34,5 @@ selected and its :prop_tgt:`IMPORTED_LOCATION_` value used. To get the location of an imported target read one of the :prop_tgt:`LOCATION` or ``LOCATION_`` properties. -For platforms with import libraries (e.g. Windows, AIX or macOS) see also +For platforms with import libraries (e.g. Windows, AIX or Apple) see also :prop_tgt:`IMPORTED_IMPLIB`. -- cgit v0.12 From e831eef933c21ea8b5f24a6ffc51e52f87149c91 Mon Sep 17 00:00:00 2001 From: Craig Scott Date: Wed, 13 Dec 2023 11:36:22 +1100 Subject: Help: Note case where IMPORTED_IMPLIB isn't needed for (xc)frameworks --- Help/prop_tgt/IMPORTED_IMPLIB.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Help/prop_tgt/IMPORTED_IMPLIB.rst b/Help/prop_tgt/IMPORTED_IMPLIB.rst index 7cbffeb..135c31c 100644 --- a/Help/prop_tgt/IMPORTED_IMPLIB.rst +++ b/Help/prop_tgt/IMPORTED_IMPLIB.rst @@ -20,6 +20,12 @@ This property may be set: the library is considered to be a stub, and its location will not be added as a runtime search path to dependents that link it. +.. versionchanged:: 3.28 + If an imported target is an Apple framework or XCFramework, the preferred + arrangement is to set :prop_tgt:`IMPORTED_LOCATION` to the ``.framework`` + or ``.xcframework`` directory. CMake will then find the relevant ``.tbd`` + file inside that framework or XCFramework automatically without requiring + ``IMPORTED_IMPLIB`` to be set. The ``IMPORTED_IMPLIB`` target property may be overridden for a given configuration ```` by the configuration-specific -- cgit v0.12