123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- # Minimum 3.5 version is determined by cmake -E copy_if_different command
- # that was used to copy headers to the build directory:
- # multiple files are supported since cmake 3.5
- cmake_minimum_required(VERSION 3.5)
- list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
- project(AT_UserTasks
- LANGUAGES CXX)
- # by default build optimized code
- if(NOT DEFINED CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE RELEASE)
- endif()
- if(NOT DEFINED CMAKE_CXX_STANDARD)
- set(CMAKE_CXX_STANDARD 17)
- endif()
- # in DEBUG mode make verbose Makefile
- if (CMAKE_BUILD_TYPE MATCHES DEBUG)
- set(CMAKE_VERBOSE_MAKEFILE ON)
- endif ()
- if(CMAKE_CXX_STANDARD LESS 17)
- find_package(Boost REQUIRED)
- endif()
- if(Boost_FOUND)
- message(STATUS "Boost version ${Boost_VERSION_STRING} is found!")
- message(STATUS "Boost include dir: ${Boost_INCLUDE_DIRS}")
- endif()
- set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb -g -DDEBUG -D__DEBUG -Wall -Wextra")
- #set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb -g -DDEBUG -D__DEBUG -Wall -Wextra --coverage")
- set(CMAKE_CXX_FLAGS_RELEASE "-O3 -ftree-vectorize -ffast-math -DNODEBUG")
- message(STATUS "Using CXX flags for ${CMAKE_BUILD_TYPE}: ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}}")
- list(APPEND CMAKE_PREFIX_PATH $ENV{ROOTSYS})
- list(APPEND CMAKE_PREFIX_PATH ${ROOTSYS})
- find_package(ROOT REQUIRED)
- message(STATUS "Using ROOT: ${ROOT_VERSION} <${ROOT_CONFIG}>")
- include_directories(${ROOT_INCLUDE_DIR} ${ROOT_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR} core)
- include(${ROOT_USE_FILE})
- #---Locate AnalysisTree libraries
- find_library(AnalysisTreeBase NAMES AnalysisTreeBase PATHS $ENV{ANALYSISTREE_LIB})
- find_library(AnalysisTreeInfra NAMES AnalysisTreeInfra PATHS $ENV{ANALYSISTREE_LIB})
- if (AnalysisTreeBase)
- message(STATUS "AnalysisTreeBase is found: ${AnalysisTreeBase}")
- endif()
- if (NOT AnalysisTreeBase)
- message(FATAL_ERROR "Error: AnalysisTreeBase library wasn't found!")
- endif()
- if (AnalysisTreeInfra)
- message(STATUS "AnalysisTreeInfra is found: ${AnalysisTreeInfra}")
- endif()
- if (NOT AnalysisTreeInfra)
- message(FATAL_ERROR "Error: AnalysisTreeInfra library wasn't found!")
- endif()
- include_directories($ENV{ANALYSISTREE_INC}/AnalysisTree)
- set(SOURCES
- UserTaskWrite.cpp
- )
- message(STATUS "CMAKE_PROJECT_NAME ${CMAKE_PROJECT_NAME}")
- string(REPLACE ".cpp" ".hpp" HEADERS "${SOURCES}")
- include_directories(${CMAKE_CURRENT_SOURCE_DIR} $<$<BOOL:${Boost_FOUND}>:${Boost_INCLUDE_DIRS}>)
- add_library(AnalysisTreeUser SHARED ${SOURCES} G__AnalysisTreeUser.cxx)
- target_compile_definitions(AnalysisTreeUser PUBLIC
- $<$<BOOL:${Boost_FOUND}>:ANALYSISTREE_BOOST_FOUND>)
- ROOT_GENERATE_DICTIONARY(G__AnalysisTreeUser ${HEADERS}
- LINKDEF AnalysisTreeUserLinkDef.h
- OPTIONS
- -I${CMAKE_BINARY_DIR}/include
- $<$<BOOL:${Boost_FOUND}>:-DANALYSISTREE_BOOST_FOUND>
- )
- target_link_libraries(AnalysisTreeUser
- PUBLIC
- ${ROOT_LIBRARIES}
- ${AnalysisTreeBase} ${AnalysisTreeInfra}
- $<$<BOOL:${Boost_FOUND}>:${Boost_LIBRARIES}>
- )
- include(${ROOT_USE_FILE})
- include_directories(${ROOT_INCLUDE_DIR} ${ROOT_INCLUDE_DIRS} ${AnalysisTree_INCLUDE_DIR})
- # add_executable(example example.cpp)
- # target_link_libraries(example AnalysisTreeBase AnalysisTreeInfra AnalysisTreeUser ${ROOT_LIBRARIES} EG)
- # add_executable(run_read_task run_read_task.cpp)
- # target_link_libraries(run_read_task AnalysisTreeBase AnalysisTreeInfra AnalysisTreeUser ${ROOT_LIBRARIES} EG)
- add_executable(run_write_task run_write_task.cpp)
- target_link_libraries(run_write_task ${AnalysisTreeBase} ${AnalysisTreeInfra} AnalysisTreeUser ${ROOT_LIBRARIES} EG)
- #cmake_minimum_required(VERSION 3.5)
- #project(AnalysisTreeTask CXX)
- #set(PROJECT_VERSION 1.0)
- #
- #if(NOT DEFINED CMAKE_BUILD_TYPE)
- # set(CMAKE_BUILD_TYPE RELEASE)
- #endif()
- #
- #if(NOT DEFINED CMAKE_CXX_STANDARD)
- # set(CMAKE_CXX_STANDARD 17)
- #endif()
- #
- ## in DEBUG mode make verbose Makefile
- #if (CMAKE_BUILD_TYPE MATCHES DEBUG)
- # set(CMAKE_VERBOSE_MAKEFILE ON)
- #endif ()
- #
- #if(CMAKE_CXX_STANDARD LESS 17)
- # find_package(Boost)
- #endif()
- #
- #if(Boost_FOUND)
- # message(STATUS "Boost version ${Boost_VERSION_STRING} is found!")
- # message(STATUS "Boost include dir: ${Boost_INCLUDE_DIRS}")
- # add_definitions(-DUSEBOOST)
- #endif()
- #
- #find_package(ROOT REQUIRED)
- #list(APPEND CMAKE_PREFIX_PATH $ENV{ROOTSYS})
- #find_package(AnalysisTree REQUIRED)
- #
- #message(STATUS "${ROOT_INCLUDE_DIRS} ${AnalysisTree_INCLUDE_DIR}")
- #message(STATUS "${ROOT_LIBRARIES} ${AnalysisTree_INCLUDE_DIR}")
|