| function(DEFINE_XC_TOOLCHAIN_TARGET) | |
| set(options) | |
| set(oneValueArgs ARCH CONV_SCRIPT SYNTH_SCRIPT UTILS_SCRIPT ROUTE_CHAN_WIDTH) | |
| set(multiValueArgs VPR_ARCH_ARGS) | |
| cmake_parse_arguments( | |
| DEFINE_XC_TOOLCHAIN_TARGET | |
| "${options}" | |
| "${oneValueArgs}" | |
| "${multiValueArgs}" | |
| "${ARGN}" | |
| ) | |
| set(ARCH ${DEFINE_XC_TOOLCHAIN_TARGET_ARCH}) | |
| # Check if the architecture is to be installed | |
| check_arch_install(${ARCH} DO_INSTALL) | |
| if(NOT DO_INSTALL) | |
| return() | |
| endif() | |
| get_target_property_required(VPR env VPR) | |
| get_target_property_required(GENFASM env GENFASM) | |
| get_target_property_required(FAMILY ${ARCH} FAMILY) | |
| get_target_property_required(DOC_PRJ ${ARCH} DOC_PRJ) | |
| get_target_property_required(DOC_PRJ_DB ${ARCH} DOC_PRJ_DB) | |
| # install prjxray techmap | |
| install(DIRECTORY ${f4pga-arch-defs_SOURCE_DIR}/xilinx/${FAMILY}/techmap | |
| DESTINATION share/f4pga/techmaps/${FAMILY}_vpr) | |
| endfunction() | |
| function(DEFINE_XC_PINMAP_CSV_INSTALL_TARGET) | |
| set(options) | |
| set(oneValueArgs PART DEVICE_TYPE BOARD DEVICE PACKAGE) | |
| set(multiValueArgs) | |
| cmake_parse_arguments( | |
| DEFINE_XC_PINMAP_CSV_INSTALL_TARGET | |
| "${options}" | |
| "${oneValueArgs}" | |
| "${multiValueArgs}" | |
| "${ARGN}" | |
| ) | |
| set(DEVICE ${DEFINE_XC_PINMAP_CSV_INSTALL_TARGET_DEVICE}) | |
| # Check if the device is to be installed | |
| check_device_install(${DEVICE} DO_INSTALL) | |
| if(NOT DO_INSTALL) | |
| return() | |
| endif() | |
| set(PART ${DEFINE_XC_PINMAP_CSV_INSTALL_TARGET_PART}) | |
| set(BOARD ${DEFINE_XC_PINMAP_CSV_INSTALL_TARGET_BOARD}) | |
| set(DEVICE_TYPE ${DEFINE_XC_PINMAP_CSV_INSTALL_TARGET_DEVICE_TYPE}) | |
| set(PACKAGE ${DEFINE_XC_PINMAP_CSV_INSTALL_TARGET_PACKAGE}) | |
| get_target_property(USE_ROI ${DEVICE_TYPE} USE_ROI) | |
| if(USE_ROI OR USE_ROI STREQUAL "USE_ROI-NOTFOUND") | |
| message(STATUS "Skipping pinmap installation for ${DEVICE}-${PACKAGE} part: ${PART}") | |
| return() | |
| endif() | |
| get_target_property(LIMIT_GRAPH_TO_DEVICE ${DEVICE_TYPE} LIMIT_GRAPH_TO_DEVICE) | |
| if(LIMIT_GRAPH_TO_DEVICE OR LIMIT_GRAPH_TO_DEVICE STREQUAL "LIMIT_GRAPH_TO_DEVICE-NOTFOUND") | |
| message(STATUS "Graph limited to a sub-area of the device. Skipping files installation for ${DEVICE}-${PACKAGE} type: ${DEVICE_TYPE}") | |
| return() | |
| endif() | |
| get_target_property_required(PINMAP ${BOARD} PINMAP) | |
| get_file_location(PINMAP_FILE ${PINMAP}) | |
| get_filename_component(PINMAP_FILE_NAME ${PINMAP_FILE} NAME) | |
| append_file_dependency(DEPS ${PINMAP}) | |
| add_custom_target( | |
| "PINMAP_INSTALL_${BOARD}_${DEVICE}_${PACKAGE}_${PINMAP_FILE_NAME}" | |
| ALL | |
| DEPENDS ${DEPS} | |
| ) | |
| install(FILES ${PINMAP_FILE} | |
| DESTINATION "share/f4pga/arch/${DEVICE}_${PACKAGE}/${PART}" | |
| RENAME "pinmap.csv") | |
| endfunction() |