from init_env import init_environment

env = init_environment("qt4 geant4 clhep evio")


# Include Path
incpath = ['.', 'src', 'gui/src']
env.Append(CPPPATH = incpath)

# Sources
gemc_sources = Split("""gemc.cc 
                        src/detector.cc
                        src/detector_io_mysql.cc
                        src/dmesg_init.cc
                        src/identifier.cc
                        src/run_conditions.cc
                        src/usage.cc
                        src/MagneticField.cc
                        src/MBankdefs.cc
                        src/MDetectorConstruction.cc
                        src/MDetectorMessenger.cc
                        src/MEventAction.cc
                        src/MHit.cc
                        src/Mmaterials.cc
                        src/MPHBaseClass.cc
                        src/MOutputBaseClass.cc
                        src/MPrimaryGeneratorAction.cc
                        src/MSensitiveDetector.cc
                        src/MSteppingAction.cc
                        gui/src/gemc_MainGui.cc
                        gui/src/gemc_TransformationFunctions.cc
                        gui/src/detector_editor.cc
                        gui/src/run_control.cc
                        gui/src/camera_control.cc
                        gui/src/infos.cc
                        gui/src/detector_tree.cc""")

# Physics
phys_sources = Split("""physics/EMPhysics.cc
                        physics/GeneralPhysics.cc
                        physics/HadronPhysics.cc
                        physics/IonPhysics.cc
                        physics/MPhysicsList.cc
                        physics/OpticalPhysics.cc""")
incpath = ['physics']
env.Append(CPPPATH = incpath)


# Hit Processes
hitp_sources = Split("""hitprocess/clas12/Clas12_HitProcess_MapRegister.cc
                        hitprocess/clas12/svt/BST_hitprocess.cc
                        hitprocess/clas12/svt/bst_strip.cc
                        hitprocess/clas12/svt/FST_hitprocess.cc
                        hitprocess/clas12/svt/fst_strip.cc
                        hitprocess/clas12/micromegas/FMT_hitprocess.cc
                        hitprocess/clas12/micromegas/fmt_strip.cc
                        hitprocess/clas12/micromegas/BMT_hitprocess.cc
                        hitprocess/clas12/micromegas/bmt_strip.cc
                        hitprocess/clas12/CND_hitprocess.cc
                        hitprocess/clas12/CTOF_hitprocess.cc
                        hitprocess/clas12/DC_hitprocess.cc
                        hitprocess/clas12/IC_hitprocess.cc
                        hitprocess/clas12/FT_hitprocess.cc
                        hitprocess/clas12/OTOF_hitprocess.cc
                        hitprocess/clas12/EC_hitprocess.cc
                        hitprocess/clas12/RICH_hitprocess.cc
                        hitprocess/clas12/raw_hitprocess.cc
                        hitprocess/clas12/flux_hitprocess.cc""")
                        
incpath = ['hitprocess/clas12', 'hitprocess/clas12/svt', 'hitprocess/clas12/micromegas']
env.Append(CPPPATH = incpath)


# Outputs
output_sources = Split("""output/Output_Register.cc
                          output/evio_output.cc
                          output/txt_output.cc""")
incpath = ['output']
env.Append(CPPPATH = incpath)


Target = 'gemc'
env.Program(source = gemc_sources + phys_sources + hitp_sources + output_sources, target = Target)
