#-----| Set cmake, compiler, output folders |--------------------------------------------------------------------------- # sets minimum version of cmake we are using if possible always use the latest one cmake_minimum_required(VERSION 3.8) project(root_intro) set(PROJECT_NAME root_intro) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") # define compiler set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") # compiler optimization set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}" ) # saving output files to current directory set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") set(PROJECT_LINK_LIBS ) # storage for all linked libraries we add (at this point empty) #-----| Define sources to used files |--------------------------------------------------------------------------------- set(SOURCE_FILES main.cpp) #-----| Adding 3rd Party libraries that are used |---------------------------------------------------------------------- # locate the ROOT package find_package(ROOT REQUIRED ) # add useful ROOT functions and macros (e.g. ROOT_GENERATE_DICTIONARY) include(${ROOT_USE_FILE}) #-----| Adding executables |-------------------------------------------------------------------------------------------- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ../bin) # add executable to bin directory # requests that an executable with name EXECUTABLE_NAME is to be built using all the parameters add_executable(${PROJECT_NAME} ${SOURCE_FILES}) target_link_libraries(${PROJECT_NAME} ${PROJECT_LINK_LIBS}) #-----| Adding linkers for 3rd Party libraries that are used |---------------------------------------------------------- target_link_libraries(${PROJECT_NAME} ${ROOT_LIBRARIES}) #-----------------------------------------------------------------------------------------------------------------------