File: fastd_module.cmake

package info (click to toggle)
fastd 18-2
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 1,816 kB
  • ctags: 5,120
  • sloc: asm: 15,114; ansic: 9,478; sh: 614; yacc: 558; makefile: 168; python: 33; perl: 11
file content (59 lines) | stat: -rw-r--r-- 1,800 bytes parent folder | download | duplicates (3)
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
macro(_fastd_module_handle_name)
  string(TOUPPER "${type}" TYPE)

  string(REPLACE - _ name_ "${name}")
  string(REPLACE " " _ name_ "${name_}")
  string(TOUPPER "${name_}" NAME)
endmacro(_fastd_module_handle_name)

function(fastd_module type enabled_var info name)
  _fastd_module_handle_name()

  set(WITH_${TYPE}_${NAME} TRUE CACHE BOOL "Include the ${name} ${info}")

  if(WITH_${TYPE}_${NAME})
    add_library(${type}_${name_} STATIC ${ARGN})
    set_property(TARGET ${type}_${name_} PROPERTY COMPILE_FLAGS "${FASTD_CFLAGS}")

    set_property(TARGET ${type}s APPEND PROPERTY FASTD_LINK_LIBRARIES ${type}_${name_})

    list(APPEND ${TYPE}S ${name_})

  endif(WITH_${TYPE}_${NAME})

  set(${enabled_var} ${WITH_${TYPE}_${NAME}} PARENT_SCOPE)
endfunction(fastd_module)

function(fastd_module_include_directories type name)
  _fastd_module_handle_name()

  if(WITH_${TYPE}_${NAME})
    set_property(TARGET ${type}_${name_} APPEND PROPERTY INCLUDE_DIRECTORIES ${ARGN})
  endif(WITH_${TYPE}_${NAME})
endfunction(fastd_module_include_directories)

function(fastd_module_link_libraries type name)
  _fastd_module_handle_name()

  if(WITH_${TYPE}_${NAME})
    target_link_libraries(${type}_${name_} ${ARGN})
  endif(WITH_${TYPE}_${NAME})
endfunction(fastd_module_link_libraries)

function(fastd_module_require type name)
  _fastd_module_handle_name()

  if(WITH_${TYPE}_${NAME})
    foreach(req ${ARGN})
      set_property(GLOBAL PROPERTY ${req}_REQUIRED TRUE)
    endforeach(req)
  endif(WITH_${TYPE}_${NAME})
endfunction(fastd_module_require)

function(fastd_module_compile_flags type name source)
  _fastd_module_handle_name()

  if(WITH_${TYPE}_${NAME})
    set_property(SOURCE ${source} APPEND PROPERTY COMPILE_FLAGS ${ARGN})
  endif(WITH_${TYPE}_${NAME})
endfunction(fastd_module_compile_flags)