651fa4d89b
- add target lib|exe <name>: another library or executable in a source directory named after it (P1204R0's rule applied per target); a new executable links the project's library - add test <name>: tests/<name>/driver.cpp for a library, or a run of an executable, with --arg and --expect - add dep <dependency>: link a library of this project (no cycles, no executables) or an installed package's imported target such as fmt::fmt, adding its find_package() - doctor: read-only check of the files against .canon.toml and the P1204R0 layout; errors for missing declared files or broken markers, warnings for unbuilt sources, undeclared tests, a hand-edited managed block, .h/.cc extensions and include/ or src/ directories - every add command takes --target; the CLI rejects options a command does not take - manifest: packages, test args, and validation of target names, shared source directories and dependencies - templates moved to canon/templates.hpp - tests: multi-target and exe-tests scenarios; every scenario ends with canon doctor; CANON_CHECK accepts expressions containing commas; the CLI test no longer reads a destroyed temporary Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
14 lines
297 B
C++
14 lines
297 B
C++
#include <hello/hello.hpp>
|
|
|
|
#include <cstdio>
|
|
#include <cstdlib>
|
|
#include <print>
|
|
|
|
int main() {
|
|
const auto actual = hello::greeting("World");
|
|
if (actual != "Hello, World!") {
|
|
std::println(stderr, "greeting(\"World\") returned \"{}\"", actual);
|
|
return EXIT_FAILURE;
|
|
}
|
|
}
|