Просмотр исходного кода

Merge topic 'Apple-TBD-in-subdirecory' into release-3.29

bcc26ce465 Apple Text Based Stubs: should be usage in subdirectories

Acked-by: Kitware Robot <[email protected]>
Acked-by: buildbot <[email protected]>
Merge-request: !9341
Brad King 1 год назад
Родитель
Сommit
e497fbfca3

+ 3 - 0
Source/cmMakefileLibraryTargetGenerator.cxx

@@ -978,6 +978,9 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules(
     auto genStubsRule =
       this->Makefile->GetDefinition("CMAKE_CREATE_TEXT_STUBS");
     cmList genStubs_commands{ genStubsRule };
+    this->LocalGenerator->CreateCDCommand(
+      genStubs_commands, this->Makefile->GetCurrentBinaryDirectory(),
+      this->LocalGenerator->GetBinaryDirectory());
 
     std::string TBDFullPath =
       cmStrCat(outpathImp, this->TargetNames.ImportOutput);

+ 5 - 0
Tests/RunCMake/AppleTextStubs/SUBDIR/CMakeLists.txt

@@ -0,0 +1,5 @@
+
+add_library(foo2 SHARED ../foo.c)
+set_property(TARGET foo2 PROPERTY ENABLE_EXPORTS TRUE)
+
+install(TARGETS foo2 DESTINATION "${CMAKE_BINARY_DIR}/INSTALL")

+ 9 - 3
Tests/RunCMake/AppleTextStubs/Simple.cmake

@@ -6,6 +6,7 @@ set_property(TARGET foo PROPERTY ENABLE_EXPORTS TRUE)
 add_executable(main main.c)
 target_link_libraries(main PRIVATE foo)
 
+add_subdirectory(SUBDIR)
 
 install(TARGETS foo DESTINATION "${CMAKE_BINARY_DIR}/INSTALL")
 
@@ -24,15 +25,20 @@ macro (CHECK_FILE test_msg path)
   endif()
 endmacro()
 
-check_file("DYLIB file" "$<TARGET_FILE:foo>")
+check_file("foo DYLIB file" "$<TARGET_FILE:foo>")
+check_file("foo2 DYLIB file" "$<TARGET_FILE:foo2>")
 check_file("executable file" "$<TARGET_FILE:main>")
 
+check_file("Installed foo DYLIB file" "${RunCMake_TEST_BINARY_DIR}/INSTALL/$<TARGET_FILE_NAME:foo>")
+check_file("Installed foo2 DYLIB file" "${RunCMake_TEST_BINARY_DIR}/INSTALL/$<TARGET_FILE_NAME:foo2>")
 check_file("Installed DYLIB file" "${RunCMake_TEST_BINARY_DIR}/INSTALL2/lib/$<TARGET_FILE_NAME:foo>")
 
 if (APPLE_TEXT_STUBS_SUPPORTED)
-  check_file("TBD file" "$<TARGET_IMPORT_FILE:foo>")
+  check_file("foo TBD file" "$<TARGET_IMPORT_FILE:foo>")
+  check_file("foo2 TBD file" "$<TARGET_IMPORT_FILE:foo2>")
 
-  check_file("Installed TBD file" "${RunCMake_TEST_BINARY_DIR}/INSTALL/$<TARGET_IMPORT_FILE_NAME:foo>")
+  check_file("Installed foo TBD file" "${RunCMake_TEST_BINARY_DIR}/INSTALL/$<TARGET_IMPORT_FILE_NAME:foo>")
+  check_file("Installed foo2 TBD file" "${RunCMake_TEST_BINARY_DIR}/INSTALL/$<TARGET_IMPORT_FILE_NAME:foo2>")
   check_file("Installed TBD file" "${RunCMake_TEST_BINARY_DIR}/INSTALL2/dev/$<TARGET_IMPORT_FILE_NAME:foo>")
 endif()
 ]])