summaryrefslogtreecommitdiff
path: root/src/ipcpd/raptor/CMakeLists.txt
blob: 0341194192c1b9ae2635b7081f7d215e28f93b05 (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
get_filename_component(CURRENT_SOURCE_PARENT_DIR
  ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY)
get_filename_component(CURRENT_BINARY_PARENT_DIR
  ${CMAKE_CURRENT_BINARY_DIR} DIRECTORY)

include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR})

include_directories(${CURRENT_SOURCE_PARENT_DIR})
include_directories(${CURRENT_BINARY_PARENT_DIR})

include_directories(${CMAKE_SOURCE_DIR}/include)
include_directories(${CMAKE_BINARY_DIR}/include)

if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
  find_path(RAPTOR_KERNEL_MODULE
    NAMES
    raptor.ko
    raptor.ko.gz
    HINTS
    /lib/modules/${CMAKE_SYSTEM_VERSION}/
    /lib/modules/${CMAKE_SYSTEM_VERSION}/extramodules/
  )

  mark_as_advanced(RAPTOR_KERNEL_MODULE)

  if (RAPTOR_KERNEL_MODULE)
    set(DISABLE_RAPTOR FALSE CACHE BOOL
      "Disable support for raptor devices")
    if (NOT DISABLE_RAPTOR)
      message(STATUS "Kernel module for raptor found. Building raptor.")
      set(IPCP_RAPTOR_TARGET ipcpd-raptor CACHE INTERNAL "")

      set(RAPTOR_SOURCES
      # Add source files here
      ${CMAKE_CURRENT_SOURCE_DIR}/main.c)

      add_executable(ipcpd-raptor ${RAPTOR_SOURCES} ${IPCP_SOURCES})
      target_link_libraries(ipcpd-raptor LINK_PUBLIC ouroboros-dev)

      include(AddCompileFlags)
      if (CMAKE_BUILD_TYPE MATCHES "Debug*")
        add_compile_flags(ipcpd-raptor -DCONFIG_OUROBOROS_DEBUG)
      endif ()

      install(TARGETS ipcpd-raptor RUNTIME DESTINATION sbin)
    else ()
      message(STATUS "Raptor support disabled by user")
    endif ()
  endif ()
endif ()