summaryrefslogtreecommitdiff
path: root/src/irmd/CMakeLists.txt
blob: d65635af2694c5026a4f30958dbdb4af5ae0624e (plain)
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
# IRMd (IPC Resource Manager daemon) build configuration
# Configuration options are in cmake/config/global.cmake and cmake/config/irmd.cmake

# Generate and install configuration files if TOML support available
# HAVE_TOML is set in cmake/dependencies/irmd/libtoml.cmake
if(HAVE_TOML)
  set(INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
  configure_file("${CMAKE_SOURCE_DIR}/irmd.conf.in"
    "${CMAKE_BINARY_DIR}/${OUROBOROS_CONFIG_FILE}.example" @ONLY)
  configure_file("${CMAKE_SOURCE_DIR}/enc.conf.in"
    "${CMAKE_BINARY_DIR}/enc.conf.example" @ONLY)
  install(FILES "${CMAKE_BINARY_DIR}/${OUROBOROS_CONFIG_FILE}.example"
    DESTINATION "${OUROBOROS_CONFIG_DIR}")
  install(FILES "${CMAKE_BINARY_DIR}/enc.conf.example"
    DESTINATION "${OUROBOROS_CONFIG_DIR}")
  install(CODE "
    if(NOT EXISTS \"${OUROBOROS_CONFIG_DIR}/${OUROBOROS_CONFIG_FILE}\")
      file(WRITE \"${OUROBOROS_CONFIG_DIR}/${OUROBOROS_CONFIG_FILE}\" \"\")
    endif()
  ")
  unset(INSTALL_DIR)
endif()

configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.h.in"
  "${CMAKE_CURRENT_BINARY_DIR}/config.h" @ONLY)

set(IRMD_SOURCES
  ipcp.c
  configfile.c
  main.c
  oap/io.c
  oap/hdr.c
  oap/auth.c
  oap/srv.c
  oap/cli.c
  reg/flow.c
  reg/ipcp.c
  reg/pool.c
  reg/proc.c
  reg/prog.c
  reg/name.c
  reg/reg.c
)

add_executable(irmd ${IRMD_SOURCES})

target_include_directories(irmd PRIVATE
  ${CMAKE_CURRENT_SOURCE_DIR}
  ${CMAKE_CURRENT_BINARY_DIR}
  ${CMAKE_SOURCE_DIR}/include
  ${CMAKE_BINARY_DIR}/include)

target_link_libraries(irmd PRIVATE ouroboros-common)
if(HAVE_TOML)
  target_link_libraries(irmd PRIVATE toml::toml)
endif()

ouroboros_target_debug_definitions(irmd)

install(TARGETS irmd RUNTIME DESTINATION ${CMAKE_INSTALL_SBINDIR})

if(BUILD_TESTS)
  add_subdirectory(oap/tests)
  add_subdirectory(reg/tests)
endif()