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
6077d427
Commit
6077d427
authored
Apr 12, 2019
by
Stezowski Olivier
Browse files
first implementation of a building based on modern cmake. Old style still default
parent
66e4971d
Changes
71
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1024 additions
and
316 deletions
+1024
-316
CMakeLists.txt
CMakeLists.txt
+45
-12
CMakeLists_T0.txt
CMakeLists_T0.txt
+211
-0
CMakeLists_T1.txt
CMakeLists_T1.txt
+111
-0
builders/CMakeLists.txt
builders/CMakeLists.txt
+2
-59
builders/build/T0/CMakeLists.txt
builders/build/T0/CMakeLists.txt
+61
-0
builders/build/T1/CMakeLists.txt
builders/build/T1/CMakeLists.txt
+61
-0
common/CMakeLists.txt
common/CMakeLists.txt
+6
-107
common/build/T0/CMakeLists.txt
common/build/T0/CMakeLists.txt
+114
-0
common/build/T1/CMakeLists.txt
common/build/T1/CMakeLists.txt
+137
-0
consumers/Basic/CMakeLists.txt
consumers/Basic/CMakeLists.txt
+5
-55
consumers/Basic/build/T0/CMakeLists.txt
consumers/Basic/build/T0/CMakeLists.txt
+59
-0
consumers/Basic/build/T1/CMakeLists.txt
consumers/Basic/build/T1/CMakeLists.txt
+59
-0
consumers/CMakeLists.txt
consumers/CMakeLists.txt
+7
-11
consumers/Histogramer/AGAPRO_Histogramer.cpp
consumers/Histogramer/AGAPRO_Histogramer.cpp
+0
-1
consumers/Histogramer/CMakeLists.txt
consumers/Histogramer/CMakeLists.txt
+7
-10
consumers/Histogramer/PSAHist/AGAPRO_PSAHist.cpp
consumers/Histogramer/PSAHist/AGAPRO_PSAHist.cpp
+2
-1
consumers/Histogramer/PSAHist/CMakeLists.txt
consumers/Histogramer/PSAHist/CMakeLists.txt
+5
-59
consumers/Histogramer/PSAHist/build/T0/CMakeLists.txt
consumers/Histogramer/PSAHist/build/T0/CMakeLists.txt
+63
-0
consumers/Histogramer/PSAHist/build/T1/CMakeLists.txt
consumers/Histogramer/PSAHist/build/T1/CMakeLists.txt
+68
-0
consumers/Histogramer/PreproHist/AGAPRO_PreproHist.cpp
consumers/Histogramer/PreproHist/AGAPRO_PreproHist.cpp
+1
-1
No files found.
CMakeLists.txt
View file @
6077d427
#------------------------------------------------------------------------------
# CMake top file for agapro. Depending on the flag AGAPRO_BUILDING_MODE, it switchs to
# 0 - building one library per actor
# 1 - building one library per sub-directory i.e, commom, consumers, filters, producers
# 2 - building one library general agapro library
# CMake TOP file for agapro.
#
# In cases > 0, individual libraries per actors are buiding BUT they contain only the C interface for NARVAL/DCOD
# 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,
# in which there is the CmakeLists.txt used to build.
# The building tree is selected through AGAPRO_BUILDING_TYPE [default = 1].
#
# Depending on the flag, it switchs to building type :
# 0 - first cmake file of the project since the demonstrator @ LNL
# 1 - modern cmake implementation -> introduce targets to manage dependencies
#
#------------------------------------------------------------------------------
# Check cmake version is compatible
#
cmake_minimum_required
(
VERSION 2.6 FATAL_ERROR
)
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"
)
endif
()
#
#
# Where to look first for cmake modules
SET
(
CMAKE_MODULE_PATH
${
CMAKE_SOURCE_DIR
}
/cmake/modules
)
if
(
NOT AGAPRO_BUILDING_MODE
)
SET
(
AGAPRO_BUILDING_MODE 0
)
SET
(
AGAPRO_BUILDING_TYPE_DEFAULT 0
)
if
(
NOT AGAPRO_BUILDING_TYPE
)
SET
(
AGAPRO_BUILDING_TYPE
${
AGAPRO_BUILDING_TYPE_DEFAULT
}
)
endif
()
#
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
MESSAGE
(
"[AGAPRO] Building Mode is "
${
AGAPRO_BUILDING_MODE
}
)
IF
(
AGAPRO_BUILDING_MODE EQUAL 0
)
INCLUDE
(
CMakeLists_individual_libs.txt
)
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)
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_dev
${
CMAKE_MODULE_PATH
}
)
endif
()
INCLUDE
(
GNUInstallDirs
)
INCLUDE
(
CMakeLists_T1.txt
)
ELSE
()
MESSAGE
(
"[AGAPRO] Building Type is unknown !"
)
ENDIF
()
#------------------------------------------------------------------------------
CMakeLists_T0.txt
0 → 100644
View file @
6077d427
# CMake for AGAPRO
# O. Stezowski
#
#------------------------------------------------------------------------------
# Check cmake version is compatible
#
cmake_minimum_required(VERSION 2.6 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")
endif()
#
PROJECT(AGAPRO)
#
SET(${PROJECT_NAME}_VERSION "1.1.0")
SET(${PROJECT_NAME}_VERSION_MAJOR "1")
SET(${PROJECT_NAME}_VERSION_MINOR "1")
SET(${PROJECT_NAME}_VERSION_PATCH "0")
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
cmake_policy(SET CMP0042 NEW)
cmake_policy(SET CMP0011 NEW)
# FIX Warning with rpath on macosx
if(APPLE)
set(CMAKE_MACOSX_RPATH 1)
endif()
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
#------------------------------------------------------------------------------
#----------------------------------------------------------------------------
# Globals
#
# Where to look first for cmake modules
#
if(DEFINED ENV{G_RAYSOFTWARE_TOP_DIR})
set(CMAKE_MODULE_PATH $ENV{G_RAYSOFTWARE_TOP_DIR}/scripts/cmake/Modules ${CMAKE_MODULE_PATH})
else()
if(DEFINED ENV{AGATASOFTWARE_TOP_DIR})
set(CMAKE_MODULE_PATH $ENV{AGATASOFTWARE_TOP_DIR}/scripts/cmake/Modules ${CMAKE_MODULE_PATH})
endif()
endif()
message("PATH to search for cmake modules ${CMAKE_MODULE_PATH}")
#
# define format for libraries (force .so for macos)
if(WIN32)
SET(_libprefix lib)
SET(_libsuffix .dll)
elseif(APPLE)
SET(_libprefix lib)
SET(_libsuffix .dylib)
else()
SET(_libprefix lib)
SET(_libsuffix .so)
endif()
SET(AGAPRO_LIBRARY_PROPERTIES
SUFFIX ${_libsuffix}
PREFIX ${_libprefix} )
#
SET(AGATASOFTWARE_TOP_DIR "${CMAKE_SOURCE_DIR}/../")
#
# ADD OFT
#
OPTION(DO_OFT_INTERFACE "Add the Narval interface for OFT" ON)
if ( DO_OFT_INTERFACE )
if ( WITH_OFT )
MESSAGE("[AGAPRO] OFT, External built-in ")
else()
MESSAGE("[AGAPRO] OFT, Internal built-in ")
OPTION(DO_OFT "Built internal OFT" ON)
endif()
endif()
#
# ADD MGT
#
OPTION(DO_MGT_INTERFACE "Add the Narval interface for MGT" ON)
if ( DO_MGT_INTERFACE )
if ( WITH_MGT )
MESSAGE("[AGAPRO] MGT, External built-in ")
else()
MESSAGE("[AGAPRO] MGT, Internal built-in ")
OPTION(DO_MGT "Built internal MGT" ON)
endif()
endif()
#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
# Find mondule using cmake find system
# ADF is mandatory !
find_package(ADF REQUIRED)
#
find_package(ROOT)
find_package(MFM)
find_package(DCOD)
find_package(VAMOS)
# Find module using simple test
include(AGAPROMacroUtilities)
include(AGAPROSearchInstalledSoftware)
#
#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
#
MESSAGE("[AGAPRO]")
#
#---Set pathes where to put the libraries, executables and headers-----------
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
#
if ( CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT )
set ( CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR} CACHE PATH "Install in building directory" FORCE )
endif()
MESSAGE("[AGAPRO] Install is done in ${CMAKE_INSTALL_PREFIX} ")
#
SET(AGAPRO_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/include)
#
# Add headers for external
#
# ADF
list (APPEND AGAPRO_INCLUDE_DIRS ${ADF_INCLUDE_DIRS})
# ROOT
if (ROOT_FOUND)
list(APPEND AGAPRO_INCLUDE_DIRS ${ROOT_INCLUDES})
link_directories(${ROOT_LIBRARY_DIR})
endif()
# MFM
if (MFM_FOUND)
list (APPEND AGAPRO_INCLUDE_DIRS ${MFM_INCLUDE_DIRS})
endif()
# VAMOS
if (VAMOS_FOUND)
list (APPEND AGAPRO_INCLUDE_DIRS ${VAMOS_INCLUDE_DIRS})
endif()
# Boost
if (HAS_BOOST)
list(APPEND AGAPRO_INCLUDE_DIRS ${Boost_INCLUDE_DIRS})
endif()
if (HAS_SKSTREAM)
list(APPEND AGAPRO_INCLUDE_DIRS ${SKSTREAM_INCLUDE_DIRS})
endif()
#
#----------------------------------------------------------------------------
# Add modules
#
ADD_DEFINITIONS(-DHAS_AGAPROCONFIG)
if ( HAS_C11 )
MESSAGE("[AGAPRO] C++11 FOUND ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
# SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.13")
endif()
#
add_subdirectory(common)
add_subdirectory(builders)
add_subdirectory(consumers)
add_subdirectory(producers)
add_subdirectory(filters)
# message to a kind of log to track back the sequence of calls
TODAY(CDATE)
file(APPEND $ENV{G_RAYSOFTWARE_TOP_DIR}/CMAKE_LOG_FILE "CMAKE on AGAPRO has been called: ${CDATE}")
#
if ( UNIX )
if( HAS_C11 )
SET(THREAD_MESSAGE "Compiled with C++11 thread" )
else()
if ( HAS_BOOST )
SET(THREAD_MESSAGE "Compiled with BOOST thread")
else()
SET(THREAD_MESSAGE "Compiled without thread")
endif()
endif()
find_package(Subversion)
# IF(SUBVERSION_FOUND)
# Subversion_WC_INFO(${PROJECT_SOURCE_DIR} Project)
# SET(SUBVERSION_LOG "Subversion revision number is " ${Project_WC_REVISION} )
# ENDIF(SUBVERSION_FOUND)
add_custom_target(dolog ALL
COMMAND ${CMAKE_COMMAND} -E echo "Last compilation/installation from " > LAST_AGAPRO_MAKE_LOG
COMMAND ${CMAKE_COMMAND} -E echo ${AGATASOFTWARE_TOP_DIR} >> LAST_AGAPRO_MAKE_LOG
COMMAND ${CMAKE_COMMAND} -E echo "at " >> LAST_AGAPRO_MAKE_LOG
COMMAND date >> LAST_AGAPRO_MAKE_LOG
# COMMAND ${CMAKE_COMMAND} -E echo ${SUBVERSION_LOG} >> LAST_AGAPRO_MAKE_LOG
COMMAND ${CMAKE_COMMAND} -E echo ${THREAD_MESSAGE} >> LAST_AGAPRO_MAKE_LOG
COMMENT " Call log target to trackback last building "
)
endif()
INSTALL(FILES ${CMAKE_BINARY_DIR}/LAST_AGAPRO_MAKE_LOG DESTINATION lib COMPONENT libraries)
CMakeLists_T1.txt
0 → 100644
View file @
6077d427
# CMake for AGAPRO
# O. Stezowski
#
#------------------------------------------------------------------------------
# Check cmake version is compatible
#
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
# LANGUAGES C CXX
)
#
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Globals
#
message("PATH to search for cmake modules ${CMAKE_MODULE_PATH}")
SET(AGATASOFTWARE_TOP_DIR "${CMAKE_SOURCE_DIR}/../")
#-------------------------------------------------------------------------------
# dependancies
#-------------------------------------------------------------------------------
# Find mondule using modern cmake i.e. look
# for XXXConfig files defining targets or import targets from library & includes
#
# ADF is mandatory !
find_package(ADF REQUIRED)
if ( ADF_FOUND )
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})
else()
MESSAGE(ERROR "ADF has been found")
endif()
#
find_package(ROOT)
if(TARGET ROOT::Core)
MESSAGE("[AGAPRO] --> 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}")
else()
MESSAGE("[AGAPRO] --> 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)
if (TARGET MFM::MFM)
MESSAGE("[AGAPRO] --> MFMConfig FOUND")
else()
MESSAGE("[AGAPRO] --> MFMConfig NOT FOUND")
endif()
find_package(AFT)
if (TARGET AFT::AFT)
MESSAGE("[AGAPRO] --> AFTConfig FOUND")
else()
MESSAGE("[AGAPRO] --> AFTConfig NOT FOUND")
endif()
# to be done
#find_package(DCOD)
#find_package(VAMOS)
# Find module using simple test
#include(AGAPROMacroUtilities)
#include(AGAPROSearchInstalledSoftware)
#
#----------------------------------------------------------------------------
add_subdirectory(common)
add_subdirectory(builders)
add_subdirectory(producers)
add_subdirectory(filters)
add_subdirectory(consumers)
###
export(TARGETS AgaProCommon builders NAMESPACE AGAPRO:: FILE AGAPROTargets.cmake)
if ( UNIXX )
TODAY(CDATE)
file(APPEND $ENV{G_RAYSOFTWARE_TOP_DIR}/CMAKE_LOG_FILE "CMAKE on AGAPRO has been called: ${CDATE}")
add_custom_target(dolog ALL
COMMAND ${CMAKE_COMMAND} -E echo "Last compilation/installation from " > LAST_AGAPRO_MAKE_LOG
COMMAND ${CMAKE_COMMAND} -E echo ${AGATASOFTWARE_TOP_DIR} >> LAST_AGAPRO_MAKE_LOG
COMMAND ${CMAKE_COMMAND} -E echo "at " >> LAST_AGAPRO_MAKE_LOG
COMMAND date >> LAST_AGAPRO_MAKE_LOG
# COMMAND ${CMAKE_COMMAND} -E echo ${SUBVERSION_LOG} >> LAST_AGAPRO_MAKE_LOG
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)
endif()
builders/CMakeLists.txt
View file @
6077d427
# CMake for module of AGAPRO
# O. Stezowski
cmake_minimum_required
(
VERSION 2.6
)
#
project
(
builders
)
# Just call the right Cmakefile depending of the building type
#
MESSAGE
(
"[AGAPRO] +
${
PROJECT_NAME
}
"
)
#
# internal and external dependencies
#
set
(
EXTRA_INTERNAL_LIBRARIES AgaProCommon
)
set
(
EXTRA_EXTERNAL_LIBRARIES
${
ADF_LIBRARY
}
)
if
(
HAS_BOOST
)
MESSAGE
(
"[AGAPRO] BOOST FOUND "
)
set
(
EXTRA_EXTERNAL_LIBRARIES
${
EXTRA_EXTERNAL_LIBRARIES
}
${
Boost_LIBRARIES
}
)
endif
()
#
# headers / sources
file
(
GLOB headers
${
PROJECT_SOURCE_DIR
}
/*.h
)
file
(
GLOB sources
${
PROJECT_SOURCE_DIR
}
/*.cpp
)
# Remove if any
#if ( NOT DO_NARVAL_INTERFACE )
list
(
REMOVE_ITEM sources
${
PROJECT_SOURCE_DIR
}
/libEventBuilder.cpp
)
#endif()
# add to includes
#
include_directories
(
${
AGAPRO_INCLUDE_DIRS
}
)
#----------------------------------------------------------------------------
#
add_library
(
EventBuilders SHARED
${
sources
}
)
#
target_link_libraries
(
EventBuilders
${
EXTRA_EXTERNAL_LIBRARIES
}
${
EXTRA_INTERNAL_LIBRARIES
}
)
#
set_target_properties
(
EventBuilders PROPERTIES
${
AGAPRO_LIBRARY_PROPERTIES
}
)
#
install
(
TARGETS EventBuilders RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
COMPONENT libraries
)
install
(
FILES
${
headers
}
DESTINATION include COMPONENT headers
)
#
# copy headers file in a single directory
# because cmake2.6 does not provide COPY in file, do it another way
if
(
${
CMAKE_VERSION
}
VERSION_GREATER
"2.8.0"
)
file
(
COPY
${
headers
}
DESTINATION
${
CMAKE_BINARY_DIR
}
/include
)
else
()
if
(
EXISTS
${
CMAKE_BINARY_DIR
}
/include
)
else
()
execute_process
(
COMMAND
${
CMAKE_COMMAND
}
-E make_directory
${
CMAKE_BINARY_DIR
}
/include/
)
endif
()
foreach
(
f
${
headers
}
)
execute_process
(
COMMAND
${
CMAKE_COMMAND
}
-E copy
${
f
}
${
CMAKE_BINARY_DIR
}
/include/
)
endforeach
()
endif
()
INCLUDE
(
build/T
${
AGAPRO_BUILDING_TYPE
}
/CMakeLists.txt
)
builders/build/T0/CMakeLists.txt
0 → 100644
View file @
6077d427
# CMake for module of AGAPRO
# O. Stezowski
cmake_minimum_required
(
VERSION 2.6
)
#
project
(
builders
)
#
MESSAGE
(
"[AGAPRO] +
${
PROJECT_NAME
}
"
)
#
# internal and external dependencies
#
set
(
EXTRA_INTERNAL_LIBRARIES AgaProCommon
)
set
(
EXTRA_EXTERNAL_LIBRARIES
${
ADF_LIBRARY
}
)
if
(
HAS_BOOST
)
MESSAGE
(
"[AGAPRO] BOOST FOUND "
)
set
(
EXTRA_EXTERNAL_LIBRARIES
${
EXTRA_EXTERNAL_LIBRARIES
}
${
Boost_LIBRARIES
}
)
endif
()
#
# headers / sources
file
(
GLOB headers
${
PROJECT_SOURCE_DIR
}
/*.h
)
file
(
GLOB sources
${
PROJECT_SOURCE_DIR
}
/*.cpp
)
# Remove if any
#if ( NOT DO_NARVAL_INTERFACE )
list
(
REMOVE_ITEM sources
${
PROJECT_SOURCE_DIR
}
/libEventBuilder.cpp
)
#endif()
# add to includes
#
include_directories
(
${
AGAPRO_INCLUDE_DIRS
}
)
#----------------------------------------------------------------------------
#
add_library
(
EventBuilders SHARED
${
sources
}
)
#
target_link_libraries
(
EventBuilders
${
EXTRA_EXTERNAL_LIBRARIES
}
${
EXTRA_INTERNAL_LIBRARIES
}
)
#
set_target_properties
(
EventBuilders PROPERTIES
${
AGAPRO_LIBRARY_PROPERTIES
}
)
#
install
(
TARGETS EventBuilders RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
COMPONENT libraries
)
install
(
FILES
${
headers
}
DESTINATION include COMPONENT headers
)
#
# copy headers file in a single directory
# because cmake2.6 does not provide COPY in file, do it another way
if
(
${
CMAKE_VERSION
}
VERSION_GREATER
"2.8.0"
)
file
(
COPY
${
headers
}
DESTINATION
${
CMAKE_BINARY_DIR
}
/include
)
else
()
if
(
EXISTS
${
CMAKE_BINARY_DIR
}
/include
)
else
()
execute_process
(
COMMAND
${
CMAKE_COMMAND
}
-E make_directory
${
CMAKE_BINARY_DIR
}
/include/
)
endif
()
foreach
(
f
${
headers
}
)
execute_process
(
COMMAND
${
CMAKE_COMMAND
}
-E copy
${
f
}
${
CMAKE_BINARY_DIR
}
/include/
)
endforeach
()
endif
()
builders/build/T1/CMakeLists.txt
0 → 100644
View file @
6077d427
# CMake for module of AGAPRO
# O. Stezowski
cmake_minimum_required
(
VERSION 3.5
)
#
project
(
builders
)
#
MESSAGE
(
"[AGAPRO] +
${
PROJECT_NAME
}
"
)
# ////////// 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
}
)
target_include_directories
(
${
PROJECT_NAME
}
PUBLIC
$<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
>
)
target_link_libraries
(
${
PROJECT_NAME
}
ADF
AGAPRO::AgaProCommon
)
#
# C++11 required for thread support
#
target_compile_features
(
${
PROJECT_NAME
}
PUBLIC cxx_constexpr
)
target_compile_definitions
(
${
PROJECT_NAME
}
PUBLIC HAS_AGAPROCONFIG
)
#
# ////////// Targets definitions //////////
#
# INSTALL TARGETS
#
install
(
TARGETS
${
PROJECT_NAME
}
EXPORT
${
PROJECT_NAME
}
Targets
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
INCLUDES DESTINATION include
)
#
# INSTALL CMAKE TARGETS
#
install
(
EXPORT
${
PROJECT_NAME
}
Targets
FILE
${
PROJECT_NAME
}
Targets.cmake
NAMESPACE
AGAPRO::
DESTINATION
lib/cmake/
)
#
# ////////// /////////////////// //////////
common/CMakeLists.txt
View file @
6077d427
# CMake for module of AGAPRO
# O. Stezowski
#
cmake_minimum_required
(
VERSION 2.6
)
# Just call the right Cmakefile depending of the building type
#
project
(
common
)
# this is defined since cmake generates a config file
#
MESSAGE
(
"[AGAPRO] +
${
PROJECT_NAME
}
"
)
#ADD_DEFINITIONS(-DHAS_AGAPROCONFIG
)
#
# internal and external dependencies
#
set
(
EXTRA_INTERNAL_LIBRARIES
)
set
(
EXTRA_EXTERNAL_LIBRARIES
)
#
# headers / sources
file
(
GLOB headers
${
PROJECT_SOURCE_DIR
}
/*.h
)
file
(
GLOB sources
${
PROJECT_SOURCE_DIR
}
/*.cpp
)
#
# TEST current configuration OS / NARVAL /THREAD ENGINE
if
(
UNIX
)
set
(
CMAKE_OS_TYPE 1
)
endif
()
if
(
WIN32
)
set
(
CMAKE_OS_TYPE 2
)
endif
()
if
(
CYGWIN
)
set
(
CMAKE_OS_TYPE 3
)
endif
()
if
(
APPLE
)
set
(
CMAKE_OS_TYPE 4
)
endif
()
if
(
HAS_NARVAL
)
set
(
CMAKE_NRV_TYPE 1
)
else
()
set
(
CMAKE_NRV_TYPE 2
)
endif
()
set
(
CMAKE_THR_TYPE 0
)
if
(
HAS_C11
)
SET
(
CMAKE_THR_TYPE 2
)
else
()
if
(
HAS_BOOST
)
SET
(
CMAKE_THR_TYPE 1
)
endif
()
endif
()
if
(
ROOT_FOUND
)
SET
(
HAS_ROOT ON
)
SET
(
WITH_ROOT ON
)
# For Vamos lib
message
(
"[AGAPRO] + Configured with ROOT enabled"
)
else
()