#######################################################################
# SConscript for EGL


Import('*')

if env['platform'] != 'winddk':

	env = env.Clone()

	env.Append(CPPDEFINES = [
		'_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_WINDOWS',
		'_EGL_DRIVER_SEARCH_DIR=\\"\\"',
		'_EGL_OS_WINDOWS',
		'_EGL_GET_CORE_ADDRESSES',
		'KHRONOS_DLL_EXPORTS',
	])

	env.Append(CPPPATH = [
		'#/include',
	])

	egl_sources = [
		'eglapi.c',
		'eglarray.c',
		'eglconfig.c',
		'eglcontext.c',
		'eglcurrent.c',
		'egldisplay.c',
		'egldriver.c',
		'eglglobals.c',
		'eglimage.c',
		'egllog.c',
		'eglmisc.c',
		'eglmode.c',
		'eglscreen.c',
		'eglstring.c',
		'eglsurface.c',
		'eglsync.c',
	]

	egl = env.SharedLibrary(
		target = 'libEGL',
		source = egl_sources + ['egl.def'],
	)

	env.InstallSharedLibrary(egl, version=(1, 4, 0))

	egl = [env.FindIxes(egl, 'LIBPREFIX', 'LIBSUFFIX')]

	Export('egl')
