diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-13 03:36:05 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-13 03:36:05 +0000 |
| commit | 6c3b338ffa67fc7e3a62b0f84c16f3fba358fa09 (patch) | |
| tree | e3f12a8ca9e241e0de0f6627cf67e0cd75486796 | |
| parent | e591f33cc53e78fe4205cf7b0d6b228557af82a7 (diff) | |
build: add optional doc target for the cpsc man page
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
| -rw-r--r-- | CMakeLists.txt | 11 | ||||
| -rw-r--r-- | README.md | 17 |
2 files changed, 28 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 3352c47..b230fe5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,3 +42,14 @@ target_link_libraries(cpsc CPSLexer ${llvm_libs} ) + +add_custom_command( + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/cpsc.1" + COMMAND pandoc --standalone --from=markdown --to=man + "${CMAKE_CURRENT_SOURCE_DIR}/doc/cpsc.md" + --output "${CMAKE_CURRENT_BINARY_DIR}/cpsc.1" + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/doc/cpsc.md" + COMMENT "Generating cpsc(1) manual" + VERBATIM +) +add_custom_target(doc DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/cpsc.1") @@ -101,6 +101,23 @@ stdin/stdout/stderr, so pseudocode `INPUT` reads from the terminal or piped inpu With `-r` alone, no permanent IR is saved; with `-r -o`, the saved IR is kept even if execution fails. +## Manual + +The command-line quick reference is in `doc/cpsc.md`. Generating the man page +requires Pandoc; ordinary builds do not. + +From the project root on Linux: + +```bash +sudo apt-get install pandoc +cmake -S . -B build +make -C build doc +man ./build/cpsc.1 +``` + +You can also run `make doc` inside the configured `build/` directory. +The output is `build/cpsc.1` and is regenerated when the Markdown source changes. + # Note DO NOT OPEN ANY ISSUES IF YOU COMPILE WITH VISUAL STUDIO OR ANYTHING EXCEPT MINGW-W64 (EVEN WITH MINGW-W64, WINDOWS IS LIKELY TO BE A PROBLEM MAKER) |
