Get ClangdXPC.framework building (barely) with CMake's Xcode generator
The output directories for CMake's Xcode project generator are
specific to the configuration, and so looking in
CMAKE_LIBRARY_OUTPUT_DIRECTORY isn't going to work. Fortunately, CMake
already provides generator expressions to find the output of a given
target.
I call this "barely" building because the built framework isn't going
to respect the configuration; that is, I can't have both Debug and
RelWithDebInfo variants of ClangdXPC.framework at the same time like I
can with normal library or executable targets. To do that we'd have to
put the framework in a configuration-specific output directory or use
CMake's native support for frameworks instead.
https://reviews.llvm.org/D68846
git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@374494 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/clangd/xpc/cmake/modules/CreateClangdXPCFramework.cmake b/clangd/xpc/cmake/modules/CreateClangdXPCFramework.cmake
index fad5866..46738a2 100644
--- a/clangd/xpc/cmake/modules/CreateClangdXPCFramework.cmake
+++ b/clangd/xpc/cmake/modules/CreateClangdXPCFramework.cmake
@@ -28,7 +28,7 @@
# Copy the framework binary.
COMMAND ${CMAKE_COMMAND} -E copy
- "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${target}.dylib"
+ "$<TARGET_FILE:${target}>"
"${CLANGD_FRAMEWORK_OUT_LOCATION}/${name}"
# Copy the XPC Service PLIST.
@@ -38,7 +38,7 @@
# Copy the Clangd binary.
COMMAND ${CMAKE_COMMAND} -E copy
- "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/clangd"
+ "$<TARGET_FILE:clangd>"
"${CLANGD_XPC_SERVICE_OUT_LOCATION}/MacOS/clangd"
COMMAND ${CMAKE_COMMAND} -E create_symlink "A"