Code View

cparse / cparse-1.3.0.2 / examples / key-value / src / CMakeLists.txt
Compare with:csv-litetoy-calc
cmake_minimum_required( VERSION 3.20 )

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../src)

add_executable( kv kv.cpp )
target_link_libraries( kv cparse )

# Smoke test: pins the walkthrough's documented "Trying it" transcript.
add_test(
  NAME kv.smoke
  COMMAND ${CMAKE_COMMAND}
    -DEXE=$<TARGET_FILE:kv>
    -DARG=${CMAKE_CURRENT_SOURCE_DIR}/../tests/fixture.ini
    -DEXPECTED=${CMAKE_CURRENT_SOURCE_DIR}/../tests/expected.txt
    -P ${CMAKE_CURRENT_SOURCE_DIR}/../../run_and_diff.cmake
)

# Regression guard: running with no argument at all used to crash
# (std::string construction from argv[1]==nullptr throws std::logic_error)
# instead of printing a usage message and exiting 1.
add_test(
  NAME kv.no_argument
  COMMAND ${CMAKE_COMMAND}
    -DEXE=$<TARGET_FILE:kv>
    -DEXPECTED=${CMAKE_CURRENT_SOURCE_DIR}/../tests/expected-usage.txt
    -DMATCH=1
    -DRC=1
    -P ${CMAKE_CURRENT_SOURCE_DIR}/../../run_and_diff.cmake
)