about summary refs log tree commit diff
path: root/third_party/nix/src/libutil/CMakeLists.txt
blob: cdf4655c40077704c4014d4167035c3638ef9cdc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# -*- mode: cmake; -*-
add_library(nixutil SHARED)
set_property(TARGET nixutil PROPERTY CXX_STANDARD 17)
include_directories(${PROJECT_BINARY_DIR}) # for config.h
target_compile_features(nixutil PUBLIC cxx_std_17)

set(HEADER_FILES
    affinity.hh
    archive.hh
    args.hh
    compression.hh
    config.hh
    finally.hh
    hash.hh
    istringstream_nocopy.hh
    json.hh
    lazy.hh
    lru-cache.hh
    monitor-fd.hh
    pool.hh
    proto.hh
    ref.hh
    serialise.hh
    sync.hh
    thread-pool.hh
    types.hh
    util.hh
    visitor.hh
    xml-writer.hh
)

target_sources(nixutil
  PUBLIC
    ${HEADER_FILES}

  PRIVATE
    affinity.cc
    archive.cc
    args.cc
    compression.cc
    config.cc
    hash.cc
    json.cc
    serialise.cc
    thread-pool.cc
    util.cc
    xml-writer.cc
)

target_link_libraries(nixutil
  nixproto
  absl::strings
  absl::statusor
  glog
  BZip2::BZip2
  LibLZMA::LibLZMA
  Boost::context
  brotlienc
  brotlidec
  ssl
)

# Install header files to include/libutil and mark them for automatic
# inclusion in targets that link to this one.
target_include_directories(nixutil PUBLIC "${nix_SOURCE_DIR}/src")
INSTALL(FILES ${HEADER_FILES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/nix/libutil)
INSTALL(TARGETS nixutil DESTINATION ${CMAKE_INSTALL_LIBDIR})