@@ -21,6 +21,21 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
2121
2222project (InfoLogger)
2323
24+ # Definition of modules to be built
25+ # by default, build all
26+ # if some specific modules are specified, build only these ones
27+ set (INFOLOGGER_BUILD_ALL 1)
28+ if (INFOLOGGER_BUILD_LIB)
29+ set (INFOLOGGER_BUILD_ALL 0)
30+ message ("Enabling libInfologger." )
31+ endif ()
32+ if (INFOLOGGER_BUILD_ALL)
33+ message ("Enabling all InfoLogger modules." )
34+ set (INFOLOGGER_BUILD_LIB 1)
35+ endif ()
36+
37+
38+
2439# Load some basic macros which are needed later on
2540include (O2Utils )
2641include (InfoLoggerDependencies )
@@ -34,9 +49,9 @@ if(NOT CMAKE_BUILD_TYPE)
3449endif (NOT CMAKE_BUILD_TYPE )
3550
3651# Set the version number of your project here (format is MAJOR.MINOR.PATCHLEVEL - e.g. 1.0.0)
37- set (VERSION_MAJOR "0 " )
52+ set (VERSION_MAJOR "1 " )
3853set (VERSION_MINOR "0" )
39- set (VERSION_PATCH "0 " )
54+ set (VERSION_PATCH "4 " )
4055set (VERSION ${VERSION_MAJOR} .${VERSION_MINOR} .${VERSION_PATCH} )
4156
4257# C++14
@@ -55,12 +70,14 @@ ENDIF ()
5570# Add compiler flags for warnings and (more importantly) fPIC and debug symbols
5671set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Wextra -fPIC" )
5772
73+
74+ if (INFOLOGGER_BUILD_ALL)
75+
5876####################################
5977# Module, library and executable definition
6078####################################
6179
6280set (MODULE_NAME "InfoLogger" )
63-
6481O2_SETUP (NAME ${MODULE_NAME} )
6582
6683set_source_files_properties (src/simplelog.c PROPERTIES LANGUAGE CXX )
@@ -169,6 +186,8 @@ link_directories(
169186 ${LIBRARY_OUTPUT_PATH}
170187)
171188
189+
190+
172191# Some extra targets to build standalone executables not relying on other o2 shared libs in bin-standalone
173192# This is added optionally with cmake -DBUILD_STANDALONE=1 ...
174193if (BUILD_STANDALONE)
@@ -361,3 +380,75 @@ install(
361380 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
362381
363382
383+ endif ()
384+
385+
386+ if (INFOLOGGER_BUILD_LIB)
387+
388+ message ("Generating makefile for libInfologger" )
389+ set (MODULE_NAME "InfoLogger" )
390+ O2_SETUP (NAME ${MODULE_NAME} )
391+
392+ set_source_files_properties (src/simplelog.c PROPERTIES LANGUAGE CXX )
393+
394+ set (SRCS
395+ src/InfoLogger.cxx
396+ src/InfoLoggerContext.cxx
397+ src/InfoLoggerClient.cxx
398+ src/infoLoggerMessageDecode.c
399+ src/InfoLoggerMessageHelper.cxx
400+ src/utility.c
401+ src/simplelog.c
402+ )
403+
404+ # Produce the final Version.h using template Version.h.in and substituting variables.
405+ # We don't want to polute our source tree with it, thus putting it in binary tree.
406+ configure_file ("include/${MODULE_NAME} /Version.h.in"
407+ "${CMAKE_CURRENT_BINARY_DIR} /include/${MODULE_NAME} /Version.h"
408+ @ONLY
409+ )
410+
411+ set (HEADERS
412+ ${CMAKE_CURRENT_BINARY_DIR} /include/${MODULE_NAME} /Version.h
413+ include/${MODULE_NAME} /InfoLogger.hxx
414+ )
415+
416+ include_directories (
417+ ${CMAKE_CURRENT_BINARY_DIR} /include include ${Boost_INCLUDE_DIRS} ${Common_INCLUDE_DIRS}
418+ )
419+
420+ set (LIBRARY_NAME ${MODULE_NAME} )
421+ set (BUCKET_NAME o2_libinfologger_bucket)
422+
423+ O2_GENERATE_LIBRARY ()
424+
425+ add_subdirectory (doc )
426+
427+ set (BUCKET_NAME o2_infologger_bucket)
428+ O2_GENERATE_EXECUTABLE (
429+ EXE_NAME log
430+ SOURCES src/log.cxx
431+ MODULE_LIBRARY_NAME ${LIBRARY_NAME}
432+ BUCKET_NAME ${BUCKET_NAME}
433+ )
434+
435+ enable_testing ()
436+
437+ set (TEST_SRCS
438+ test/testInfoLogger.cxx
439+ test/testInfoLoggerPerf.cxx
440+ )
441+
442+ O2_GENERATE_TESTS (
443+ MODULE_LIBRARY_NAME ${LIBRARY_NAME}
444+ BUCKET_NAME ${BUCKET_NAME}
445+ TEST_SRCS ${TEST_SRCS}
446+ )
447+
448+
449+ link_directories (
450+ ${LIBRARY_OUTPUT_PATH}
451+ )
452+
453+ message ("Completed - Generating makefile for libInfologger" )
454+ endif ()
0 commit comments