cmake_parser/doc/command/common/
source.rs

1use cmake_parser_derive::CMake;
2
3use crate::Token;
4
5#[derive(CMake, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
6#[cmake(pkg = "crate", transparent)]
7pub enum Source<'t> {
8    Sources(Vec<Token<'t>>),
9    SourceFromContent(SourceFromContent<'t>),
10    SourceFromVar(SourceFromVar<'t>),
11    SourceFromFile(SourceFromFile<'t>),
12}
13
14#[derive(CMake, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
15#[cmake(pkg = "crate", positional)]
16pub struct SourceFromContent<'t> {
17    pub name: Token<'t>,
18    pub content: Token<'t>,
19}
20
21#[derive(CMake, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
22#[cmake(pkg = "crate", positional)]
23pub struct SourceFromVar<'t> {
24    pub name: Token<'t>,
25    pub var: Token<'t>,
26}
27
28#[derive(CMake, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
29#[cmake(pkg = "crate", positional)]
30pub struct SourceFromFile<'t> {
31    pub name: Token<'t>,
32    pub path: Token<'t>,
33}