From 2fbaad15d7324b4b67a968a6c3831416f384393b Mon Sep 17 00:00:00 2001 From: Mathias Soeken Date: Wed, 14 Nov 2018 09:57:47 -0800 Subject: [PATCH 1/4] Build example for dotnetcore. --- scripts/mk_util.py | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/scripts/mk_util.py b/scripts/mk_util.py index 88d7d7246..cfcf78538 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -2391,7 +2391,41 @@ class DotNetExampleComponent(ExampleComponent): out.write('\n') out.write('_ex_%s: %s\n\n' % (self.name, exefile)) if is_dotnet_core_enabled(): - print("TBD: build script for dotnet_example on core") + proj_name = 'dotnet_example.csproj' + out.write('_ex_%s:' % self.name) + for csfile in get_cs_files(self.ex_dir): + out.write(' ') + out.write(os.path.join(self.to_ex_dir, csfile)) + out.write('\n') + out.write('\t@echo "" > %s\n' % proj_name) + out.write('\t@echo " " >> %s\n' % proj_name) + out.write('\t@echo " Exe" >> %s\n' % proj_name) + out.write('\t@echo " netcoreapp2.0" >> %s\n' % proj_name) + out.write('\t@echo " ') + if VS_X64: + out.write('x64') + elif VS_ARM: + out.write('ARM') + else: + out.write('x86') + out.write('" >> %s\n' % proj_name) + out.write('\t@echo " " >> %s\n' % proj_name) + out.write('\t@echo " " >> %s\n' % proj_name) + out.write('\t@echo " " >> %s\n' % (self.to_ex_dir, proj_name)) + out.write('\t@echo " " >> %s\n' % proj_name) + out.write('\t@echo " Microsoft.Z3.dll" >> %s\n' % proj_name) + out.write('\t@echo " " >> %s\n' % proj_name) + out.write('\t@echo " " >> %s\n' % proj_name) + out.write('\t@echo "" >> %s\n' % proj_name) + + dotnetCmdLine = [DOTNET, "build", proj_name] + dotnetCmdLine.extend(['-c']) + if DEBUG_MODE: + dotnetCmdLine.extend(['Debug']) + else: + dotnetCmdLine.extend(['Release']) + MakeRuleCmd.write_cmd(out, ' '.join(dotnetCmdLine)) + out.write('\n') class JavaExampleComponent(ExampleComponent): def __init__(self, name, path): From d4567a125588160d7bf0517d27000b26788580ad Mon Sep 17 00:00:00 2001 From: Mathias Soeken Date: Wed, 14 Nov 2018 11:11:25 -0800 Subject: [PATCH 2/4] Fix `echo` command for Windows. --- scripts/mk_util.py | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/scripts/mk_util.py b/scripts/mk_util.py index cfcf78538..472da8595 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -2396,27 +2396,35 @@ class DotNetExampleComponent(ExampleComponent): for csfile in get_cs_files(self.ex_dir): out.write(' ') out.write(os.path.join(self.to_ex_dir, csfile)) + + def mk_echo(msg): + echo_ex_qu = '' if IS_WINDOWS else '"' + echo_in_qu = '"' if IS_WINDOWS else '\\"' + echo_esc = '^' if IS_WINDOWS else '' + + msg = msg.replace('"', echo_in_qu).replace('<', echo_esc + '<').replace('>', echo_esc + '>') + out.write('\t@echo %s%s%s > %s\n' % (echo_ex_qu, msg, echo_ex_qu, proj_name)) + out.write('\n') - out.write('\t@echo "" > %s\n' % proj_name) - out.write('\t@echo " " >> %s\n' % proj_name) - out.write('\t@echo " Exe" >> %s\n' % proj_name) - out.write('\t@echo " netcoreapp2.0" >> %s\n' % proj_name) - out.write('\t@echo " ') + mk_echo('') + mk_echo(' ') + mk_echo(' Exe') + mk_echo(' netcoreapp2.0') if VS_X64: - out.write('x64') + platform = 'x64' elif VS_ARM: - out.write('ARM') + platform = 'ARM' else: - out.write('x86') - out.write('" >> %s\n' % proj_name) - out.write('\t@echo " " >> %s\n' % proj_name) - out.write('\t@echo " " >> %s\n' % proj_name) - out.write('\t@echo " " >> %s\n' % (self.to_ex_dir, proj_name)) - out.write('\t@echo " " >> %s\n' % proj_name) - out.write('\t@echo " Microsoft.Z3.dll" >> %s\n' % proj_name) - out.write('\t@echo " " >> %s\n' % proj_name) - out.write('\t@echo " " >> %s\n' % proj_name) - out.write('\t@echo "" >> %s\n' % proj_name) + platform = 'x86' + mk_echo(' %s' % platform) + mk_echo(' ') + mk_echo(' ') + mk_echo(' ' % self.to_ex_dir) + mk_echo(' ') + mk_echo(' Microsoft.Z3.dll') + mk_echo(' ') + mk_echo('') dotnetCmdLine = [DOTNET, "build", proj_name] dotnetCmdLine.extend(['-c']) From e39907c4810ce51dec97936965d64e8c109915ee Mon Sep 17 00:00:00 2001 From: Mathias Soeken Date: Wed, 14 Nov 2018 11:25:18 -0800 Subject: [PATCH 3/4] Fix some problems in `mk_echo`. --- scripts/mk_util.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts/mk_util.py b/scripts/mk_util.py index 472da8595..b6afaf897 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -2397,13 +2397,14 @@ class DotNetExampleComponent(ExampleComponent): out.write(' ') out.write(os.path.join(self.to_ex_dir, csfile)) - def mk_echo(msg): + def mk_echo(msg, first = False): echo_ex_qu = '' if IS_WINDOWS else '"' echo_in_qu = '"' if IS_WINDOWS else '\\"' echo_esc = '^' if IS_WINDOWS else '' + echo_dir = '>' if first else '>>' msg = msg.replace('"', echo_in_qu).replace('<', echo_esc + '<').replace('>', echo_esc + '>') - out.write('\t@echo %s%s%s > %s\n' % (echo_ex_qu, msg, echo_ex_qu, proj_name)) + out.write('\t@echo %s%s%s %s %s\n' % (echo_ex_qu, msg, echo_ex_qu, echo_dir, proj_name)) out.write('\n') mk_echo('') @@ -2421,7 +2422,7 @@ class DotNetExampleComponent(ExampleComponent): mk_echo(' ') mk_echo(' ' % self.to_ex_dir) mk_echo(' ') - mk_echo(' Microsoft.Z3.dllMicrosoft.Z3.dll') mk_echo(' ') mk_echo(' ') mk_echo('') From 33363aeb58ab641c8e9b3c3a9ffaaf33e8c24f5e Mon Sep 17 00:00:00 2001 From: Mathias Soeken Date: Wed, 14 Nov 2018 11:27:55 -0800 Subject: [PATCH 4/4] Fix problem in `mk_echo`. --- scripts/mk_util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mk_util.py b/scripts/mk_util.py index b6afaf897..aaeed1dea 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -2407,7 +2407,7 @@ class DotNetExampleComponent(ExampleComponent): out.write('\t@echo %s%s%s %s %s\n' % (echo_ex_qu, msg, echo_ex_qu, echo_dir, proj_name)) out.write('\n') - mk_echo('') + mk_echo('', True) mk_echo(' ') mk_echo(' Exe') mk_echo(' netcoreapp2.0')