# Copyright 2017 The Roughtime Authors.

# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

#   http://www.apache.org/licenses/LICENSE-2.0

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

config("client_config") {
  visibility = [ ":*" ]
  include_dirs = [ "." ]
}

executable("simple_server") {
  sources = [
    "clock_linux.cc",
    "protocol.cc",
    "server.cc",
    "simple_server.cc",
    "simple_server_main.cc",
    "sys_time.cc",
    "udp_processor.cc",
  ]
  defines = [
    "USE_GLOG",
    "ROUGHTIME_OPEN_SOURCE",
  ]
  include_dirs = [ "." ]
  deps = [
    "//third_party/boringssl",
    "//third_party/glog",
  ]
}

static_library("client_lib") {
  sources = [
    "client.cc",
    "clock_linux.cc",
    "protocol.cc",
  ]
  defines = [ "USE_GLOG" ]
  public_configs = [ ":client_config" ]
  deps = [
    "//third_party/boringssl",
    "//third_party/glog",
  ]
}
