cmake_parser/doc/command/deprecated/
output_required_files.rs

1use cmake_parser_derive::CMake;
2
3use crate::{
4    doc::command_scope::{CommandScope, ToCommandScope},
5    Token,
6};
7
8/// Approximate C preprocessor dependency scanning.
9///
10/// Reference: <https://cmake.org/cmake/help/v3.26/command/output_required_files.html>
11#[derive(CMake, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
12#[cmake(pkg = "crate", positional)]
13pub struct OutputRequiredFiles<'t> {
14    pub src_file: Token<'t>,
15    pub output_file: Token<'t>,
16}
17
18impl<'t> ToCommandScope for OutputRequiredFiles<'t> {
19    fn to_command_scope(&self) -> CommandScope {
20        CommandScope::Deprecated
21    }
22}
23
24#[cfg(test)]
25mod tests {
26    use super::*;
27    use crate::doc::cmake_parse::tests::token;
28    use crate::*;
29    use pretty_assertions::assert_eq;
30
31    #[test]
32    fn output_required_files() {
33        let src =
34            include_bytes!("../../../../../fixture/commands/deprecated/output_required_files");
35        let cmakelists = parse_cmakelists(src).unwrap();
36        let doc = Doc::from(cmakelists);
37        assert_eq!(
38            doc.commands(),
39            Ok(vec![Command::OutputRequiredFiles(Box::new(
40                OutputRequiredFiles {
41                    src_file: token(b"src_file1"),
42                    output_file: token(b"output_file1"),
43                }
44            )),])
45        )
46    }
47}