File: CMakeLists.txt

package info (click to toggle)
console-bridge 1.0.1%2Bdfsg2-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 160 kB
  • sloc: cpp: 401; sh: 17; makefile: 3
file content (88 lines) | stat: -rw-r--r-- 2,716 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
link_directories(
  ${PROJECT_BINARY_DIR}/test
)


# Build gtest
add_library(gtest STATIC /usr/src/gtest/src/gtest-all.cc)
target_include_directories(gtest
  PUBLIC
  /usr/include
  /usr/src/gtest
)

add_library(gtest_main STATIC /usr/src/gtest/src/gtest_main.cc)
target_link_libraries(gtest_main gtest)

execute_process(COMMAND cmake -E remove_directory ${CMAKE_BINARY_DIR}/test_results)
execute_process(COMMAND cmake -E make_directory ${CMAKE_BINARY_DIR}/test_results)

set(tests
     console_TEST.cc)

#################################################
# Build all the tests
foreach(GTEST_SOURCE_file ${tests})
  string(REGEX REPLACE ".cc" "" BINARY_NAME ${GTEST_SOURCE_file})
  add_executable(${BINARY_NAME} ${GTEST_SOURCE_file})

  add_dependencies(${BINARY_NAME}
      console_bridge
      gtest
      gtest_main)

  target_link_libraries(${BINARY_NAME}
     gtest_main
     gtest
     console_bridge)
  if (UNIX AND NOT ANDROID)
    target_link_libraries(${BINARY_NAME} pthread)
  endif()

   add_test(NAME    ${BINARY_NAME}
            COMMAND ${BINARY_NAME}
                    --gtest_output=xml:${CMAKE_BINARY_DIR}/test_results/${BINARY_NAME}.xml)

   set_tests_properties(${BINARY_NAME} PROPERTIES TIMEOUT 240)
endforeach()

find_package(PythonInterp 3 REQUIRED)

if(NOT PYTHONINTERP_FOUND)
  message(WARNING "No PythonInterp found. Linters will not be executed")
  return()
endif()

find_program(WGET_EXE wget)
if(WGET_EXE)
  message(STATUS "Found WGet: ${WGET_EXE}")
  add_custom_target(wget_cppcheck
                    COMMAND ${WGET_EXE} -q -O cppcheck.py https://raw.githubusercontent.com/ament/ament_lint/master/ament_cppcheck/ament_cppcheck/main.py
  )

  add_test(NAME console_bridge_cppcheck
           COMMAND "${PYTHON_EXECUTABLE}"
                   "cppcheck.py"
                   "--language=c++" "${PROJECT_SOURCE_DIR}/src" "${PROJECT_SOURCE_DIR}/include"
  )

  add_custom_target(wget_cpplint
                    COMMAND wget -q -O cpplint.py https://raw.githubusercontent.com/ament/ament_lint/master/ament_cpplint/ament_cpplint/cpplint.py
  )

  add_test(NAME console_bridge_cpplint
           COMMAND "${PYTHON_EXECUTABLE}"
                   "cpplint.py"
                   "--counting=detailed"
                   "--extensions=cpp,h"
                   "--linelength=100"
                   "--filter=-build/c++11,-runtime/references,-whitespace/braces,-whitespace/indent,-whitespace/parens,-whitespace/semicolon"
           "${PROJECT_SOURCE_DIR}/include/console_bridge/console.h"
           "${PROJECT_SOURCE_DIR}/src/console.cpp"
  )

  add_dependencies(console_bridge wget_cppcheck wget_cpplint)

else()
  message(WARNING "wget not found. Linters will not be executed")
endif()