title: Can't use protobuf in cmakelists.txt
body: <p>I am trying to run the example given in protobuf repo <a href="https://github.com/google/protobuf/tree/master/examples" rel="noreferrer">here</a>, the c++ version. I have successfully installed the library and am able to run the <code>Makefile</code>. But on running the <code>CMakeLists.txt</code>, I get this error:</p>
  
  <pre><code>CMake Error at CMakeLists.txt:9 (find_package):
    Could not find a package configuration file provided by "protobuf" with any
    of the following names:
  
      protobufConfig.cmake
      protobuf-config.cmake
  
    Add the installation prefix of "protobuf" to CMAKE_PREFIX_PATH or set
    "protobuf_DIR" to a directory containing one of the above files.  If
    "protobuf" provides a separate development package or SDK, be sure it has
    been installed.
  
  
  -- Configuring incomplete, errors occurred!
  See also "/home/cortana/Projects/CppProjects/proto/build/CMakeFiles/CMakeOutput.log".
  See also "/home/cortana/Projects/CppProjects/proto/build/CMakeFiles/CMakeError.log".
  </code></pre>
  
  <p>I have updated my <code>LD_LIBRARY_PATH</code> but this error is still there. How do I remove this error?</p>
  
  <p>EDIT: <br>
  CMakeLists.txt:</p>
  
  <pre><code># Minimum CMake required
  cmake_minimum_required(VERSION 2.8.12)
  
  # Project
  project(protobuf-examples)
  
  include(FindProtobuf)
  # Find required protobuf package
  find_package(protobuf CONFIG REQUIRED)
  
  if(protobuf_VERBOSE)
    message(STATUS "Using Protocol Buffers ${Protobuf_VERSION}")
  endif()
  
  set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
  
  set(CMAKE_PREFIX_PATH
      ${CMAKE_PREFIX_PATH}
      ${THIRDPARTY_DIR}/protobuf-3.1.0
  )
  
  include_directories(${ProtobufIncludePath})
  
  # http://www.cmake.org/Wiki/CMake_FAQ#How_can_I_build_my_MSVC_application_with_a_static_runtime.3F
  if(MSVC AND protobuf_MSVC_STATIC_RUNTIME)
    foreach(flag_var
        CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
        CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
      if(${flag_var} MATCHES "/MD")
        string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
      endif(${flag_var} MATCHES "/MD")
    endforeach()
  endif()
  
  foreach(example add_person list_people)
    set(${example}_SRCS ${example}.cc)
    set(${example}_PROTOS addressbook.proto)
  
    #Code Generation
    if(protobuf_MODULE_COMPATIBLE) #Legacy Support
      protobuf_generate_cpp(${example}_PROTO_SRCS ${example}_PROTO_HDRS ${${example}_PROTOS})
      list(APPEND ${example}_SRCS ${${example}_PROTO_SRCS} ${${example}_PROTO_HDRS})
    else()
  
      foreach(proto_file ${${example}_PROTOS})
        get_filename_component(proto_file_abs ${proto_file} ABSOLUTE)
        get_filename_component(basename ${proto_file} NAME_WE)
        set(generated_files ${basename}.pb.cc ${basename}.pb.h)
        list(APPEND ${example}_SRCS ${generated_files})
  
        add_custom_command(
          OUTPUT ${generated_files}
          COMMAND protobuf::protoc
          ARGS --cpp_out ${CMAKE_CURRENT_BINARY_DIR} -I ${CMAKE_CURRENT_SOURCE_DIR} ${proto_file_abs}
          COMMENT "Generating ${generated_files} from ${proto_file}"
          VERBATIM
        )
      endforeach()
    endif()
  
    #Executable setup
    set(executable_name ${example}_cpp)
    add_executable(${executable_name} ${${example}_SRCS} ${${example}_PROTOS})
    if(protobuf_MODULE_COMPATIBLE) #Legacy mode
      target_include_directories(${executable_name} PUBLIC ${PROTOBUF_INCLUDE_DIRS})
      target_link_libraries(${executable_name} ${PROTOBUF_LIBRARIES})
    else()
      target_link_libraries(${executable_name} protobuf::libprotobuf)
    endif()
  
  endforeach()
  </code></pre>
  
  <p>EDIT 2: <br>
  After trying for 2 hours, I couldn't fix the <code>CMakeLists.txt</code> provided by google examples. I wrote this basic one and it works for me:</p>
  
  <pre><code>PROJECT(protopuff)
  CMAKE_MINIMUM_REQUIRED (VERSION 3.5)
  SET(CMAKE_CXX_FLAGS "-g -Wall -Werror -std=c++11")
  
  INCLUDE(FindProtobuf)
  FIND_PACKAGE(Protobuf REQUIRED)
  INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})
  PROTOBUF_GENERATE_CPP(PROTO_SRC PROTO_HEADER addressbook.proto)
  ADD_LIBRARY(proto ${PROTO_HEADER} ${PROTO_SRC})
  
  
  INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
  ADD_EXECUTABLE(${CMAKE_PROJECT_NAME}_add add_person.cc)
  ADD_EXECUTABLE(${CMAKE_PROJECT_NAME}_list list_people.cc)
  TARGET_LINK_LIBRARIES(${CMAKE_PROJECT_NAME}_add proto ${PROTOBUF_LIBRARY})
  TARGET_LINK_LIBRARIES(${CMAKE_PROJECT_NAME}_list proto ${PROTOBUF_LIBRARY})
  </code></pre>