Skip to content

Commit 69ed4de

Browse files
STYLE: GenerateCLP: Factorize out the CMakeLists of the testing CLIs
1 parent 39f8071 commit 69ed4de

File tree

3 files changed

+57
-70
lines changed

3 files changed

+57
-70
lines changed

GenerateCLP/Testing/CLPExample1/CMakeLists.txt

Lines changed: 4 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,11 @@
11
cmake_minimum_required(VERSION 2.8.6)
2-
project(CLPExample1)
32

4-
find_package(GenerateCLP NO_MODULE REQUIRED)
5-
include(${GenerateCLP_USE_FILE})
3+
include(${CMAKE_CURRENT_SOURCE_DIR}/../CMake/GenerateCLPTestMacros.cmake)
4+
GenerateCLP_TEST_PROJECT(
5+
NAME CLPExample1
6+
)
67

7-
#-----------------------------------------------------------------------------
8-
if(GenerateCLP_USE_JSONCPP)
9-
set(CMAKE_MODULE_PATH ${JsonCpp_CMAKE_MODULE_PATH} ${CMAKE_MODULE_PATH}) # Needed to locate FindJsonCpp.cmake
10-
find_package(JsonCpp REQUIRED)
11-
include_directories(${JsonCpp_INCLUDE_DIRS})
12-
endif()
13-
14-
set(_additional_link_libraries)
15-
if(GenerateCLP_USE_JSONCPP)
16-
list(APPEND _additional_link_libraries ${JsonCpp_LIBRARIES})
17-
endif()
18-
if(GenerateCLP_USE_SERIALIZER)
19-
list(APPEND _additional_link_libraries ${ParameterSerializer_LIBRARIES})
20-
endif()
21-
22-
#-----------------------------------------------------------------------------
23-
# Build
24-
#-----------------------------------------------------------------------------
25-
26-
set(${PROJECT_NAME}_SOURCE ${PROJECT_NAME}.cxx)
27-
GENERATECLP(${PROJECT_NAME}_SOURCE ${PROJECT_NAME}.xml)
28-
add_executable(${PROJECT_NAME} ${${PROJECT_NAME}_SOURCE})
29-
if(_additional_link_libraries)
30-
target_link_libraries(${PROJECT_NAME} ${_additional_link_libraries})
31-
endif()
32-
#-----------------------------------------------------------------------------
338
# Test
34-
#-----------------------------------------------------------------------------
35-
include(CTest)
36-
37-
set(TEMP ${PROJECT_BINARY_DIR}/Testing/Temporary)
38-
file(MAKE_DIRECTORY ${TEMP})
399

4010
if(GenerateCLP_USE_SERIALIZER)
4111
# Test normal command line exec + serialization at the end

GenerateCLP/Testing/CLPTestMultiple/CMakeLists.txt

Lines changed: 5 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,11 @@
11
cmake_minimum_required(VERSION 2.8.6)
2-
project(CLPTestMultiple)
32

4-
find_package(GenerateCLP NO_MODULE REQUIRED)
5-
include(${GenerateCLP_USE_FILE})
6-
7-
#-----------------------------------------------------------------------------
8-
if(GenerateCLP_USE_JSONCPP)
9-
set(CMAKE_MODULE_PATH ${JsonCpp_CMAKE_MODULE_PATH} ${CMAKE_MODULE_PATH}) # Needed to locate FindJsonCpp.cmake
10-
find_package(JsonCpp REQUIRED)
11-
include_directories(${JsonCpp_INCLUDE_DIRS})
12-
endif()
13-
14-
set(_additional_link_libraries)
15-
if(GenerateCLP_USE_JSONCPP)
16-
list(APPEND _additional_link_libraries ${JsonCpp_LIBRARIES})
17-
endif()
18-
if(GenerateCLP_USE_SERIALIZER)
19-
list(APPEND _additional_link_libraries ${ParameterSerializer_LIBRARIES})
20-
endif()
21-
22-
#-----------------------------------------------------------------------------
23-
# Build
24-
#-----------------------------------------------------------------------------
25-
26-
set(${PROJECT_NAME}_SOURCE ${PROJECT_NAME}.cxx)
27-
GENERATECLP(${PROJECT_NAME}_SOURCE ${PROJECT_NAME}.xml)
28-
add_executable(${PROJECT_NAME} ${${PROJECT_NAME}_SOURCE})
29-
if(_additional_link_libraries)
30-
target_link_libraries(${PROJECT_NAME} ${_additional_link_libraries})
31-
endif()
32-
#-----------------------------------------------------------------------------
33-
# Test
34-
#-----------------------------------------------------------------------------
35-
include(CTest)
36-
37-
set(TEMP ${PROJECT_BINARY_DIR}/Testing/Temporary)
38-
file(MAKE_DIRECTORY ${TEMP})
3+
include(${CMAKE_CURRENT_SOURCE_DIR}/../CMake/GenerateCLPTestMacros.cmake)
4+
GenerateCLP_TEST_PROJECT(
5+
NAME CLPTestMultiple
6+
)
397

8+
# Tests
409
if(GenerateCLP_USE_SERIALIZER)
4110
list(APPEND FLAGS_TO_TEST
4211
--int

GenerateCLP/Testing/CMake/GenerateCLPTestMacros.cmake

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,51 @@ function(print_command_as_string command)
1111
endif()
1212
endfunction()
1313

14+
# --------------------------------------------------------------------------
15+
# Macro used to generate CLIs to test GenerateCLP with
16+
macro(GenerateCLP_TEST_PROJECT)
17+
include(CMakeParseArguments)
18+
19+
set(options)
20+
set(oneValueArgs NAME)
21+
set(multiValueArgs)
22+
cmake_parse_arguments(TEST_CLI "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
23+
24+
project(${TEST_CLI_NAME})
25+
26+
find_package(GenerateCLP NO_MODULE REQUIRED)
27+
include(${GenerateCLP_USE_FILE})
28+
29+
#-----------------------------------------------------------------------------
30+
if(GenerateCLP_USE_JSONCPP)
31+
set(CMAKE_MODULE_PATH ${JsonCpp_CMAKE_MODULE_PATH} ${CMAKE_MODULE_PATH}) # Needed to locate FindJsonCpp.cmake
32+
find_package(JsonCpp REQUIRED)
33+
include_directories(${JsonCpp_INCLUDE_DIRS})
34+
endif()
35+
36+
set(_additional_link_libraries)
37+
if(GenerateCLP_USE_JSONCPP)
38+
list(APPEND _additional_link_libraries ${JsonCpp_LIBRARIES})
39+
endif()
40+
if(GenerateCLP_USE_SERIALIZER)
41+
list(APPEND _additional_link_libraries ${ParameterSerializer_LIBRARIES})
42+
endif()
43+
44+
#-----------------------------------------------------------------------------
45+
# Build
46+
#-----------------------------------------------------------------------------
47+
48+
set(${PROJECT_NAME}_SOURCE ${PROJECT_NAME}.cxx)
49+
GENERATECLP(${PROJECT_NAME}_SOURCE ${PROJECT_NAME}.xml)
50+
add_executable(${PROJECT_NAME} ${${PROJECT_NAME}_SOURCE})
51+
if(_additional_link_libraries)
52+
target_link_libraries(${PROJECT_NAME} ${_additional_link_libraries})
53+
endif()
54+
#-----------------------------------------------------------------------------
55+
# Test
56+
#-----------------------------------------------------------------------------
57+
include(CTest)
58+
59+
set(TEMP ${PROJECT_BINARY_DIR}/Testing/Temporary)
60+
file(MAKE_DIRECTORY ${TEMP})
61+
endmacro()

0 commit comments

Comments
 (0)