1*1285115cSWilliam A. Kennington III# Copyright 2021 Google LLC 2*1285115cSWilliam A. Kennington III# 3*1285115cSWilliam A. Kennington III# Licensed under the Apache License, Version 2.0 (the "License"); 4*1285115cSWilliam A. Kennington III# you may not use this file except in compliance with the License. 5*1285115cSWilliam A. Kennington III# You may obtain a copy of the License at 6*1285115cSWilliam A. Kennington III# 7*1285115cSWilliam A. Kennington III# http://www.apache.org/licenses/LICENSE-2.0 8*1285115cSWilliam A. Kennington III# 9*1285115cSWilliam A. Kennington III# Unless required by applicable law or agreed to in writing, software 10*1285115cSWilliam A. Kennington III# distributed under the License is distributed on an "AS IS" BASIS, 11*1285115cSWilliam A. Kennington III# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*1285115cSWilliam A. Kennington III# See the License for the specific language governing permissions and 13*1285115cSWilliam A. Kennington III# limitations under the License. 14*1285115cSWilliam A. Kennington III 15*1285115cSWilliam A. Kennington IIIncsid_headers = include_directories('.') 16*1285115cSWilliam A. Kennington III 17*1285115cSWilliam A. Kennington IIIfmt_dep = dependency('fmt', required: false) 18*1285115cSWilliam A. Kennington IIIif not fmt_dep.found() 19*1285115cSWilliam A. Kennington III fmt_proj = import('cmake').subproject( 20*1285115cSWilliam A. Kennington III 'fmt', 21*1285115cSWilliam A. Kennington III cmake_options: [ 22*1285115cSWilliam A. Kennington III '-DCMAKE_POSITION_INDEPENDENT_CODE=ON', 23*1285115cSWilliam A. Kennington III '-DMASTER_PROJECT=OFF' 24*1285115cSWilliam A. Kennington III ], 25*1285115cSWilliam A. Kennington III required: false) 26*1285115cSWilliam A. Kennington III assert(fmt_proj.found(), 'fmtlib is required') 27*1285115cSWilliam A. Kennington III fmt_dep = fmt_proj.dependency('fmt') 28*1285115cSWilliam A. Kennington IIIendif 29*1285115cSWilliam A. Kennington III 30*1285115cSWilliam A. Kennington IIIncsid_deps = [ 31*1285115cSWilliam A. Kennington III fmt_dep, 32*1285115cSWilliam A. Kennington III dependency('sdbusplus', fallback: ['sdbusplus', 'sdbusplus_dep']), 33*1285115cSWilliam A. Kennington III dependency('stdplus', fallback: ['stdplus', 'stdplus']), 34*1285115cSWilliam A. Kennington III] 35*1285115cSWilliam A. Kennington III 36*1285115cSWilliam A. Kennington IIIncsid_lib = static_library( 37*1285115cSWilliam A. Kennington III 'ncsid', 38*1285115cSWilliam A. Kennington III [ 39*1285115cSWilliam A. Kennington III 'net_config.cpp', 40*1285115cSWilliam A. Kennington III 'net_iface.cpp', 41*1285115cSWilliam A. Kennington III 'net_sockio.cpp', 42*1285115cSWilliam A. Kennington III 'ncsi_sockio.cpp', 43*1285115cSWilliam A. Kennington III 'ncsi_state_machine.cpp', 44*1285115cSWilliam A. Kennington III 'platforms/nemora/portable/ncsi_fsm.c', 45*1285115cSWilliam A. Kennington III 'platforms/nemora/portable/ncsi_client.c', 46*1285115cSWilliam A. Kennington III 'platforms/nemora/portable/ncsi_server.c', 47*1285115cSWilliam A. Kennington III ], 48*1285115cSWilliam A. Kennington III include_directories: ncsid_headers, 49*1285115cSWilliam A. Kennington III implicit_include_directories: false, 50*1285115cSWilliam A. Kennington III dependencies: ncsid_deps) 51*1285115cSWilliam A. Kennington III 52*1285115cSWilliam A. Kennington IIIncsid = declare_dependency( 53*1285115cSWilliam A. Kennington III dependencies: ncsid_deps, 54*1285115cSWilliam A. Kennington III include_directories: ncsid_headers, 55*1285115cSWilliam A. Kennington III link_with: ncsid_lib) 56*1285115cSWilliam A. Kennington III 57*1285115cSWilliam A. Kennington IIIexecutable( 58*1285115cSWilliam A. Kennington III 'ncsid', 59*1285115cSWilliam A. Kennington III 'ncsid.cpp', 60*1285115cSWilliam A. Kennington III implicit_include_directories: false, 61*1285115cSWilliam A. Kennington III dependencies: ncsid, 62*1285115cSWilliam A. Kennington III install: true, 63*1285115cSWilliam A. Kennington III install_dir: get_option('libexecdir')) 64*1285115cSWilliam A. Kennington III 65*1285115cSWilliam A. Kennington IIInormalize_ip = executable( 66*1285115cSWilliam A. Kennington III 'normalize_ip', 67*1285115cSWilliam A. Kennington III 'normalize_ip.c', 68*1285115cSWilliam A. Kennington III implicit_include_directories: false, 69*1285115cSWilliam A. Kennington III install: true) 70*1285115cSWilliam A. Kennington III 71*1285115cSWilliam A. Kennington IIInormalize_mac = executable( 72*1285115cSWilliam A. Kennington III 'normalize_mac', 73*1285115cSWilliam A. Kennington III 'normalize_mac.c', 74*1285115cSWilliam A. Kennington III implicit_include_directories: false, 75*1285115cSWilliam A. Kennington III install: true) 76*1285115cSWilliam A. Kennington III 77*1285115cSWilliam A. Kennington IIIinstall_data( 78*1285115cSWilliam A. Kennington III 'ncsid_udhcpc4.script', 79*1285115cSWilliam A. Kennington III 'ncsid_udhcpc6.script', 80*1285115cSWilliam A. Kennington III install_mode: 'rwxr-xr-x', 81*1285115cSWilliam A. Kennington III install_dir: get_option('libexecdir')) 82*1285115cSWilliam A. Kennington III 83*1285115cSWilliam A. Kennington IIIinstall_data( 84*1285115cSWilliam A. Kennington III 'ncsid_lib.sh', 85*1285115cSWilliam A. Kennington III install_mode: 'rw-r--r--', 86*1285115cSWilliam A. Kennington III install_dir: get_option('libexecdir')) 87*1285115cSWilliam A. Kennington III 88*1285115cSWilliam A. Kennington IIIinstall_data( 89*1285115cSWilliam A. Kennington III 'update_static_neighbors.sh', 90*1285115cSWilliam A. Kennington III install_mode: 'rwxr-xr-x', 91*1285115cSWilliam A. Kennington III install_dir: get_option('libexecdir')) 92*1285115cSWilliam A. Kennington III 93*1285115cSWilliam A. Kennington IIIsystemd = dependency('systemd') 94*1285115cSWilliam A. Kennington IIIsystemunitdir = systemd.get_pkgconfig_variable('systemdsystemunitdir') 95*1285115cSWilliam A. Kennington III 96*1285115cSWilliam A. Kennington IIIlibexecdir = get_option('prefix') / get_option('libexecdir') 97*1285115cSWilliam A. Kennington III 98*1285115cSWilliam A. Kennington IIIconfigure_file( 99*1285115cSWilliam A. Kennington III configuration: {'BIN': libexecdir / 'ncsid'}, 100*1285115cSWilliam A. Kennington III input: 'ncsid@.service.in', 101*1285115cSWilliam A. Kennington III output: 'ncsid@.service', 102*1285115cSWilliam A. Kennington III install_mode: 'rw-r--r--', 103*1285115cSWilliam A. Kennington III install_dir: systemunitdir) 104*1285115cSWilliam A. Kennington III 105*1285115cSWilliam A. Kennington IIIconfigure_file( 106*1285115cSWilliam A. Kennington III configuration: {'BIN': libexecdir / 'update_static_neighbors.sh'}, 107*1285115cSWilliam A. Kennington III input: 'update-static-neighbors@.service.in', 108*1285115cSWilliam A. Kennington III output: 'update-static-neighbors@.service', 109*1285115cSWilliam A. Kennington III install_mode: 'rw-r--r--', 110*1285115cSWilliam A. Kennington III install_dir: systemunitdir) 111*1285115cSWilliam A. Kennington III 112*1285115cSWilliam A. Kennington IIIconfigure_file( 113*1285115cSWilliam A. Kennington III configuration: { 114*1285115cSWilliam A. Kennington III 'SCRIPT': libexecdir / 'ncsid_udhcpc4.script'}, 115*1285115cSWilliam A. Kennington III input: 'dhcp4@.service.in', 116*1285115cSWilliam A. Kennington III output: 'dhcp4@.service', 117*1285115cSWilliam A. Kennington III install_mode: 'rw-r--r--', 118*1285115cSWilliam A. Kennington III install_dir: systemunitdir) 119*1285115cSWilliam A. Kennington III 120*1285115cSWilliam A. Kennington IIIconfigure_file( 121*1285115cSWilliam A. Kennington III configuration: { 122*1285115cSWilliam A. Kennington III 'SCRIPT': libexecdir / 'ncsid_udhcpc6.script'}, 123*1285115cSWilliam A. Kennington III input: 'dhcp6@.service.in', 124*1285115cSWilliam A. Kennington III output: 'dhcp6@.service', 125*1285115cSWilliam A. Kennington III install_mode: 'rw-r--r--', 126*1285115cSWilliam A. Kennington III install_dir: systemunitdir) 127*1285115cSWilliam A. Kennington III 128*1285115cSWilliam A. Kennington IIIinstall_data( 129*1285115cSWilliam A. Kennington III 'nic-hostful@.target', 130*1285115cSWilliam A. Kennington III 'nic-hostless@.target', 131*1285115cSWilliam A. Kennington III 'update-static-neighbors@.timer', 132*1285115cSWilliam A. Kennington III install_mode: 'rw-r--r--', 133*1285115cSWilliam A. Kennington III install_dir: systemunitdir) 134