Ver código fonte

iOS: Fix try_compile FILE_COPY not to fail

When building for iOS, the compiled target is placed into a bundle.
If a single-configuration generator is used, like Makefiles or Ninja,
the try_compile FILE_COPY behavior fails to find the bundle, because
it only looks for the bundle inside a Debug subfolder (presumably
to support a multi-configuration generator like Xcode).

Consider looking for the bundle in the root try_compile folder, as
well as in the location specified by CMAKE_TRY_COMPILE_CONFIGURATION.

Closes: #19211
Alexandru Croitor 6 anos atrás
pai
commit
275b6b3194
1 arquivos alterados com 8 adições e 1 exclusões
  1. 8 1
      Source/cmCoreTryCompile.cxx

+ 8 - 1
Source/cmCoreTryCompile.cxx

@@ -1040,7 +1040,14 @@ void cmCoreTryCompile::FindOutputFile(const std::string& targetName,
   }
   searchDirs.emplace_back("/Debug");
 #if defined(__APPLE__)
-  std::string app = "/Debug/" + targetName + ".app";
+  std::string app = "/" + targetName + ".app";
+  if (config && config[0]) {
+    std::string tmp = "/";
+    tmp += config + app;
+    searchDirs.push_back(std::move(tmp));
+  }
+  std::string tmp = "/Debug" + app;
+  searchDirs.emplace_back(std::move(tmp));
   searchDirs.push_back(std::move(app));
 #endif
   searchDirs.emplace_back("/Development");