diff --git a/lib/config.py b/lib/config.py index a2e416b..495dfd4 100644 --- a/lib/config.py +++ b/lib/config.py @@ -43,6 +43,38 @@ def setup_build_path(build_path): else: os.makedirs(build_path, 0o755) +def adapt_cmake_command_to_arch(cmake_command): + """ + Adapt CMake command for MS Windows architecture: + + "FC=foo CC=bar cmake -DTHIS -DTHAT='this and that'" rewrites into + + "set FC=foo && set CC=bar && cmake -DTHIS -DTHAT='this and that'" + """ + + if sys.platform == 'win32': + cmake_pos=cmake_command.find('cmake') + cmake_export_vars=cmake_command[:cmake_pos] + cmake_strings=cmake_command[cmake_pos:] + print "\n strings from cmake to right:",cmake_strings + print "strings from left up to cmake:",cmake_export_vars + print "strings from left up to cmake, split:",cmake_export_vars.split() + all_modified_exported_vars="" + for exported_var in cmake_export_vars.split(): + print "exported_var=",exported_var + modified_exported_var="set " + exported_var + " && " + all_modified_exported_vars=all_modified_exported_vars+modified_exported_var + print "all_modified_exported_vars=",all_modified_exported_vars + cmake_command_win=all_modified_exported_vars+cmake_strings + print "cmake_command_win=",cmake_command_win + print "\n" + #sys.exit(-1) + cmake_command_arch = cmake_command_win + else: + cmake_command_arch = cmake_command + + return cmake_command_arch + def run_cmake(command, build_path, default_build_path): """ @@ -115,6 +147,8 @@ def configure(root_directory, build_path, cmake_command, only_show): if not only_show: setup_build_path(build_path) + cmake_command=adapt_cmake_command_to_arch(cmake_command) + print('%s\n' % cmake_command) if only_show: sys.exit(0)