You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

157 lines
4.8 KiB

import os
globalEnv = Environment()
globalEnv["ROOTPATH"] = os.path.abspath('.')
basicBuildPath = os.path.join(globalEnv['ROOTPATH'], 'build')
globalEnv['BUILDPATH'] = os.path.join(basicBuildPath, 'release')
globalEnv['CONTRIBPATH'] = os.path.join(globalEnv['ROOTPATH'], 'contrib')
globalEnv['MONGOCPATH'] = os.path.join(globalEnv['CONTRIBPATH'], 'mongoc')
globalEnv['MONGOCXXPATH'] = os.path.join(globalEnv['CONTRIBPATH'], 'mongocxx')
globalEnv['QBSCXXPATH'] = os.path.join(globalEnv['CONTRIBPATH'], 'qubosolver')
globalEnv["INIHSRC"] = os.path.join(
os.path.join(globalEnv["CONTRIBPATH"],
"iniParser"),
"inih")
globalEnv["INIHCPPSRC"] = os.path.join(globalEnv["INIHSRC"], "cpp")
globalEnv["MINISATSRC"] = os.path.join(
os.path.join(globalEnv["CONTRIBPATH"],
"minisat"),
"src")
globalEnv["QBSCXXSRC"] = os.path.join(
os.path.join(
os.path.join(globalEnv["CONTRIBPATH"],
"qubosolver"),
"qbscxx"),
"src")
globalEnv["QBSCXX_INCLUDE"] = os.path.join(
os.path.join(
os.path.join(globalEnv["CONTRIBPATH"],
"qubosolver"),
"qbscxx"),
"include")
#compiler option
AddOption('--dbg', action='store_true', dest='DEBUG')
globalEnv["BUILD_TYPE"] = "Release"
if GetOption('DEBUG'):
globalEnv["BUILD_TYPE"] = "Debug"
globalEnv.Append(CCFLAGS="-g")
globalEnv['BUILDPATH'] = os.path.join(basicBuildPath, 'debug')
globalEnv.Append(CXXFLAGS='-std=c++11')
AddOption("--init", action="store_true", dest="INIT")
#build libs
#
globalEnv['LIB_BUILD_PATH'] = os.path.join(globalEnv['BUILDPATH'], 'libs')
#build mongoc
globalEnv['MONGOC_LIB_PATH'] = os.path.join(globalEnv['LIB_BUILD_PATH'], 'mongoc')
if GetOption("INIT"):
globalEnv.SConscript(os.path.join(
os.path.join(globalEnv['CONTRIBPATH'],
'mongoc'),
'SConscript'),
variant_dir=globalEnv['MONGOC_LIB_PATH'],
duplicate=0,
exports='globalEnv')
#build mongocxx
globalEnv["MONGOCXX_LIB_PATH"] = os.path.join(globalEnv["LIB_BUILD_PATH"], "mongocxx")
if GetOption("INIT"):
globalEnv.SConscript(os.path.join(
os.path.join(globalEnv["CONTRIBPATH"],
"mongocxx"),
"SConscript"),
variant_dir=globalEnv["MONGOCXX_LIB_PATH"],
duplicate=0,
exports="globalEnv")
#build qbscxx
globalEnv["QBSCXX_LIB_PATH"] = os.path.join(globalEnv["LIB_BUILD_PATH"], "qbscxx")
if GetOption("INIT"):
globalEnv.SConscript(os.path.join(
os.path.join(globalEnv["CONTRIBPATH"],
"qubosolver"),
"SConscript"),
variant_dir=globalEnv["QBSCXX_LIB_PATH"],
duplicate=0,
exports="globalEnv")
#build inih
globalEnv["INIH_LIB_PATH"] = os.path.join(globalEnv["LIB_BUILD_PATH"], "inih")
globalEnv.SConscript(os.path.join(
os.path.join(globalEnv["CONTRIBPATH"],
"iniParser"),
"SConscript"),
variant_dir=globalEnv["INIH_LIB_PATH"],
duplicate=0,
exports="globalEnv")
#build minisat
globalEnv["MINISAT_LIB_PATH"] = os.path.join(globalEnv["LIB_BUILD_PATH"], "minisat")
globalEnv.SConscript(os.path.join(
os.path.join(globalEnv["CONTRIBPATH"],
"minisat"),
"SConscript"),
variant_dir=globalEnv["MINISAT_LIB_PATH"],
duplicate=0,
exports="globalEnv")
mongocxxIncludeDir = os.path.join(
os.path.join(
os.path.join(globalEnv["MONGOCXX_LIB_PATH"],
"include"),
"mongocxx"),
"v_noabi")
bsoncxxIncludeDir = os.path.join(
os.path.join(
os.path.join(globalEnv["MONGOCXX_LIB_PATH"],
"include"),
"bsoncxx"),
"v_noabi")
inihIncludeDir = globalEnv["INIHSRC"]
inihcppIncludeDir = globalEnv["INIHCPPSRC"]
minisatIncludeDir = globalEnv["MINISATSRC"]
globalEnv.Append(CPPPATH=[mongocxxIncludeDir,
bsoncxxIncludeDir,
inihIncludeDir,
inihcppIncludeDir,
minisatIncludeDir,
globalEnv["QBSCXXSRC"],
globalEnv["QBSCXX_INCLUDE"]])
globalEnv.Append(LIBPATH=[os.path.join(globalEnv["MONGOCXX_LIB_PATH"], "lib"),
globalEnv["INIH_LIB_PATH"],
globalEnv["MINISAT_LIB_PATH"],
globalEnv["QBSCXX_LIB_PATH"]])
#build runMinisat
globalEnv.SConscript(os.path.join(
os.path.join(globalEnv['ROOTPATH'],
'src'),
'SConscript'),
variant_dir=globalEnv['BUILDPATH'],
duplicate=0,
exports='globalEnv')