Author: cbieneman Date: Fri Sep 18 14:59:51 2015 New Revision: 248025 URL: http://llvm.org/viewvc/llvm-project?rev=248025&view=rev Log: Revert "[CMake] Refactoring and cleaning up clang symlink generation."
This reverts commit r248015, because it broke bots. I'll revise and recommit. Added: cfe/trunk/tools/driver/clang_symlink.cmake Modified: cfe/trunk/CMakeLists.txt cfe/trunk/tools/driver/CMakeLists.txt Modified: cfe/trunk/CMakeLists.txt URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/CMakeLists.txt?rev=248025&r1=248024&r2=248025&view=diff ============================================================================== --- cfe/trunk/CMakeLists.txt (original) +++ cfe/trunk/CMakeLists.txt Fri Sep 18 14:59:51 2015 @@ -414,14 +414,6 @@ macro(add_clang_executable name) set_clang_windows_version_resource_properties(${name}) endmacro(add_clang_executable) -macro(add_clang_symlink name dest) - add_llvm_tool_symlink(${name} ${dest}) - # Always generate install targets - if(LLVM_INSTALL_TOOLCHAIN_ONLY) - llvm_install_symlink(${name} ${dest}) - endif() -endmacro() - set(CMAKE_INCLUDE_CURRENT_DIR ON) include_directories(BEFORE Modified: cfe/trunk/tools/driver/CMakeLists.txt URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/CMakeLists.txt?rev=248025&r1=248024&r2=248025&view=diff ============================================================================== --- cfe/trunk/tools/driver/CMakeLists.txt (original) +++ cfe/trunk/tools/driver/CMakeLists.txt Fri Sep 18 14:59:51 2015 @@ -51,6 +51,33 @@ endif() add_dependencies(clang clang-headers) +if(UNIX) + set(CLANGXX_LINK_OR_COPY create_symlink) +# Create a relative symlink + set(clang_binary "clang${CMAKE_EXECUTABLE_SUFFIX}") +else() + set(CLANGXX_LINK_OR_COPY copy) + set(clang_binary "${LLVM_RUNTIME_OUTPUT_INTDIR}/clang${CMAKE_EXECUTABLE_SUFFIX}") +endif() + +# Create the clang++ symlink in the build directory. +set(clang_pp "${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++${CMAKE_EXECUTABLE_SUFFIX}") +add_custom_command(TARGET clang POST_BUILD + COMMAND ${CMAKE_COMMAND} -E ${CLANGXX_LINK_OR_COPY} "${clang_binary}" "${clang_pp}" + WORKING_DIRECTORY "${LLVM_RUNTIME_OUTPUT_INTDIR}") + +set_property(DIRECTORY APPEND + PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${clang_pp}) + +# Create the clang-cl symlink in the build directory. +set(clang_cl "${LLVM_RUNTIME_OUTPUT_INTDIR}/clang-cl${CMAKE_EXECUTABLE_SUFFIX}") +add_custom_command(TARGET clang POST_BUILD + COMMAND ${CMAKE_COMMAND} -E ${CLANGXX_LINK_OR_COPY} "${clang_binary}" "${clang_cl}" + WORKING_DIRECTORY "${LLVM_RUNTIME_OUTPUT_INTDIR}") + +set_property(DIRECTORY APPEND + PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${clang_cl}) + install(TARGETS clang RUNTIME DESTINATION bin COMPONENT clang) @@ -60,13 +87,8 @@ add_custom_target(install-clang -DCMAKE_INSTALL_COMPONENT=clang -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") -if(NOT CLANG_LINKS_TO_CREATE) - set(CLANG_LINKS_TO_CREATE clang++ clang-cl) -endif() - -foreach(link ${CLANG_LINKS_TO_CREATE}) - add_clang_symlink(${link} clang) -endforeach() +# Create the clang++ and clang-cl symlinks at installation time. +install(SCRIPT clang_symlink.cmake -DCMAKE_INSTALL_PREFIX=\"${CMAKE_INSTALL_PREFIX}\") # Configure plist creation for OS X. set (TOOL_INFO_PLIST "Info.plist" CACHE STRING "Plist name") Added: cfe/trunk/tools/driver/clang_symlink.cmake URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/clang_symlink.cmake?rev=248025&view=auto ============================================================================== --- cfe/trunk/tools/driver/clang_symlink.cmake (added) +++ cfe/trunk/tools/driver/clang_symlink.cmake Fri Sep 18 14:59:51 2015 @@ -0,0 +1,43 @@ +# We need to execute this script at installation time because the +# DESTDIR environment variable may be unset at configuration time. +# See PR8397. + +if(UNIX) + set(CLANGXX_LINK_OR_COPY create_symlink) + set(CLANGXX_DESTDIR $ENV{DESTDIR}) +else() + set(CLANGXX_LINK_OR_COPY copy) +endif() + +# CMAKE_EXECUTABLE_SUFFIX is undefined on cmake scripts. See PR9286. +if( WIN32 ) + set(EXECUTABLE_SUFFIX ".exe") +else() + set(EXECUTABLE_SUFFIX "") +endif() + +set(bindir "${CLANGXX_DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/") +set(clang "clang${EXECUTABLE_SUFFIX}") +set(clangxx "clang++${EXECUTABLE_SUFFIX}") +set(clang_cl "clang-cl${EXECUTABLE_SUFFIX}") +set(cl "cl${EXECUTABLE_SUFFIX}") + +message("Creating clang++ executable based on ${clang}") + +execute_process( + COMMAND "${CMAKE_COMMAND}" -E ${CLANGXX_LINK_OR_COPY} "${clang}" "${clangxx}" + WORKING_DIRECTORY "${bindir}") + +message("Creating clang-cl executable based on ${clang}") + +execute_process( + COMMAND "${CMAKE_COMMAND}" -E ${CLANGXX_LINK_OR_COPY} "${clang}" "${clang_cl}" + WORKING_DIRECTORY "${bindir}") + +if (WIN32) + message("Creating cl executable based on ${clang}") + + execute_process( + COMMAND "${CMAKE_COMMAND}" -E ${CLANGXX_LINK_OR_COPY} "${clang}" "../msbuild-bin/${cl}" + WORKING_DIRECTORY "${bindir}") +endif() _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits