title: cmake: setup multiple projects and dependiencies between them
body: <p>I need help with write a good CMakeLists.txt for a C++ projects.</p>
  
  <p>I looked for answer, but I found anything. 
  This is Structure of my projects:</p>
  
  <pre><code>MainProj
  |  ProjLib/
  |  |  include/
  |  |  |  proj_lib.h
  |  |  src/
  |  |  |  proj_lib.cc
  |  |  CMakeLists.txt
  |  ProjExec/
  |  |  include/
  |  |  |  proj_exec.h
  |  |  src/
  |  |  |  proj_exec.cc
  |  |  CMakeLists.txt
  |  CMakeLists.txt
  </code></pre>
  
  <p>MainProj CMakeLists.txt</p>
  
  <pre><code>cmake_minimum_required(VERSION 2.8)
  project(MainProj CXX)
  
  # enable C and C++ language
  enable_language(C CXX)
  
  # Add sub-directories
  add_subdirectory(ProjLib)
  add_subdirectory(ProjExec)
  </code></pre>
  
  <p>ProjLib CMakeLists.txt</p>
  
  <pre><code>set (PROJLIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
  set (PROJLIB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
  
  set(PROJLIB_SRCS 
      ${CMAKE_CURRENT_SOURCE_DIR}/src/proj_lib.cc
  )
  
  include_directories("${PROJLIB_SOURCE_DIR}")
  include_directories("${PROJLIB_INCLUDE_DIR}")
  
  add_library(ProjLib SHARED ${PROJLIB_SRCS} ${PROJLIB_INCLUDE_DIR})
  
  target_include_directories (ProjLib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
  </code></pre>
  
  <p>ProjExec CMakeLists.txt</p>
  
  <pre><code>set (PROJEXEC_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
  set (PROJEXEC_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
  
  set(PROJEXEC_SRCS 
      ${PROJEXEC_SOURCE_DIR}/proj_exec.cc
  )
  
  include_directories("${PROJEXEC_SOURCE_DIR}")
  include_directories("${PROJEXEC_INCLUDE_DIR}")
  
  add_executable(ProjExec ${PROJEXEC_SRCS})
  
  target_link_libraries (ProjExec LINK_PUBLIC ProjLib)
  </code></pre>
  
  <p>proj_exec.cc</p>
  
  <pre><code>#include "proj_lib.h"
  ...
  </code></pre>
  
  <p>And it doesn't found proj_lib.h in proj_exec.cc file.
  If I need some additional entries in some cmake?</p>
  
  <p>Any help would be appreciated. :)</p>