Skip to content

Commit a24737a

Browse files
authored
[build] update GN build file for OpenThread (openthread#5358)
Add the CLI & configuration to the build file.
1 parent 7dc3b26 commit a24737a

File tree

10 files changed

+1441
-197
lines changed

10 files changed

+1441
-197
lines changed

.gn

+2
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
buildconfig = "//third_party/build_gn/BUILDCONFIG.gn"
2+
3+
check_system_includes = true

BUILD.gn

+63-195
Original file line numberDiff line numberDiff line change
@@ -25,204 +25,72 @@
2525
# POSSIBILITY OF SUCH DAMAGE.
2626
#
2727

28-
static_library("lib-ot-core") {
29-
30-
cflags_cc = [ "-Wno-non-virtual-dtor" ]
31-
32-
sources = [
33-
"src/core/api/backbone_router_api.cpp",
34-
"src/core/api/backbone_router_ftd_api.cpp",
35-
"src/core/api/border_agent_api.cpp",
36-
"src/core/api/border_router_api.cpp",
37-
"src/core/api/channel_manager_api.cpp",
38-
"src/core/api/channel_monitor_api.cpp",
39-
"src/core/api/child_supervision_api.cpp",
40-
"src/core/api/coap_api.cpp",
41-
"src/core/api/coap_secure_api.cpp",
42-
"src/core/api/commissioner_api.cpp",
43-
"src/core/api/crypto_api.cpp",
44-
"src/core/api/dataset_api.cpp",
45-
"src/core/api/dataset_ftd_api.cpp",
46-
"src/core/api/diags_api.cpp",
47-
"src/core/api/dns_api.cpp",
48-
"src/core/api/entropy_api.cpp",
49-
"src/core/api/heap_api.cpp",
50-
"src/core/api/icmp6_api.cpp",
51-
"src/core/api/instance_api.cpp",
52-
"src/core/api/ip6_api.cpp",
53-
"src/core/api/jam_detection_api.cpp",
54-
"src/core/api/joiner_api.cpp",
55-
"src/core/api/link_api.cpp",
56-
"src/core/api/link_raw_api.cpp",
57-
"src/core/api/logging_api.cpp",
58-
"src/core/api/message_api.cpp",
59-
"src/core/api/netdata_api.cpp",
60-
"src/core/api/network_time_api.cpp",
61-
"src/core/api/random_crypto_api.cpp",
62-
"src/core/api/random_noncrypto_api.cpp",
63-
"src/core/api/server_api.cpp",
64-
"src/core/api/sntp_api.cpp",
65-
"src/core/api/tasklet_api.cpp",
66-
"src/core/api/thread_api.cpp",
67-
"src/core/api/thread_ftd_api.cpp",
68-
"src/core/api/udp_api.cpp",
69-
"src/core/backbone_router/bbr_leader.cpp",
70-
"src/core/backbone_router/bbr_local.cpp",
71-
"src/core/backbone_router/bbr_manager.cpp",
72-
"src/core/coap/coap.cpp",
73-
"src/core/coap/coap_message.cpp",
74-
"src/core/coap/coap_secure.cpp",
75-
"src/core/common/crc16.cpp",
76-
"src/core/common/extension_example.cpp",
77-
"src/core/common/instance.cpp",
78-
"src/core/common/logging.cpp",
79-
"src/core/common/message.cpp",
80-
"src/core/common/notifier.cpp",
81-
"src/core/common/random_manager.cpp",
82-
"src/core/common/settings.cpp",
83-
"src/core/common/string.cpp",
84-
"src/core/common/tasklet.cpp",
85-
"src/core/common/timer.cpp",
86-
"src/core/common/tlvs.cpp",
87-
"src/core/common/trickle_timer.cpp",
88-
"src/core/crypto/aes_ccm.cpp",
89-
"src/core/crypto/aes_ecb.cpp",
90-
"src/core/crypto/ecdsa.cpp",
91-
"src/core/crypto/hmac_sha256.cpp",
92-
"src/core/crypto/mbedtls.cpp",
93-
"src/core/crypto/pbkdf2_cmac.cpp",
94-
"src/core/crypto/sha256.cpp",
95-
"src/core/diags/factory_diags.cpp",
96-
"src/core/mac/channel_mask.cpp",
97-
"src/core/mac/data_poll_handler.cpp",
98-
"src/core/mac/data_poll_sender.cpp",
99-
"src/core/mac/link_raw.cpp",
100-
"src/core/mac/mac.cpp",
101-
"src/core/mac/mac_filter.cpp",
102-
"src/core/mac/mac_frame.cpp",
103-
"src/core/mac/mac_types.cpp",
104-
"src/core/mac/sub_mac_callbacks.cpp",
105-
"src/core/mac/sub_mac.cpp",
106-
"src/core/meshcop/announce_begin_client.cpp",
107-
"src/core/meshcop/border_agent.cpp",
108-
"src/core/meshcop/commissioner.cpp",
109-
"src/core/meshcop/dataset.cpp",
110-
"src/core/meshcop/dataset_local.cpp",
111-
"src/core/meshcop/dataset_manager.cpp",
112-
"src/core/meshcop/dataset_manager_ftd.cpp",
113-
"src/core/meshcop/dtls.cpp",
114-
"src/core/meshcop/energy_scan_client.cpp",
115-
"src/core/meshcop/joiner.cpp",
116-
"src/core/meshcop/joiner_router.cpp",
117-
"src/core/meshcop/meshcop.cpp",
118-
"src/core/meshcop/meshcop_leader.cpp",
119-
"src/core/meshcop/meshcop_tlvs.cpp",
120-
"src/core/meshcop/panid_query_client.cpp",
121-
"src/core/meshcop/timestamp.cpp",
122-
"src/core/net/dhcp6_client.cpp",
123-
"src/core/net/dhcp6_server.cpp",
124-
"src/core/net/dns_client.cpp",
125-
"src/core/net/icmp6.cpp",
126-
"src/core/net/ip6_address.cpp",
127-
"src/core/net/ip6.cpp",
128-
"src/core/net/ip6_filter.cpp",
129-
"src/core/net/ip6_headers.cpp",
130-
"src/core/net/ip6_mpl.cpp",
131-
"src/core/net/netif.cpp",
132-
"src/core/net/sntp_client.cpp",
133-
"src/core/net/udp6.cpp",
134-
"src/core/radio/radio_callbacks.cpp",
135-
"src/core/radio/radio_platform.cpp",
136-
"src/core/thread/address_resolver.cpp",
137-
"src/core/thread/announce_begin_server.cpp",
138-
"src/core/thread/announce_sender.cpp",
139-
"src/core/thread/child_table.cpp",
140-
"src/core/thread/discover_scanner.cpp",
141-
"src/core/thread/dua_manager.cpp",
142-
"src/core/thread/energy_scan_server.cpp",
143-
"src/core/thread/indirect_sender.cpp",
144-
"src/core/thread/key_manager.cpp",
145-
"src/core/thread/link_quality.cpp",
146-
"src/core/thread/lowpan.cpp",
147-
"src/core/thread/mesh_forwarder.cpp",
148-
"src/core/thread/mesh_forwarder_ftd.cpp",
149-
"src/core/thread/mesh_forwarder_mtd.cpp",
150-
"src/core/thread/mle.cpp",
151-
"src/core/thread/mle_router.cpp",
152-
"src/core/thread/mle_types.cpp",
153-
"src/core/thread/mlr_manager.cpp",
154-
"src/core/thread/neighbor_table.cpp",
155-
"src/core/thread/network_data.cpp",
156-
"src/core/thread/network_data_leader.cpp",
157-
"src/core/thread/network_data_leader_ftd.cpp",
158-
"src/core/thread/network_data_local.cpp",
159-
"src/core/thread/network_data_notifier.cpp",
160-
"src/core/thread/network_diagnostic.cpp",
161-
"src/core/thread/panid_query_server.cpp",
162-
"src/core/thread/router_table.cpp",
163-
"src/core/thread/src_match_controller.cpp",
164-
"src/core/thread/thread_netif.cpp",
165-
"src/core/thread/time_sync_service.cpp",
166-
"src/core/thread/topology.cpp",
167-
"src/core/utils/channel_manager.cpp",
168-
"src/core/utils/channel_monitor.cpp",
169-
"src/core/utils/child_supervision.cpp",
170-
"src/core/utils/heap.cpp",
171-
"src/core/utils/jam_detector.cpp",
172-
"src/core/utils/parse_cmdline.cpp",
173-
"src/core/utils/slaac_address.cpp",
174-
"src/lib/hdlc/hdlc.cpp",
175-
"src/lib/spinel/spinel.c",
176-
"src/lib/spinel/spinel_decoder.cpp",
177-
"src/lib/spinel/spinel_encoder.cpp",
178-
"third_party/mbedtls/repo/library/md.c",
179-
"third_party/mbedtls/repo/library/md_wrap.c",
180-
"third_party/mbedtls/repo/library/memory_buffer_alloc.c",
181-
"third_party/mbedtls/repo/library/platform.c",
182-
"third_party/mbedtls/repo/library/platform_util.c",
183-
"third_party/mbedtls/repo/library/sha256.c",
184-
"third_party/mbedtls/repo/library/bignum.c",
185-
"third_party/mbedtls/repo/library/ccm.c",
186-
"third_party/mbedtls/repo/library/cipher.c",
187-
"third_party/mbedtls/repo/library/cipher_wrap.c",
188-
"third_party/mbedtls/repo/library/cmac.c",
189-
"third_party/mbedtls/repo/library/ctr_drbg.c",
190-
"third_party/mbedtls/repo/library/debug.c",
191-
"third_party/mbedtls/repo/library/ecjpake.c",
192-
"third_party/mbedtls/repo/library/ecp_curves.c",
193-
"third_party/mbedtls/repo/library/entropy.c",
194-
"third_party/mbedtls/repo/library/entropy_poll.c",
195-
"third_party/mbedtls/repo/library/ssl_cookie.c",
196-
"third_party/mbedtls/repo/library/ssl_ciphersuites.c",
197-
"third_party/mbedtls/repo/library/ssl_cli.c",
198-
"third_party/mbedtls/repo/library/ssl_srv.c",
199-
"third_party/mbedtls/repo/library/ssl_ticket.c",
200-
"third_party/mbedtls/repo/library/ssl_tls.c",
201-
"third_party/mbedtls/repo/library/aes.c",
202-
"third_party/mbedtls/repo/library/ecp.c"
203-
]
28+
import("etc/gn/openthread.gni")
20429

205-
# Remove the example as it is not meant for compilation
206-
sources -= [
207-
"src/core/common/extension_example.cpp",
208-
]
30+
config("openthread_config") {
31+
if (openthread_config_file != "") {
32+
defines += [ "OPENTHREAD_CONFIG_FILE=${openthread_config_file}" ]
33+
}
20934

210-
include_dirs = [
35+
include_dirs = openthread_project_include_dirs
36+
37+
include_dirs += [
38+
"${root_gen_dir}/include",
21139
"include",
212-
"src",
213-
"src/core",
214-
"src/ncp",
215-
"third_party",
216-
"third_party/mbedtls",
217-
"third_party/mbedtls/repo/include"
21840
]
21941

220-
defines = [
221-
"MBEDTLS_CONFIG_FILE=\"mbedtls-config.h\"",
222-
"OPENTHREAD_FTD=1",
223-
"SPINEL_PLATFORM_HEADER=\"spinel_platform.h\"",
224-
"OPENTHREAD_CONFIG_FILE=<openthread-config-android.h>",
225-
"PACKAGE_NAME=\"OPENTHREAD-CORE\"",
226-
"PACKAGE_VERSION=\"1.0.0\""
227-
]
42+
cflags_cc = [ "-Wno-non-virtual-dtor" ]
43+
}
44+
45+
config("openthread_ftd_config") {
46+
defines = [ "OPENTHREAD_FTD=1" ]
47+
}
48+
49+
config("openthread_mtd_config") {
50+
defines = [ "OPENTHREAD_MTD=1" ]
51+
}
52+
53+
config("openthread_radio_config") {
54+
defines = [ "OPENTHREAD_RADIO=1" ]
55+
}
56+
57+
group("libopenthread-ftd") {
58+
public_deps = [ "include/openthread" ]
59+
deps = [ "src/core:libopenthread-ftd" ]
60+
}
61+
62+
group("libopenthread-mtd") {
63+
public_deps = [ "include/openthread" ]
64+
deps = [ "src/core:libopenthread-mtd" ]
65+
}
66+
67+
group("libopenthread-radio") {
68+
public_deps = [ "include/openthread" ]
69+
deps = [ "src/core:libopenthread-radio" ]
70+
}
71+
72+
group("libopenthread-cli-ftd") {
73+
public_deps = [ "include/openthread" ]
74+
deps = [ "src/cli:libopenthread-cli-ftd" ]
75+
}
76+
77+
group("libopenthread-cli-mtd") {
78+
public_deps = [ "include/openthread" ]
79+
deps = [ "src/cli:libopenthread-cli-mtd" ]
80+
}
81+
82+
group("libopenthread-spinel-ncp") {
83+
public_deps = [ "src/lib/spinel:spinel-api" ]
84+
deps = [ "src/lib/spinel:libopenthread-spinel-ncp" ]
85+
}
86+
87+
group("libopenthread-spinel-rcp") {
88+
public_deps = [ "src/lib/spinel:spinel-api" ]
89+
deps = [ "src/lib/spinel:libopenthread-spinel-rcp" ]
90+
}
91+
92+
if (current_os == "fuchsia") {
93+
group("lib-ot-core") {
94+
public_deps = [ ":libopenthread-ftd" ]
95+
}
22896
}

0 commit comments

Comments
 (0)