Merge branch 'master' into release
[deb_libcec.git] / support / create-installer.bat
... / ...
CommitLineData
1@echo off
2
3set EXITCODE=1
4
5rem Check for NSIS
6IF EXIST "%ProgramFiles%\NSIS\makensis.exe" (
7 set NSIS="%ProgramFiles%\NSIS\makensis.exe"
8) ELSE IF EXIST "%ProgramFiles(x86)%\NSIS\makensis.exe" (
9 set NSIS="%ProgramFiles(x86)%\NSIS\makensis.exe"
10) ELSE GOTO NONSIS
11
12rem Check for VC10
13IF "%VS100COMNTOOLS%"=="" (
14 set COMPILER10="%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\VCExpress.exe"
15) ELSE IF EXIST "%VS100COMNTOOLS%\..\IDE\VCExpress.exe" (
16 set COMPILER10="%VS100COMNTOOLS%\..\IDE\VCExpress.exe"
17) ELSE IF EXIST "%VS100COMNTOOLS%\..\IDE\devenv.exe" (
18 set COMPILER10="%VS100COMNTOOLS%\..\IDE\devenv.exe"
19) ELSE GOTO NOSDK10
20
21del /s /f /q ..\build
22mkdir ..\build
23
24IF EXIST "..\support\p8-usbcec-driver-installer.exe" (
25 copy "..\support\p8-usbcec-driver-installer.exe" "..\build\."
26) ELSE (
27 rem Check for the Windows DDK
28 IF NOT EXIST "C:\WinDDK\7600.16385.1" GOTO NODDK
29 set DDK="C:\WinDDK\7600.16385.1"
30
31 call create-driver-installer.cmd
32)
33
34mkdir ..\build\x64
35
36cd ..\project
37
38rem Skip to libCEC/x86 when we're running on win32
39if "%PROCESSOR_ARCHITECTURE%"=="x86" if "%PROCESSOR_ARCHITEW6432%"=="" goto libcecx86
40
41rem Compile libCEC and cec-client x64
42echo. Cleaning libCEC (x64)
43%COMPILER10% libcec.sln /clean "Release|x64"
44echo. Compiling libCEC (x64)
45%COMPILER10% libcec.sln /build "Release|x64" /project libcec
46echo. Compiling cec-client (x64)
47%COMPILER10% libcec.sln /build "Release|x64" /project testclient
48
49:libcecx86
50rem Compile libCEC and cec-client Win32
51echo. Cleaning libCEC (x86)
52%COMPILER10% libcec.sln /clean "Release|Win32"
53echo. Compiling libCEC (x86)
54%COMPILER10% libcec.sln /build "Release|Win32" /project libcec
55echo. Compiling cec-client (x86)
56%COMPILER10% libcec.sln /build "Release|Win32" /project testclient
57
58rem Check for VC9
59IF "%VS90COMNTOOLS%"=="" (
60 set COMPILER9="%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\VCExpress.exe"
61) ELSE IF EXIST "%VS90COMNTOOLS%\..\IDE\devenv.exe" (
62 set COMPILER9="%VS90COMNTOOLS%\..\IDE\devenv.exe"
63) ELSE GOTO NOSDK9
64
65rem Skip to libCEC/x86 when we're running on win32
66if "%PROCESSOR_ARCHITECTURE%"=="x86" if "%PROCESSOR_ARCHITEW6432%"=="" goto libcecsharpx86
67
68rem Compile LibCecSharp (x64)
69echo. Cleaning LibCecSharp (x64)
70%COMPILER9% LibCecSharp.Net2.sln /clean "Release|x64"
71echo. Compiling LibCecSharp (x64)
72%COMPILER9% LibCecSharp.sln /build "Release|x64" /project LibCecSharp
73%COMPILER9% LibCecSharp.sln /build "Release|x64" /project CecSharpTester
74%COMPILER9% LibCecSharp.sln /build "Release|x64" /project LibCecTray
75
76copy ..\build\LibCecSharp.dll ..\build\x64\LibCecSharp.dll
77copy ..\build\CecSharpTester.exe ..\build\x64\CecSharpTester.exe
78copy ..\build\cec-tray.exe ..\build\x64\cec-tray.exe
79
80:libcecsharpx86
81rem Compile LibCecSharp (x86)
82echo. Cleaning LibCecSharp (x86)
83%COMPILER9% LibCecSharp.sln /clean "Release|x86"
84echo. Compiling LibCecSharp (x86)
85%COMPILER9% LibCecSharp.sln /build "Release|x86" /project LibCecSharp
86%COMPILER9% LibCecSharp.sln /build "Release|x86" /project CecSharpTester
87%COMPILER9% LibCecSharp.sln /build "Release|x86" /project LibCecTray
88
89:NOSDK9
90rem Clean things up before creating the installer
91del /q /f ..\build\LibCecSharp.pdb
92del /q /f ..\build\CecSharpTester.pdb
93del /q /f ..\build\cec-tray.pdb
94del /q /f ..\build\cec-tray.vshost.exe.manifest
95del /q /f ..\build\cec-.vshost.exe
96copy ..\build\cec-client.x64.exe ..\build\x64\cec-client.x64.exe
97del /q /f ..\build\cec-client.x64.exe
98copy ..\build\libcec.x64.dll ..\build\x64\libcec.x64.dll
99del /q /f ..\build\libcec.x64.dll
100copy ..\build\libcec.x64.lib ..\build\x64\libcec.x64.lib
101del /q /f ..\build\libcec.x64.lib
102
103rem Check for sign-binary.cmd, only present on the Pulse-Eight production build system
104rem Calls signtool.exe and signs the DLLs with Pulse-Eight's code signing key
105IF NOT EXIST "..\support\private\sign-binary.cmd" GOTO CREATEINSTALLER
106echo. Signing all binaries
107CALL ..\support\private\sign-binary.cmd ..\build\cec-client.exe
108CALL ..\support\private\sign-binary.cmd ..\build\CecSharpTester.exe
109CALL ..\support\private\sign-binary.cmd ..\build\libcec.dll
110CALL ..\support\private\sign-binary.cmd ..\build\LibCecSharp.dll
111CALL ..\support\private\sign-binary.cmd ..\build\cec-tray.exe
112CALL ..\support\private\sign-binary.cmd ..\build\x64\cec-client.x64.exe
113CALL ..\support\private\sign-binary.cmd ..\build\x64\CecSharpTester.exe
114CALL ..\support\private\sign-binary.cmd ..\build\x64\libcec.x64.dll
115CALL ..\support\private\sign-binary.cmd ..\build\x64\LibCecSharp.dll
116CALL ..\support\private\sign-binary.cmd ..\build\x64\cec-tray.exe
117
118:CREATEINSTALLER
119echo. Creating the installer
120%NSIS% /V1 /X"SetCompressor /FINAL lzma" "libCEC.nsi"
121
122IF NOT EXIST "..\build\libCEC-installer.exe" GOTO :ERRORCREATINGINSTALLER
123
124rem Sign the installer if sign-binary.cmd exists
125IF EXIST "..\support\private\sign-binary.cmd" (
126 echo. Signing the installer binaries
127 CALL ..\support\private\sign-binary.cmd ..\build\libCEC-installer.exe
128)
129
130IF "%1%"=="" (
131 echo. The installer can be found here: ..\build\libCEC-installer.exe
132) ELSE (
133 move ..\build\libCEC-installer.exe ..\build\libCEC-%1%-installer.exe
134 echo. The installer can be found here: ..\build\libCEC-%1%-installer.exe
135)
136
137set EXITCODE=0
138GOTO EXIT
139
140:NOSDK10
141echo. Both Visual Studio 2010 and Visual C++ Express 2010 were not found on your system.
142GOTO EXIT
143
144:NOSIS
145echo. NSIS could not be found on your system.
146GOTO EXIT
147
148:NODDK
149echo. Windows DDK could not be found on your system
150GOTO EXIT
151
152:ERRORCREATINGINSTALLER
153echo. The installer could not be created. The most likely cause is that something went wrong while compiling.
154
155:EXIT
156del /q /f ..\build\cec-client.exe
157del /q /f ..\build\CecSharpTester.exe
158del /q /f ..\build\cec-tray.exe
159del /q /f ..\build\*.dll
160del /q /f ..\build\*.lib
161del /q /f ..\build\*.exp
162del /q /f ..\build\*.xml
163del /s /f /q ..\build\x64
164rmdir ..\build\x64
165cd ..\support
166
167IF "%1%"=="" (
168 echo. exitcode = %EXITCODE%
169) ELSE (
170 exit %EXITCODE%
171)
172