Skip to content

Commit 17ab90f

Browse files
authored
Merge pull request chipsalliance#6 from litghost/add_cmake_for_schema_files
Add CMake file to build static library.
2 parents 6d450bd + e9ebc16 commit 17ab90f

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

cmake/cxx_static/CMakeLists.txt

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
find_package(CapnProto REQUIRED)
2+
set(PROTOS LogicalNetlist.capnp PhysicalNetlist.capnp References.capnp)
3+
4+
set(INTERCHANGE_SCHEMA_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../interchange)
5+
6+
find_program(WGET wget REQUIRED)
7+
8+
set(JAVA_SCHEMA ${CMAKE_CURRENT_BINARY_DIR}/schema/capnp/java.capnp)
9+
add_custom_command(
10+
OUTPUT ${JAVA_SCHEMA}
11+
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/schema/capnp/
12+
COMMAND ${WGET}
13+
https://raw.githubusercontent.com/capnproto/capnproto-java/master/compiler/src/main/schema/capnp/java.capnp
14+
-O ${JAVA_SCHEMA}
15+
)
16+
add_custom_target(
17+
get_java_capnp_schema
18+
DEPENDS ${JAVA_SCHEMA})
19+
20+
set(CAPNPC_IMPORT_DIRS)
21+
list(APPEND CAPNPC_IMPORT_DIRS ${CMAKE_CURRENT_BINARY_DIR}/schema)
22+
23+
set(CAPNPC_SRC_PREFIX ${INTERCHANGE_SCHEMA_DIR})
24+
set(CAPNP_SRCS)
25+
set(CAPNP_HDRS)
26+
foreach (proto ${PROTOS})
27+
capnp_generate_cpp(CAPNP_SRC CAPNP_HDR ${INTERCHANGE_SCHEMA_DIR}/${proto})
28+
list(APPEND CAPNP_HDRS ${CAPNP_HDR})
29+
list(APPEND CAPNP_SRCS ${CAPNP_SRC})
30+
endforeach()
31+
add_library(fpga_interchange_capnp STATIC ${CAPNP_SRCS})
32+
add_dependencies(fpga_interchange_capnp get_java_capnp_schema)
33+
target_link_libraries(fpga_interchange_capnp PRIVATE CapnProto::capnp)
34+
35+
set(FPGA_INTERCHANGE_CAPNP_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/../../interchange)

0 commit comments

Comments
 (0)