1a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu#######################################################################
2a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu# SConscript for egl-static target
3a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
4a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I WuImport('*')
5a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
6a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wuenv = env.Clone()
7a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
8a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wuenv.Append(CPPPATH = [
9a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    '#/include',
10a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    '#/src/egl/main',
11a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    '#/src/gallium/auxiliary',
12a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    '#/src/gallium/drivers',
13a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    '#/src/gallium/include',
14a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    '#/src/gallium/winsys',
15a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    '#/src/gallium/state_trackers/egl',
16a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    '#/src/gallium/state_trackers/vega',
17a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    '#/src/mesa',
18a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu])
19a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
20a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wuenv.Append(CPPDEFINES = [
21a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    'GALLIUM_SOFTPIPE',
22a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    'GALLIUM_RBUG',
23a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    'GALLIUM_TRACE',
24a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    'GALLIUM_GALAHAD',
25a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    '_EGL_MAIN=_eglBuiltInDriverGALLIUM',
26a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu])
27a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
28a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wuenv.Prepend(LIBS = [
29a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    softpipe,
30a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    rbug,
31a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    trace,
32a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    galahad,
33a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    gallium,
34a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    egl,
35b70d0a6a51da42fc390e82161a96c80fd8c653ffChia-I Wu    st_egl,
36a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu])
37a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
38a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wuif env['llvm']:
39a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    env.Append(CPPDEFINES = ['GALLIUM_LLVMPIPE'])
40a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    env.Prepend(LIBS = [llvmpipe])
41a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
42a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wusources = [
43a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    'egl.c',
44a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    'egl_pipe.c',
45a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    'egl_st.c',
46a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu]
47a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
48a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wuif env['platform'] == 'windows':
49a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    sources.append('#src/egl/main/egl.def')
50a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
51a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    env.Append(LIBS = [
52a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu        'gdi32',
53a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu        'user32',
54a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu        'kernel32',
55a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu        'ws2_32',
56a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    ])
57a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
58a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    env.Prepend(LIBS = [
59a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu        ws_gdi,
60a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    ])
61bb770af3a59e5935c108c05ee45490fc5668d4a3Chia-I Wu
62bb770af3a59e5935c108c05ee45490fc5668d4a3Chia-I Wu# OpenGL ES and OpenGL
63bb770af3a59e5935c108c05ee45490fc5668d4a3Chia-I Wuif env['gles']:
64bb770af3a59e5935c108c05ee45490fc5668d4a3Chia-I Wu    env.Append(CPPDEFINES = [
65bb770af3a59e5935c108c05ee45490fc5668d4a3Chia-I Wu        'FEATURE_GL=1',
66bb770af3a59e5935c108c05ee45490fc5668d4a3Chia-I Wu        'FEATURE_ES1=1',
67bb770af3a59e5935c108c05ee45490fc5668d4a3Chia-I Wu        'FEATURE_ES2=1'
68bb770af3a59e5935c108c05ee45490fc5668d4a3Chia-I Wu    ])
69bb770af3a59e5935c108c05ee45490fc5668d4a3Chia-I Wu    env.Prepend(LIBPATH = [shared_glapi.dir])
70bb770af3a59e5935c108c05ee45490fc5668d4a3Chia-I Wu    # manually add LIBPREFIX on windows
71bb770af3a59e5935c108c05ee45490fc5668d4a3Chia-I Wu    glapi_name = 'glapi' if env['platform'] != 'windows' else 'libglapi'
728aac5d123c4636fad5e9d70c3a6706aaa6f1f240Kenneth Graunke    env.Prepend(LIBS = [glapi_name, glsl, mesa])
73a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
74b70d0a6a51da42fc390e82161a96c80fd8c653ffChia-I Wu# OpenVG
75b70d0a6a51da42fc390e82161a96c80fd8c653ffChia-I Wuif True:
76a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    env.Append(CPPDEFINES = ['FEATURE_VG=1'])
77b07ad1d6bd08bfe3ab84b660587523d5711ea21fJosé Fonseca    env.Prepend(LIBPATH = [openvg.dir])
78b70d0a6a51da42fc390e82161a96c80fd8c653ffChia-I Wu    # manually add LIBPREFIX on windows
79b70d0a6a51da42fc390e82161a96c80fd8c653ffChia-I Wu    openvg_name = 'OpenVG' if env['platform'] != 'windows' else 'libOpenVG'
80b70d0a6a51da42fc390e82161a96c80fd8c653ffChia-I Wu    env.Prepend(LIBS = [openvg_name, st_vega])
81a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
82235225ec935002b4669d14a48c9c20864a5496f8José Fonsecaif env['HAVE_X11']:
83b70d0a6a51da42fc390e82161a96c80fd8c653ffChia-I Wu    env.Prepend(LIBS = [
84b70d0a6a51da42fc390e82161a96c80fd8c653ffChia-I Wu        ws_xlib,
85b70d0a6a51da42fc390e82161a96c80fd8c653ffChia-I Wu    ])
86235225ec935002b4669d14a48c9c20864a5496f8José Fonseca    env.PkgUseModules('X11')
87a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
88a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu# pipe drivers
89235225ec935002b4669d14a48c9c20864a5496f8José Fonsecaif env['HAVE_DRM']:
90235225ec935002b4669d14a48c9c20864a5496f8José Fonseca    env.PkgUseModules('DRM')
91a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
92235225ec935002b4669d14a48c9c20864a5496f8José Fonseca    if env['HAVE_DRM_INTEL']:
9396e73cc4ae1c1f36e05855e6b02cc9c281f921e8José Fonseca        env.PkgUseModules('DRM_INTEL')
942c27f204f1ca6f09f9520712be1da9a13ed5c01dKai Wasserbäch        env.Append(CPPDEFINES = ['_EGL_PIPE_I915'])
95a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu        env.Prepend(LIBS = [
96a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu            i915drm,
97a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu            i915,
98b70d0a6a51da42fc390e82161a96c80fd8c653ffChia-I Wu            ws_wrapper,
99a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu        ])
100a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
101235225ec935002b4669d14a48c9c20864a5496f8José Fonseca    if env['HAVE_DRM_RADEON']:
10296e73cc4ae1c1f36e05855e6b02cc9c281f921e8José Fonseca        env.PkgUseModules('DRM_RADEON')
103abfe7591729c2ac205e17b0f873f843aea99c09bJosé Fonseca        env.Append(CPPDEFINES = ['_EGL_PIPE_R300', '_EGL_PIPE_R600'])
104a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu        env.Prepend(LIBS = [
105a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu            radeonwinsys,
106a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu            r300,
107a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu            r600,
108a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu        ])
109a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
110a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    env.Append(CPPDEFINES = ['_EGL_PIPE_VMWGFX'])
111a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    env.Prepend(LIBS = [
112a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu        svgadrm,
113a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu        svga,
114a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    ])
115a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
11663528c4510e4891a13c255871b1dd5c2dafdb02cJosé Fonseca# libEGL.dll
1179277a62aa3c1b2073dcfafcf34265b4d7154f4daJosé Fonsecaenv['LIBPREFIX'] = 'lib'
11863528c4510e4891a13c255871b1dd5c2dafdb02cJosé Fonsecaenv['SHLIBPREFIX'] = 'lib'
11963528c4510e4891a13c255871b1dd5c2dafdb02cJosé Fonseca
120a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wuegl_gallium = env.SharedLibrary(
12163528c4510e4891a13c255871b1dd5c2dafdb02cJosé Fonseca    target ='EGL',
122a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu    source = sources,
123a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu)
124a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
125b07ad1d6bd08bfe3ab84b660587523d5711ea21fJosé Fonsecaenv.Depends(egl_gallium, [openvg])
126a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
127a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wuegl_gallium = env.InstallSharedLibrary(egl_gallium, version=(1, 4, 0))
128a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wu
129a8b6b6555c7d6a02a3d095c72ebbdc218bc45cd3Chia-I Wuenv.Alias('egl-gallium', egl_gallium)
130