67 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
'''
 | 
						|
This file is part of Telegram Desktop,
 | 
						|
the official desktop application for the Telegram messaging service.
 | 
						|
 | 
						|
For license and copyright information please follow this link:
 | 
						|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
 | 
						|
'''
 | 
						|
import sys, os, re
 | 
						|
 | 
						|
sys.dont_write_bytecode = True
 | 
						|
scriptPath = os.path.dirname(os.path.realpath(__file__))
 | 
						|
sys.path.append(scriptPath + '/../cmake')
 | 
						|
import run_cmake
 | 
						|
 | 
						|
executePath = os.getcwd()
 | 
						|
def finish(code):
 | 
						|
    global executePath
 | 
						|
    os.chdir(executePath)
 | 
						|
    sys.exit(code)
 | 
						|
 | 
						|
def error(message):
 | 
						|
    print('[ERROR] ' + message)
 | 
						|
    finish(1)
 | 
						|
 | 
						|
if sys.platform == 'win32' and not 'COMSPEC' in os.environ:
 | 
						|
    error('COMSPEC environment variable is not set.')
 | 
						|
 | 
						|
executePath = os.getcwd()
 | 
						|
scriptPath = os.path.dirname(os.path.realpath(__file__))
 | 
						|
scriptName = os.path.basename(scriptPath)
 | 
						|
 | 
						|
arguments = sys.argv[1:]
 | 
						|
 | 
						|
officialTarget = ''
 | 
						|
officialTargetFile = scriptPath + '/build/target'
 | 
						|
if os.path.isfile(officialTargetFile):
 | 
						|
    with open(officialTargetFile, 'r') as f:
 | 
						|
        for line in f:
 | 
						|
            officialTarget = line.strip()
 | 
						|
 | 
						|
arch = ''
 | 
						|
if officialTarget == 'win' or officialTarget == 'uwp':
 | 
						|
    arch = 'x86'
 | 
						|
elif officialTarget == 'win64' or officialTarget == 'uwp64':
 | 
						|
    arch = 'x64'
 | 
						|
 | 
						|
if officialTarget != '':
 | 
						|
    officialApiIdFile = scriptPath + '/../../DesktopPrivate/custom_api_id.h'
 | 
						|
    if not os.path.isfile(officialApiIdFile):
 | 
						|
        print("[ERROR] DesktopPrivate/custom_api_id.h not found.")
 | 
						|
        finish(1)
 | 
						|
    with open(officialApiIdFile, 'r') as f:
 | 
						|
        for line in f:
 | 
						|
            apiIdMatch = re.search(r'ApiId\s+=\s+(\d+)', line)
 | 
						|
            apiHashMatch = re.search(r'ApiHash\s+=\s+"([a-fA-F\d]+)"', line)
 | 
						|
            if apiIdMatch:
 | 
						|
                arguments.append('-DTDESKTOP_API_ID=' + apiIdMatch.group(1))
 | 
						|
            elif apiHashMatch:
 | 
						|
                arguments.append('-DTDESKTOP_API_HASH=' + apiHashMatch.group(1))
 | 
						|
    if arch != '':
 | 
						|
        arguments.append(arch)
 | 
						|
    finish(run_cmake.run(scriptName, arguments))
 | 
						|
elif 'linux' in sys.platform:
 | 
						|
    debugCode = run_cmake.run(scriptName, arguments, "Debug")
 | 
						|
    finish(debugCode if debugCode else run_cmake.run(scriptName, arguments, "Release"))
 | 
						|
else:
 | 
						|
    finish(run_cmake.run(scriptName, arguments))
 |