include(GNUInstallDirs) if(NOT MSCV) # These flags generate noisy but non-bug warnings when using lib kj, # supress them. set(WARN_FLAGS_TO_DISABLE -Wno-undef -Wno-non-virtual-dtor ) foreach(flag ${WARN_FLAGS_TO_DISABLE}) CHECK_CXX_COMPILER_FLAG(${flag} CXX_COMPILER_SUPPORTS_${flag}) if(CXX_COMPILER_SUPPORTS_${flag}) #Flag supported, so enable it add_compile_options(${flag}) endif() endforeach() endif() # Create generated headers from capnp schema files set(CAPNP_DEFS gen/unique_blocks_uxsdcxx.capnp ) capnp_generate_cpp(CAPNP_SRCS CAPNP_HDRS ${CAPNP_DEFS} ) add_library(libopenfpgacapnproto STATIC ${CAPNP_SRCS} ${IC_SRCS} ) add_dependencies(libopenfpgacapnproto generate_unique_block_capnp ) target_include_directories(libopenfpgacapnproto PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/gen ) target_link_libraries(libopenfpgacapnproto libopenfpgautil libvtrcapnproto ) add_custom_target( generate_unique_block_capnp COMMAND ${CMAKE_COMMAND} -E remove_directory unique_blocks_capnproto_generate COMMAND ${CMAKE_COMMAND} -E make_directory unique_blocks_capnproto_generate COMMAND ${CMAKE_COMMAND} -E chdir unique_blocks_capnproto_generate git clone https://github.com/duck2/uxsdcxx COMMAND python3 -mpip install --user -r unique_blocks_capnproto_generate/uxsdcxx/requirements.txt COMMAND ${CMAKE_COMMAND} -E chdir unique_blocks_capnproto_generate python3 uxsdcxx/uxsdcxx.py ${CMAKE_CURRENT_SOURCE_DIR}/gen/unique_blocks.xsd COMMAND ${CMAKE_COMMAND} -E chdir unique_blocks_capnproto_generate python3 uxsdcxx/uxsdcap.py ${CMAKE_CURRENT_SOURCE_DIR}/gen/unique_blocks.xsd unique_blocks_capnproto_generate/unique_blocks_uxsdcxx.h unique_blocks_capnproto_generate/unique_blocks_uxsdcxx_capnp.h unique_blocks_capnproto_generate/unique_blocks_uxsdcxx_interface.h ${CMAKE_CURRENT_SOURCE_DIR}/gen COMMAND ${CMAKE_COMMAND} -E copy unique_blocks_capnproto_generate/unique_blocks_uxsdcxx.capnp ${CMAKE_CURRENT_SOURCE_DIR}/gen DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/gen/unique_blocks.xsd WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} )