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 <sean@xobs.io>
This commit is contained in:
Sean Cross 2019-09-10 23:12:31 +08:00
parent f98960b936
commit 0d0056a043

View File

@ -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)