Skip to content

Commit 227f64f

Browse files
committed
added libInfoLogger-only target, use cmake option -DINFOLOGGER_BUILD_LIB=1
1 parent b3ec253 commit 227f64f

1 file changed

Lines changed: 94 additions & 3 deletions

File tree

CMakeLists.txt

Lines changed: 94 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,21 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
2121

2222
project(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
2540
include(O2Utils)
2641
include(InfoLoggerDependencies)
@@ -34,9 +49,9 @@ if(NOT CMAKE_BUILD_TYPE)
3449
endif(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")
3853
set(VERSION_MINOR "0")
39-
set(VERSION_PATCH "0")
54+
set(VERSION_PATCH "4")
4055
set(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
5671
set(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

6280
set(MODULE_NAME "InfoLogger")
63-
6481
O2_SETUP(NAME ${MODULE_NAME})
6582

6683
set_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 ...
174193
if(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

Comments
 (0)