if (MSVC)
  # CPack will install a registry key in this format that we wish to reference.
  set(REG_KEY "${CPACK_PACKAGE_INSTALL_REGISTRY_KEY}")
  set(LIB_PATH_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}")

  foreach (platform "Win32" "x64")
    set(prop_file_in "Microsoft.Cpp.Win32.llvm.props.in")
    set(prop_file_v100 "Microsoft.Cpp.${platform}.LLVM-vs2010.props")
    set(prop_file_v110 "Microsoft.Cpp.${platform}.LLVM-vs2012.props")
    set(prop_file_v110_xp "Microsoft.Cpp.${platform}.LLVM-vs2012_xp.props")
    set(prop_file_v120 "toolset-vs2013.props")
    set(prop_file_v120_xp "toolset-vs2013_xp.props")
    set(prop_file_v140 "toolset-vs2014.props")
    set(prop_file_v140_xp "toolset-vs2014_xp.props")

    if (platform STREQUAL "Win32")
      set(mflag "m32")
    else()
      set(mflag "m64")
    endif()
    set(VS_VERSION "v100")
    set(MSC_VERSION "1600")
    configure_file(${prop_file_in} ${platform}/${prop_file_v100})
    set(VS_VERSION "v110")
    set(MSC_VERSION "1700")
    configure_file(${prop_file_in} ${platform}/${prop_file_v110})
    set(VS_VERSION "v110_xp")
    configure_file(${prop_file_in} ${platform}/${prop_file_v110_xp})
    set(VS_VERSION "v120")
    set(MSC_VERSION "1800")
    configure_file(${prop_file_in} ${platform}/${prop_file_v120})
    set(VS_VERSION "v120_xp")
    configure_file(${prop_file_in} ${platform}/${prop_file_v120_xp})
    set(VS_VERSION "v140")
    set(MSC_VERSION "1900")
    configure_file(${prop_file_in} ${platform}/${prop_file_v140})
    set(VS_VERSION "v140_xp")
    configure_file(${prop_file_in} ${platform}/${prop_file_v140_xp})
    set(VS_VERSION)
    set(MSC_VERSION)
    set(mflag)

    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v100}" DESTINATION tools/msbuild/${platform})
    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v110}" DESTINATION tools/msbuild/${platform})
    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v110_xp}" DESTINATION tools/msbuild/${platform})
    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v120}" DESTINATION tools/msbuild/${platform})
    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v120_xp}" DESTINATION tools/msbuild/${platform})
    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v140}" DESTINATION tools/msbuild/${platform})
    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${platform}/${prop_file_v140_xp}" DESTINATION tools/msbuild/${platform})

    install(FILES "Microsoft.Cpp.Win32.LLVM-vs2010.targets" DESTINATION "tools/msbuild/${platform}" RENAME "Microsoft.Cpp.${platform}.LLVM-vs2010.targets")
    install(FILES "Microsoft.Cpp.Win32.LLVM-vs2012.targets" DESTINATION "tools/msbuild/${platform}" RENAME "Microsoft.Cpp.${platform}.LLVM-vs2012.targets")
    install(FILES "Microsoft.Cpp.Win32.LLVM-vs2012_xp.targets" DESTINATION "tools/msbuild/${platform}" RENAME "Microsoft.Cpp.${platform}.LLVM-vs2012_xp.targets")
    install(FILES "toolset-vs2013.targets" DESTINATION "tools/msbuild/${platform}")
    install(FILES "toolset-vs2013_xp.targets" DESTINATION "tools/msbuild/${platform}")
    install(FILES "toolset-vs2014.targets" DESTINATION "tools/msbuild/${platform}")
    install(FILES "toolset-vs2014_xp.targets" DESTINATION "tools/msbuild/${platform}")
  endforeach()

  set(LIB_PATH_VERSION)
  set(REG_KEY)

  install(DIRECTORY .
    DESTINATION tools/msbuild
    FILES_MATCHING
    PATTERN "*.bat"
    PATTERN ".svn" EXCLUDE
    )
endif()
