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