gallium: Add support for SWR compilation
[mesa.git] / src / gallium / targets / libgl-gdi / SConscript
index 12fe403f62f7339094d5c1ce9d11ef832eac1ffd..d3251caec57182ce7b3b3aba27fc7e2d30d73893 100644 (file)
@@ -3,45 +3,59 @@
 
 Import('*')
 
-if env['platform'] == 'windows':
-
-    env = env.Clone()
-
-    env.Append(CPPPATH = [
-        '#src/gallium/state_trackers/wgl',
-        '#src/gallium/winsys/sw',
-    ])
-
-    env.Append(LIBS = [
-        'gdi32',
-        'user32',
-        'kernel32',
-        'ws2_32',
-        talloc,
-    ])
-
-    sources = []
-    drivers = []
-
-    if True:
-        sources = ['gdi_softpipe_winsys.c']
-        drivers = [softpipe]
-
-    if env['llvm']:
-        sources = ['gdi_llvmpipe_winsys.c']
-        drivers = [llvmpipe]
-
-    if env['gcc']:
-        sources += ['#src/gallium/state_trackers/wgl/opengl32.mingw.def']
-    else:
-        sources += ['#src/gallium/state_trackers/wgl/opengl32.def']
-        
-    drivers += [trace, rbug]
-
-    env['no_import_lib'] = 1
-
-    env.SharedLibrary(
-        target ='opengl32',
-        source = sources,
-        LIBS = wgl + ws_gdi + glapi + mesa + drivers + gallium + glsl + env['LIBS'],
-    )
+env = env.Clone()
+
+env.Append(CPPPATH = [
+    '#src',
+    '#src/gallium/state_trackers/wgl',
+    '#src/gallium/winsys/sw',
+])
+
+env.Append(LIBS = [
+    'gdi32',
+    'user32',
+    'kernel32',
+    'ws2_32',
+])
+
+env.Prepend(LIBS = [mesautil])
+
+sources = ['libgl_gdi.c']
+drivers = []
+
+if True:
+    drivers += [softpipe]
+
+if env['llvm']:
+    env.Append(CPPDEFINES = 'HAVE_LLVMPIPE')
+    drivers += [llvmpipe]
+
+    if env['swr']:
+        env.Append(CPPDEFINES = 'HAVE_SWR')
+        drivers += [swr]
+
+if env['gcc'] and env['machine'] != 'x86_64':
+    # DEF parser in certain versions of MinGW is busted, as does not behave as
+    # MSVC.  mingw-w64 works fine.
+    sources += ['#src/gallium/state_trackers/wgl/opengl32.mingw.def']
+else:
+    sources += ['#src/gallium/state_trackers/wgl/opengl32.def']
+
+drivers += [trace, rbug]
+
+env['no_import_lib'] = 1
+
+# when GLES is enabled, gl* and _glapi_* belong to bridge_glapi and
+# shared_glapi respectively
+if env['gles']:
+    env.Prepend(LIBPATH = [shared_glapi.dir])
+    glapi = [bridge_glapi, 'libglapi']
+
+opengl32 = env.SharedLibrary(
+    target ='opengl32',
+    source = sources,
+    LIBS = wgl + ws_gdi + glapi + compiler + mesa + drivers + gallium + glsl + nir + env['LIBS'],
+)
+
+env.Alias('opengl32', opengl32)
+env.Alias('libgl-gdi', opengl32)