tunsafe-clang15/build.py
2018-08-08 13:53:31 +02:00

95 lines
3.1 KiB
Python

# SPDX-License-Identifier: AGPL-1.0-only
# Copyright (C) 2018 Ludvig Strigeus <info@tunsafe.com>. All Rights Reserved.
import os
import shutil
import win32crypt
import base64
import sys
import zipfile
import re
MSBUILD_PATH = r"C:\Dev\VS2017\MSBuild\15.0\Bin\MSBuild.exe"
NSIS_PATH = r'C:\Dev\NSIS\makeNSIS.EXE'
SIGNTOOL_PATH = r'c:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x86\signtool.exe'
SIGNTOOL_KEY_PATH = '' # put key here
SIGNTOOL_PASS = '' # put key pass here
def RmTree(path):
try:
print ('Deleting %s' % path)
shutil.rmtree(path)
except FileNotFoundError:
pass
def Run(s):
print ('Running %s' % s)
x = os.system(s)
if x:
raise Exception('Command failed (%d) : %s' % (x, s))
def CopyFile(src, dst):
shutil.copyfile(src, dst)
def SignExe(src):
print ('Signing %s' % src)
cmd = r'""c:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x86\signtool.exe" sign /f "%s" /p %s /t http://timestamp.verisign.com/scripts/timstamp.dll "%s"' % (SIGNTOOL_KEY_PATH, SIGNTOOL_PASS, src)
#cmd = r'""c:\Program Files (x86)\Windows Kits\10\bin\10.0.15063.0\x86\signtool.exe" sign %s ' % (SIGNTOOL_KEY_PATH, )
x = os.system(cmd)
if x:
raise Exception('Signing failed (%d) : %s' % (x, cmd))
def GetVersion():
for line in open(BASE + '/tunsafe_config.h', 'r'):
m = re.match('^#define TUNSAFE_VERSION_STRING "TunSafe (.*)"$', line)
if m:
return m.group(1)
raise Exception('Version not found')
#
#os.system(r'""')
command = sys.argv[1]
BASE = r'D:\Code\TunSafe'
if command == 'build_tap':
Run(r'%s /V4 installer\tap\tap-windows6.nsi' % NSIS_PATH)
SignExe(r'installer\tap\TunSafe-TAP-9.21.2.exe')
sys.exit(0)
if 1:
RmTree(BASE + r'\Win32\Release')
RmTree(BASE + r'\x64\Release')
Run('%s TunSafe.sln /t:Clean;Rebuild /p:Configuration=Release /p:Platform=x64' % MSBUILD_PATH)
Run('%s TunSafe.sln /t:Clean;Rebuild /p:Configuration=Release /p:Platform=Win32' % MSBUILD_PATH)
if 1:
CopyFile(BASE + r'\Win32\Release\TunSafe.exe',
BASE + r'\installer\x86\TunSafe.exe')
SignExe(BASE + r'\installer\x86\TunSafe.exe')
CopyFile(BASE + r'\x64\Release\TunSafe.exe',
BASE + r'\installer\x64\TunSafe.exe')
SignExe(BASE + r'\installer\x64\TunSafe.exe')
VERSION = GetVersion()
Run(r'%s /V4 -DPRODUCT_VERSION=%s installer\tunsafe.nsi ' % (NSIS_PATH, VERSION))
SignExe(BASE + r'\installer\TunSafe-%s.exe' % VERSION)
zipf = zipfile.ZipFile(BASE + '\installer\TunSafe-%s-x86.zip' % VERSION, 'w', zipfile.ZIP_DEFLATED)
zipf.write(BASE + r'\installer\x86\TunSafe.exe', 'TunSafe.exe')
zipf.write(BASE + r'\installer\License.txt', 'License.txt')
zipf.write(BASE + r'\installer\ChangeLog.txt', 'ChangeLog.txt')
zipf.write(BASE + r'\installer\TunSafe.conf', 'Config\\TunSafe.conf')
zipf.close()
zipf = zipfile.ZipFile(BASE + '\installer\TunSafe-%s-x64.zip' % VERSION, 'w', zipfile.ZIP_DEFLATED)
zipf.write(BASE + r'\installer\x64\TunSafe.exe', 'TunSafe.exe')
zipf.write(BASE + r'\installer\License.txt', 'License.txt')
zipf.write(BASE + r'\installer\ChangeLog.txt', 'ChangeLog.txt')
zipf.write(BASE + r'\installer\TunSafe.conf', 'Config\\TunSafe.conf')
zipf.close()