52eee95bf8
Shell commands triggered from action tags used to block polybar until they finished. Since we are not actually interested in the output of the commands, it makes sense to run them completely detached from polybar and have polybar not block when executing these commands. Now the spawned child processes no longer get killed when polybar exits. This is fine because polybar is not responsible for these processes since they were explicitly started by the user through click commands. Ref: #770 Ref: #1680
71 lines
2.1 KiB
CMake
71 lines
2.1 KiB
CMake
include_directories(${dirs})
|
|
include_directories(${CMAKE_CURRENT_LIST_DIR})
|
|
|
|
# Download and unpack googletest at configure time {{{
|
|
configure_file(
|
|
CMakeLists.txt.in
|
|
${CMAKE_BINARY_DIR}/googletest-download/CMakeLists.txt
|
|
)
|
|
execute_process( COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
|
|
RESULT_VARIABLE result
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download)
|
|
|
|
if(result)
|
|
message(FATAL_ERROR "CMake step for googletest failed: ${result}")
|
|
endif()
|
|
|
|
execute_process(COMMAND ${CMAKE_COMMAND} --build .
|
|
RESULT_VARIABLE result
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download )
|
|
|
|
if(result)
|
|
message(FATAL_ERROR "Build step for googletest failed: ${result}")
|
|
endif()
|
|
|
|
# Add googletest directly to our build. This defines
|
|
# the gtest, gtest_main, gmock and gmock_main targets.
|
|
add_subdirectory(${CMAKE_BINARY_DIR}/googletest-src
|
|
${CMAKE_BINARY_DIR}/googletest-build
|
|
EXCLUDE_FROM_ALL)
|
|
|
|
# }}}
|
|
|
|
# Compile all unit tests with 'make all_unit_tests'
|
|
add_custom_target(all_unit_tests
|
|
COMMENT "Building all unit test")
|
|
|
|
function(add_unit_test source_file)
|
|
string(REPLACE "/" "_" testname ${source_file})
|
|
set(name "unit_test.${testname}")
|
|
|
|
add_executable(${name} unit_tests/${source_file}.cpp)
|
|
|
|
# Link against gmock (this automatically links against gtest)
|
|
target_link_libraries(${name} poly gmock_main)
|
|
add_test(NAME ${name} COMMAND ${name})
|
|
|
|
add_dependencies(all_unit_tests ${name})
|
|
endfunction()
|
|
|
|
add_unit_test(utils/actions)
|
|
add_unit_test(utils/color)
|
|
add_unit_test(utils/command)
|
|
add_unit_test(utils/math unit_tests)
|
|
add_unit_test(utils/memory unit_tests)
|
|
add_unit_test(utils/scope unit_tests)
|
|
add_unit_test(utils/string unit_tests)
|
|
add_unit_test(utils/file)
|
|
add_unit_test(utils/process)
|
|
add_unit_test(components/command_line)
|
|
add_unit_test(components/bar)
|
|
add_unit_test(components/parser)
|
|
add_unit_test(components/config_parser)
|
|
add_unit_test(drawtypes/label)
|
|
add_unit_test(drawtypes/iconset)
|
|
|
|
# Run make check to build and run all unit tests
|
|
add_custom_target(check
|
|
COMMAND GTEST_COLOR=1 ctest --output-on-failure
|
|
DEPENDS all_unit_tests
|
|
)
|