[CMake] find_package(), sources only

Michael Hertling mhertling at online.de
Mon Nov 7 19:34:08 EST 2011


On 11/07/2011 03:26 PM, Hendrik Sattler wrote:
> Am 07.11.2011 14:49, schrieb Daniel Dekkers:
>> Hi Hendrik,
>>
>> Could you write a few more lines. I want to understand,... but I 
>> don't. ;-)
>>
>> We only have one copy of Bullet "as a bundle" present on the system. 
>> Let's
>> say you just downloaded Bullet.
>> With BULLET_ROOT, we set the root path to that copy and do a
>> find_package(BULLET), it returns with:
> [...]
> 
>> MESSAGE( STATUS "Looking for Bullet..." )
>> SET(BULLET_ROOT ${DEVELOPMENT_ROOT}/bullet CACHE PATH "Root directory 
>> for
>> Bullet")
>> FIND_PACKAGE( BULLET REQUIRED )
> 
> So you link to Bullet libraries but build the libraries yourself? Then 
> use external_project.
> 
> You list the Bullet source files as sources in add_executable or 
> add_library? Then don't use find_package but instead just check for the 
> include file yourself using find_path.
> 
> The find_package() stuff is mostly targetted for externally built 
> packages.

Absolutely. Note there're packages with header trees looking quite
differently in the source distribution and after the installation.
There're even packages without any header tree at all, since the
latter is assembled immediately before the compilation, i.e.
after the configuration.

Regards,

Michael


More information about the CMake mailing list