Imported Upstream version 2.2.0
[deb_libcec.git] / support / create-installer.bat
1 @echo off
2
3 set EXITCODE=1
4
5 rem Check for NSIS
6 IF 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
12 rem Check for VC11
13 IF "%VS110COMNTOOLS%"=="" (
14 set COMPILER11="%ProgramFiles%\Microsoft Visual Studio 11.0\Common7\IDE\VCExpress.exe"
15 ) ELSE IF EXIST "%VS110COMNTOOLS%\..\IDE\VCExpress.exe" (
16 set COMPILER11="%VS110COMNTOOLS%\..\IDE\VCExpress.exe"
17 ) ELSE IF EXIST "%VS110COMNTOOLS%\..\IDE\devenv.exe" (
18 set COMPILER11="%VS110COMNTOOLS%\..\IDE\devenv.exe"
19 ) ELSE GOTO NOSDK11
20
21 del /s /f /q ..\build
22 mkdir ..\build
23
24 IF 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
34 mkdir ..\build\x64
35
36 cd ..\project
37
38 rem Skip to libCEC/x86 when we're running on win32
39 if "%PROCESSOR_ARCHITECTURE%"=="x86" if "%PROCESSOR_ARCHITEW6432%"=="" goto libcecx86
40
41 rem Compile libCEC and cec-client x64
42 echo. Cleaning libCEC (x64)
43 %COMPILER11% libcec.sln /clean "Release|x64"
44 echo. Compiling libCEC (x64)
45 %COMPILER11% libcec.sln /build "Release|x64"
46
47 :libcecx86
48 rem Compile libCEC and cec-client Win32
49 echo. Cleaning libCEC (x86)
50 %COMPILER11% libcec.sln /clean "Release|x86"
51 echo. Compiling libCEC (x86)
52 %COMPILER11% libcec.sln /build "Release|x86"
53
54 rem Clean things up before creating the installer
55 del /q /f ..\build\LibCecSharp.pdb
56 del /q /f ..\build\CecSharpTester.pdb
57 del /q /f ..\build\cec-tray.pdb
58 del /q /f ..\build\cec-tray.vshost.exe.manifest
59 del /q /f ..\build\cec-.vshost.exe
60 del /q /f ..\build\x64\LibCecSharp.pdb
61 del /q /f ..\build\x64\CecSharpTester.pdb
62 del /q /f ..\build\x64\cec-tray.pdb
63 del /q /f ..\build\x64\cec-tray.vshost.exe.manifest
64 del /q /f ..\build\x64\cec-.vshost.exe
65
66 rem Check for sign-binary.cmd, only present on the Pulse-Eight production build system
67 rem Calls signtool.exe and signs the DLLs with Pulse-Eight's code signing key
68 IF NOT EXIST "..\support\private\sign-binary.cmd" GOTO CREATEINSTALLER
69 echo. Signing all binaries
70 CALL ..\support\private\sign-binary.cmd ..\build\cec-client.exe
71 CALL ..\support\private\sign-binary.cmd ..\build\CecSharpTester.exe
72 CALL ..\support\private\sign-binary.cmd ..\build\libcec.dll
73 CALL ..\support\private\sign-binary.cmd ..\build\LibCecSharp.dll
74 CALL ..\support\private\sign-binary.cmd ..\build\cec-tray.exe
75 CALL ..\support\private\sign-binary.cmd ..\build\x64\cec-client.exe
76 CALL ..\support\private\sign-binary.cmd ..\build\x64\CecSharpTester.exe
77 CALL ..\support\private\sign-binary.cmd ..\build\x64\libcec.dll
78 CALL ..\support\private\sign-binary.cmd ..\build\x64\LibCecSharp.dll
79 CALL ..\support\private\sign-binary.cmd ..\build\x64\cec-tray.exe
80
81 :CREATEINSTALLER
82 echo. Creating the installer
83 cd ..\build\x64
84 copy libcec.dll libcec.x64.dll
85 copy cec-client.exe cec-client.x64.exe
86 cd ..\..\project
87 %NSIS% /V1 /X"SetCompressor /FINAL lzma" "libCEC.nsi"
88
89 IF NOT EXIST "..\build\libCEC-installer.exe" GOTO :ERRORCREATINGINSTALLER
90
91 rem Sign the installer if sign-binary.cmd exists
92 IF EXIST "..\support\private\sign-binary.cmd" (
93 echo. Signing the installer binaries
94 CALL ..\support\private\sign-binary.cmd ..\build\libCEC-installer.exe
95 )
96
97 IF "%1%"=="" (
98 echo. The installer can be found here: ..\build\libCEC-installer.exe
99 ) ELSE (
100 move ..\build\libCEC-installer.exe ..\build\libCEC-%1%-installer.exe
101 echo. The installer can be found here: ..\build\libCEC-%1%-installer.exe
102 )
103
104 set EXITCODE=0
105 GOTO EXIT
106
107 :NOSDK11
108 echo. Visual Studio 2012 was not found on your system.
109 GOTO EXIT
110
111 :NOSIS
112 echo. NSIS could not be found on your system.
113 GOTO EXIT
114
115 :NODDK
116 echo. Windows DDK could not be found on your system
117 GOTO EXIT
118
119 :ERRORCREATINGINSTALLER
120 echo. The installer could not be created. The most likely cause is that something went wrong while compiling.
121
122 :EXIT
123 del /q /f ..\build\cec-client.exe
124 del /q /f ..\build\CecSharpTester.exe
125 del /q /f ..\build\cec-tray.exe
126 del /q /f ..\build\*.dll
127 del /q /f ..\build\*.lib
128 del /q /f ..\build\*.exp
129 del /q /f ..\build\*.xml
130 del /q /f ..\build\*.metagen
131 del /s /f /q ..\build\x64
132 rmdir ..\build\x64
133 cd ..\support
134
135 IF "%1%"=="" (
136 echo. exitcode = %EXITCODE%
137 ) ELSE (
138 exit %EXITCODE%
139 )
140