#Sconscript for FCollada Library for Linux sconscriptRelativePath = "../../../" execfile(sconscriptRelativePath + "../SconsCommon.py") # Create the Environment which creates the compile and linker command lines. env = Environment() ifdebug = ARGUMENTS.get('debug', 0) ifunicode = ARGUMENTS.get('unicode', 0) ifshared = ARGUMENTS.get('shared', 0) #Add the compiler and linker flags and include search path env.Append(CPPPATH = [sconscriptRelativePath, sconscriptRelativePath + "LibXML/include"]) #Add the macros defined for all the builds env.Append(CPPDEFINES = ['LINUX']) if int(ifshared) != 0: env.Append(CPPDEFINES = ['FCOLLADA_DLL']) env.Append(CCFLAGS = ['-W', '-Wall', '-Wno-unused-parameter', '-Wno-unused-function']) #Add the macros and flags defined only for DEBUG, RETAIL or UNICODE if int(ifdebug): env.Append(CPPDEFINES = ['_DEBUG']) env.Append(CCFLAGS = ['-O0', '-g']) else: env.Append(CPPDEFINES = ['NDEBUG', 'RETAIL']) env.Append(CCFLAGS = ['-O2']) if int(ifunicode): env.Append(CPPDEFINES = ['UNICODE']) #List of the source code to compile, and make a library out of it list = [] FileListAppend(list, sconscriptRelativePath, "LibXML", "c") FileListAppend(list, sconscriptRelativePath, "FCDocument", "cpp") FileListAppend(list, sconscriptRelativePath, "FMath", "cpp") FileListAppend(list, sconscriptRelativePath, "FUtils", "cpp") FileListAppend(list, sconscriptRelativePath, "", "cpp") # Hack: we include the compiled object files from FArchiveXML to avoid the circular reference. libs = [] libsPath = [] if int(ifshared == 0): intermediatePath = "../FColladaPlugins/Output/FArchiveXML/" intermediatePath += BuildName(ifdebug, ifunicode, ifshared) intermediatePath += "/Intermediate" FileListAppend(list, sconscriptRelativePath, intermediatePath, "o") FileListAppend(list, sconscriptRelativePath, intermediatePath, "os") else: archiving = "FArchiveXML_" if int(ifunicode): archiving += "U" if int(ifdebug): archiving += "D" else: archiving += "R" libs.append(archiving) libsPath.append(sconscriptRelativePath + "../FColladaPlugins/Output/FArchiveXML") # Build the library. libraryName = "FCollada" if not int(ifshared): libraryName += "S" if int(ifunicode): libraryName += "U" if int(ifdebug): libraryName += "D" else: libraryName += "R" if int(ifshared): FCollada = env.SharedLibrary(libraryName, list, LIBS=libs, LIBPATH=libsPath) else: FCollada = env.StaticLibrary(libraryName, list) #Specifying the name and directory of output library env.Install('../../', FCollada) # Copy over the archiving plug-in library. #if int(ifshared) != 0: # env.Install('../../', libsPath[0] + "/lib" + archiving + ".so")