| 
									
										
										
										
											2015-05-24 23:22:51 +03:00
										 |  |  | import os | 
					
						
							|  |  |  | import sys | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def is_active(): | 
					
						
							|  |  |  | 	return True | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def get_name(): | 
					
						
							|  |  |  | 	return "Haiku" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def can_build(): | 
					
						
							|  |  |  | 	if (os.name != "posix"): | 
					
						
							|  |  |  | 		return False | 
					
						
							| 
									
										
										
										
											2015-10-17 15:41:01 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-24 23:22:51 +03:00
										 |  |  | 	if (sys.platform == "darwin"): | 
					
						
							|  |  |  | 		return False | 
					
						
							| 
									
										
										
										
											2015-10-17 15:41:01 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-24 23:22:51 +03:00
										 |  |  | 	return True | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def get_opts(): | 
					
						
							| 
									
										
										
										
											2015-07-20 22:45:22 +03:00
										 |  |  | 	return [ | 
					
						
							|  |  |  | 		('debug_release', 'Add debug symbols to release version','no') | 
					
						
							|  |  |  | 	] | 
					
						
							| 
									
										
										
										
											2015-05-24 23:22:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | def get_flags(): | 
					
						
							|  |  |  | 	return [ | 
					
						
							| 
									
										
										
										
											2016-06-07 19:59:33 +02:00
										 |  |  | 		('builtin_zlib', 'no'), | 
					
						
							|  |  |  | 		#('glew', 'yes'), # TODO: investigate the GLEW situation on Haiku | 
					
						
							| 
									
										
										
										
											2015-05-24 23:22:51 +03:00
										 |  |  | 	] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def configure(env): | 
					
						
							| 
									
										
										
										
											2015-08-12 22:14:40 +03:00
										 |  |  | 	is64 = sys.maxsize > 2**32 | 
					
						
							| 
									
										
										
										
											2015-05-24 23:22:51 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	if (env["bits"]=="default"): | 
					
						
							|  |  |  | 		if (is64): | 
					
						
							|  |  |  | 			env["bits"]="64" | 
					
						
							|  |  |  | 		else: | 
					
						
							|  |  |  | 			env["bits"]="32" | 
					
						
							| 
									
										
										
										
											2015-10-17 15:41:01 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-24 23:22:51 +03:00
										 |  |  | 	env.Append(CPPPATH = ['#platform/haiku']) | 
					
						
							| 
									
										
										
										
											2015-10-17 15:41:01 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	env["CC"] = "gcc" | 
					
						
							|  |  |  | 	env["CXX"] = "g++" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-28 00:59:41 +03:00
										 |  |  | 	if (env["target"]=="release"): | 
					
						
							|  |  |  | 		if (env["debug_release"]=="yes"): | 
					
						
							| 
									
										
										
										
											2015-07-20 22:45:22 +03:00
										 |  |  | 			env.Append(CCFLAGS=['-g2']) | 
					
						
							| 
									
										
										
										
											2015-05-28 00:59:41 +03:00
										 |  |  | 		else: | 
					
						
							| 
									
										
										
										
											2015-07-20 22:45:22 +03:00
										 |  |  | 			env.Append(CCFLAGS=['-O3','-ffast-math']) | 
					
						
							| 
									
										
										
										
											2015-05-28 00:59:41 +03:00
										 |  |  | 	elif (env["target"]=="release_debug"): | 
					
						
							|  |  |  | 		env.Append(CCFLAGS=['-O2','-ffast-math','-DDEBUG_ENABLED']) | 
					
						
							|  |  |  | 	elif (env["target"]=="debug"): | 
					
						
							|  |  |  | 		env.Append(CCFLAGS=['-g2', '-Wall','-DDEBUG_ENABLED','-DDEBUG_MEMORY_ENABLED']) | 
					
						
							| 
									
										
										
										
											2015-10-17 15:41:01 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-28 03:42:40 +03:00
										 |  |  | 	#env.Append(CCFLAGS=['-DFREETYPE_ENABLED']) | 
					
						
							| 
									
										
										
										
											2015-12-26 18:54:05 +02:00
										 |  |  | 	env.Append(CPPFLAGS = ['-DPTHREAD_NO_RENAME']) # TODO: enable when we have pthread_setname_np | 
					
						
							| 
									
										
										
										
											2016-06-07 19:22:05 +02:00
										 |  |  | 	env.Append(CPPFLAGS = ['-DOPENGL_ENABLED', '-DMEDIA_KIT_ENABLED']) | 
					
						
							| 
									
										
										
										
											2015-05-28 03:42:40 +03:00
										 |  |  | 	env.Append(CPPFLAGS = ['-DUNIX_ENABLED', '-DGLES2_ENABLED', '-DGLES_OVER_GL']) | 
					
						
							| 
									
										
										
										
											2016-06-07 19:22:05 +02:00
										 |  |  | 	env.Append(LIBS = ['be', 'game', 'media', 'network', 'bnetapi', 'z', 'GL']) | 
					
						
							| 
									
										
										
										
											2015-10-17 15:41:01 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-29 23:36:48 +03:00
										 |  |  | 	import methods | 
					
						
							|  |  |  | 	env.Append(BUILDERS = {'GLSL120' : env.Builder(action = methods.build_legacygl_headers, suffix = 'glsl.h',src_suffix = '.glsl')}) | 
					
						
							|  |  |  | 	env.Append(BUILDERS = {'GLSL' : env.Builder(action = methods.build_glsl_headers, suffix = 'glsl.h',src_suffix = '.glsl')}) | 
					
						
							|  |  |  | 	env.Append(BUILDERS = {'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl')}) |