diff options
Diffstat (limited to 'fpga_interchange/family.cmake')
-rw-r--r-- | fpga_interchange/family.cmake | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/fpga_interchange/family.cmake b/fpga_interchange/family.cmake index c3fefaba..3f3b5a93 100644 --- a/fpga_interchange/family.cmake +++ b/fpga_interchange/family.cmake @@ -3,7 +3,25 @@ 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_link_libraries(${target} LINK_PUBLIC ${TCL_LIBRARY}) - include_directories (${TCL_INCLUDE_PATH}) + 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() |