mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 11:40:10 +01:00
scons: Fix MSYS2 Mingw-w64 build.
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
This patch is based on 28e3f85e09/mingw-w64-mesa/link-ole32.patch but with tweaks to avoid MSVC build break when applied.
v2: Create Mingw platform alias pointing to windows host platform define to avoid spurious crosscompilation;
v3: Fix obviously wrong compiler flags for swr driver;
v4: Update original patch URL because it has been relocated;
v5: Don't bother patching autools stuff as it's not used by MSYS2 Mingw-w64 build and it's days are numbered anyway;
v6: After Mingw posix flag fix in 295851eb things are far simpler as we don't need more linking of uuid, ole32, version and shell32 than what is already in place.
This commit is contained in:
parent
bcb4dfb14b
commit
ffb0d3a25c
3 changed files with 12 additions and 2 deletions
|
|
@ -237,6 +237,9 @@ def generate(env):
|
||||||
hosthost_platform = host_platform.system().lower()
|
hosthost_platform = host_platform.system().lower()
|
||||||
if hosthost_platform.startswith('cygwin'):
|
if hosthost_platform.startswith('cygwin'):
|
||||||
hosthost_platform = 'cygwin'
|
hosthost_platform = 'cygwin'
|
||||||
|
# Avoid spurious crosscompilation in MSYS2 environment.
|
||||||
|
if hosthost_platform.startswith('mingw'):
|
||||||
|
hosthost_platform = 'windows'
|
||||||
host_machine = os.environ.get('PROCESSOR_ARCHITEW6432', os.environ.get('PROCESSOR_ARCHITECTURE', host_platform.machine()))
|
host_machine = os.environ.get('PROCESSOR_ARCHITEW6432', os.environ.get('PROCESSOR_ARCHITECTURE', host_platform.machine()))
|
||||||
host_machine = {
|
host_machine = {
|
||||||
'x86': 'x86',
|
'x86': 'x86',
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ Tool-specific initialization for LLVM
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
import re
|
import re
|
||||||
|
import platform as host_platform
|
||||||
import sys
|
import sys
|
||||||
import distutils.version
|
import distutils.version
|
||||||
|
|
||||||
|
|
@ -192,6 +193,12 @@ def generate(env):
|
||||||
'uuid',
|
'uuid',
|
||||||
])
|
])
|
||||||
|
|
||||||
|
# Mingw-w64 zlib is required when building with LLVM support in MSYS2 environment
|
||||||
|
if host_platform.system().lower().startswith('mingw'):
|
||||||
|
env.Append(LIBS = [
|
||||||
|
'z',
|
||||||
|
])
|
||||||
|
|
||||||
if env['msvc']:
|
if env['msvc']:
|
||||||
# Some of the LLVM C headers use the inline keyword without
|
# Some of the LLVM C headers use the inline keyword without
|
||||||
# defining it.
|
# defining it.
|
||||||
|
|
|
||||||
|
|
@ -214,7 +214,7 @@ env.Prepend(CPPPATH = [
|
||||||
envavx = env.Clone()
|
envavx = env.Clone()
|
||||||
|
|
||||||
envavx.Append(CPPDEFINES = ['KNOB_ARCH=KNOB_ARCH_AVX'])
|
envavx.Append(CPPDEFINES = ['KNOB_ARCH=KNOB_ARCH_AVX'])
|
||||||
if env['platform'] == 'windows':
|
if env['msvc']:
|
||||||
envavx.Append(CCFLAGS = ['/arch:AVX'])
|
envavx.Append(CCFLAGS = ['/arch:AVX'])
|
||||||
else:
|
else:
|
||||||
envavx.Append(CCFLAGS = ['-mavx'])
|
envavx.Append(CCFLAGS = ['-mavx'])
|
||||||
|
|
@ -230,7 +230,7 @@ env.Alias('swrAVX', swrAVX)
|
||||||
envavx2 = env.Clone()
|
envavx2 = env.Clone()
|
||||||
|
|
||||||
envavx2.Append(CPPDEFINES = ['KNOB_ARCH=KNOB_ARCH_AVX2'])
|
envavx2.Append(CPPDEFINES = ['KNOB_ARCH=KNOB_ARCH_AVX2'])
|
||||||
if env['platform'] == 'windows':
|
if env['msvc']:
|
||||||
envavx2.Append(CCFLAGS = ['/arch:AVX2'])
|
envavx2.Append(CCFLAGS = ['/arch:AVX2'])
|
||||||
else:
|
else:
|
||||||
envavx2.Append(CCFLAGS = ['-mavx2', '-mfma', '-mbmi2', '-mf16c'])
|
envavx2.Append(CCFLAGS = ['-mavx2', '-mfma', '-mbmi2', '-mf16c'])
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue