Skip to content

Commit 1d47902

Browse files
authored
Update modulesHelper to latest cmake changes (QC-94) (#63)
1 parent 3f6acd4 commit 1d47902

3 files changed

Lines changed: 51 additions & 28 deletions

File tree

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,48 @@
1-
set(MODULE_NAME "SkeletonDPL")
1+
set(MODULE_NAME "QcSkeletonDPL")
22

3-
O2_SETUP(NAME ${MODULE_NAME})
3+
# ---- Files ----
44

55
set(SRCS
66
)
77

8-
include_directories(
9-
${CMAKE_CURRENT_BINARY_DIR}/include
10-
)
11-
128
set(HEADERS
139
)
1410

15-
set(LIBRARY_NAME ${MODULE_NAME})
16-
set(BUCKET_NAME o2_qcmodules_dpl)
17-
set(LINKDEF include/SkeletonDPL/LinkDef.h)
11+
# ---- Library ----
12+
13+
add_library(${MODULE_NAME} SHARED ${SRCS} ${MODULE_NAME}Dict.cxx)
14+
15+
target_include_directories(
16+
${MODULE_NAME}
17+
PUBLIC $<INSTALL_INTERFACE:include> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
18+
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src
19+
)
1820

19-
O2_GENERATE_LIBRARY()
21+
target_link_libraries(${MODULE_NAME} PUBLIC QualityControl)
2022

21-
set(TEST_SRCS
23+
install(
24+
TARGETS ${MODULE_NAME}
25+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
26+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
27+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
2228
)
2329

24-
O2_GENERATE_TESTS(
25-
MODULE_LIBRARY_NAME ${LIBRARY_NAME}
26-
BUCKET_NAME ${BUCKET_NAME}
27-
TEST_SRCS ${TEST_SRCS}
30+
# ---- ROOT dictionary ----
31+
32+
generate_root_dict(MODULE_NAME ${MODULE_NAME} LINKDEF "include/SkeletonDPL/LinkDef.h" DICT_CLASS "${MODULE_NAME}Dict")
33+
34+
# ---- Tests ----
35+
36+
set(
37+
TEST_SRCS
2838
)
39+
40+
foreach(test ${TEST_SRCS})
41+
get_filename_component(test_name ${test} NAME)
42+
string(REGEX REPLACE ".cxx" "" test_name ${test_name})
43+
44+
add_executable(${test_name} ${test})
45+
target_link_libraries(${test_name} PRIVATE ${MODULE_NAME} Boost::unit_test_framework)
46+
add_test(NAME ${test_name} COMMAND ${test_name})
47+
set_tests_properties(${test_name} PROPERTIES TIMEOUT 60)
48+
endforeach()

Modules/SkeletonDPL/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
set(MODULE_NAME "QcSkeletonDpl")
1+
set(MODULE_NAME "QcSkeletonDPL")
22

33
# ---- Files ----
44

Modules/modulesHelper.sh

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ function create_module {
3636
MODULE_LC=`echo $1 | tr A-Z a-z`
3737
# prepare folder structure
3838
mkdir $1 $1/src $1/include/ $1/include/$1 $1/test
39-
39+
4040
# prepare CMakeLists.txt
4141
sed 's/'${DONOR}'/'$1'/' ${DONOR}/.CMakeListsEmpty.txt > $1/CMakeLists.txt
4242
# prepare LinkDef.h
4343
sed '/#pragma link C++ class o2::quality_control_modules::'${DONOR_LC}'::/ d' ${DONOR}/include/${DONOR}/LinkDef.h > $1/include/$1/LinkDef.h
4444
# prepare test
4545
sed 's/.testEmpty/test'$1'/; s/'${DONOR_LC}'/'${MODULE_LC}'/' ${DONOR}/test/.testEmpty.cxx > $1'/test/test'$1'.cxx'
46-
46+
4747
if [[ $OS == Linux ]] ; then
4848
sed -i '/set(TEST_SRCS/ a \ \ test/test'$1'.cxx' $1/CMakeLists.txt
4949
else #Darwin/BSD
@@ -54,7 +54,7 @@ function create_module {
5454

5555
# add new module to the project
5656
echo 'add_subdirectory('$1')' >> CMakeLists.txt
57-
57+
5858
echo '> Module created.'
5959
fi
6060
}
@@ -68,12 +68,12 @@ function create_task {
6868
echo '> Task '$2' already exists, returning...'
6969
return
7070
fi
71-
71+
7272
MODULE_LC=`echo $1 | tr A-Z a-z`
7373
INCLUDE_GUARD_NAME=QC_MODULE_`echo $1 | tr a-z A-Z`_`echo $2 | tr a-z A-Z`_H
74-
74+
7575
# add header
76-
sed 's/'${DONOR_TASK}'/'$2'/g; s/'${DONOR_LC}'/'${MODULE_LC}'/g; s/'${DONOR}'/'${MODULE}'/g; s/'${DONOR_TASK_INCLUDE_GUARD}'/'${INCLUDE_GUARD_NAME}'/g' ${DONOR}'/include/'${DONOR}'/'${DONOR_TASK}'.h' > $1'/include/'$1'/'$2'.h'
76+
sed 's/'${DONOR_TASK}'/'$2'/g; s/'${DONOR_LC}'/'${MODULE_LC}'/g; s/'${DONOR}'/'${MODULE}'/g; s/'${DONOR_TASK_INCLUDE_GUARD}'/'${INCLUDE_GUARD_NAME}'/g' ${DONOR}'/include/'${DONOR}'/'${DONOR_TASK}'.h' > $1'/include/'$1'/'$2'.h'
7777
if [[ $OS == Linux ]] ; then
7878
sed -i '/#endif/ i #pragma link C++ class o2::quality_control_modules::'${MODULE_LC}'::'$2'+;' $1/include/$1/LinkDef.h
7979
sed -i '/set(HEADERS/ a \ \ include/'$1'/'$2'.h' $1/CMakeLists.txt
@@ -90,6 +90,9 @@ function create_task {
9090
sed 's/'${DONOR_TASK}'/'$2'/g; s/'${DONOR_LC}'/'${MODULE_LC}'/g; s/'${DONOR}'/'${MODULE}'/g' ${DONOR}'/src/'${DONOR_TASK}'.cxx' > $1'/src/'$2'.cxx'
9191
if [[ $OS == Linux ]] ; then
9292
sed -i '/set(SRCS/ a \ \ src/'$2'.cxx' $1/CMakeLists.txt
93+
# Remove the Check
94+
sed -i 's|getObjectsManager()->addCheck|/*getObjectsManager()->addCheck|' $1/src/$2.cxx
95+
sed -i 's|"QcSkeletonDpl");|"QcSkeletonDpl");*/|' $1/src/$2.cxx
9396
else #Darwin/BSD
9497
sed -i '' -e '/set(SRCS/ a\
9598
\ \ src/'$2'.cxx
@@ -103,17 +106,17 @@ function create_task {
103106
# \param 2 : check_name
104107
function create_check {
105108
echo 'Creating check '$2' in module '$1'.'
106-
109+
107110
if [ -f $1'/include/'$1'/'$2'.h' ] ; then
108111
echo '> Check '$2' already exists, returning...'
109112
return
110113
fi
111-
114+
112115
MODULE_LC=`echo $1 | tr A-Z a-z`
113116
INCLUDE_GUARD_NAME=QC_MODULE_`echo $1 | tr a-z A-Z`_`echo $2 | tr a-z A-Z`_H
114-
117+
115118
# add header
116-
sed 's/'${DONOR_CHECK}'/'$2'/g; s/'${DONOR_LC}'/'${MODULE_LC}'/g; s/'${DONOR}'/'${MODULE}'/g; s/'${DONOR_CHECK_INCLUDE_GUARD}'/'${INCLUDE_GUARD_NAME}'/g' ${DONOR}'/include/'${DONOR}'/'${DONOR_CHECK}'.h' > $1'/include/'$1'/'$2'.h'
119+
sed 's/'${DONOR_CHECK}'/'$2'/g; s/'${DONOR_LC}'/'${MODULE_LC}'/g; s/'${DONOR}'/'${MODULE}'/g; s/'${DONOR_CHECK_INCLUDE_GUARD}'/'${INCLUDE_GUARD_NAME}'/g' ${DONOR}'/include/'${DONOR}'/'${DONOR_CHECK}'.h' > $1'/include/'$1'/'$2'.h'
117120
if [[ $OS == Linux ]] ; then
118121
sed -i '/#endif/ i #pragma link C++ class o2::quality_control_modules::'${MODULE_LC}'::'$2'+;' $1/include/$1/LinkDef.h
119122
sed -i '/set(HEADERS/ a \ \ include/'$1'/'$2'.h' $1/CMakeLists.txt
@@ -127,7 +130,7 @@ function create_check {
127130
fi
128131

129132
# add src
130-
sed 's/'${DONOR_CHECK}'/'$2'/g; s/'${DONOR_LC}'/'${MODULE_LC}'/g; s/'${DONOR}'/'${MODULE}'/g' ${DONOR}'/src/'${DONOR_CHECK}'.cxx' > $1'/src/'$2'.cxx'
133+
sed 's/'${DONOR_CHECK}'/'$2'/g; s/'${DONOR_LC}'/'${MODULE_LC}'/g; s/'${DONOR}'/'${MODULE}'/g' ${DONOR}'/src/'${DONOR_CHECK}'.cxx' > $1'/src/'$2'.cxx'
131134
if [[ $OS == Linux ]] ; then
132135
sed -i '/set(SRCS/ a \ \ src/'$2'.cxx' $1/CMakeLists.txt
133136
else #Darwin/BSD
@@ -144,7 +147,7 @@ function print_usage {
144147
145148
Generate template QC module and/or tasks, checks.
146149
If a module with specified name already exists, new tasks and checks are inserted to the existing one.
147-
Please follow UpperCamelCase convention for modules', tasks' and checks' names.
150+
Please follow UpperCamelCase convention for modules', tasks' and checks' names.
148151
149152
Example:
150153
# create new module and some task

0 commit comments

Comments
 (0)