Skip to content

Commit

Permalink
Merge pull request f4pga#1521 from HackerFoo/dont-use-conda
Browse files Browse the repository at this point in the history
Fix USE_CONDA=FALSE
  • Loading branch information
Dustin DeWeese committed Jun 11, 2020
2 parents 32defbb + 79fdbcf commit fb5be9e
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 16 deletions.
7 changes: 5 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -162,14 +162,17 @@ add_thirdparty_package(
)

# FIXME: This is a workaround until fix for dependencies of arch.xml patching script(s) is in place
get_target_property(SDF_TIMING_TARGET env SDF_TIMING_TARGET)
add_dependencies(all_conda ${SDF_TIMING_TARGET})
if(${USE_CONDA})
get_target_property(SDF_TIMING_TARGET env SDF_TIMING_TARGET)
add_dependencies(all_conda ${SDF_TIMING_TARGET})
endif()

add_thirdparty_package(
NAME vtr_xml_utils
BUILD_INSTALL_COMMAND "cd ${symbiflow-arch-defs_SOURCE_DIR}/third_party/vtr-xml-utils && ${PYTHON3} setup.py develop"
PROVIDES vtr_xml_utils
DEPENDS ${PYTHON3} ${PYTHON3_TARGET}
NO_EXE
)

add_thirdparty_package(
Expand Down
36 changes: 25 additions & 11 deletions common/cmake/env.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -133,9 +133,10 @@ function(SETUP_ENV)
if(NOT ${binary_upper} AND (NOT ${binary} STREQUAL "pip"))
message(FATAL_ERROR "Could not find program ${binary}.")
endif()
add_custom_target(${binary})
set_target_properties(env PROPERTIES
${binary_upper} ${${binary_upper}}
${binary_upper}_TARGET ""
${binary_upper}_TARGET ${binary}
)
endforeach()
endif()
Expand Down Expand Up @@ -240,9 +241,10 @@ function(ADD_CONDA_PACKAGE)
if(NOT ${binary_upper})
message(FATAL_ERROR "Could not find program ${OUTPUT}.")
endif()
add_custom_target(${OUTPUT})
set_target_properties(env PROPERTIES
${binary_upper} ${${binary_upper}}
${binary_upper}_TARGET "")
${binary_upper}_TARGET ${OUTPUT})
endforeach()
endif()
endfunction()
Expand Down Expand Up @@ -327,16 +329,22 @@ function(ADD_CONDA_PIP)
)
add_dependencies(clean_pip _clean_pip_${NAME})
else()
if(DEFINED ENV{${binary_upper}})
set(${binary_upper} $ENV{${binary_upper}})
if(ADD_CONDA_PIP_NO_EXE)
add_custom_target(${NAME})
string(TOUPPER ${NAME} name_upper)
set_target_properties(env PROPERTIES ${name_upper}_TARGET ${NAME})
else()
find_program(${binary_upper} ${NAME})
endif()
if(NOT ${binary_upper})
message(FATAL_ERROR "Could not find program ${NAME}.")
if(DEFINED ENV{${binary_upper}})
set(${binary_upper} $ENV{${binary_upper}})
else()
find_program(${binary_upper} ${NAME})
endif()
if(NOT ${binary_upper})
message(FATAL_ERROR "Could not find program ${NAME}.")
endif()
set_target_properties(env PROPERTIES ${binary_upper} ${${binary_upper}})
set_target_properties(env PROPERTIES ${binary_upper}_TARGET "")
endif()
set_target_properties(env PROPERTIES ${binary_upper} ${${binary_upper}})
set_target_properties(env PROPERTIES ${binary_upper}_TARGET "")
endif()
endfunction()

Expand Down Expand Up @@ -426,6 +434,9 @@ function(ADD_THIRDPARTY_PACKAGE)
${binary_upper}_TARGET ${NAME})
endforeach()
else()
add_custom_target(${NAME})
string(TOUPPER ${NAME} name_upper)
set_target_properties(env PROPERTIES ${name_upper}_TARGET ${NAME})
if(NOT ${ADD_THIRDPARTY_PACKAGE_NO_EXE})
# if command not provide, just look the provides
foreach(OUTPUT ${ADD_THIRDPARTY_PACKAGE_PROVIDES})
Expand All @@ -438,9 +449,12 @@ function(ADD_THIRDPARTY_PACKAGE)
if(NOT ${binary_upper})
message(FATAL_ERROR "Could not find program ${OUTPUT}.")
endif()
if(NOT TARGET ${OUTPUT})
add_custom_target(${OUTPUT})
endif()
set_target_properties(env PROPERTIES
${binary_upper} ${${binary_upper}}
${binary_upper}_TARGET "")
${binary_upper}_TARGET ${OUTPUT})
endforeach()
endif()
endif()
Expand Down
1 change: 0 additions & 1 deletion ice40/devices/top-routing-virt/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ add_subdirectory(tiles)

add_file_target(FILE arch.xml SCANNER_TYPE xml)

get_target_property_required(CONDA_DIR env CONDA_DIR)
get_target_property_required(PYTHON3 env PYTHON3)
get_target_property_required(PYTHON3_TARGET env PYTHON3_TARGET)
get_target_property_required(ICESTORM_TARGET env ICESTORM_TARGET)
Expand Down
8 changes: 6 additions & 2 deletions ice40/icestorm.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,12 @@ function(icestorm_setup)
set(ICESTORM_SRC ${symbiflow-arch-defs_SOURCE_DIR}/third_party/icestorm CACHE PATH "Path to icestorm repository")
set(PYUTILS_PATH ${symbiflow-arch-defs_SOURCE_DIR}/utils:${symbiflow-arch-defs_SOURCE_DIR}/ice40/utils/fasm_icebox)

get_target_property_required(PYTHON_PREFIX env CONDA_DIR)
set(ICESTORM_PREFIX "PREFIX=${PYTHON_PREFIX}")
if(${USE_CONDA})
get_target_property_required(PYTHON_PREFIX env CONDA_DIR)
set(ICESTORM_PREFIX "PREFIX=${PYTHON_PREFIX}")
else()
set(ICESTORM_PREFIX "" CACHE PATH "PYTHON_PREFIX for icestorm tools")
endif()

add_conda_package(
NAME pkg-config
Expand Down
15 changes: 15 additions & 0 deletions xc/xc7/tests/install_test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
if(${USE_CONDA})
set(INSTALLATION_DIR_BIN "${CMAKE_INSTALL_PREFIX}/bin")
get_target_property_required(CONDA_DIR env CONDA_DIR)

Expand All @@ -13,3 +14,17 @@ add_test(NAME binary_toolchain_test
XRAY_DATABASE_DIR=${PRJXRAY_DB_DIR}
make
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
else()
add_test(NAME binary_toolchain_test
COMMAND ${CMAKE_COMMAND} -E env
PATH=${INSTALLATION_DIR_BIN}:$ENV{PATH}
${CMAKE_COMMAND} -E env
LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH}
${CMAKE_COMMAND} -E env
PYTHONPATH=${PRJXRAY_DIR}:${PRJXRAY_DIR}/third_party/fasm
XRAY_FASM2FRAMES=${PRJXRAY_DIR}/utils/fasm2frames.py
XRAY_TOOLS_DIR=${symbiflow-arch-defs_SOURCE_DIR}/build/third_party/prjxray/tools
XRAY_DATABASE_DIR=${PRJXRAY_DB_DIR}
make
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endif()

0 comments on commit fb5be9e

Please sign in to comment.