diff options
-rw-r--r-- | tests/test_other.py | 8 | ||||
-rw-r--r-- | tools/shared.py | 17 |
2 files changed, 14 insertions, 11 deletions
diff --git a/tests/test_other.py b/tests/test_other.py index 0fc24ea7..d7e7deb8 100644 --- a/tests/test_other.py +++ b/tests/test_other.py @@ -300,7 +300,7 @@ f.close() try: os.chdir(tempdirname) - verbose = os.getenv('EM_BUILD_VERBOSE') != None and int(os.getenv('EM_BUILD_VERBOSE')) != 0 + verbose_level = int(os.getenv('EM_BUILD_VERBOSE')) if os.getenv('EM_BUILD_VERBOSE') != None else 0 # Run Cmake if invoke_method == 'cmake': cmd = ['cmake', '-DCMAKE_TOOLCHAIN_FILE='+path_from_root('cmake', 'Platform', 'Emscripten.cmake'), @@ -308,7 +308,7 @@ f.close() '-G', generator, cmakelistsdir] else: cmd = [emconfigure, 'cmake', '-DCMAKE_BUILD_TYPE=' + configuration, '-G', generator, cmakelistsdir] - ret = Popen(cmd, stdout=None if verbose else PIPE, stderr=None if verbose else PIPE).communicate() + ret = Popen(cmd, stdout=None if verbose_level >= 2 else PIPE, stderr=None if verbose_level >= 1 else PIPE).communicate() if len(ret) > 1 and ret[1] != None and len(ret[1].strip()) > 0: print >> sys.stderr, ret[1] # If there were any errors, print them directly to console for diagnostics. if len(ret) > 1 and ret[1] != None and 'error' in ret[1].lower(): @@ -318,8 +318,8 @@ f.close() assert os.path.exists(tempdirname + '/Makefile'), 'CMake call did not produce a Makefile!' # Build - cmd = [make_command] + (['VERBOSE=1'] if verbose else []) - ret = Popen(cmd, stdout=None if verbose else PIPE).communicate() + cmd = [make_command] + (['VERBOSE=1'] if verbose_level >= 3 else []) + ret = Popen(cmd, stdout=None if verbose_level >= 2 else PIPE).communicate() if len(ret) > 1 and ret[1] != None and len(ret[1].strip()) > 0: print >> sys.stderr, ret[1] # If there were any errors, print them directly to console for diagnostics. if len(ret) > 0 and ret[0] != None and 'error' in ret[0].lower() and not '0 error(s)' in ret[0].lower(): diff --git a/tools/shared.py b/tools/shared.py index 1426e792..59464d14 100644 --- a/tools/shared.py +++ b/tools/shared.py @@ -877,13 +877,13 @@ class Building: # except: # pass env = Building.get_building_env(native) - log_to_file = os.getenv('EM_BUILD_VERBOSE') == None or int(os.getenv('EM_BUILD_VERBOSE')) == 0 + verbose_level = int(os.getenv('EM_BUILD_VERBOSE')) if os.getenv('EM_BUILD_VERBOSE') != None else 0 for k, v in env_init.iteritems(): env[k] = v if configure: # Useful in debugging sometimes to comment this out (and the lines below up to and including the |link| call) try: - Building.configure(configure + configure_args, env=env, stdout=open(os.path.join(project_dir, 'configure_'), 'w') if log_to_file else None, - stderr=open(os.path.join(project_dir, 'configure_err'), 'w') if log_to_file else None) + Building.configure(configure + configure_args, env=env, stdout=open(os.path.join(project_dir, 'configure_'), 'w') if verbose_level < 2 else None, + stderr=open(os.path.join(project_dir, 'configure_err'), 'w') if verbose_level < 1 else None) except subprocess.CalledProcessError, e: pass # Ignore exit code != 0 def open_make_out(i, mode='r'): @@ -891,13 +891,16 @@ class Building: def open_make_err(i, mode='r'): return open(os.path.join(project_dir, 'make_err' + str(i)), mode) - + + if verbose_level >= 3: + make_args += ['VERBOSE=1'] + for i in range(2): # FIXME: Sad workaround for some build systems that need to be run twice to succeed (e.g. poppler) with open_make_out(i, 'w') as make_out: with open_make_err(i, 'w') as make_err: try: - Building.make(make + make_args, stdout=make_out if log_to_file else None, - stderr=make_err if log_to_file else None, env=env) + Building.make(make + make_args, stdout=make_out if verbose_level < 2 else None, + stderr=make_err if verbose_level < 1 else None, env=env) except subprocess.CalledProcessError, e: pass # Ignore exit code != 0 try: @@ -909,7 +912,7 @@ class Building: break except Exception, e: if i > 0: - if log_to_file: + if verbose_level == 0: # Due to the ugly hack above our best guess is to output the first run with open_make_err(0) as ferr: for line in ferr: |