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})