mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-03 12:49:50 -05:00
Apple: text-based stubs: manage imported configurations mapping
This commit is contained in:
@@ -37,6 +37,8 @@ is defined as an executable formed by compiling and linking ``zipapp.cpp``.
|
|||||||
When linking the ``zipapp`` executable, the ``archive`` static library is
|
When linking the ``zipapp`` executable, the ``archive`` static library is
|
||||||
linked in.
|
linked in.
|
||||||
|
|
||||||
|
.. _`Binary Executables`:
|
||||||
|
|
||||||
Binary Executables
|
Binary Executables
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ target. For each configuration named, the imported target's artifacts
|
|||||||
must be specified in other target properties:
|
must be specified in other target properties:
|
||||||
|
|
||||||
* :prop_tgt:`IMPORTED_LOCATION_<CONFIG>`, or
|
* :prop_tgt:`IMPORTED_LOCATION_<CONFIG>`, or
|
||||||
* :prop_tgt:`IMPORTED_IMPLIB_<CONFIG>` (on DLL platforms), or
|
* :prop_tgt:`IMPORTED_IMPLIB_<CONFIG>` (on DLL platforms, on AIX for
|
||||||
|
:ref:`Executables <Binary Executables>` or on Apple for
|
||||||
|
:ref:`Shared Libraries <Normal Libraries>`), or
|
||||||
* :prop_tgt:`IMPORTED_OBJECTS_<CONFIG>` (for :ref:`Object Libraries`), or
|
* :prop_tgt:`IMPORTED_OBJECTS_<CONFIG>` (for :ref:`Object Libraries`), or
|
||||||
* :prop_tgt:`IMPORTED_LIBNAME_<CONFIG>` (for :ref:`Interface Libraries`).
|
* :prop_tgt:`IMPORTED_LIBNAME_<CONFIG>` (for :ref:`Interface Libraries`).
|
||||||
|
|
||||||
|
|||||||
+3
-1
@@ -3012,7 +3012,9 @@ bool cmTarget::GetMappedConfig(std::string const& desired_config, cmValue& loc,
|
|||||||
bool allowImp = (this->IsDLLPlatform() &&
|
bool allowImp = (this->IsDLLPlatform() &&
|
||||||
(this->GetType() == cmStateEnums::SHARED_LIBRARY ||
|
(this->GetType() == cmStateEnums::SHARED_LIBRARY ||
|
||||||
this->IsExecutableWithExports())) ||
|
this->IsExecutableWithExports())) ||
|
||||||
(this->IsAIX() && this->IsExecutableWithExports());
|
(this->IsAIX() && this->IsExecutableWithExports()) ||
|
||||||
|
(this->GetMakefile()->PlatformSupportsAppleTextStubs() &&
|
||||||
|
this->IsSharedLibraryWithExports());
|
||||||
|
|
||||||
// If a mapping was found, check its configurations.
|
// If a mapping was found, check its configurations.
|
||||||
for (auto mci = mappedConfigs.begin();
|
for (auto mci = mappedConfigs.begin();
|
||||||
|
|||||||
@@ -200,6 +200,21 @@ set_property(TARGET importedFallback PROPERTY IMPORTED_LOCATION fallback_loc)
|
|||||||
set_property(TARGET importedFallback PROPERTY MAP_IMPORTED_CONFIG_DEBUG "" DEBUG)
|
set_property(TARGET importedFallback PROPERTY MAP_IMPORTED_CONFIG_DEBUG "" DEBUG)
|
||||||
set_property(TARGET importedFallback PROPERTY MAP_IMPORTED_CONFIG_RELEASE "")
|
set_property(TARGET importedFallback PROPERTY MAP_IMPORTED_CONFIG_RELEASE "")
|
||||||
|
|
||||||
|
add_library(importedFallback2 SHARED IMPORTED)
|
||||||
|
set_property(TARGET importedFallback2 PROPERTY ENABLE_EXPORTS TRUE)
|
||||||
|
set_property(TARGET importedFallback2 PROPERTY IMPORTED_LOCATION_NOCONFIG noconfig_loc)
|
||||||
|
set_property(TARGET importedFallback2 PROPERTY IMPORTED_IMPLIB_NOCONFIG noconfig_imp)
|
||||||
|
set_property(TARGET importedFallback2 PROPERTY IMPORTED_LOCATION_DEBUG debug_loc)
|
||||||
|
set_property(TARGET importedFallback2 PROPERTY IMPORTED_IMPLIB_DEBUG debug_imp)
|
||||||
|
set_property(TARGET importedFallback2 PROPERTY IMPORTED_LOCATION_RELEASE release_loc)
|
||||||
|
set_property(TARGET importedFallback2 PROPERTY IMPORTED_IMPLIB_RELEASE release_imp)
|
||||||
|
set_property(TARGET importedFallback2 PROPERTY IMPORTED_LOCATION fallback_loc)
|
||||||
|
set_property(TARGET importedFallback2 PROPERTY IMPORTED_IMPLIB fallback_imp)
|
||||||
|
set_property(TARGET importedFallback2 PROPERTY IMPORTED_IMPLIB_SPECIAL special_imp)
|
||||||
|
set_property(TARGET importedFallback2 PROPERTY MAP_IMPORTED_CONFIG_NOCONFIG SPECIAL "")
|
||||||
|
set_property(TARGET importedFallback2 PROPERTY MAP_IMPORTED_CONFIG_DEBUG SPECIAL "")
|
||||||
|
set_property(TARGET importedFallback2 PROPERTY MAP_IMPORTED_CONFIG_RELEASE SPECIAL "")
|
||||||
|
|
||||||
add_library(importedFallback_genex STATIC IMPORTED)
|
add_library(importedFallback_genex STATIC IMPORTED)
|
||||||
set_property(TARGET importedFallback_genex PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
set_property(TARGET importedFallback_genex PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
set_property(TARGET importedFallback_genex PROPERTY IMPORTED_LOCATION_RELEASE release_loc)
|
set_property(TARGET importedFallback_genex PROPERTY IMPORTED_LOCATION_RELEASE release_loc)
|
||||||
@@ -217,6 +232,7 @@ add_custom_target(check-part3 ALL
|
|||||||
-Dconfig=$<CONFIGURATION>
|
-Dconfig=$<CONFIGURATION>
|
||||||
-Dtest_imported_includes=$<TARGET_PROPERTY:imported4,INCLUDE_DIRECTORIES>
|
-Dtest_imported_includes=$<TARGET_PROPERTY:imported4,INCLUDE_DIRECTORIES>
|
||||||
-Dtest_imported_fallback=$<STREQUAL:$<TARGET_FILE_NAME:importedFallback>,fallback_loc>
|
-Dtest_imported_fallback=$<STREQUAL:$<TARGET_FILE_NAME:importedFallback>,fallback_loc>
|
||||||
|
-Dtest_imported_fallback2=$<IF:$<OR:$<PLATFORM_ID:Windows,CYGWIN,MSYS>,$<AND:$<PLATFORM_ID:Darwin>,$<BOOL:${CMAKE_TAPI}>>>,$<STREQUAL:$<TARGET_LINKER_FILE_NAME:importedFallback2>,special_imp>,$<STREQUAL:$<TARGET_LINKER_FILE_NAME:importedFallback2>,fallback_loc>>
|
||||||
-Dtest_imported_fallback_genex=$<STREQUAL:$<TARGET_PROPERTY:importedFallback_genex,INTERFACE_COMPILE_DEFINITIONS>,FOOBAR=1>
|
-Dtest_imported_fallback_genex=$<STREQUAL:$<TARGET_PROPERTY:importedFallback_genex,INTERFACE_COMPILE_DEFINITIONS>,FOOBAR=1>
|
||||||
-Dtest_alias_file_exe=$<STREQUAL:$<TARGET_FILE:Alias::SomeExe>,$<TARGET_FILE:someexe>>
|
-Dtest_alias_file_exe=$<STREQUAL:$<TARGET_FILE:Alias::SomeExe>,$<TARGET_FILE:someexe>>
|
||||||
-Dtest_alias_file_lib=$<STREQUAL:$<TARGET_FILE:Alias::SomeLib>,$<TARGET_FILE:empty1>>
|
-Dtest_alias_file_lib=$<STREQUAL:$<TARGET_FILE:Alias::SomeLib>,$<TARGET_FILE:empty1>>
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
check(test_imported_fallback "1")
|
check(test_imported_fallback "1")
|
||||||
|
check(test_imported_fallback2 "1")
|
||||||
check(test_imported_fallback_genex "1")
|
check(test_imported_fallback_genex "1")
|
||||||
|
|
||||||
check(test_alias_file_exe "1")
|
check(test_alias_file_exe "1")
|
||||||
|
|||||||
Reference in New Issue
Block a user