Fix for x86_64 build fail
[platform/upstream/connectedhomeip.git] / third_party / pigweed / repo / pw_chrono_freertos / BUILD.gn
1 # Copyright 2020 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
15 import("//build_overrides/pigweed.gni")
16
17 import("$dir_pw_build/module_config.gni")
18 import("$dir_pw_build/target_types.gni")
19 import("$dir_pw_docgen/docs.gni")
20
21 declare_args() {
22   # The build target that overrides the default configuration options for this
23   # module. This should point to a source set that provides defines through a
24   # public config (which may -include a file or add defines directly).
25   pw_chrono_freertos_CONFIG = pw_build_DEFAULT_MODULE_CONFIG
26 }
27
28 config("public_include_path") {
29   include_dirs = [ "public" ]
30   visibility = [ ":*" ]
31 }
32
33 config("backend_config") {
34   include_dirs = [ "public_overrides" ]
35   visibility = [ ":*" ]
36 }
37
38 pw_source_set("config") {
39   public = [ "public/pw_chrono_freertos/config.h" ]
40   public_configs = [ ":public_include_path" ]
41   public_deps = [
42     "$dir_pw_third_party/freertos",
43     pw_chrono_freertos_CONFIG,
44   ]
45 }
46
47 # This target provides the backend for pw::chrono::SystemClock.
48 pw_source_set("system_clock") {
49   public_configs = [
50     ":public_include_path",
51     ":backend_config",
52   ]
53   public = [
54     "public/pw_chrono_freertos/system_clock_config.h",
55     "public/pw_chrono_freertos/system_clock_constants.h",
56     "public_overrides/pw_chrono_backend/system_clock_config.h",
57   ]
58   public_deps = [
59     ":config",
60     "$dir_pw_chrono:epoch",
61     "$dir_pw_chrono:system_clock.facade",
62     "$dir_pw_third_party/freertos",
63   ]
64   sources = [ "system_clock.cc" ]
65   deps = [
66     "$dir_pw_chrono:system_clock.facade",
67     "$dir_pw_interrupt:context",
68     "$dir_pw_sync:spin_lock",
69   ]
70 }
71
72 pw_doc_group("docs") {
73   sources = [ "docs.rst" ]
74 }