diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100755 index 0000000..be4acff --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,90 @@ +# $Id: CMakeLists.txt 86065 2018-08-22 16:02:15Z gcosmo $ + +#---------------------------------------------------------------------------- +# Setup the project +cmake_minimum_required(VERSION 2.6 FATAL_ERROR) +project(sipm) + +#---------------------------------------------------------------------------- +# Find Geant4 package, activating all available UI and Vis drivers by default +# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui +# to build a batch mode only executable +# +option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON) +if(WITH_GEANT4_UIVIS) + find_package(Geant4 REQUIRED ui_all vis_all) +else() + find_package(Geant4 REQUIRED) +endif() + +#---------------------------------------------------------------------------- +# Setup Geant4 include directories and compile definitions +# Setup include directory for this project +# +include(${Geant4_USE_FILE}) +include_directories(${PROJECT_SOURCE_DIR}/include) + + +#---------------------------------------------------------------------------- +# Locate sources and headers for this project +# NB: headers are included so they will show up in IDEs +# +file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) +file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) + +#---------------------------------------------------------------------------- +# Add the executable, and link it to the Geant4 libraries +# +add_executable(sipm sipm.cc ${sources} ${headers}) +target_link_libraries(sipm ${Geant4_LIBRARIES}) + +#---------------------------------------------------------------------------- +# Copy all scripts to the build directory, i.e. the directory in which we +# build DE. This is so that we can run the executable directly because it +# relies on these scripts being in the current working directory. +# +set(EXAMPLESIPM_SCRIPTS + icons.mac + run.png + gui.mac + vis.mac + ) + +foreach(_script ${EXAMPLESIPM_SCRIPTS}) + configure_file( + ${PROJECT_SOURCE_DIR}/macros/${_script} + ${PROJECT_BINARY_DIR}/macros/${_script} + COPYONLY + ) +endforeach() + +#---------------------------------------------------------------------------- +# You need to tell CMake where to find the ROOT installation. This can be done in a number of ways: +# - ROOT built with classic configure/make use the provided $ROOTSYS/etc/cmake/FindROOT.cmake +# - ROOT built with CMake. Add in CMAKE_PREFIX_PATH the installation prefix for ROOT +list(APPEND CMAKE_PREFIX_PATH $ENV{ROOTSYS}) + +#---Locate the ROOT package and defines a number of variables (e.g. ROOT_INCLUDE_DIRS) +find_package(ROOT REQUIRED COMPONENTS RIO) + +#---Define useful ROOT functions and macros (e.g. ROOT_GENERATE_DICTIONARY) +include(${ROOT_USE_FILE}) + +include_directories(${ROOT_INCLUDE_DIRS}) + +set(ROOT_LIBRARIES -L${ROOT_LIBRARY_DIR} -lCore -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lMatrix -lPhysics -lMathCore -lThread -pthread -lm -ldl -rdynamic) + +target_link_libraries(sipm ${ROOT_LIBRARIES}) + +#---------------------------------------------------------------------------- +# For internal Geant4 use - but has no effect if you build this +# example standalone +# +add_custom_target(GDE DEPENDS sipm) + +#---------------------------------------------------------------------------- +# Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX +# +install(TARGETS sipm DESTINATION bin) + +