summaryrefslogtreecommitdiff
path: root/compiler/tfinfo-v2/CMakeLists.txt
blob: cf438ea2980dedb3bf086640ffdb780ffea4d689 (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
nnas_find_package(Protobuf QUIET)

if(NOT Protobuf_FOUND)
  return()
endif(NOT Protobuf_FOUND)

# generating and building schema
Protobuf_Generate(TFINFO_PROTO
                  "${CMAKE_CURRENT_BINARY_DIR}/generated"
                  "./proto"
                  tfinfo-v2.proto)

add_library(tfinfo_v2_proto STATIC ${TFINFO_PROTO_SOURCES})
set_target_properties(tfinfo_v2_proto PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_include_directories(tfinfo_v2_proto PUBLIC ${TFINFO_PROTO_INCLUDE_DIRS})
target_link_libraries(tfinfo_v2_proto PUBLIC libprotobuf)

file(GLOB_RECURSE SOURCES "src/*.cpp")
file(GLOB_RECURSE TESTS "src/*.test.cpp")
list(REMOVE_ITEM SOURCES ${TESTS})

add_library(tfinfo_v2 STATIC ${SOURCES})
set_target_properties(tfinfo_v2 PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_include_directories(tfinfo_v2 PUBLIC include)
target_link_libraries(tfinfo_v2 PRIVATE tfinfo_v2_proto)
target_link_libraries(tfinfo_v2 PRIVATE oops)
target_link_libraries(tfinfo_v2 PRIVATE stdex)

if(NOT ENABLE_TEST)
  return()
endif(NOT ENABLE_TEST)

nnas_find_package(GTest REQUIRED)

GTest_AddTest(tfinfo_v2_test ${TESTS})
target_link_libraries(tfinfo_v2_test tfinfo_v2)