<div dir="ltr"><a href="http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries#How_package_finding_works">http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries#How_package_finding_works</a><div><br></div><div>seems to indicate if <PACKAGE-NAME>_FOUND is found, the <PACKAGE-NAME>_INCLUDE_DIRS is passed to the include_directories() command, and <PACKAGE-NAME>_LIBRARIES is passed to target_link_libraries()</div>
<div><br></div><div>Why is the reduced-case code below calling g++ without including "-I~/codeTestPackages/lib", causing a "app/app.cpp:1:17: fatal error: lib.h: No such file or directory" ?</div><div>
<br></div><div>I'm on CMake v3.0.0.  Also tried CMake v3.0.20140718-g36a81 (git source.)</div><div><br></div><div>All the source is below, and attached as a .tar.gz.</div><div><br></div><div><br></div><div><b>### CMakeLists.txt ###</b><div>
<br></div><div><div>cmake_minimum_required(VERSION 3.0)</div><div>project(codeTestPackages)</div><div>set(CMAKE_VERBOSE_MAKEFILE on)<br></div><div>set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ~/codeTestPackages/findModules)<br>
</div><div>add_subdirectory(lib)<br></div><div>add_subdirectory(app)</div></div><div><br></div><div><b>### findModules/Findlib.cmake ###</b></div><div><div><br></div><div>IF(NOT lib_FOUND)</div><div>   set(lib_FOUND "yes")</div>
<div>   message("lib_FOUND is ${lib_FOUND}")</div><div>   set(lib_INCLUDE_DIRS ~/codeTestPackages/lib)</div><div>   set(lib_LIBRARIES lib)</div><div>ENDIF(NOT lib_FOUND)</div></div><div><br></div><div><b>### lib/CMakeListst.txt ###</b></div>
<div><br></div><div>include_directories(~/codeTestPackages/lib)</div><div>add_library(lib lib.cpp)</div><div><br></div><div><b>### lib/lib.h ###</b></div><div><br></div><div><div>#ifndef __LIB__</div><div>#define __LIB__</div>
<div>namespace LIB {<br></div><div>unsigned long libFunc(unsigned long inValue);<br></div><div>}<br></div><div>#endif<br></div></div><div><br></div><div><b>### lib/lib.cpp ###</b><br></div><div><br></div><div><div>#include <lib.h></div>
<div>namespace LIB {<br></div><div>unsigned long libFunc(unsigned long inValue) {<br></div><div>   return inValue+1;</div><div>}</div><div>}<br></div></div><div><br></div><div><b>### app/CMakeLists.txt ###</b><br></div><div>
<br></div><div><div>find_package(lib REQUIRED)</div><div>add_executable(app app.cpp)</div></div><div><br></div><div><b>### app/app.cpp ###</b></div><div><br></div><div><div>#include <lib.h></div><div>using namespace LIB;</div>
<div><br></div><div>int main() {</div><div>   unsigned long x = 1;</div><div>   unsigned long y = libFunc(x);</div><div>}</div></div></div></div>