blob: 70f49e612c6df7e06e9e7a8ae6f259aceb630c7d [file] [log] [blame] [edit]
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()