From ae2026e13410a075d31183763f0736b6ed14a5f4 Mon Sep 17 00:00:00 2001 From: Yiqun Liu Date: Thu, 1 Mar 2018 19:32:41 +0800 Subject: [PATCH] Fix building error of missing end-group for Android. (#8680) --- CMakeLists.txt | 10 +++++----- cmake/external/zlib.cmake | 8 +++++--- cmake/generic.cmake | 11 ++++++++--- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a2f440c2d..178050dc7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -166,11 +166,11 @@ include_directories("${CMAKE_CURRENT_BINARY_DIR}/proto") include_directories("${CMAKE_CURRENT_BINARY_DIR}/go/pserver/client/c") set(EXTERNAL_LIBS - ${GFLAGS_LIBRARIES} - ${GLOG_LIBRARIES} - ${CBLAS_LIBRARIES} - ${PROTOBUF_LIBRARY} - ${ZLIB_LIBRARIES} + gflags + glog + cblas + protobuf + zlib ${PYTHON_LIBRARIES} ) diff --git a/cmake/external/zlib.cmake b/cmake/external/zlib.cmake index e56888063..20b8506e6 100644 --- a/cmake/external/zlib.cmake +++ b/cmake/external/zlib.cmake @@ -28,7 +28,7 @@ ENDIF(WIN32) INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) ExternalProject_Add( - zlib + extern_zlib ${EXTERNAL_PROJECT_LOG_ARGS} GIT_REPOSITORY "https://github.com/madler/zlib.git" GIT_TAG "v1.2.8" @@ -49,9 +49,11 @@ ExternalProject_Add( -DCMAKE_BUILD_TYPE:STRING=${THIRD_PARTY_BUILD_TYPE} ) +ADD_LIBRARY(zlib STATIC IMPORTED GLOBAL) +SET_PROPERTY(TARGET zlib PROPERTY IMPORTED_LOCATION ${ZLIB_LIBRARIES}) +ADD_DEPENDENCIES(zlib extern_zlib) + LIST(APPEND external_project_dependencies zlib) -ADD_LIBRARY(zlib_target STATIC IMPORTED GLOBAL) -SET_PROPERTY(TARGET zlib_target PROPERTY IMPORTED_LOCATION ${ZLIB_LIBRARIES}) IF(WITH_C_API) INSTALL(DIRECTORY ${ZLIB_INCLUDE_DIR} DESTINATION third_party/zlib) diff --git a/cmake/generic.cmake b/cmake/generic.cmake index 12e07bd5f..356da582d 100644 --- a/cmake/generic.cmake +++ b/cmake/generic.cmake @@ -104,7 +104,9 @@ function(merge_static_libs TARGET_NAME) foreach(lib ${libs}) list(APPEND libs_deps ${${lib}_LIB_DEPENDS}) endforeach() - list(REMOVE_DUPLICATES libs_deps) + if(libs_deps) + list(REMOVE_DUPLICATES libs_deps) + endif() # To produce a library we need at least one source file. # It is created by add_custom_command below and will helps @@ -191,10 +193,13 @@ function(cc_library TARGET_NAME) list(REMOVE_ITEM cc_library_DEPS warpctc) add_dependencies(${TARGET_NAME} warpctc) endif() - # Support linking flags: --whole-archive (Linux) / -force_load (MacOS) - target_circle_link_libraries(${TARGET_NAME} ${cc_library_DEPS}) if("${cc_library_DEPS}" MATCHES "ARCHIVE_START") + # Support linking flags: --whole-archive (Linux) / -force_load (MacOS). + # WARNING: Please don't use ARCHIVE_START&ARCHIVE_END if TARGET_NAME will be linked by other libraries. + target_circle_link_libraries(${TARGET_NAME} ${cc_library_DEPS}) list(REMOVE_ITEM cc_library_DEPS ARCHIVE_START ARCHIVE_END) + else() + target_link_libraries(${TARGET_NAME} ${cc_library_DEPS}) endif() add_dependencies(${TARGET_NAME} ${cc_library_DEPS}) endif() -- GitLab