1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#######################################################################
2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# SConscript for egl-static target
3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgImport('*')
5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenv = env.Clone()
7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenv.Append(CPPPATH = [
9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    '#/include',
10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    '#/src/egl/main',
11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    '#/src/gallium/auxiliary',
12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    '#/src/gallium/drivers',
13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    '#/src/gallium/include',
14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    '#/src/gallium/winsys',
15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    '#/src/gallium/state_trackers/egl',
16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    '#/src/gallium/state_trackers/vega',
17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    '#/src/mesa',
18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org])
19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenv.Append(CPPDEFINES = [
21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    'GALLIUM_SOFTPIPE',
22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    'GALLIUM_RBUG',
23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    'GALLIUM_TRACE',
24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    'GALLIUM_GALAHAD',
25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    '_EGL_MAIN=_eglBuiltInDriverGALLIUM',
26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org])
27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenv.Prepend(LIBS = [
29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    softpipe,
30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    rbug,
31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    trace,
32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    galahad,
33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    gallium,
34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    egl,
35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    st_egl,
36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org])
37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgif env['llvm']:
39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.Append(CPPDEFINES = ['GALLIUM_LLVMPIPE'])
40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.Prepend(LIBS = [llvmpipe])
41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgsources = [
43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    'egl.c',
44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    'egl_pipe.c',
45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    'egl_st.c',
46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org]
47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgif env['platform'] == 'windows':
49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    sources.append('#src/egl/main/egl.def')
50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.Append(LIBS = [
52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        'gdi32',
53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        'user32',
54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        'kernel32',
55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        'ws2_32',
56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    ])
57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.Prepend(LIBS = [
59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        ws_gdi,
60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    ])
61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# OpenGL ES and OpenGL
63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgif env['gles']:
64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.Append(CPPDEFINES = [
65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        'FEATURE_GL=1',
66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        'FEATURE_ES1=1',
67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        'FEATURE_ES2=1'
68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    ])
69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.Prepend(LIBPATH = [shared_glapi.dir])
70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    # manually add LIBPREFIX on windows
71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    glapi_name = 'glapi' if env['platform'] != 'windows' else 'libglapi'
72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.Prepend(LIBS = [glapi_name, glsl, mesa])
73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# OpenVG
75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgif True:
76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.Append(CPPDEFINES = ['FEATURE_VG=1'])
77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.Prepend(LIBPATH = [openvg.dir])
78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    # manually add LIBPREFIX on windows
79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    openvg_name = 'OpenVG' if env['platform'] != 'windows' else 'libOpenVG'
80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.Prepend(LIBS = [openvg_name, st_vega])
81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgif env['HAVE_X11']:
83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.Prepend(LIBS = [
84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        ws_xlib,
85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    ])
86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.PkgUseModules('X11')
87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# pipe drivers
89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgif env['HAVE_DRM']:
90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.PkgUseModules('DRM')
91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    if env['HAVE_DRM_INTEL']:
93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        env.PkgUseModules('DRM_INTEL')
94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        env.Append(CPPDEFINES = ['_EGL_PIPE_I915'])
95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        env.Prepend(LIBS = [
96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org            i915drm,
97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org            i915,
98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org            ws_wrapper,
99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        ])
100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    if env['HAVE_DRM_RADEON']:
102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        env.PkgUseModules('DRM_RADEON')
103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        env.Append(CPPDEFINES = ['_EGL_PIPE_R300', '_EGL_PIPE_R600'])
104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        env.Prepend(LIBS = [
105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org            radeonwinsys,
106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org            r300,
107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org            r600,
108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        ])
109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.Append(CPPDEFINES = ['_EGL_PIPE_VMWGFX'])
111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    env.Prepend(LIBS = [
112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        svgadrm,
113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        svga,
114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    ])
115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# libEGL.dll
117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenv['LIBPREFIX'] = 'lib'
118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenv['SHLIBPREFIX'] = 'lib'
119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgegl_gallium = env.SharedLibrary(
121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    target ='EGL',
122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    source = sources,
123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org)
124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenv.Depends(egl_gallium, [openvg])
126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgegl_gallium = env.InstallSharedLibrary(egl_gallium, version=(1, 4, 0))
128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenv.Alias('egl-gallium', egl_gallium)
130