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