diff options
author | Feng Xiao <xiaofeng@google.com> | 2016-08-03 11:03:15 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-03 11:03:15 -0700 |
commit | 0dca3cc5d642590d4c2bc75ce15e0c2ca31bcc87 (patch) | |
tree | 1db74a4f563c4bea6378bc10d136167393883044 | |
parent | dedd8aec0d87e3d6df511a881ca15f51b3c8f487 (diff) | |
parent | eefd1fdd488eba88834a41d1008e0a8f1ae2a41c (diff) |
Merge pull request #1865 from podsvirov/topic-cmake-project
CMake: Improvements and Bugfixes
-rw-r--r-- | cmake/CMakeLists.txt | 2 | ||||
-rw-r--r-- | cmake/libprotobuf.cmake | 5 | ||||
-rw-r--r-- | cmake/protobuf-config.cmake.in | 3 | ||||
-rw-r--r-- | cmake/protobuf-module.cmake.in | 1 |
4 files changed, 9 insertions, 2 deletions
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 07b176d9..f947b741 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -86,6 +86,7 @@ if (CMAKE_USE_PTHREADS_INIT) add_definitions(-DHAVE_PTHREAD) endif (CMAKE_USE_PTHREADS_INIT) +set(_protobuf_FIND_ZLIB) if (protobuf_WITH_ZLIB) find_package(ZLIB) if (ZLIB_FOUND) @@ -96,6 +97,7 @@ if (protobuf_WITH_ZLIB) # Using imported target if exists if (TARGET ZLIB::ZLIB) set(ZLIB_LIBRARIES ZLIB::ZLIB) + set(_protobuf_FIND_ZLIB "if(NOT ZLIB_FOUND)\n find_package(ZLIB)\nendif()") endif (TARGET ZLIB::ZLIB) else (ZLIB_FOUND) set(HAVE_ZLIB 0) diff --git a/cmake/libprotobuf.cmake b/cmake/libprotobuf.cmake index 8930c1ca..26e1f356 100644 --- a/cmake/libprotobuf.cmake +++ b/cmake/libprotobuf.cmake @@ -56,7 +56,10 @@ set(libprotobuf_files add_library(libprotobuf ${protobuf_SHARED_OR_STATIC} ${libprotobuf_lite_files} ${libprotobuf_files}) -target_link_libraries(libprotobuf ${CMAKE_THREAD_LIBS_INIT} ${ZLIB_LIBRARIES}) +target_link_libraries(libprotobuf ${CMAKE_THREAD_LIBS_INIT}) +if(protobuf_WITH_ZLIB) + target_link_libraries(libprotobuf ${ZLIB_LIBRARIES}) +endif() target_include_directories(libprotobuf PUBLIC ${protobuf_source_dir}/src) if(MSVC AND protobuf_BUILD_SHARED_LIBS) target_compile_definitions(libprotobuf diff --git a/cmake/protobuf-config.cmake.in b/cmake/protobuf-config.cmake.in index 37315510..a044fe5c 100644 --- a/cmake/protobuf-config.cmake.in +++ b/cmake/protobuf-config.cmake.in @@ -1,6 +1,9 @@ # User options include("${CMAKE_CURRENT_LIST_DIR}/protobuf-options.cmake") +# Depend packages +@_protobuf_FIND_ZLIB@ + # Imported targets include("${CMAKE_CURRENT_LIST_DIR}/protobuf-targets.cmake") diff --git a/cmake/protobuf-module.cmake.in b/cmake/protobuf-module.cmake.in index 6e0bcf90..614e4c04 100644 --- a/cmake/protobuf-module.cmake.in +++ b/cmake/protobuf-module.cmake.in @@ -147,7 +147,6 @@ function(_protobuf_find_libraries name filename) LOCATION_RELEASE) get_target_property(${name}_LIBRARY_DEBUG protobuf::lib${filename} LOCATION_DEBUG) - endif() select_library_configurations(${name}) set(${name}_LIBRARY ${${name}_LIBRARY} PARENT_SCOPE) |