diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -2006,7 +2006,7 @@ set(output_dir lib${LLVM_LIBDIR_SUFFIX}) if(WIN32 AND "${type}" STREQUAL "SHARED") - set(output_dir bin) + set(output_dir "${CMAKE_INSTALL_LIBDIR}") endif() install(SCRIPT ${INSTALL_SYMLINK} diff --git a/llvm/cmake/modules/LLVMInstallSymlink.cmake b/llvm/cmake/modules/LLVMInstallSymlink.cmake --- a/llvm/cmake/modules/LLVMInstallSymlink.cmake +++ b/llvm/cmake/modules/LLVMInstallSymlink.cmake @@ -2,21 +2,22 @@ # DESTDIR environment variable may be unset at configuration time. # See PR8397. -include(GNUInstallDirs) +include(ExtendPath) function(install_symlink name target outdir) set(DESTDIR $ENV{DESTDIR}) - set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}") + extend_path(outdir_abs "${CMAKE_INSTALL_PREFIX}" "${outdir}") + set(outdir_abs "${DESTDIR}${outdir_abs}") message(STATUS "Creating ${name}") execute_process( COMMAND "${CMAKE_COMMAND}" -E create_symlink "${target}" "${name}" - WORKING_DIRECTORY "${bindir}" ERROR_VARIABLE has_err) + WORKING_DIRECTORY "${outdir_abs}" ERROR_VARIABLE has_err) if(CMAKE_HOST_WIN32 AND has_err) execute_process( COMMAND "${CMAKE_COMMAND}" -E copy "${target}" "${name}" - WORKING_DIRECTORY "${bindir}") + WORKING_DIRECTORY "${outdir_abs}") endif() endfunction()