Преглед на файлове

Merge topic 'Link-MACOSX_BUNDLE' into release-3.24

f5a441a616 Xcode: Fix erroneous MACOSX_BUNDLE link

Acked-by: Kitware Robot <[email protected]>
Merge-request: !7624
Brad King преди 3 години
родител
ревизия
85d29b7de1

+ 1 - 0
Source/cmGlobalXCodeGenerator.cxx

@@ -3622,6 +3622,7 @@ void cmGlobalXCodeGenerator::AddDependAndLinkInformation(cmXCodeObject* target)
         }
       }
     } else {
+      linkDir = cmSystemTools::GetParentDirectory(linkDir);
       if (std::find(linkSearchPaths.begin(), linkSearchPaths.end(), linkDir) ==
           linkSearchPaths.end()) {
         linkSearchPaths.push_back(linkDir);

+ 14 - 0
Tests/RunCMake/XcodeProject/BundleLinkBundle.cmake

@@ -0,0 +1,14 @@
+cmake_minimum_required(VERSION 3.23)
+
+project(BundleLinkBundle CXX)
+
+add_subdirectory(lib_bundle)
+
+add_executable(MainBundle MACOSX_BUNDLE main_bundle.cpp)
+
+target_link_libraries(MainBundle PRIVATE LibBundle)
+
+set_target_properties(MainBundle PROPERTIES
+    MACOSX_BUNDLE "YES"
+    XCODE_LINK_BUILD_PHASE_MODE BUILT_ONLY
+)

+ 10 - 0
Tests/RunCMake/XcodeProject/RunCMakeTest.cmake

@@ -151,6 +151,16 @@ endfunction()
 
 XcodeXCConfig()
 
+function(BundleLinkBundle)
+  set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/BundleLinkBundle-build)
+  run_cmake(BundleLinkBundle)
+  set(RunCMake_TEST_NO_CLEAN 1)
+  run_cmake_command(BundleLinkBundle-build ${CMAKE_COMMAND} --build .)
+endfunction()
+
+BundleLinkBundle()
+
+
 # Isolate device tests from host architecture selection.
 unset(ENV{CMAKE_OSX_ARCHITECTURES})
 

+ 5 - 0
Tests/RunCMake/XcodeProject/lib_bundle/CMakeLIsts.txt

@@ -0,0 +1,5 @@
+
+add_library(LibBundle lib_bundle.cpp)
+
+set_target_properties(LibBundle PROPERTIES
+      MACOSX_BUNDLE YES)

+ 6 - 0
Tests/RunCMake/XcodeProject/lib_bundle/lib_bundle.cpp

@@ -0,0 +1,6 @@
+#include <iostream>
+
+void foo()
+{
+  std::cout << "foobar" << std::endl;
+}

+ 9 - 0
Tests/RunCMake/XcodeProject/main_bundle.cpp

@@ -0,0 +1,9 @@
+
+extern void foo();
+
+int main()
+{
+
+  foo();
+  return 0;
+}