File: CMakeLists.txt

package info (click to toggle)
cmake 3.0.2-1%2Bdeb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 44,060 kB
  • ctags: 30,180
  • sloc: cpp: 160,392; ansic: 149,082; yacc: 3,254; sh: 2,825; xml: 2,427; lex: 1,234; python: 449; lisp: 267; objc: 134; f90: 105; fortran: 101; perl: 99; makefile: 71; tcl: 55; asm: 28; php: 25; ruby: 22; java: 20
file content (44 lines) | stat: -rw-r--r-- 1,390 bytes parent folder | download | duplicates (2)
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

cmake_minimum_required(VERSION 2.8)

project(InterfaceLibrary)

add_library(iface_nodepends INTERFACE)
target_compile_definitions(iface_nodepends INTERFACE IFACE_DEFINE)

add_subdirectory(headerdir)

add_executable(InterfaceLibrary definetestexe.cpp)
target_link_libraries(InterfaceLibrary iface_nodepends headeriface)

add_subdirectory(libsdir)

add_executable(sharedlibtestexe sharedlibtestexe.cpp)
target_link_libraries(sharedlibtestexe shared_iface imported::iface)

add_library(broken EXCLUDE_FROM_ALL broken.cpp)

add_library(iface_broken INTERFACE)
# This is not a dependency, so broken will not be built (and the error in
# it will not be hit)
target_link_libraries(iface_broken INTERFACE broken)

add_library(iface_whitelist INTERFACE)
# The target property CUSTOM will never be evaluated on the INTERFACE library.
target_link_libraries(iface_whitelist INTERFACE $<$<BOOL:$<TARGET_PROPERTY:CUSTOM>>:irrelevant>)

add_executable(exec_whitelist dummy.cpp)
target_link_libraries(exec_whitelist iface_whitelist)

add_library(iface_imported INTERFACE IMPORTED)
set_property(TARGET iface_imported PROPERTY
  INTERFACE_COMPILE_DEFINITIONS
    $<$<CONFIG:SPECIAL>:SPECIAL_MODE>
    $<$<CONFIG:Debug>:DEBUG_MODE>
)
set_property(TARGET iface_imported PROPERTY
  MAP_IMPORTED_CONFIG_DEBUG SPECIAL
)

add_executable(map_config map_config.cpp)
target_link_libraries(map_config iface_imported)