From f98960b9361862d956df59f8129b01005ea41b5c Mon Sep 17 00:00:00 2001 From: Sean Cross Date: Mon, 9 Sep 2019 22:10:51 +0800 Subject: [PATCH 1/2] ecp5: use $PYTHON_EXECUTABLE for python path Sometimes the python executable might have a different name. Cmake sets the $PYTHON_EXECUTABLE variable to point to the binary path, so use this variable. Signed-off-by: Sean Cross --- ecp5/family.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ecp5/family.cmake b/ecp5/family.cmake index 596f0924..ec857569 100644 --- a/ecp5/family.cmake +++ b/ecp5/family.cmake @@ -41,7 +41,7 @@ if (NOT EXTERNAL_CHIPDB) set(DEV_CC_BBA_DB ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/chipdbs/chipdb-${dev}.bba) set(DEV_CONSTIDS_INC ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/constids.inc) add_custom_command(OUTPUT ${DEV_CC_BBA_DB} - COMMAND ${ENV_CMD} python3 ${DB_PY} -p ${DEV_CONSTIDS_INC} ${dev} > ${DEV_CC_BBA_DB} + COMMAND ${ENV_CMD} ${PYTHON_EXECUTABLE} ${DB_PY} -p ${DEV_CONSTIDS_INC} ${dev} > ${DEV_CC_BBA_DB} DEPENDS ${DB_PY} ${PREV_DEV_CC_BBA_DB} ) add_custom_command(OUTPUT ${DEV_CC_DB} @@ -65,7 +65,7 @@ if (NOT EXTERNAL_CHIPDB) set(DEV_CC_BBA_DB ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/chipdbs/chipdb-${dev}.bba) set(DEV_CONSTIDS_INC ${CMAKE_CURRENT_SOURCE_DIR}/ecp5/constids.inc) add_custom_command(OUTPUT ${DEV_CC_BBA_DB} - COMMAND ${ENV_CMD} python3 ${DB_PY} -p ${DEV_CONSTIDS_INC} ${dev} > ${DEV_CC_BBA_DB}.new + COMMAND ${ENV_CMD} ${PYTHON_EXECUTABLE} ${DB_PY} -p ${DEV_CONSTIDS_INC} ${dev} > ${DEV_CC_BBA_DB}.new COMMAND mv ${DEV_CC_BBA_DB}.new ${DEV_CC_BBA_DB} DEPENDS ${DB_PY} ${PREV_DEV_CC_BBA_DB} ) From 0d0056a043510d70a39faa84ec0a0db8684c480b Mon Sep 17 00:00:00 2001 From: Sean Cross Date: Tue, 10 Sep 2019 23:12:31 +0800 Subject: [PATCH 2/2] cmake: fix static build on Linux When building Python, many extra libraries must be included, such as expat and zlib. Signed-off-by: Sean Cross --- CMakeLists.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 77745f95..67b0c18b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,13 @@ if (STATIC_BUILD) add_definitions(-DBOOST_PYTHON_STATIC_LIB) endif() else() + set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".so") set(link_param "-static") + if (BUILD_PYTHON) + find_package(ZLIB) + find_package(EXPAT) + find_package(Threads) + endif() endif() endif() @@ -267,6 +273,14 @@ foreach (family ${ARCH}) endif() if (BUILD_PYTHON) target_link_libraries(${target} LINK_PUBLIC ${PYTHON_LIBRARIES}) + if (STATIC_BUILD) + target_link_libraries(${target} LINK_PUBLIC ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} ${ZLIB_LIBRARIES} ${EXPAT_LIBRARIES} -lutil) + if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND MSVC) + else() + target_link_libraries(${target} LINK_PUBLIC -lutil) + endif() + endif() endif() endforeach (target) endforeach (family)