1*3f982cf4SFabien Sanglard# Copyright 2018 The Chromium Authors. All rights reserved. 2*3f982cf4SFabien Sanglard# Use of this source code is governed by a BSD-style license that can be 3*3f982cf4SFabien Sanglard# found in the LICENSE file. 4*3f982cf4SFabien Sanglard 5*3f982cf4SFabien Sanglardsource_set("msgs") { 6*3f982cf4SFabien Sanglard sources = [ 7*3f982cf4SFabien Sanglard target_gen_dir + "/osp_messages.cc", 8*3f982cf4SFabien Sanglard target_gen_dir + "/osp_messages.h", 9*3f982cf4SFabien Sanglard ] 10*3f982cf4SFabien Sanglard 11*3f982cf4SFabien Sanglard public_deps = [ ":cddl_gen" ] 12*3f982cf4SFabien Sanglard deps = [ 13*3f982cf4SFabien Sanglard "../../third_party/abseil", 14*3f982cf4SFabien Sanglard "../../third_party/tinycbor", 15*3f982cf4SFabien Sanglard ] 16*3f982cf4SFabien Sanglard 17*3f982cf4SFabien Sanglard public_configs = [ 18*3f982cf4SFabien Sanglard ":cddl_gen_config", 19*3f982cf4SFabien Sanglard "../../build:openscreen_include_dirs", 20*3f982cf4SFabien Sanglard ] 21*3f982cf4SFabien Sanglard} 22*3f982cf4SFabien Sanglard 23*3f982cf4SFabien Sanglardconfig("cddl_gen_config") { 24*3f982cf4SFabien Sanglard include_dirs = [ "$root_gen_dir" + "/" + rebase_path("../..", "//") ] 25*3f982cf4SFabien Sanglard} 26*3f982cf4SFabien Sanglard 27*3f982cf4SFabien Sanglardaction("cddl_gen") { 28*3f982cf4SFabien Sanglard script = "../../tools/cddl/cddl.py" 29*3f982cf4SFabien Sanglard sources = [ "osp_messages.cddl" ] 30*3f982cf4SFabien Sanglard outputs_src = rebase_path([ 31*3f982cf4SFabien Sanglard "osp_messages.h", 32*3f982cf4SFabien Sanglard "osp_messages.cc", 33*3f982cf4SFabien Sanglard ], 34*3f982cf4SFabien Sanglard "//") 35*3f982cf4SFabien Sanglard outputs = [] 36*3f982cf4SFabien Sanglard foreach(o, outputs_src) { 37*3f982cf4SFabien Sanglard outputs += [ root_gen_dir + "/" + o ] 38*3f982cf4SFabien Sanglard } 39*3f982cf4SFabien Sanglard 40*3f982cf4SFabien Sanglard cddl_label = "../../tools/cddl:cddl($host_toolchain)" 41*3f982cf4SFabien Sanglard cddl_path = get_label_info(cddl_label, "root_out_dir") + "/cddl" 42*3f982cf4SFabien Sanglard args = 43*3f982cf4SFabien Sanglard [ 44*3f982cf4SFabien Sanglard "--cddl", 45*3f982cf4SFabien Sanglard 46*3f982cf4SFabien Sanglard # Path should be rebased because |root_build_dir| for current toolchain 47*3f982cf4SFabien Sanglard # may be different from |root_out_dir| of cddl built on host toolchain. 48*3f982cf4SFabien Sanglard "./" + rebase_path(cddl_path, root_build_dir), 49*3f982cf4SFabien Sanglard "--header", 50*3f982cf4SFabien Sanglard outputs_src[0], 51*3f982cf4SFabien Sanglard "--cc", 52*3f982cf4SFabien Sanglard outputs_src[1], 53*3f982cf4SFabien Sanglard "--gen-dir", 54*3f982cf4SFabien Sanglard rebase_path(root_gen_dir, root_build_dir), 55*3f982cf4SFabien Sanglard "--log", 56*3f982cf4SFabien Sanglard rebase_path("cddl.log", "//"), 57*3f982cf4SFabien Sanglard ] + rebase_path(sources, root_build_dir) 58*3f982cf4SFabien Sanglard 59*3f982cf4SFabien Sanglard deps = [ cddl_label ] 60*3f982cf4SFabien Sanglard} 61*3f982cf4SFabien Sanglard 62*3f982cf4SFabien Sanglardsource_set("unittests") { 63*3f982cf4SFabien Sanglard testonly = true 64*3f982cf4SFabien Sanglard 65*3f982cf4SFabien Sanglard sources = [ "messages_unittest.cc" ] 66*3f982cf4SFabien Sanglard 67*3f982cf4SFabien Sanglard deps = [ 68*3f982cf4SFabien Sanglard ":msgs", 69*3f982cf4SFabien Sanglard "../../third_party/googletest:gtest", 70*3f982cf4SFabien Sanglard ] 71*3f982cf4SFabien Sanglard} 72