aboutsummaryrefslogtreecommitdiffstats
path: root/fpga_interchange/family.cmake
blob: 3f3b5a9366bbafd5c7003209ea34fadb50d3434d (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
find_package(TCL)
if(NOT ${TCL_FOUND})
    message(FATAL_ERROR "Tcl is required for FPGA interchange Arch.")
endif()

find_package(ZLIB REQUIRED)
find_package(CapnProto REQUIRED)

set(PROTOS LogicalNetlist.capnp PhysicalNetlist.capnp References.capnp)

set(CAPNP_SRCS)
set(CAPNP_HDRS)
foreach (proto ${PROTOS})
    capnp_generate_cpp(CAPNP_SRC CAPNP_HDR 3rdparty/fpga-interchange-schema/interchange/${proto})
    list(APPEND CAPNP_HDRS ${CAPNP_HDR})
    list(APPEND CAPNP_SRCS ${CAPNP_SRC})
endforeach()
add_library(fpga_interchange_capnp STATIC ${CAPNP_SRCS})

foreach (target ${family_targets})
    target_include_directories(${target} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/3rdparty/fpga-interchange-schema/interchange)
    target_include_directories(${target} PRIVATE ${TCL_INCLUDE_PATH})
    target_link_libraries(${target} PRIVATE ${TCL_LIBRARY})
    target_link_libraries(${target} PRIVATE fpga_interchange_capnp)
    target_link_libraries(${target} PRIVATE CapnProto::capnp)
    target_link_libraries(${target} PRIVATE z)
endforeach()