Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 33 additions & 28 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,48 +8,53 @@ on:

env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Debug
BUILD_TYPE: Release

permissions:
id-token: write
contents: read # This is required for actions/checkout@v2

jobs:
build_centos7:
container: kreisl/rootcpp17
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Configure CMake
run: source /opt/rh/devtoolset-8/enable && cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DAnalysisTreeQA_BUILD_TESTS=ON -DAnalysisTreeQA_BUNDLED_AT=ON
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
- name: Test
run: cd ${{github.workspace}}/build && ctest -C ${{env.BUILD_TYPE}}

build_fedora35:
container: rootproject/root:6.24.06-fedora35
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Configure CMake
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DAnalysisTreeQA_BUILD_TESTS=ON -DAnalysisTreeQA_BUNDLED_AT=ON
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
- name: Test
run: cd ${{github.workspace}}/build && ctest -C ${{env.BUILD_TYPE}}

build_fedora34:
container: rootproject/root:6.22.08-fedora34
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Configure CMake
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DAnalysisTreeQA_BUILD_TESTS=ON -DAnalysisTreeQA_BUNDLED_AT=ON
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
- name: Test
run: cd ${{github.workspace}}/build && ctest -C ${{env.BUILD_TYPE}}



# build_fedora35:
# container: rootproject/root:6.24.06-fedora35
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# with:
# fetch-depth: 0
# - name: Configure CMake
# run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DAnalysisTreeQA_BUILD_TESTS=ON -DAnalysisTreeQA_BUNDLED_AT=ON
# - name: Build
# run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
# - name: Test
# run: cd ${{github.workspace}}/build && ctest -C ${{env.BUILD_TYPE}}
#


# build_centos7:
# container: kreisl/rootcpp17
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# with:
# fetch-depth: 0
# - name: Configure CMake
# run: source /opt/rh/devtoolset-8/enable && cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DAnalysisTreeQA_BUILD_TESTS=ON -DAnalysisTreeQA_BUNDLED_AT=ON
# - name: Build
# run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
# - name: Test
# run: cd ${{github.workspace}}/build && ctest -C ${{env.BUILD_TYPE}}
25 changes: 14 additions & 11 deletions AnalysisTreeQAConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
include("${CMAKE_CURRENT_LIST_DIR}/AnalysisTreeQATargets.cmake")

@PACKAGE_INIT@

message ("-- Found AnalysisTreeQA...")

set(AnalysisTreeQA_INCLUDE_DIR "@PACKAGE_AnalysisTreeQA_INCLUDE_DIR@")
message ("AnalysisTreeQA_INCLUDE_DIR = ${AnalysisTreeQA_INCLUDE_DIR}")

set(AnalysisTreeQA_LIBRARY_DIR "@PACKAGE_AnalysisTreeQA_LIBRARY_DIR@")
message ("AnalysisTreeQA_LIBRARY_DIR = ${AnalysisTreeQA_LIBRARY_DIR}")
cmake_minimum_required(VERSION 2.8.2)

project(googletest-download NONE)

include(ExternalProject)
ExternalProject_Add(googletest
URL "https://github.com/google/googletest/archive/refs/tags/release-1.11.0.zip"
SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-src"
BINARY_DIR "${CMAKE_BINARY_DIR}/googletest-build"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND ""
)
79 changes: 27 additions & 52 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,79 +1,54 @@
# 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)
project(AnalysisTreeQA CXX)
set(PROJECT_VERSION 1.1)

list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)
#
# Options
#
set(AnalysisTreeQA_BUILD_TASKS OFF CACHE BOOL "Build user' AnalysisTreeQA tasks (tasks/)")
set(AnalysisTreeQA_BUILD_EXAMPLES ON CACHE BOOL "Build AnalysisTreeQA examples (examples/)")
set(AnalysisTreeQA_BUILD_TESTS OFF CACHE BOOL "Build tests for AnalysisTreeQA")
set(AnalysisTreeQA_BUNDLED_AT ON CACHE BOOL "Get and build AnalysisTree")
set(AnalysisTreeQA_BUNDLED_AT_VERSION "v2.2.5" CACHE STRING "Bundled AnalysisTree version")
set(AnalysisTreeQA_BUNDLED_CUTS ON CACHE BOOL "Get and build AnalysisTreeCuts")
set(AnalysisTreeQA_BUNDLED_CUTS_VERSION "v0.0.1" CACHE STRING "Bundled AnalysisTreeCuts version")
cmake_minimum_required(VERSION 3.14)

list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)

include(MunkeiVersionFromGitATQA)
version_from_git(
LOG ON
TIMESTAMP "%Y%m%d%H%M%S"
)

project(AnalysisTreeQA VERSION ${VERSION} LANGUAGES CXX)

option(AnalysisTreeQA_BUILD_EXAMPLES "Build AnalysisTreeQA examples (examples/)" ON)
option(AnalysisTreeQA_BUILD_TESTS "Build tests for AnalysisTreeQA" ON)
option(AnalysisTreeQA_BUNDLED_AT "Get and build AnalysisTree" ON)
option(yaml-cpp_BUNDLED "Build bundled yaml-cpp" ON)

set(AnalysisTreeQA_BUNDLED_AT_VERSION "v2.2.6" CACHE STRING "Bundled AnalysisTree version")

# by default build optimized code
if(NOT DEFINED CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE RELEASE)
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)
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")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -ftree-vectorize -ffast-math -DNODEBUG")
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 RIO)

message(STATUS "Using ROOT: ${ROOT_VERSION} <${ROOT_CONFIG}>")
include_directories(${CMAKE_SOURCE_DIR} ${ROOT_INCLUDE_DIR} ${ROOT_INCLUDE_DIRS})
include(${ROOT_USE_FILE})

set(EXTERNAL_DIR ${CMAKE_BINARY_DIR}/external)
set(EXTERNAL_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/external)

include_directories(${CMAKE_SOURCE_DIR} ${AnalysisTree_INCLUDE_DIR} ${PROJECT_INCLUDE_DIRECTORIES})
include(ROOT)
include(AnalysisTree)
include(YamlCpp)
include(Boost)

add_subdirectory(src)

if(AnalysisTreeQA_BUILD_TASKS)
add_subdirectory(tasks)
endif()

add_subdirectory(test)
if(AnalysisTreeQA_BUILD_EXAMPLES)
add_subdirectory(examples)
endif()

if(AnalysisTreeQA_BUILD_TESTS)
message("Compiling tests")
include(GoogleTest)
enable_testing()
add_subdirectory(test)
endif()

include(CMakePackageConfigHelpers)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/AnalysisTreeQA/AnalysisTreeQAConfigVersion.cmake"
Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ To apply the flag use -D{Name}={value}, for example, if you want to compile usin
cmake -DCMAKE_CXX_STANDARD=11 ../

| Name | Default value | Possible values |
| ------------- | ------------- | ---------- |
| CMAKE_BUILD_TYPE | RELEASE | RELEASE/DEBUG |
| CMAKE_CXX_STANDARD | 17 | 11/14/17 |
| AnalysisTreeQA_BUILD_TESTS | ON | ON/OFF |
| AnalysisTreeQA_BUILD_TASKS | OFF | ON/OFF |
| AnalysisTreeQA_BUNDLED_AT | ON | ON/OFF |
| AnalysisTreeQA_BUNDLED_AT_VERSION | master | master/v2.0.1/... |
| ------------- |---------------| ---------- |
| CMAKE_BUILD_TYPE | RELEASE | RELEASE/DEBUG |
| CMAKE_CXX_STANDARD | 17 | 11/14/17 |
| AnalysisTreeQA_BUILD_TESTS | OFF | ON/OFF |
| AnalysisTreeQA_BUILD_TASKS | OFF | ON/OFF |
| AnalysisTreeQA_BUNDLED_AT | ON | ON/OFF |
| AnalysisTreeQA_BUNDLED_AT_VERSION | master | master/v2.0.1/... |

## Usage

Expand Down
11 changes: 8 additions & 3 deletions cmake_modules/AnalysisTree.cmake → cmake/AnalysisTree.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,19 @@ if (AnalysisTreeQA_BUNDLED_AT)

FetchContent_Declare(
AnalysisTree
GIT_REPOSITORY "https://github.com/HeavyIonAnalysis/AnalysisTree.git"
GIT_TAG ${AnalysisTreeQA_BUNDLED_AT_VERSION}
GIT_REPOSITORY "https://github.com/viktorklochkov/AnalysisTree.git"
# GIT_TAG ${AnalysisTreeQA_BUNDLED_AT_VERSION}
GIT_TAG cmake
GIT_SHALLOW ON
)
FetchContent_MakeAvailable(AnalysisTree)
list(APPEND PROJECT_INCLUDE_DIRECTORIES ${AnalysisTree_BINARY_DIR}/include)
message(STATUS "AT: ${AnalysisTree_BINARY_DIR} ${AnalysisTree_SOURCE_DIR}")
else()
find_package(AnalysisTree REQUIRED)
list(APPEND CMAKE_PREFIX_PATH ${ANALYSISTREE_HOME})
list(APPEND CMAKE_PREFIX_PATH $ENV{ANALYSISTREE_HOME})
find_package(AnalysisTree REQUIRED)
list(APPEND PROJECT_INCLUDE_DIRECTORIES ${AnalysisTree_INCLUDE_DIR})
endif()

list(APPEND PROJECT_LINK_LIBRARIES AnalysisTreeBase AnalysisTreeInfra)
11 changes: 11 additions & 0 deletions cmake/Boost.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
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}")
message(STATUS "Boost lib dir: ${Boost_LIBRARY_DIRS}")
list(APPEND PROJECT_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIR}})
list(APPEND PROJECT_LINK_DIRECTORIES ${Boost_LIBRARY_DIRS}})
endif()
Loading