From 893a98feea5c60059a173292059fdc3c484f5e23 Mon Sep 17 00:00:00 2001 From: Rustam Zaitov Date: Sun, 15 Sep 2013 03:50:18 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BB=20=D0=B1=D0=B8=D0=BB=D0=B4=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B5=D0=BA=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/buld.py | 28 ++++------------------------ scripts/instruments.py | 36 +++++++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 25 deletions(-) diff --git a/scripts/buld.py b/scripts/buld.py index d94e727..875940d 100644 --- a/scripts/buld.py +++ b/scripts/buld.py @@ -1,6 +1,4 @@ -from subprocess import call import os -import re import settings import instruments @@ -20,29 +18,11 @@ import instruments # print(projects_to_build) sln_config = "Debug|iPhone Simulator" -build_cmd_pattern = '{0} -v build "--configuration:{1}" "--target:Build" {2}' -# build_cmd_text = build_cmd_pattern.format(settings.mdtool, sln_config, settings.sln_path) - -# print(build_cmd_text) -# ret_code = call(build_cmd_text, shell=True) -# print('finished with return code: {0}'.format(ret_code)) - sln_dir = os.path.dirname(settings.sln_path) -# sln_file = open(settings.sln_path) -# sln_file_content = sln_file.read() -# print(sln_file_content) -# project_description_re = re.compile(r' = "(?P\S+)", "(?P[\S\\]+csproj)"') -# match_iter = project_description_re.finditer(sln_file_content) +instruments.CreateOrRestoreFromBackup(sln_dir, settings.files_for_backup) +instruments.RemoveProjectFromSolution(settings.sln_path, settings.projects_to_exclude) +instruments.CleanSolution(settings.mdtool, settings.sln_path) +instruments.BuildSolution(settings.mdtool, settings.sln_path, sln_config) -# project_descriptions = [m.groupdict() for m in match_iter] -# for project_description in project_descriptions: -# rel_path = project_description['project_rel_path'].replace('\\', '/') -# abs_path = os.path.join(sln_dir, rel_path) -# build_cmd_text = build_cmd_pattern.format(settings.mdtool, sln_config, abs_path) -# print(build_cmd_text) -# ret_code = call(build_cmd_text, shell=True) -# print('finished with return code: {0}'.format(ret_code)) - -# instruments.CreateOrRestoreFromBackup(sln_dir, settings.files_for_backup) # instruments.DeleteBackups(sln_dir, settings.files_for_backup) \ No newline at end of file diff --git a/scripts/instruments.py b/scripts/instruments.py index c73764b..ac977f0 100644 --- a/scripts/instruments.py +++ b/scripts/instruments.py @@ -1,5 +1,7 @@ +from subprocess import call import shutil import os +import re def MapToBackupName(origin_path): @@ -49,4 +51,36 @@ def ResetDirectory(base_dir, relative_path_to_files): CreateOrRestoreFromBackup(base_dir, relative_path_to_files) DeleteBackups(base_dir, relative_path_to_files) - return None \ No newline at end of file + return None + +def RemoveProjectFromSolution(abs_path_to_sln, project_names): + + sln_file = open(abs_path_to_sln, 'r+') + content = sln_file.read() + + for pn in project_names: + reg_pattern = r'\n*Project.*?"{0}".*?\n*EndProject'.format(pn) + content = re.sub(reg_pattern, "", content) + + sln_file.seek(0) + sln_file.write(content) + sln_file.truncate() + sln_file.close() + +def CleanSolution(mdtool, abs_path_to_sln): + + clean_cmd_pattern = '{0} -v build "--target:Clean" {1}' + clean_cmd_text = clean_cmd_pattern.format(mdtool, abs_path_to_sln) + + print(clean_cmd_text) + ret_code = call(clean_cmd_text, shell=True) + print('finished with return code: {0}'.format(ret_code)) + +def BuildSolution(mdtool, abs_path_to_sln, config): + + build_cmd_pattern = '{0} -v build "--configuration:{1}" "--target:Build" {2}' + build_cmd_text = build_cmd_pattern.format(mdtool, config, abs_path_to_sln) + + print(build_cmd_text) + ret_code = call(build_cmd_text, shell=True) + print('finished with return code: {0}'.format(ret_code))