# # cmake file for a standalone program # # J. Dudouet # CMAKE_MINIMUM_REQUIRED(VERSION 2.6) set(CMAKE_INSTALL_MESSAGE LAZY) # # NAME OF THE PROGRAM : means main is in PROG_NAME.[c,cpp ...] and it gives exec with name PROG_NAME SET(PROG_NAME Cubix) SET(Lib_NAME CubixCore) # PROJECT(${PROG_NAME}) MESSAGE("[GW] + root/gui/${PROJECT_NAME}") #Set C++11 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread -Wno-unused-parameter -Wno-sign-compare" ) #Set ROOT #set (ROOT_FIND_COMPONENTS Core MathCore Hist Gui Gpad Graf RIO Matrix Physics Thread MultiProc Spectrum) # find_file(ROOT_CONFIG ROOTConfig.cmake HINTS $ENV{ROOTSYS} ${ROOTSYS} ${ROOT_DIR} NO_DEFAULT_PATH PATH_SUFFIXES cmake) #if (ROOT_CONFIG) # include(${ROOT_CONFIG}) # include(${ROOT_USE_FILE}) # if(ROOT_LIBRARIES AND ROOT_INCLUDE_DIRS) # set(ROOT_FOUND TRUE) # endif() ###################### ### Link libraries ### ###################### # root INCLUDE_DIRECTORIES( ${ROOT_INCLUDE_DIR} ) LINK_DIRECTORIES( ${ROOT_LIBRARY_DIR} ) SET(EXTRA_EXTERNAL_LIBRARIES ${EXTRA_EXTERNAL_LIBRARIES} Matrix) # gw set(EXTRA_INTERNAL_LIBRARIES GWPHYSICS ) #################### ### define files ### #################### SET(SourceDir ${CMAKE_CURRENT_SOURCE_DIR}/src) include_directories(${SourceDir}) SET( PROG_NAME_SRCS ${SourceDir}/Cubix.cpp ) file(GLOB sources ${SourceDir}/*.cpp) list(REMOVE_ITEM sources ${PROG_NAME_SRCS}) file(GLOB headers ${SourceDir}/*.h) list(REMOVE_ITEM headers ${SourceDir}/LinkDef.h) file(GLOB icons ${CMAKE_CURRENT_SOURCE_DIR}/icons/*) file(GLOB database ${CMAKE_CURRENT_SOURCE_DIR}/DataBase) ####################### ### Root dictionary ### ####################### ROOT_GENERATE_DICTIONARY(G__${Lib_NAME} ${headers} MODULE ${Lib_NAME} LINKDEF ${SourceDir}/LinkDef.h ) ##################### ### Cubix Library ### ##################### #---Create a shared library with geneated dictionary add_library(${Lib_NAME} SHARED ${sources} G__${Lib_NAME}.cxx) target_link_libraries(${Lib_NAME} ${EXTRA_EXTERNAL_LIBRARIES} ${EXTRA_INTERNAL_LIBRARIES}) ##################### ### Cubix Program ### ##################### #---Create a main program using the library add_executable(${PROG_NAME} ${PROG_NAME_SRCS}) target_link_libraries(${PROG_NAME} ${Lib_NAME}) #################### ### Instal Files ### #################### install(TARGETS ${PROG_NAME} ${Lib_NAME} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib COMPONENT libraries) install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${Lib_NAME}_rdict.pcm DESTINATION lib) install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${Lib_NAME}.rootmap DESTINATION lib) install(FILES ${headers} DESTINATION include COMPONENT headers) install(FILES ${icons} DESTINATION icons COMPONENT icons) install(DIRECTORY ${database} DESTINATION ${CMAKE_INSTALL_PREFIX})