xref: /aosp_15_r20/external/pigweed/pw_function/CMakeLists.txt (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1# Copyright 2021 The Pigweed Authors
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4# use this file except in compliance with the License. You may obtain a copy of
5# the License at
6#
7#     https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations under
13# the License.
14
15include($ENV{PW_ROOT}/pw_build/pigweed.cmake)
16
17pw_add_module_config(pw_function_CONFIG)
18
19pw_add_library(pw_function.config INTERFACE
20  HEADERS
21    public/pw_function/config.h
22  PUBLIC_INCLUDES
23    public
24  PUBLIC_DEPS
25    ${pw_function_CONFIG}
26)
27
28pw_add_library(pw_function INTERFACE
29  HEADERS
30    public/pw_function/function.h
31  PUBLIC_INCLUDES
32    public
33  PUBLIC_DEPS
34    pw_assert
35    pw_function.config
36    pw_preprocessor
37    pw_third_party.fuchsia.fit
38)
39
40pw_add_test(pw_function.function_test
41  SOURCES
42    function_test.cc
43  PRIVATE_DEPS
44    pw_compilation_testing._pigweed_only_negative_compilation
45    pw_function
46    pw_polyfill
47  GROUPS
48    modules
49    pw_function
50)
51
52pw_add_library(pw_function.pointer INTERFACE
53  HEADERS
54    public/pw_function/pointer.h
55    public/pw_function/internal/static_invoker.h
56  PUBLIC_INCLUDES
57    public
58)
59
60pw_add_test(pw_function.pointer_test
61  SOURCES
62    pointer_test.cc
63  PRIVATE_DEPS
64    pw_function
65    pw_function.pointer
66  GROUPS
67    modules
68    pw_function
69)
70
71pw_add_library(pw_function.scope_guard INTERFACE
72  HEADERS
73    public/pw_function/scope_guard.h
74  PUBLIC_INCLUDES
75    public
76)
77
78pw_add_test(pw_function.scope_guard_test
79  SOURCES
80    scope_guard_test.cc
81  PRIVATE_DEPS
82    pw_function
83    pw_function.scope_guard
84  GROUPS
85    modules
86    pw_function
87)
88