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