mirror of
https://github.com/chipsalliance/f4pga.git
synced 2025-01-03 03:43:37 -05:00
cd2ad7144c
Signed-off-by: Krzysztof Boronski <kboronski@antmicro.com>
146 lines
3.9 KiB
CMake
146 lines
3.9 KiB
CMake
# Installs sfbuild - experimental Symbiflow Build System
|
|
|
|
function(INSTALL_DIR)
|
|
# Create directory during installation phase
|
|
set(options)
|
|
set(one_value_args INSTALL_DIRECTORY)
|
|
set(multi_value_args)
|
|
cmake_parse_arguments(
|
|
INSTALL_DIR
|
|
"${options}"
|
|
"${one_value_args}"
|
|
"${multi_value_args}"
|
|
${ARGN}
|
|
)
|
|
|
|
set(make_dir_code "file(MAKE_DIRECTORY ${INSTALL_DIR_INSTALL_DIRECTORY})")
|
|
install(CODE ${make_dir_code})
|
|
|
|
endfunction()
|
|
|
|
function(INSTALL_DIR_CONTENT)
|
|
# Install files from ROOT_DIRECTORY/FILES_DIRECTORY directory into a FILES_DIRECTORY subdirectory of INSTALL_DIRECTORY
|
|
set(options)
|
|
set(one_value_args
|
|
ROOT_DIRECTORY
|
|
FILES_DIRECTORY
|
|
DESTINATION)
|
|
set(multi_value_args
|
|
FILES
|
|
INSTALL_OPTS)
|
|
cmake_parse_arguments(
|
|
INSTALL_DIR_CONTENT
|
|
"${options}"
|
|
"${one_value_args}"
|
|
"${multi_value_args}"
|
|
${ARGN}
|
|
)
|
|
|
|
if(NOT DEFINED INSTALL_DIR_CONTENT_ROOT_DIRECTORY)
|
|
set(INSTALL_DIR_CONTENT_ROOT_DIRECTORY .)
|
|
endif()
|
|
if(NOT DEFINED INSTALL_DIR_CONTENT_FILES_DIRECTORY)
|
|
set(INSTALL_DIR_CONTENT_FILES_DIRECTORY .)
|
|
endif()
|
|
|
|
set(file_paths)
|
|
foreach(file ${INSTALL_DIR_CONTENT_FILES})
|
|
list(APPEND file_paths ${INSTALL_DIR_CONTENT_ROOT_DIRECTORY}/${INSTALL_DIR_CONTENT_FILES_DIRECTORY}/${file})
|
|
endforeach()
|
|
|
|
install(FILES ${file_paths}
|
|
DESTINATION ${INSTALL_DIR_CONTENT_DESTINATION}/${INSTALL_DIR_CONTENT_FILES_DIRECTORY}
|
|
${INSTALL_DIR_CONTENT_INSTALL_OPTS})
|
|
|
|
endfunction()
|
|
|
|
|
|
find_package(Python3 COMPONENTS Interpreter REQUIRED)
|
|
|
|
get_target_property_required(VPR env VPR)
|
|
get_target_property_required(GENFASM env GENFASM)
|
|
|
|
set(SFBUILD_SUPPORTED_PLATFORMS
|
|
ql-eos-s3
|
|
xc7a50t
|
|
xc7a100t
|
|
xc7a200t
|
|
ql-k4n8_fast
|
|
ql-k4n8_slow)
|
|
|
|
# Create required directories
|
|
foreach(DIR_PATH ${SFBUILD_DIRECTORIES})
|
|
install_dir(INSTALL_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin/${DIR_PATH})
|
|
endforeach()
|
|
|
|
# Install sfbuild
|
|
install_dir_content(
|
|
FILES
|
|
__init__.py
|
|
sf_argparse.py
|
|
sf_cache.py
|
|
sf_flow_config.py
|
|
sf_module_inspector.py
|
|
sf_stage.py
|
|
sf_ugly.py
|
|
sfbuild.py
|
|
sfbuild
|
|
DESTINATION bin/sfbuild
|
|
INSTALL_OPTS
|
|
PERMISSIONS WORLD_EXECUTE WORLD_READ OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE)
|
|
install_dir_content(
|
|
FILES __init__.py
|
|
FILES_DIRECTORY sf_common
|
|
DESTINATION bin/sfbuild
|
|
INSTALL_OPTS
|
|
PERMISSIONS WORLD_EXECUTE WORLD_READ OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE)
|
|
install_dir_content(
|
|
FILES __init__.py
|
|
FILES_DIRECTORY sf_module
|
|
DESTINATION bin/sfbuild
|
|
INSTALL_OPTS
|
|
PERMISSIONS WORLD_EXECUTE WORLD_READ OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE)
|
|
install_dir_content(
|
|
FILES __init__.py
|
|
FILES_DIRECTORY sf_module_runner
|
|
DESTINATION bin/sfbuild
|
|
INSTALL_OPTS
|
|
PERMISSIONS WORLD_EXECUTE WORLD_READ OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE)
|
|
# Install common modules
|
|
install_dir_content(
|
|
FILES
|
|
fasm.py
|
|
generic_script_wrapper.py
|
|
io_rename.py
|
|
mkdirs.py
|
|
pack.py
|
|
place_constraints.py
|
|
place.py
|
|
route.py
|
|
synth.py
|
|
FILES_DIRECTORY sf_common_modules
|
|
DESTINATION bin/sfbuild
|
|
INSTALL_OPTS
|
|
PERMISSIONS WORLD_EXECUTE WORLD_READ OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE)
|
|
# Install platform flow definitions
|
|
set(sfbuild_supported_platform_defs)
|
|
foreach(SFBUILD_PLATFORM ${SFBUILD_SUPPORTED_PLATFORMS})
|
|
set(sfbuild_platform_def "${SFBUILD_PLATFORM}.json")
|
|
list(APPEND sfbuild_supported_platform_defs ${sfbuild_platform_def})
|
|
endforeach()
|
|
install_dir_content(
|
|
FILES ${sfbuild_supported_platform_defs}
|
|
FILES_DIRECTORY platforms
|
|
DESTINATION bin/sfbuild
|
|
INSTALL_OPTS
|
|
PERMISSIONS WORLD_EXECUTE WORLD_READ OWNER_WRITE OWNER_READ GROUP_READ)
|
|
|
|
# Install part_db
|
|
install_dir_content(
|
|
FILES
|
|
parts.json
|
|
FILES_DIRECTORY part_db
|
|
DESTINATION bin/sfbuild
|
|
INSTALL_OPTS
|
|
PERMISSIONS WORLD_READ OWNER_WRITE OWNER_READ GROUP_READ
|
|
)
|