aboutsummaryrefslogtreecommitdiffstats
path: root/fpga_interchange/family.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'fpga_interchange/family.cmake')
-rw-r--r--fpga_interchange/family.cmake22
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()