Skip to content

Commit

Permalink
Add MSBuild script for Visual Studio 2010, 2012, 2013 and 2015.
Browse files Browse the repository at this point in the history
  • Loading branch information
zufuliu committed Dec 30, 2018
1 parent 7f02a68 commit 3340ad6
Show file tree
Hide file tree
Showing 22 changed files with 210 additions and 0 deletions.
4 changes: 4 additions & 0 deletions VS2015/LLVM v120/Toolset.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v120\Toolset.props"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.props"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/LLVM v120/Toolset.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v120\Toolset.targets"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.targets"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/LLVM v120_xp/Toolset.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v120_xp\Toolset.props"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.props"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/LLVM v120_xp/Toolset.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v120_xp\Toolset.targets"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.targets"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/LLVM v140/Toolset.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v140\Toolset.props"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.props"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/LLVM v140/Toolset.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v140\Toolset.targets"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.targets"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/LLVM v140_xp/Toolset.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v140_xp\Toolset.props"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.props"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/LLVM v140_xp/Toolset.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v140_xp\Toolset.targets"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.targets"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/Win32/LLVM v100/Microsoft.Cpp.Win32.LLVM v100.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v100\Microsoft.Cpp.$(Platform).v100.props"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.props"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/Win32/LLVM v100/Microsoft.Cpp.Win32.LLVM v100.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v100\Microsoft.Cpp.$(Platform).v100.targets"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.targets"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/Win32/LLVM v110/Microsoft.Cpp.Win32.LLVM v110.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v110\Microsoft.Cpp.$(Platform).v110.props"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.props"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/Win32/LLVM v110/Microsoft.Cpp.Win32.LLVM v110.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v110\Microsoft.Cpp.$(Platform).v110.targets"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.targets"/>
</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v110_xp\Microsoft.Cpp.$(Platform).v110_xp.props"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.props"/>
</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v110_xp\Microsoft.Cpp.$(Platform).v110_xp.targets"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.targets"/>
</Project>
83 changes: 83 additions & 0 deletions VS2015/install.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS

SET "EXIST_ON_ERROR=%~1"
SET SUCCESS=0

PUSHD %~dp0

@rem Visual Studio 2015
:TRY_2015
SET VCT_PATH=%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms
IF EXIST "%VCT_PATH%" GOTO FIND_2015
SET VCT_PATH=%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms
IF EXIST "%VCT_PATH%" GOTO FIND_2015
GOTO TRY_2013

:FIND_2015
ECHO VCTargetsPath for Visual Studio 2015: %VCT_PATH%
XCOPY /Q /Y "..\VS2017\LLVM" "%VCT_PATH%\..\LLVM\"
XCOPY /Q /Y "LLVM v140" "%VCT_PATH%\x64\PlatformToolsets\LLVM v140\"
XCOPY /Q /Y "LLVM v140_xp" "%VCT_PATH%\x64\PlatformToolsets\LLVM v140_xp\"
XCOPY /Q /Y "LLVM v140" "%VCT_PATH%\Win32\PlatformToolsets\LLVM v140\"
XCOPY /Q /Y "LLVM v140_xp" "%VCT_PATH%\Win32\PlatformToolsets\LLVM v140_xp\"
SET SUCCESS=1

@rem Visual Studio 2013
:TRY_2013
SET VCT_PATH=%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms
IF EXIST "%VCT_PATH%" GOTO FIND_2013
SET VCT_PATH=%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V120\Platforms
IF EXIST "%VCT_PATH%" GOTO FIND_2013
GOTO TRY_2012

:FIND_2013
ECHO VCTargetsPath for Visual Studio 2013: %VCT_PATH%
XCOPY /Q /Y "..\VS2017\LLVM" "%VCT_PATH%\..\LLVM\"
XCOPY /Q /Y "LLVM v120" "%VCT_PATH%\x64\PlatformToolsets\LLVM v120\"
XCOPY /Q /Y "LLVM v120_xp" "%VCT_PATH%\x64\PlatformToolsets\LLVM v120_xp\"
XCOPY /Q /Y "LLVM v120" "%VCT_PATH%\Win32\PlatformToolsets\LLVM v120\"
XCOPY /Q /Y "LLVM v120_xp" "%VCT_PATH%\Win32\PlatformToolsets\LLVM v120_xp\"
SET SUCCESS=1

@rem Visual Studio 2012
:TRY_2012
SET VCT_PATH=%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms
IF EXIST "%VCT_PATH%" GOTO FIND_2012
SET VCT_PATH=%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms
IF EXIST "%VCT_PATH%" GOTO FIND_2012
GOTO TRY_2010

:FIND_2012
ECHO VCTargetsPath for Visual Studio 2012: %VCT_PATH%
XCOPY /Q /Y "..\VS2017\LLVM" "%VCT_PATH%\..\LLVM\"
XCOPY /Q /Y "x64\LLVM v110" "%VCT_PATH%\x64\PlatformToolsets\LLVM v110\"
XCOPY /Q /Y "x64\LLVM v110_xp" "%VCT_PATH%\x64\PlatformToolsets\LLVM v110_xp\"
XCOPY /Q /Y "Win32\LLVM v110" "%VCT_PATH%\Win32\PlatformToolsets\LLVM v110\"
XCOPY /Q /Y "Win32\LLVM v110_xp" "%VCT_PATH%\Win32\PlatformToolsets\LLVM v110_xp\"
SET SUCCESS=1

@rem Visual Studio 2010
:TRY_2010
SET VCT_PATH=%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\Platforms
IF EXIST "%VCT_PATH%" GOTO FIND_2010
SET VCT_PATH=%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\Platforms
IF EXIST "%VCT_PATH%" GOTO FIND_2010
GOTO VC_NOT_FOUND

:FIND_2010
ECHO VCTargetsPath for Visual Studio 2010: %VCT_PATH%
XCOPY /Q /Y "..\VS2017\LLVM" "%VCT_PATH%\..\LLVM\"
XCOPY /Q /Y "x64\LLVM v100" "%VCT_PATH%\x64\PlatformToolsets\LLVM v100\"
XCOPY /Q /Y "Win32\LLVM v100" "%VCT_PATH%\Win32\PlatformToolsets\LLVM v100\"
SET SUCCESS=1

:VC_NOT_FOUND

IF %SUCCESS% == 0 (
ECHO Visual C++ 2015, 2013, 2012 or 2010 NOT Installed.
IF "%EXIST_ON_ERROR%" == "" PAUSE
)

POPD
ENDLOCAL
4 changes: 4 additions & 0 deletions VS2015/x64/LLVM v100/Microsoft.Cpp.x64.LLVM v100.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v100\Microsoft.Cpp.$(Platform).v100.props"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.props"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/x64/LLVM v100/Microsoft.Cpp.x64.LLVM v100.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v100\Microsoft.Cpp.$(Platform).v100.targets"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.targets"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/x64/LLVM v110/Microsoft.Cpp.x64.LLVM v110.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v110\Microsoft.Cpp.$(Platform).v110.props"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.props"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/x64/LLVM v110/Microsoft.Cpp.x64.LLVM v110.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v110\Microsoft.Cpp.$(Platform).v110.targets"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.targets"/>
</Project>
4 changes: 4 additions & 0 deletions VS2015/x64/LLVM v110_xp/Microsoft.Cpp.x64.LLVM v110_xp.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v110_xp\Microsoft.Cpp.$(Platform).v110_xp.props"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.props"/>
</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\v110_xp\Microsoft.Cpp.$(Platform).v110_xp.targets"/>
<Import Project="$(VCTargetsPath)\LLVM\LLVM.Common.targets"/>
</Project>
47 changes: 47 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,53 @@ or

Please note that LLVM 7.0.0 on AppVeyor doesn't support ARM64.

## LLVM for Visual Studio 2010, 2012, 2013 and 2015
Assume `MB_PATH` is the MSBuild path for Visual C++ (e.g.: `C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0` or `C:\Program Files\MSBuild\Microsoft.Cpp\v4.0`), please manually copy folder *LLVM v1x0* and *LLVM v1x0_xp* under `VS2015` to following target paths.

`VS2015\install.bat` (based on install script for [LLVM 6.0.1](http://releases.llvm.org/download.html#6.0.1)) can be used to install MSBuild script for Visual Studio 2010, 2012, 2013 and 2015. Install to AppVeyor build image is similar to VS2017.

### Visual Studio 2015
The Platform Toolset is *LLVM v140* and *LLVM v140_xp*.

| Folder | Target Path |
|------|-------------|
|`VS2017\LLVM` | `%MB_PATH%\V140\` |
|`VS2015\LLVM v140` | `%MB_PATH%\V140\Platforms\x64\PlatformToolsets\` |
|`VS2015\LLVM v140_xp` | `%MB_PATH%\V140\Platforms\x64\PlatformToolsets\` |
|`VS2015\LLVM v140` | `%MB_PATH%\V140\Platforms\Win32\PlatformToolsets\` |
|`VS2015\LLVM v140_xp` | `%MB_PATH%\V140\Platforms\Win32\PlatformToolsets\` |

### Visual Studio 2013
The Platform Toolset is *LLVM v120* and *LLVM v120_xp*.

| Folder | Target Path |
|------|-------------|
|`VS2017\LLVM` | `%MB_PATH%\v120\` |
|`VS2015\LLVM v120` | `%MB_PATH%\v120\Platforms\x64\PlatformToolsets\` |
|`VS2015\LLVM v120_xp` | `%MB_PATH%\v120\Platforms\x64\PlatformToolsets\` |
|`VS2015\LLVM v120` | `%MB_PATH%\v120\Platforms\Win32\PlatformToolsets\` |
|`VS2015\LLVM v120_xp` | `%MB_PATH%\v120\Platforms\Win32\PlatformToolsets\` |

### Visual Studio 2012
The Platform Toolset is *LLVM v110* and *LLVM v110_xp*.

| Folder | Target Path |
|------|-------------|
|`VS2017\LLVM` | `%MB_PATH%\v110\` |
|`VS2015\x64\LLVM v110` | `%MB_PATH%\v110\Platforms\x64\PlatformToolsets\` |
|`VS2015\x64\LLVM v110_xp` | `%MB_PATH%\v110\Platforms\x64\PlatformToolsets\` |
|`VS2015\Win32\LLVM v110` | `%MB_PATH%\v110\Platforms\Win32\PlatformToolsets\` |
|`VS2015\Win32\LLVM v110_xp` | `%MB_PATH%\v110\Platforms\Win32\PlatformToolsets\` |

### Visual Studio 2010
The Platform Toolset is *LLVM v100*.

| Folder | Target Path |
|------|-------------|
|`VS2017\LLVM` | `%MB_PATH%\` |
|`VS2015\x64\LLVM v100` | `%MB_PATH%\Platforms\x64\PlatformToolsets\` |
|`VS2015\Win32\LLVM v100` | `%MB_PATH%\Platforms\Win32\PlatformToolsets\` |

## LLVM Windows Symbolic Link Maker
The huge size of LLVM Windows installation can be reduced dramatically by using Windows symbolic link (see [mklink command](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/mklink).

Expand Down

0 comments on commit 3340ad6

Please sign in to comment.