clang_symlink.cmake   [plain text]


# 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()