tdesktop/Telegram/gyp/create_env.py
John Preston a4c98e74ce GYP/Ninja Windows build: codegen done, WinXP done, Release done.
MetaLang, codegen_style and codegen_numbers utilities are now
built by GYP targets, rules added for codegen_style and actions
added for codegen_numbers and MetaLang.

WinXP supported without Windows 7.1A SDK, but with explicitly
setting MinimumRequiredVersion=5.01. It works (and that is strange).

If you attempt to use MSBuild instead of Ninja you should add
the latest Windows SDK include paths to include_dirs, because v140_xp
toolset implies the Windows 7.1A SDK (and is ignored by Ninja).
2016-08-13 20:43:21 +03:00

58 lines
1.7 KiB
Python

'''
This file is part of Telegram Desktop,
the official desktop version of Telegram messaging app, see https://telegram.org
Telegram Desktop is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
It is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
In addition, as a special exception, the copyright holders give permission
to link the code of portions of this program with the OpenSSL library.
Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
Copyright (c) 2014 John Preston, https://desktop.telegram.org
'''
import glob
import re
import os
# Generate custom environment.x86 for ninja
# We use msbuild.log to extract some variables
variables = [
'TMP',
'SYSTEMROOT',
'TEMP',
'LIB',
'LIBPATH',
'PATH',
'PATHEXT',
'INCLUDE',
]
var_values = {}
for var_name in variables:
var_values[var_name] = os.environ[var_name]
next_contains_var = 0
with open('msbuild.log') as f:
for line in f:
if (re.match(r'^\s*Task "SetEnv"\s*$', line)):
next_contains_var = 1
elif next_contains_var:
cleanline = re.sub(r'^\s*|\s*$', '', line)
name_value_pair = re.match(r'^([A-Z]+)=(.+)$', cleanline)
if name_value_pair:
var_values[name_value_pair.group(1)] = name_value_pair.group(2)
next_contains_var = 0
out = open('environment.x86', 'wb')
for var_name in variables:
out.write(var_name + '=' + var_values[var_name] + '\0')
out.write('\0')
out.close()