Revamp how libraries are done
This commit is contained in:
		
							parent
							
								
									b745019f39
								
							
						
					
					
						commit
						164d2944f6
					
				
					 2 changed files with 16 additions and 12 deletions
				
			
		
							
								
								
									
										10
									
								
								SConstruct
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								SConstruct
									
										
									
									
									
								
							| 
						 | 
					@ -39,9 +39,17 @@ for mode in (MODE.split(',') if MODE else ['debug']):
 | 
				
			||||||
    env.Append(CPPPATH=['.'])
 | 
					    env.Append(CPPPATH=['.'])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Process all lib dirs.
 | 
					    # Process all lib dirs.
 | 
				
			||||||
 | 
					    env['AVAILABLE_LIBS'] = {}
 | 
				
			||||||
    for lib in os.listdir(LIB_DIR.abspath):
 | 
					    for lib in os.listdir(LIB_DIR.abspath):
 | 
				
			||||||
 | 
					        lib_dir = LIB_DIR.Dir(lib)
 | 
				
			||||||
 | 
					        if not lib_dir.isdir():
 | 
				
			||||||
 | 
					            print 'Skipping {} in lib directory: is not a directory'.format(lib)
 | 
				
			||||||
 | 
					            continue
 | 
				
			||||||
        lib_out_dir = out_dir.Dir('lib').Dir(lib)
 | 
					        lib_out_dir = out_dir.Dir('lib').Dir(lib)
 | 
				
			||||||
        do_sconscript(env, LIB_DIR.Dir(lib), lib_out_dir)
 | 
					        output = do_sconscript(env, LIB_DIR.Dir(lib), lib_out_dir)
 | 
				
			||||||
 | 
					        if not output:
 | 
				
			||||||
 | 
					            print "Lib {} didn't return any object".format(lib)
 | 
				
			||||||
 | 
					        env['AVAILABLE_LIBS'][lib] = output
 | 
				
			||||||
        env.Append(LIBPATH=[lib_out_dir])
 | 
					        env.Append(LIBPATH=[lib_out_dir])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Get source files.
 | 
					    # Get source files.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,13 +1,16 @@
 | 
				
			||||||
# SConscript
 | 
					# SConscript
 | 
				
			||||||
# vim: set ft=python:
 | 
					# vim: set ft=python:
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					# Build file for the gtest library. This file also serves as an example for how
 | 
				
			||||||
 | 
					# to build libraries for inclusion with my SCons environment. Libraries should
 | 
				
			||||||
 | 
					# return a build object.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
# Eryn Wells <eryn@erynwells.me>
 | 
					# Eryn Wells <eryn@erynwells.me>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import os.path
 | 
					import os.path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Import('env')
 | 
					Import('env')
 | 
				
			||||||
Import('build_env')
 | 
					env.Append(CPPPATH=[Dir('include').srcnode()])
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
files = [
 | 
					files = [
 | 
				
			||||||
    'gtest-all.cc',
 | 
					    'gtest-all.cc',
 | 
				
			||||||
| 
						 | 
					@ -20,12 +23,5 @@ files = [
 | 
				
			||||||
    'gtest.cc',
 | 
					    'gtest.cc',
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
objs = []
 | 
					gtest = env.Library('gtest', files)
 | 
				
			||||||
for f in files:
 | 
					Return('gtest')
 | 
				
			||||||
    objs.append(env.Object(f))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include_dir = Dir('include').srcnode()
 | 
					 | 
				
			||||||
env.Append(CPPPATH=[include_dir])
 | 
					 | 
				
			||||||
build_env.Append(CPPPATH=[include_dir])
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
gtest = env.Library('gtest', objs)
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue