mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	Enabled test for OpenMP in Windows (for old and express versions of visual studio).
Fixes #8
This commit is contained in:
		
							parent
							
								
									4a0eb93f87
								
							
						
					
					
						commit
						0f03cd2ae0
					
				
					 1 changed files with 17 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -226,7 +226,10 @@ def test_openmp(cc):
 | 
			
		|||
    t = TempFile('tstomp.cpp')
 | 
			
		||||
    t.add('#include<omp.h>\nint main() { return omp_in_parallel() ? 1 : 0; }\n')
 | 
			
		||||
    t.commit()
 | 
			
		||||
    return exec_compiler_cmd([cc, CPPFLAGS, 'tstomp.cpp', LDFLAGS, '-fopenmp']) == 0
 | 
			
		||||
    if IS_WINDOWS:
 | 
			
		||||
        return exec_compiler_cmd([cc, CPPFLAGS, 'tstomp.cpp', LDFLAGS, '/openmp']) == 0
 | 
			
		||||
    else:
 | 
			
		||||
        return exec_compiler_cmd([cc, CPPFLAGS, 'tstomp.cpp', LDFLAGS, '-fopenmp']) == 0
 | 
			
		||||
 | 
			
		||||
def find_jni_h(path):
 | 
			
		||||
    for root, dirs, files in os.walk(path):
 | 
			
		||||
| 
						 | 
				
			
			@ -1706,21 +1709,26 @@ def mk_config():
 | 
			
		|||
            'SLINK_OUT_FLAG=/Fe\n'
 | 
			
		||||
            'OS_DEFINES=/D _WINDOWS\n')
 | 
			
		||||
        extra_opt = ''
 | 
			
		||||
        HAS_OMP = test_openmp('cl')
 | 
			
		||||
        if HAS_OMP:
 | 
			
		||||
            extra_opt = ' /openmp'
 | 
			
		||||
        else:
 | 
			
		||||
            extra_opt = ' -D_NO_OMP_'
 | 
			
		||||
        if GIT_HASH:
 | 
			
		||||
            extra_opt = '%s /D Z3GITHASH=%s' % (extra_opt, GIT_HASH)
 | 
			
		||||
            extra_opt = ' %s /D Z3GITHASH=%s' % (extra_opt, GIT_HASH)
 | 
			
		||||
        if DEBUG_MODE:
 | 
			
		||||
            config.write(
 | 
			
		||||
                'LINK_FLAGS=/nologo /MDd\n'
 | 
			
		||||
                'SLINK_FLAGS=/nologo /LDd\n')
 | 
			
		||||
            if not VS_X64:
 | 
			
		||||
                config.write(
 | 
			
		||||
                    'CXXFLAGS=/c /GL /Zi /nologo /openmp /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D Z3DEBUG %s /D _CONSOLE /D _TRACE /D _WINDOWS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /analyze- /arch:SSE2\n' % extra_opt)
 | 
			
		||||
                    'CXXFLAGS=/c /GL /Zi /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D Z3DEBUG %s /D _CONSOLE /D _TRACE /D _WINDOWS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /analyze- /arch:SSE2\n' % extra_opt)
 | 
			
		||||
                config.write(
 | 
			
		||||
                    'LINK_EXTRA_FLAGS=/link /LTCG /DEBUG /MACHINE:X86 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:8388608 /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE /NXCOMPAT\n'
 | 
			
		||||
                    'SLINK_EXTRA_FLAGS=/link /LTCG /DEBUG /MACHINE:X86 /SUBSYSTEM:WINDOWS /INCREMENTAL:NO /STACK:8388608 /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE:NO\n')
 | 
			
		||||
            else:
 | 
			
		||||
                config.write(
 | 
			
		||||
                    'CXXFLAGS=/c /GL /Zi /nologo /openmp /W3 /WX- /Od /Oy- /D WIN32 /D _AMD64_ /D _DEBUG /D Z3DEBUG %s /D _CONSOLE /D _TRACE /D _WINDOWS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /analyze-\n' % extra_opt)
 | 
			
		||||
                    'CXXFLAGS=/c /GL /Zi /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _AMD64_ /D _DEBUG /D Z3DEBUG %s /D _CONSOLE /D _TRACE /D _WINDOWS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /analyze-\n' % extra_opt)
 | 
			
		||||
                config.write(
 | 
			
		||||
                    'LINK_EXTRA_FLAGS=/link /LTCG /DEBUG /MACHINE:X64 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:8388608 /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE /NXCOMPAT\n'
 | 
			
		||||
                    'SLINK_EXTRA_FLAGS=/link /LTCG /DEBUG /MACHINE:X64 /SUBSYSTEM:WINDOWS /INCREMENTAL:NO /STACK:8388608 /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE:NO\n')
 | 
			
		||||
| 
						 | 
				
			
			@ -1730,16 +1738,16 @@ def mk_config():
 | 
			
		|||
                'LINK_FLAGS=/nologo /MD\n'
 | 
			
		||||
                'SLINK_FLAGS=/nologo /LD\n')
 | 
			
		||||
            if TRACE:
 | 
			
		||||
                extra_opt = '%s /D _TRACE' % extra_opt
 | 
			
		||||
                extra_opt = '%s /D _TRACE ' % extra_opt
 | 
			
		||||
            if not VS_X64:
 | 
			
		||||
                config.write(
 | 
			
		||||
                    'CXXFLAGS=/nologo /c /GL /Zi /openmp /W3 /WX- /O2 /Oy- /D _EXTERNAL_RELEASE /D WIN32 /D NDEBUG %s /D _CONSOLE /D _WINDOWS /D ASYNC_COMMANDS /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /analyze- /arch:SSE2\n' % extra_opt)
 | 
			
		||||
                    'CXXFLAGS=/nologo /c /GL /Zi /W3 /WX- /O2 /Oy- /D _EXTERNAL_RELEASE /D WIN32 /D NDEBUG %s /D _CONSOLE /D _WINDOWS /D ASYNC_COMMANDS /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /analyze- /arch:SSE2\n' % extra_opt)
 | 
			
		||||
                config.write(
 | 
			
		||||
                    'LINK_EXTRA_FLAGS=/link /LTCG /DEBUG /MACHINE:X86 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:8388608 /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE /NXCOMPAT\n'
 | 
			
		||||
                    'SLINK_EXTRA_FLAGS=/link /LTCG /DEBUG /MACHINE:X86 /SUBSYSTEM:WINDOWS /INCREMENTAL:NO /STACK:8388608 /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE:NO\n')
 | 
			
		||||
            else:
 | 
			
		||||
                config.write(
 | 
			
		||||
                    'CXXFLAGS=/c /GL /Zi /nologo /openmp /W3 /WX- /O2 /D _EXTERNAL_RELEASE /D WIN32 /D NDEBUG %s /D _LIB /D _WINDOWS /D _AMD64_ /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /TP\n' % extra_opt)
 | 
			
		||||
                    'CXXFLAGS=/c /GL /Zi /nologo /W3 /WX- /O2 /D _EXTERNAL_RELEASE /D WIN32 /D NDEBUG %s /D _LIB /D _WINDOWS /D _AMD64_ /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /TP\n' % extra_opt)
 | 
			
		||||
                config.write(
 | 
			
		||||
                    'LINK_EXTRA_FLAGS=/link /LTCG /MACHINE:X64 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:8388608\n'
 | 
			
		||||
                    'SLINK_EXTRA_FLAGS=/link /LTCG /MACHINE:X64 /SUBSYSTEM:WINDOWS /INCREMENTAL:NO /STACK:8388608\n')
 | 
			
		||||
| 
						 | 
				
			
			@ -1747,7 +1755,8 @@ def mk_config():
 | 
			
		|||
        # End of Windows VS config.mk
 | 
			
		||||
        if is_verbose():
 | 
			
		||||
            print('64-bit:         %s' % is64())
 | 
			
		||||
            if is_java_enabled():
 | 
			
		||||
            print('OpenMP:         %s' % HAS_OMP)
 | 
			
		||||
            if is_java_enabled():                
 | 
			
		||||
                print('JNI Bindings:   %s' % JNI_HOME)
 | 
			
		||||
                print('Java Compiler:  %s' % JAVAC)
 | 
			
		||||
            if is_ml_enabled():
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue