aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/family.cmake
diff options
context:
space:
mode:
authorGabriel L. Somlo <gsomlo@gmail.com>2019-02-03 08:43:05 -0500
committerGabriel L. Somlo <gsomlo@gmail.com>2019-02-10 06:42:38 -0500
commit1b28bdd12193d8605ec0e72e3685ecb58fa2f90e (patch)
tree1f167dca954858e9cbd3ebcc107086c598233b51 /ecp5/family.cmake
parent4a2560b0d385736783ff1f75ea9602bfee6078bf (diff)
downloadnextpnr-1b28bdd12193d8605ec0e72e3685ecb58fa2f90e.tar.gz
nextpnr-1b28bdd12193d8605ec0e72e3685ecb58fa2f90e.tar.bz2
nextpnr-1b28bdd12193d8605ec0e72e3685ecb58fa2f90e.zip
ecp5: cmake: Search for pytrellis.so in multiple locations
If a distro-specific "trellis-devel" package is used, the pytrellis.so library might be located in a dedicated directory, rather than under TRELLIS_ROOT. Search for pytrellis.so in a list of directories, then subsequently use the first match as part of PYTHONPATH. Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Diffstat (limited to 'ecp5/family.cmake')
-rw-r--r--ecp5/family.cmake15
1 files changed, 11 insertions, 4 deletions
diff --git a/ecp5/family.cmake b/ecp5/family.cmake
index 679325b2..1d9b4532 100644
--- a/ecp5/family.cmake
+++ b/ecp5/family.cmake
@@ -6,12 +6,19 @@ if (NOT DEFINED TRELLIS_ROOT)
set(TRELLIS_ROOT "/usr/local/share/trellis")
endif()
-file(GLOB found_pytrellis ${TRELLIS_ROOT}/libtrellis/pytrellis.*)
+file(GLOB found_pytrellis ${TRELLIS_ROOT}/libtrellis/pytrellis.*
+ /usr/lib/pytrellis.*
+ /usr/lib64/pytrellis.*
+ /usr/lib/trellis/pytrellis.*
+ /usr/lib64/trellis/pytrellis.*)
if ("${found_pytrellis}" STREQUAL "")
- message(FATAL_ERROR "failed to find pytrellis library in ${TRELLIS_ROOT}/libtrellis/")
+ message(FATAL_ERROR "failed to locate pytrellis library!")
endif()
+list(GET found_pytrellis 0 PYTRELLIS_LIB)
+get_filename_component(PYTRELLIS_LIBDIR ${PYTRELLIS_LIB} DIRECTORY)
+
set(DB_PY ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/trellis_import.py)
file(MAKE_DIRECTORY ecp5/chipdbs/)
@@ -20,9 +27,9 @@ target_compile_definitions(ecp5_chipdb PRIVATE NEXTPNR_NAMESPACE=nextpnr_${famil
target_include_directories(ecp5_chipdb PRIVATE ${family}/)
if (CMAKE_HOST_WIN32)
-set(ENV_CMD ${CMAKE_COMMAND} -E env "PYTHONPATH=\"${TRELLIS_ROOT}/libtrellis\;${TRELLIS_ROOT}/util/common\;${TRELLIS_ROOT}/timing/util\"")
+set(ENV_CMD ${CMAKE_COMMAND} -E env "PYTHONPATH=\"${PYTRELLIS_LIBDIR}\;${TRELLIS_ROOT}/util/common\;${TRELLIS_ROOT}/timing/util\"")
else()
-set(ENV_CMD ${CMAKE_COMMAND} -E env "PYTHONPATH=${TRELLIS_ROOT}/libtrellis:${TRELLIS_ROOT}/util/common:${TRELLIS_ROOT}/timing/util")
+set(ENV_CMD ${CMAKE_COMMAND} -E env "PYTHONPATH=${PYTRELLIS_LIBDIR}\:${TRELLIS_ROOT}/util/common:${TRELLIS_ROOT}/timing/util")
endif()
if (MSVC)