Brian Paul | ace3124 | 2016-06-15 10:42:34 -0600 | [diff] [blame] | 1 | import filecmp |
| 2 | import os |
| 3 | import subprocess |
José Fonseca | 33ceb67 | 2008-02-18 10:52:44 +0000 | [diff] [blame] | 4 | |
Brian Paul | ace3124 | 2016-06-15 10:42:34 -0600 | [diff] [blame] | 5 | Import('*') |
José Fonseca | 982609f | 2011-02-11 17:38:54 +0000 | [diff] [blame] | 6 | |
José Fonseca | 601498a | 2010-11-01 13:30:22 +0000 | [diff] [blame] | 7 | if env['platform'] == 'windows': |
José Fonseca | 6d670f6 | 2011-01-12 15:32:17 +0000 | [diff] [blame] | 8 | SConscript('getopt/SConscript') |
Chia-I Wu | 1e6c10f | 2010-05-31 11:47:58 +0800 | [diff] [blame] | 9 | |
Nicolai Hähnle | 49bdb73 | 2017-07-31 16:51:13 +0200 | [diff] [blame^] | 10 | SConscript('util/xmlpool/SConscript') |
Kenneth Graunke | 1e0da62 | 2014-02-24 23:39:14 -0800 | [diff] [blame] | 11 | SConscript('util/SConscript') |
Emil Velikov | 1a882fd | 2016-01-18 10:47:13 +0200 | [diff] [blame] | 12 | SConscript('compiler/SConscript') |
José Fonseca | 982609f | 2011-02-11 17:38:54 +0000 | [diff] [blame] | 13 | |
| 14 | if env['hostonly']: |
| 15 | # We are just compiling the things necessary on the host for cross |
| 16 | # compilation |
| 17 | Return() |
| 18 | |
Brian Paul | ace3124 | 2016-06-15 10:42:34 -0600 | [diff] [blame] | 19 | |
| 20 | def write_git_sha1_h_file(filename): |
| 21 | """Mesa looks for a git_sha1.h file at compile time in order to display |
| 22 | the current git hash id in the GL_VERSION string. This function tries |
| 23 | to retrieve the git hashid and write the header file. An empty file |
| 24 | will be created if anything goes wrong.""" |
| 25 | |
Brian Paul | ace3124 | 2016-06-15 10:42:34 -0600 | [diff] [blame] | 26 | tempfile = "git_sha1.h.tmp" |
Eric Engestrom | 3fd425a | 2017-06-27 12:08:41 +0100 | [diff] [blame] | 27 | with open(tempfile, "w") as f: |
Eric Engestrom | 076faf8 | 2017-07-06 20:25:28 +0100 | [diff] [blame] | 28 | args = [ 'sh', Dir('#').abspath + '/bin/git_sha1_gen.sh' ] |
Eric Engestrom | 3fd425a | 2017-06-27 12:08:41 +0100 | [diff] [blame] | 29 | try: |
Eric Engestrom | 9f6110a | 2017-06-29 17:21:44 +0100 | [diff] [blame] | 30 | subprocess.Popen(args, stdout=f).wait() |
Eric Engestrom | 3fd425a | 2017-06-27 12:08:41 +0100 | [diff] [blame] | 31 | except: |
| 32 | print "Warning: exception in write_git_sha1_h_file()" |
| 33 | return |
| 34 | |
Brian Paul | ace3124 | 2016-06-15 10:42:34 -0600 | [diff] [blame] | 35 | if not os.path.exists(filename) or not filecmp.cmp(tempfile, filename): |
| 36 | # The filename does not exist or it's different from the new file, |
| 37 | # so replace old file with new. |
| 38 | if os.path.exists(filename): |
| 39 | os.remove(filename) |
| 40 | os.rename(tempfile, filename) |
| 41 | return |
| 42 | |
| 43 | |
| 44 | # Create the git_sha1.h header file |
| 45 | write_git_sha1_h_file("git_sha1.h") |
| 46 | # and update CPPPATH so the git_sha1.h header can be found |
| 47 | env.Append(CPPPATH = ["#" + env['build_dir']]) |
| 48 | |
| 49 | |
| 50 | |
Jose Fonseca | 47870d6 | 2015-03-24 20:26:21 +0000 | [diff] [blame] | 51 | if env['platform'] != 'windows': |
| 52 | SConscript('loader/SConscript') |
José Fonseca | 982609f | 2011-02-11 17:38:54 +0000 | [diff] [blame] | 53 | |
Chia-I Wu | bb770af | 2011-01-14 17:50:29 +0800 | [diff] [blame] | 54 | # When env['gles'] is set, the targets defined in mapi/glapi/SConscript are not |
| 55 | # used. libgl-xlib and libgl-gdi adapt themselves to use the targets defined |
| 56 | # in mapi/glapi-shared/SConscript. mesa/SConscript also adapts itself to |
| 57 | # enable OpenGL ES support. |
Brian Paul | dff36e9 | 2012-05-30 10:08:11 -0600 | [diff] [blame] | 58 | SConscript('mapi/glapi/gen/SConscript') |
José Fonseca | 601498a | 2010-11-01 13:30:22 +0000 | [diff] [blame] | 59 | SConscript('mapi/glapi/SConscript') |
Alexander von Gluck IV | 61ef697 | 2013-12-31 15:39:49 -0600 | [diff] [blame] | 60 | |
| 61 | # Haiku C++ libGL dispatch (renderers depend on libgl) |
| 62 | if env['platform'] in ['haiku']: |
| 63 | SConscript('hgl/SConscript') |
| 64 | |
José Fonseca | 601498a | 2010-11-01 13:30:22 +0000 | [diff] [blame] | 65 | SConscript('mesa/SConscript') |
José Fonseca | 1ca2945 | 2010-08-13 13:53:04 +0100 | [diff] [blame] | 66 | |
Brian Paul | 88625e6 | 2011-09-16 10:11:52 -0600 | [diff] [blame] | 67 | if not env['embedded']: |
Vinson Lee | 5cf6932 | 2012-05-23 17:26:20 -0700 | [diff] [blame] | 68 | if env['platform'] not in ('cygwin', 'darwin', 'freebsd', 'haiku', 'windows'): |
José Fonseca | f8aeb1c | 2011-09-20 20:40:05 +0100 | [diff] [blame] | 69 | SConscript('glx/SConscript') |
Alexander von Gluck IV | 400b833 | 2014-12-22 10:10:13 -0500 | [diff] [blame] | 70 | if env['platform'] == 'haiku': |
Emil Velikov | e7e2918 | 2015-07-14 02:04:30 +0100 | [diff] [blame] | 71 | SConscript('egl/SConscript') |
Keith Whitwell | e3c6d41 | 2010-06-08 17:38:01 +0100 | [diff] [blame] | 72 | |
Chia-I Wu | bb770af | 2011-01-14 17:50:29 +0800 | [diff] [blame] | 73 | if env['gles']: |
| 74 | SConscript('mapi/shared-glapi/SConscript') |
| 75 | |
José Fonseca | 706eda3 | 2010-03-09 15:07:57 +0000 | [diff] [blame] | 76 | SConscript('gallium/SConscript') |
José Fonseca | 57d0001 | 2009-01-23 12:32:35 +0000 | [diff] [blame] | 77 | |