[llvm] r189220 - CMake Xcode builds: symlink tblgen targets out to bin/.
Douglas Gregor
dgregor at apple.com
Mon Aug 26 07:43:19 PDT 2013
Author: dgregor
Date: Mon Aug 26 09:43:19 2013
New Revision: 189220
URL: http://llvm.org/viewvc/llvm-project?rev=189220&view=rev
Log:
CMake Xcode builds: symlink tblgen targets out to bin/.
Xcode always puts executable targets in the directory
bin/<Config>. When building separate LLVM and Clang projects for
Xcode, this prevents the CMake-configured project for Clang from
finding llvm-tblgen. Add a symlink so that tblgen executables are
always available in bin/ (regardless of the configuration LLVM is
built with).
Modified:
llvm/trunk/cmake/modules/TableGen.cmake
Modified: llvm/trunk/cmake/modules/TableGen.cmake
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/TableGen.cmake?rev=189220&r1=189219&r2=189220&view=diff
==============================================================================
--- llvm/trunk/cmake/modules/TableGen.cmake (original)
+++ llvm/trunk/cmake/modules/TableGen.cmake Mon Aug 26 09:43:19 2013
@@ -85,6 +85,16 @@ macro(add_tablegen target project)
add_llvm_utility(${target} ${ARGN})
set(LLVM_LINK_COMPONENTS ${${target}_OLD_LLVM_LINK_COMPONENTS})
+ # For Xcode builds, symlink bin/<target> to bin/<Config>/<target> so that
+ # a separately-configured Clang project can still find llvm-tblgen.
+ if (XCODE)
+ add_custom_target(${target}-top ALL
+ ${CMAKE_COMMAND} -E create_symlink
+ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/${target}${CMAKE_EXECUTABLE_SUFFIX}
+ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${target}${CMAKE_EXECUTABLE_SUFFIX}
+ DEPENDS ${target})
+ endif ()
+
set(${project}_TABLEGEN "${target}" CACHE
STRING "Native TableGen executable. Saves building one when cross-compiling.")
More information about the llvm-commits
mailing list