Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Guillaume Baulieu
agapro
Commits
45db5862
Commit
45db5862
authored
Apr 19, 2019
by
Stezowski Olivier
Browse files
modern cmake fully work (libraries and building of an exe i.e. an emulator) on mac and linux
parent
8ea0772e
Changes
39
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
508 additions
and
264 deletions
+508
-264
CMakeLists.txt
CMakeLists.txt
+36
-31
CMakeLists_T1.txt
CMakeLists_T1.txt
+138
-59
builders/build/T1/CMakeLists.txt
builders/build/T1/CMakeLists.txt
+40
-18
common/CMakeLists.txt
common/CMakeLists.txt
+3
-6
common/build/T1/CMakeLists.txt
common/build/T1/CMakeLists.txt
+58
-40
consumers/Basic/CMakeLists.txt
consumers/Basic/CMakeLists.txt
+2
-2
consumers/Basic/build/T1/CMakeLists.txt
consumers/Basic/build/T1/CMakeLists.txt
+38
-16
consumers/CMakeLists.txt
consumers/CMakeLists.txt
+2
-2
consumers/Histogramer/CMakeLists.txt
consumers/Histogramer/CMakeLists.txt
+2
-3
consumers/Histogramer/PSAHist/CMakeLists.txt
consumers/Histogramer/PSAHist/CMakeLists.txt
+2
-3
consumers/Histogramer/PSAHist/build/T1/CMakeLists.txt
consumers/Histogramer/PSAHist/build/T1/CMakeLists.txt
+38
-15
consumers/Histogramer/PreproHist/CMakeLists.txt
consumers/Histogramer/PreproHist/CMakeLists.txt
+2
-3
consumers/Histogramer/PreproHist/build/T1/CMakeLists.txt
consumers/Histogramer/PreproHist/build/T1/CMakeLists.txt
+38
-16
consumers/Histogramer/ProdHist/CMakeLists.txt
consumers/Histogramer/ProdHist/CMakeLists.txt
+2
-3
consumers/Histogramer/ProdHist/build/T1/CMakeLists.txt
consumers/Histogramer/ProdHist/build/T1/CMakeLists.txt
+37
-15
consumers/Histogramer/build/T1/CMakeLists.txt
consumers/Histogramer/build/T1/CMakeLists.txt
+11
-6
consumers/TreeBuilder/CMakeLists.txt
consumers/TreeBuilder/CMakeLists.txt
+2
-3
consumers/TreeBuilder/build/T1/CMakeLists.txt
consumers/TreeBuilder/build/T1/CMakeLists.txt
+40
-16
consumers/build/T1/CMakeLists.txt
consumers/build/T1/CMakeLists.txt
+12
-5
filters/BasicATSB/CMakeLists.txt
filters/BasicATSB/CMakeLists.txt
+5
-2
No files found.
CMakeLists.txt
View file @
45db5862
#
------------------------------------------------------------------------------
#
CMake TOP file for agapro.
#
=============================================================================
#
+++++++++++++++++++++++++ CMake TOP file for agapro ++++++++++++++++++++++++
#
# In order to adapt the project to major changes in the building system,
# all sub-modules have a build directory divided in sub-directories called TX,
...
...
@@ -15,47 +15,52 @@
#
cmake_minimum_required
(
VERSION 3.5 FATAL_ERROR
)
#
#------------------------------------------------------------------------------
# Enforce an out-of-source builds before anything else
#
if
(
${
CMAKE_SOURCE_DIR
}
STREQUAL
${
CMAKE_BINARY_DIR
}
)
MESSAGE
(
STATUS
"[AGAPRO] AGAPRO requires an out-of-source build."
)
MESSAGE
(
STATUS
"[AGAPRO] Please remove these files from
${
CMAKE_BINARY_DIR
}
first:"
)
MESSAGE
(
STATUS
"[AGAPRO] CMakeCache.txt"
)
MESSAGE
(
STATUS
"[AGAPRO] CMakeFiles"
)
MESSAGE
(
STATUS
"[AGAPRO] Once these files are removed, create a separate directory"
)
MESSAGE
(
STATUS
"[AGAPRO] and run CMake from there"
)
MESSAGE
(
FATAL_ERROR
"[AGAPRO] in-source build detected"
)
message
(
STATUS
"[AGAPRO] AGAPRO requires an out-of-source build."
)
message
(
STATUS
"[AGAPRO] Please remove these files from
${
CMAKE_BINARY_DIR
}
first:"
)
message
(
STATUS
"[AGAPRO] CMakeCache.txt"
)
message
(
STATUS
"[AGAPRO] CMakeFiles"
)
message
(
STATUS
"[AGAPRO] Once these files are removed, create a separate directory"
)
message
(
STATUS
"[AGAPRO] and run CMake from there"
)
message
(
FATAL_ERROR
"[AGAPRO] in-source build detected"
)
endif
()
#
#
# Where to look first for cmake modules
# ------------------------ CMake TOP file for agapro -------------------------
# =============================================================================
SET
(
AGAPRO_BUILDING_TYPE_DEFAULT 0
)
# =============================================================================
# +++++++++++++++++++++++++++ Select the built tree +++++++++++++++++++++++++++
#
set
(
AGAPRO_BUILDING_TYPE_DEFAULT 0
)
if
(
NOT AGAPRO_BUILDING_TYPE
)
SET
(
AGAPRO_BUILDING_TYPE
${
AGAPRO_BUILDING_TYPE_DEFAULT
}
)
set
(
AGAPRO_BUILDING_TYPE
${
AGAPRO_BUILDING_TYPE_DEFAULT
}
)
endif
()
#
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
MESSAGE
(
"[AGAPRO] Building Type is "
${
AGAPRO_BUILDING_TYPE
}
)
IF
(
AGAPRO_BUILDING_TYPE EQUAL 0
)
SET
(
CMAKE_MODULE_PATH
${
CMAKE_SOURCE_DIR
}
/cmake/modules
)
OPTION
(
GUESS_THREAD
"GUESS THREAD"
ON
)
INCLUDE
(
CMakeLists_T0.txt
)
ELSEIF
(
AGAPRO_BUILDING_TYPE EQUAL 1
)
# SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
message
(
"[CMAKE_AGAPRO] Building Type is "
${
AGAPRO_BUILDING_TYPE
}
)
if
(
AGAPRO_BUILDING_TYPE EQUAL 0
)
set
(
CMAKE_MODULE_PATH
${
CMAKE_SOURCE_DIR
}
/cmake/modules
)
option
(
GUESS_THREAD
"GUESS THREAD"
ON
)
include
(
CMakeLists_T0.txt
)
elseif
(
AGAPRO_BUILDING_TYPE EQUAL 1
)
# set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
if
(
DEFINED ENV{G_RAYSOFTWARE_TOP_DIR}
)
# for Modern Cmake to look for XXXConfig.cmake files
set
(
CMAKE_PREFIX_PATH $ENV{G_RAYSOFTWARE_TOP_DIR}/lib/cmake/
${
CMAKE_PREFIX_PATH
}
)
# for old Cmake to look for FindXXX.cmake files
set
(
CMAKE_MODULE_PATH $ENV{G_RAYSOFTWARE_TOP_DIR}/scripts/cmake/Modules/V
${
AGAPRO_BUILDING_TYPE
}
${
CMAKE_MODULE_PATH
}
)
set
(
CMAKE_MODULE_PATH
$ENV{G_RAYSOFTWARE_TOP_DIR}/scripts/cmake/Modules/V
${
AGAPRO_BUILDING_TYPE
}
${
CMAKE_MODULE_PATH
}
)
endif
()
INCLUDE
(
GNUInstallDirs
)
INCLUDE
(
CMakeLists_T1.txt
)
ELSE
()
MESSAGE
(
"[AGAPRO] Building Type is unknown !"
)
ENDIF
()
#------------------------------------------------------------------------------
include
(
GNUInstallDirs
)
if
(
EXISTS
"$ENV{G_RAYSOFTWARE_TOP_DIR}/scripts/cmake/Modules/V1/gRaySoftwareMacros.cmake"
)
include
(
gRaySoftwareMacros
)
endif
()
include
(
CMakeLists_T1.txt
)
else
()
message
(
"[AGAPRO] Building Type is unknown !"
)
endif
()
# -------------------------- Select the built tree ----------------------------
# =============================================================================
CMakeLists_T1.txt
View file @
45db5862
#
CMake for AGAPRO
#
O. Stezowski
#
=============================================================================
#
++++++++++++++++++++++++++++ Globals definitions ++++++++++++++++++++++++++++
#
#
------------------------------------------------------------------------------
#
Check cmake version is compatible
#
Modern CMake for module of AGAPRO
#
[O. Stezowski]
#
# Effective cmake required
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
#
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
PROJECT(AGAPRO
VERSION 1.2.0
# DESCRIPTION "CMake project to build, compile & install a library containing the core function of the MFM library"
# HOMEPAGE_URL
project(AGAPRO
# VERSION 1.2.0
# DESCRIPTION "CMake project for the AGAPRO package"
# HOMEPAGE_URL
# LANGUAGES C CXX
)
message("PATH to search for cmake modules ${CMAKE_MODULE_PATH}")
#
#
------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Globals
#
is this still useful ?
set(AGATASOFTWARE_TOP_DIR "${CMAKE_SOURCE_DIR}/../")
set(TOP_PROJECT_NAME "AGAPRO")
#
message("PATH to search for cmake modules ${CMAKE_MODULE_PATH}")
SET(AGATASOFTWARE_TOP_DIR "${CMAKE_SOURCE_DIR}/../")
# ---------------------------- Globals definitions ----------------------------
# =============================================================================
#
-------------------------------------------------------------------------------
# depend
a
ncies
#
-------------------------------------------------------------------------------
#
=============================================================================
#
++++++++++++++++++++++++++++ Global
depend
e
ncies
++++++++++++++++++++++++++++
#
# Find mondule using modern cmake i.e. look
# for XXXConfig files defining targets or import targets from library & includes
#
# ADF is mandatory !
# ADF is mandatory.
# ADF not installed through modern cmake ==> built an target interface
find_package(ADF REQUIRED)
if ( ADF_FOUND )
MESSAGE
(STATUS "ADF has been found through FindADF")
message
(STATUS "ADF has been found through FindADF")
add_library(ADF SHARED IMPORTED)
set_property(TARGET ADF PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${ADF_INCLUDE_DIRS})
set_property(TARGET ADF PROPERTY IMPORTED_LOCATION ${ADF_LIBRARY})
set_property(TARGET ADF
PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${ADF_INCLUDE_DIRS})
set_property(TARGET ADF
PROPERTY IMPORTED_LOCATION ${ADF_LIBRARY})
else()
MESSAGE
(ERROR "ADF has been found")
message
(ERROR "ADF has been found")
endif()
#
find_package(ROOT)
# ROOT is not mandatory, but effective root required i.e. > root 6.16
find_package(ROOT QUIET)
if(TARGET ROOT::Core)
MESSAGE("[AGAPRO]
--> ROOTConfig FOUND")
message("
--> ROOTConfig FOUND")
# this is required for some reasons ... might be removed in the future
set_property(TARGET ROOT::Core PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${ROOT_INCLUDE_DIRS}")
set_property(TARGET ROOT::Core
PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${ROOT_INCLUDE_DIRS}")
else()
MESSAGE("[AGAPRO]
--> ROOTConfig NOT FOUND")
message("
--> ROOTConfig NOT FOUND")
endif()
#add_library(ROOT SHARED IMPORTED)
#set_property(TARGET ROOT PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${ROOT_INCLUDES})
#set_property(TARGET ROOT PROPERTY IMPORTED_LOCATION ${ROOT_LIBRARY})
# this is for pure includes
#add_library(ADF INTERFACE IMPORTED)
#set_property(TARGET ADF PROPERTY
# INTERFACE_INCLUDE_DIRECTORIES ${ADF_INCLUDE_DIRS})
#
find_package(MFM)
# MFM not mandatory, but find done though modern cmake
find_package(MFM QUIET)
if (TARGET MFM::MFM)
MESSAGE("[AGAPRO]
--> MFMConfig FOUND")
message("
--> MFMConfig FOUND")
else()
MESSAGE("[AGAPRO]
--> MFMConfig NOT FOUND")
message("
--> MFMConfig NOT FOUND")
endif()
find_package(AFT)
#
# AFT not mandatory, but find done though modern cmake
find_package(AFT QUIET)
if (TARGET AFT::AFT)
MESSAGE("[AGAPRO]
--> AFTConfig FOUND")
message("
--> AFTConfig FOUND")
else()
MESSAGE("[AGAPRO]
--> AFTConfig NOT FOUND")
message("
--> AFTConfig NOT FOUND")
endif()
# to be done
#
#
# to be done ...
#find_package(DCOD)
#find_package(VAMOS)
# Find module using simple test
#include(AGAPROMacroUtilities)
#include(AGAPROSearchInstalledSoftware)
#
#----------------------------------------------------------------------------
# NOTE: this is for pure includes
#add_library(ADF INTERFACE IMPORTED)
#set_property(TARGET ADF PROPERTY
# INTERFACE_INCLUDE_DIRECTORIES ${ADF_INCLUDE_DIRS})
#
# ---------------------------- Global dependencies ----------------------------
# =============================================================================
# =============================================================================
# ++++++++++++++++++++++++++++ Add sub-directories ++++++++++++++++++++++++++++
add_subdirectory(common)
add_subdirectory(builders)
add_subdirectory(producers)
add_subdirectory(filters)
add_subdirectory(consumers)
# ---------------------------- Add sub-directories ----------------------------
# =============================================================================
###
export(TARGETS AgaProCommon builders NAMESPACE AGAPRO:: FILE AGAPROTargets.cmake)
# =============================================================================
# ++++++++++++++++++++++++++ Install global targets +++++++++++++++++++++++++++
#
# all targets have been collected through LIST_OF_AGAPRO_TARGETS
get_property(AGAPRO_TARGETS GLOBAL PROPERTY LIST_OF_AGAPRO_TARGETS)
message("AGAPRO Targets are ${AGAPRO_TARGETS}")
export(TARGETS ${AGAPRO_TARGETS}
NAMESPACE AGAPRO::
FILE $ENV{G_RAYSOFTWARE_TOP_DIR}/lib/cmake/AGAPROConfig.cmake
)
#INSTALL(FILES ${CMAKE_BINARY_DIR}/AGAPROConfig.cmake DESTINATION lib/cmake COMPONENT libraries)
#
# this is to keep some logs in the lib directory to know installation conditions
if ( UNIXX )
TODAY(CDATE)
file(APPEND $ENV{G_RAYSOFTWARE_TOP_DIR}/CMAKE_LOG_FILE "CMAKE on AGAPRO has been called: ${CDATE}")
...
...
@@ -107,5 +117,74 @@ add_custom_target(dolog ALL
COMMAND ${CMAKE_COMMAND} -E echo ${THREAD_MESSAGE} >> LAST_AGAPRO_MAKE_LOG
COMMENT " Call log target to trackback last building "
)
INSTALL
(FILES ${CMAKE_BINARY_DIR}/LAST_AGAPRO_MAKE_LOG DESTINATION lib COMPONENT libraries)
install
(FILES ${CMAKE_BINARY_DIR}/LAST_AGAPRO_MAKE_LOG DESTINATION lib COMPONENT libraries)
endif()
# -------------------------- Install global targets ---------------------------
# =============================================================================
#
# INSTALL CMAKE TARGETS
#install(TARGETS AgaProCommon builders
# EXPORT AGAPROTargets
# LIBRARY DESTINATION lib
# ARCHIVE DESTINATION lib
# RUNTIME DESTINATION bin
# INCLUDES DESTINATION include
#)
#
# INSTALL CMAKE TARGETS
#
#install(EXPORT AGAPROTargets
# FILE
# AGAPROConfig.cmake
# NAMESPACE
# AGAPRO::
# DESTINATION
# lib/cmake/
#)
#
#install(
# EXPORT
# AgaProCommon builders BasicAFP Crystal GRETINA_GT2ADF PreprocessingFilter TrackingFilter PSAFilter ostPSAFilter BasicATSB BasicAFC ProdHist PreproHist PSAHist TreeBuilder
# FILE
# AGAPROConfig.cmake
# NAMESPACE
# AGAPRO::
# DESTINATION
# lib/cmake/
#)
#
# INSTALL CMAKE TARGETS
#install(TARGETS AgaProCommon builders
# EXPORT AGAPROTargets
# LIBRARY DESTINATION lib
# ARCHIVE DESTINATION lib
# RUNTIME DESTINATION bin
# INCLUDES DESTINATION include
#)
#
# INSTALL CMAKE TARGETS
#
#install(EXPORT AGAPROTargets
# FILE
# AGAPROConfig.cmake
# NAMESPACE
# AGAPRO::
# DESTINATION
# lib/cmake/
#)
#
#install(
# EXPORT
# AgaProCommon builders BasicAFP Crystal GRETINA_GT2ADF PreprocessingFilter TrackingFilter PSAFilter ostPSAFilter BasicATSB BasicAFC ProdHist PreproHist PSAHist TreeBuilder
# FILE
# AGAPROConfig.cmake
# NAMESPACE
# AGAPRO::
# DESTINATION
# lib/cmake/
#)
builders/build/T1/CMakeLists.txt
View file @
45db5862
# CMake for module of AGAPRO
# O. Stezowski
# =============================================================================
# ++++++++++++++++++++++++++++ Globals definitions ++++++++++++++++++++++++++++
#
# Modern CMake for module of AGAPRO
# [O. Stezowski]
#
# Effective cmake required
cmake_minimum_required
(
VERSION 3.5
)
#
# Here is the project name
project
(
builders
)
#
MESSAGE
(
"[AGAPRO] +
${
PROJECT_NAME
}
"
)
# ////////// Targets definitions //////////
message
(
STATUS
" +
${
PROJECT_NAME
}
"
)
#
# Main target is to produce a shared library
# ---------------------------- Globals definitions ----------------------------
# =============================================================================
# =============================================================================
# ++++++++++++++++++++++++++++ Targets definitions ++++++++++++++++++++++++++++
#
# Main target is to produce a shared library
add_library
(
${
PROJECT_NAME
}
SHARED
EventBuilder.cpp
EventQueue.cpp
# libEventBuilder.cpp
)
add_library
(
AGAPRO::
${
PROJECT_NAME
}
ALIAS
${
PROJECT_NAME
}
)
#
# define public headers to be installed
set_target_properties
(
${
PROJECT_NAME
}
PROPERTIES PUBLIC_HEADER
"EventBuilder.h;EventQueue.h"
)
#
# alias for full tree
add_library
(
AGAPRO::
${
PROJECT_NAME
}
ALIAS
${
PROJECT_NAME
}
)
#
# directories for includes
target_include_directories
(
${
PROJECT_NAME
}
PUBLIC
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
>
$<INSTALL_INTERFACE:include>
)
#
# dependencies for that target
target_link_libraries
(
${
PROJECT_NAME
}
ADF
AGAPRO::AgaProCommon
)
#
# C++11 required for thread support
#
# C++11 required for thread support / true since it had a config file by cmake
target_compile_features
(
${
PROJECT_NAME
}
PUBLIC cxx_constexpr
)
target_compile_definitions
(
${
PROJECT_NAME
}
PUBLIC HAS_AGAPROCONFIG
)
#
# ////////// Targets definitions //////////
# ---------------------------- Targets definitions ----------------------------
# =============================================================================
# =============================================================================
# ++++++++++++++++++++++++++ Install local targets ++++++++++++++++++++++++++++
#
# INSTALL TARGETS
#
install
(
TARGETS
${
PROJECT_NAME
}
EXPORT
${
PROJECT_NAME
}
Targets
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
INCLUDES DESTINATION include
PUBLIC_HEADER DESTINATION include
)
#
# INSTALL CMAKE TARGETS
#
install
(
EXPORT
${
PROJECT_NAME
}
Targets
FILE
${
PROJECT_NAME
}
Targets.cmake
NAMESPACE
AGAPRO::
DESTINATION
lib/cmake/
DESTINATION
lib/cmake/
${
PROJECT_NAME
}
)
#
# ////////// /////////////////// //////////
# Add this target to the full list of AGAPRO targets
set_property
(
GLOBAL APPEND PROPERTY LIST_OF_AGAPRO_TARGETS
${
PROJECT_NAME
}
)
#
# --------------------------- Install local targets ---------------------------
# =============================================================================
common/CMakeLists.txt
View file @
45db5862
#
# Just call the right Cmakefile depending of the building type
#
# this is defined since cmake generates a config file
#
#ADD_DEFINITIONS(-DHAS_AGAPROCONFIG)
#
if
(
EXISTS
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/build/T
${
AGAPRO_BUILDING_TYPE
}
/CMakeLists.txt"
)
INCLUDE
(
build/T
${
AGAPRO_BUILDING_TYPE
}
/CMakeLists.txt
)
include
(
build/T
${
AGAPRO_BUILDING_TYPE
}
/CMakeLists.txt
)
else
()
MESSAGE
(
"Building type
${
AGAPRO_BUILDING_TYPE
}
unknown in
${
CMAKE_CURRENT_SOURCE_DIR
}
/CMakeLists.txt"
)
message
(
AUTHOR_WARNING
"Building type
${
AGAPRO_BUILDING_TYPE
}
unknown in
${
CMAKE_CURRENT_SOURCE_DIR
}
/CMakeLists.txt"
)
endif
()
common/build/T1/CMakeLists.txt
View file @
45db5862
#
CMake for module of AGAPRO
#
O. Stezowski
#
=============================================================================
#
++++++++++++++++++++++++++++ Globals definitions ++++++++++++++++++++++++++++
#
# Modern CMake for module of AGAPRO
# [O. Stezowski]
#
# Effective cmake required
cmake_minimum_required
(
VERSION 3.5
)
#
project
(
AgaProCommon
)
#
MESSAGE
(
"[AGAPRO] +
${
PROJECT_NAME
}
"
)
#
# ////////// Config definitions //////////
message
(
STATUS
" +
${
PROJECT_NAME
}
"
)
#
# this is to produce the config file
# this is to produce the config file
AGAPROConfig.h
#
# OS type required
if
(
UNIX
)
set
(
CMAKE_OS_TYPE 1
)
endif
()
...
...
@@ -23,50 +26,52 @@ endif()
if
(
APPLE
)
set
(
CMAKE_OS_TYPE 4
)
endif
()
# Narval on/off
if
(
HAS_NARVAL
)
set
(
CMAKE_NRV_TYPE 1
)
else
()
set
(
CMAKE_NRV_TYPE 2
)
endif
()
# thread support ... cxx11 only now
set
(
CMAKE_THR_TYPE 0
)
if
(
HAS_C11
)
SET
(
CMAKE_THR_TYPE 2
)
set
(
CMAKE_THR_TYPE 2
)
else
()
if
(
HAS_BOOST
)
SET
(
CMAKE_THR_TYPE 1
)
set
(
CMAKE_THR_TYPE 1
)
endif
()
endif
()
# ROOT related
if
(
ROOT_FOUND
)
SET
(
HAS_ROOT ON
)
SET
(
WITH_ROOT ON
)
# For Vamos lib
message
(
"[AGAPRO]
--> with ROOT enabled"
)
set
(
HAS_ROOT ON
)
set
(
WITH_ROOT ON
)
message
(
STATUS
"
--> with ROOT enabled"
)
else
()
message
(
"[AGAPRO]
--> with ROOT disabled"
)
message
(
WARNING
"
--> with ROOT disabled"
)
endif
()
# MFM related
if
(
MFM_FOUND
)
SET
(
HAS_MFM ON
)
SET
(
WITH_MFM ON
)
# For Vamos lib
message
(
"[AGAPRO]
--> with MFM enabled"
)
set
(
HAS_MFM ON
)
set
(
WITH_MFM ON
)
message
(
STATUS
"
--> with MFM enabled"
)
else
()
message
(
"[AGAPRO]
--> with MFM disabled"
)
message
(
AUTHOR_WARNING
"
--> with MFM disabled"
)
endif
()
# VAMOS related
if
(
VAMOS_FOUND
)
SET
(
HAS_VAMOS ON
)
message
(
"[AGAPRO]
--> with VAMOS enabled"
)
message
(
STATUS
"
--> with VAMOS enabled"
)
else
()
message
(
"[AGAPRO]
--> with VAMOS disabled"
)
message
(
AUTHOR_WARNING
"
--> with VAMOS disabled"
)
endif
()
# DCOD related
if
(
DCOD_FOUND
)
SET
(
HAS_DCOD ON
)
message
(
"[AGAPRO]
--> with DCOD enabled"
)
message
(
STATUS
"
--> with DCOD enabled"
)
else
()
message
(
"[AGAPRO]
--> with DCOD disabled"
)
message
(
AUTHOR_WARNING
"
--> with DCOD disabled"
)
endif
()
#
#
built the congiguration file
configure_file
(
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/AGAPROConfig.h.cmake"
"
${
CMAKE_CURRENT_BINARY_DIR
}
/include/AGAPROConfig.h"
...
...
@@ -76,13 +81,13 @@ configure_file (
# INSTALL_DESTINATION ${LIB_INSTALL_DIR}/cmake/${PROJECT_NAME}
# PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR
#)
#
#
////////// /////////////////// //////////
#
---------------------------- Globals definitions ----------------------------
#
=============================================================================
# ////////// Targets definitions //////////
#
# Main target is to produce a shared library
# =============================================================================
# ++++++++++++++++++++++++++++ Targets definitions ++++++++++++++++++++++++++++
#
# Main target is to produce a shared library
add_library
(
${
PROJECT_NAME
}
SHARED
ConfReader.cpp
CycleServer.cpp
...
...
@@ -95,8 +100,17 @@ add_library(${PROJECT_NAME} SHARED
base_class.cpp
mwdlib.cpp
)
#
# define public headers to be installed
set_target_properties
(
${
PROJECT_NAME
}
PROPERTIES PUBLIC_HEADER
"ChainLocker.h;ConfReader.h;CycleServer.h;GaspBuffer.h;Misc.h;MixFFT.h;MultiHist.h;TextReader.h;TstampFilter.h;ada_parameters.h;adetParams.h;base_class.h;commonDefs.h;dataPairFile.h;mwdlib.h;sAppend.h;
${
CMAKE_CURRENT_BINARY_DIR
}
/include/AGAPROConfig.h"
)
#
# alias for full tree
add_library
(
AGAPRO::
${
PROJECT_NAME
}
ALIAS
${
PROJECT_NAME
}
)
#
# directories for includes
target_include_directories
(
${
PROJECT_NAME
}
PUBLIC
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
>
...
...
@@ -108,30 +122,34 @@ target_include_directories( ${PROJECT_NAME}
target_compile_features
(
${
PROJECT_NAME
}
PUBLIC cxx_constexpr
)
target_compile_definitions
(
${
PROJECT_NAME
}
PUBLIC HAS_AGAPROCONFIG
)
#
# ////////// Targets definitions //////////
# ---------------------------- Targets definitions ----------------------------
# =============================================================================
# =============================================================================
# ++++++++++++++++++++++++++ Install local targets ++++++++++++++++++++++++++++
#
# INSTALL TARGETS
#
install
(
TARGETS
${
PROJECT_NAME
}
EXPORT
${
PROJECT_NAME
}
Targets
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
INCLUDES DESTINATION include
PUBLIC_HEADER DESTINATION include
)
#
# INSTALL CMAKE TARGETS
#
install
(
EXPORT
${
PROJECT_NAME
}
Targets
FILE
${
PROJECT_NAME
}
Targets.cmake
NAMESPACE
AGAPRO::
DESTINATION
lib/cmake/
DESTINATION
lib/cmake/
${
PROJECT_NAME
}
)
install
(
FILES
"
${
CMAKE_CURRENT_BINARY_DIR
}
/include/AGAPROConfig.h"
DESTINATION include COMPONENT headers
)
#
# ////////// /////////////////// //////////
# Add this target to the full list of AGAPRO targets
set_property
(
GLOBAL APPEND PROPERTY LIST_OF_AGAPRO_TARGETS
${
PROJECT_NAME
}
)
#
# --------------------------- Install local targets ---------------------------
# =============================================================================
consumers/Basic/CMakeLists.txt
View file @
45db5862
...
...
@@ -2,8 +2,8 @@
# Just call the right Cmakefile depending of the building type
#
if
(
EXISTS
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/build/T
${
AGAPRO_BUILDING_TYPE
}
/CMakeLists.txt"
)
INCLUDE
(
build/T
${
AGAPRO_BUILDING_TYPE
}
/CMakeLists.txt
)
include
(
build/T
${
AGAPRO_BUILDING_TYPE
}
/CMakeLists.txt
)
else
()