1
0
mirror of https://github.com/aportelli/LatAnalyze.git synced 2024-11-10 00:45:36 +00:00
LatAnalyze/CMakeLists.txt

73 lines
1.9 KiB
CMake
Raw Normal View History

2024-02-08 14:00:09 +00:00
# package config
cmake_minimum_required(VERSION 3.11.0)
project(
LatAnalyze
VERSION 3.6
LANGUAGES C CXX)
2024-02-08 14:00:09 +00:00
# includes
2024-02-08 18:08:44 +00:00
include(CMakePackageConfigHelpers)
include(FetchContent)
include(FindPackageMessage)
2024-02-08 13:50:29 +00:00
include(GNUInstallDirs)
2024-02-08 14:00:09 +00:00
# C++ standard
set(CMAKE_CXX_STANDARD 14)
2024-02-10 09:55:22 +00:00
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_CXX_EXTENSIONS OFF)
# installation rpath setup
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
2024-02-08 14:00:09 +00:00
# fetch and create symbolic link to Eigen headers
set(FETCHCONTENT_BASE_DIR ${CMAKE_BINARY_DIR}/deps)
FetchContent_Declare(
Eigen3
GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git
GIT_TAG 3.4.0)
FetchContent_GetProperties(Eigen3)
if(NOT eigen3_POPULATED)
FetchContent_Populate(Eigen3)
message(STATUS "Eigen3 fetched")
endif()
file(CREATE_LINK ${eigen3_SOURCE_DIR}/Eigen ${CMAKE_SOURCE_DIR}/lib/LatAnalyze/Eigen
SYMBOLIC)
2024-02-08 14:00:09 +00:00
# dependencies
find_package(GSL REQUIRED)
find_package(HDF5 REQUIRED COMPONENTS C CXX)
2024-02-08 18:08:44 +00:00
find_package(Minuit2 QUIET)
if(Minuit2_FOUND)
2024-02-08 13:50:29 +00:00
set(Minuit2_MSG "yes")
find_package_message(
Minuit2
"Found Minuit2: ${Minuit2_DIR} (found version \"${Minuit2_VERSION}\")" " ")
else()
2024-02-08 13:50:29 +00:00
set(Minuit2_MSG "no")
message(STATUS "Minuit2 not found")
endif()
2024-02-08 18:08:44 +00:00
find_package(NLopt QUIET)
if(NLopt_FOUND)
2024-02-08 13:50:29 +00:00
set(NLopt_MSG "yes")
find_package_message(
NLopt "Found NLopt: ${NLopt_DIR} (found version \"${NLopt_VERSION}\")" " ")
else()
2024-02-08 13:50:29 +00:00
set(NLopt_MSG "no")
message(STATUS "NLopt not found")
endif()
2024-02-08 14:00:09 +00:00
# subdirectories
add_subdirectory(lib)
2024-02-10 09:55:22 +00:00
add_subdirectory(examples)
add_subdirectory(physics)
add_subdirectory(utils)
2024-02-08 13:50:29 +00:00
2024-02-08 14:00:09 +00:00
# summary
2024-02-08 13:50:29 +00:00
message(STATUS "---------------------------")
message(STATUS "LatAnalyze v${PROJECT_VERSION} configured")
message(STATUS "---------------------------")
message(STATUS " install prefix: ${CMAKE_INSTALL_PREFIX}")
message(STATUS "Minuit2 minimisers: ${Minuit2_MSG}")
message(STATUS " NLopt minimisers: ${NLopt_MSG}")
message(STATUS "---------------------------")