include_directories(${CMAKE_SOURCE_DIR}/tests) add_custom_target(test_sqlpp_constraints COMMAND true) function(test_constraint name pattern) add_executable( ${name} EXCLUDE_FROM_ALL ${name}.cpp ) add_custom_command(OUTPUT ${name}.out COMMAND ${CMAKE_MAKE_PROGRAM} ${name} > ${CMAKE_CURRENT_BINARY_DIR}/${name}.out 2>&1 || true COMMAND grep ${pattern} ${CMAKE_CURRENT_BINARY_DIR}/${name}.out > /dev/null DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${name}.cpp COMMENT "${name}" ) add_custom_target(test_${name} DEPENDS ${name}.out COMMAND true) add_dependencies(test_sqlpp_constraints test_${name}) endfunction(test_constraint) test_constraint(count_of_count "cannot be used on an aggregate function") test_constraint(no_conversion_operator_if_null_not_trivial "int i = row.alpha") test_constraint(require_insert "required column is missing") test_constraint(must_not_insert "one assignment is prohibited") test_constraint(must_not_update "one assignment is prohibited")