summaryrefslogtreecommitdiff
path: root/compiler/nnc/backends/soft_backend/CMakeLists.txt
blob: 185f90fea07da4e324040cd5a751b60e75e1db3c (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
set(SOFT_BACKEND_COMMON_SOURCES BaseGenerator.cpp ModelAnalyzer.cpp SBSerializer.cpp SequencedIR.cpp)
set(SOFT_BACKEND_CPP_SOURCES CPPGenerator.cpp)
set(SOFT_BACKEND_C_SOURCES CGenerator.cpp)

file(GLOB_RECURSE SOFT_DEF_SOURCES "*.def")

nnc_make_generated_sources("${SOFT_DEF_SOURCES}" ${CMAKE_CURRENT_BINARY_DIR} SOFT_GENERATED_SOURCES)

add_library(soft_backend_common STATIC ${SOFT_BACKEND_COMMON_SOURCES})
set_property(TARGET soft_backend_common PROPERTY POSITION_INDEPENDENT_CODE ON)
target_include_directories(soft_backend_common PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(soft_backend_common PRIVATE nnc_support)
target_link_libraries(soft_backend_common PRIVATE mir)

function(make_soft_backend NAME)
    nnc_add_library(${NAME} SHARED ${ARGN} ${SOFT_GENERATED_SOURCES})
    target_include_directories(${NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})

    target_link_libraries(${NAME} PUBLIC soft_backend_common)
    target_link_libraries(${NAME} PRIVATE nnc_support)
    target_link_libraries(${NAME} PRIVATE mir)

    # install soft backend c++ library
    nnc_install_library(${NAME})
endfunction(make_soft_backend)

make_soft_backend(soft_backend_cpp ${SOFT_BACKEND_CPP_SOURCES})
make_soft_backend(soft_backend_c ${SOFT_BACKEND_C_SOURCES})