xref: /openbmc/phosphor-fan-presence/control/meson.build (revision e5049b25d663c9a388ca3d8bac755d6225647dbe)
1
2include_dirs = ['.', '..']
3
4deps = [
5    phosphor_dbus_interfaces_dep,
6    phosphor_logging_dep,
7    sdbusplus_dep,
8    sdeventplus_dep,
9    cereal_dep,
10]
11
12sources = ['main.cpp']
13
14if conf.has('CONTROL_USE_JSON')
15    deps += nlohmann_json_dep
16    include_dirs += ['./json', './json/actions', './json/triggers']
17    sources += [
18        'json/dbus_zone.cpp',
19        'json/event.cpp',
20        'json/fan.cpp',
21        'json/group.cpp',
22        'json/manager.cpp',
23        'json/profile.cpp',
24        'json/zone.cpp',
25        'json/actions/count_state_floor.cpp',
26        'json/actions/count_state_target.cpp',
27        'json/actions/default_floor.cpp',
28        'json/actions/get_managed_objects.cpp',
29        'json/actions/mapped_floor.cpp',
30        'json/actions/missing_owner_target.cpp',
31        'json/actions/net_target_decrease.cpp',
32        'json/actions/net_target_increase.cpp',
33        'json/actions/override_fan_target.cpp',
34        'json/actions/pcie_card_floors.cpp',
35        'json/actions/request_target_base.cpp',
36        'json/actions/set_parameter_from_group_max.cpp',
37        'json/actions/target_from_group_max.cpp',
38        'json/actions/timer_based_actions.cpp',
39        'json/utils/flight_recorder.cpp',
40        'json/utils/modifier.cpp',
41        'json/utils/pcie_card_metadata.cpp',
42        'json/triggers/init.cpp',
43        'json/triggers/parameter.cpp',
44        'json/triggers/signal.cpp',
45        'json/triggers/timer.cpp',
46    ]
47else
48    script = files('gen-fan-zone-defs.py')
49    fan_zone_defs_cpp_dep = custom_target(
50        'fan_zone_defs.cpp',
51        input: files(
52            conf.get_unquoted('FAN_DEF_YAML_FILE'),
53            conf.get_unquoted('FAN_ZONE_YAML_FILE'),
54            conf.get_unquoted('ZONE_EVENTS_YAML_FILE'),
55            conf.get_unquoted('ZONE_CONDITIONS_YAML_FILE'),
56        ),
57        command: [
58            python_prog,
59            script,
60            '-f',
61            '@INPUT0@',
62            '-z',
63            '@INPUT1@',
64            '-e',
65            '@INPUT2@',
66            '-c',
67            '@INPUT3@',
68            '-o',
69            'control',
70        ],
71        output: 'fan_zone_defs.cpp',
72    )
73
74    sources += [
75        'actions.cpp',
76        'fan.cpp',
77        fan_zone_defs_cpp_dep,
78        'manager.cpp',
79        'preconditions.cpp',
80        'triggers.cpp',
81        'utility.cpp',
82        'zone.cpp',
83    ]
84
85endif
86
87phosphor_fan_control_include_directories = include_directories(include_dirs)
88phosphor_fan_control = executable(
89    'phosphor-fan-control',
90    sources,
91    dependencies: deps,
92    implicit_include_directories: false,
93    include_directories: phosphor_fan_control_include_directories,
94    install: true,
95)
96
97fanctl = executable(
98    'fanctl',
99    'fanctl.cpp',
100    dependencies: [
101        cli11_dep,
102        nlohmann_json_dep,
103        phosphor_logging_dep,
104        sdbusplus_dep,
105    ],
106    include_directories: phosphor_fan_control_include_directories,
107    install: true,
108)
109