[CMake] externalproject_add and generating sources

David Jobet david.jobet at free.fr
Sun Jan 29 15:20:28 EST 2017


Hello,

Yes, main reason is I had to hack FindProtobuf.cmake to make our existing project compile.
Also since I need to make it "installable", I had to add some stuff to have the binaries and header installed automatically when referenced.
The latter reason led me to experiment with ExternalProject.

David

Le 26 janvier 2017 16:05:47 GMT+00:00, Michael Ellery <mellery451 at gmail.com> a écrit :
>
>> On Jan 26, 2017, at 1:23 AM, David Jobet <david.jobet at free.fr> wrote:
>> 
>> Hello,
>> 
>> suppose I want to use protobuf and integrate it in my project with
>externalproject_add. (actually, I just have precompiled binaries and
>libs + header files, I don't have the full sources)
>> Once the project has been 'built' (actually, installed by a custom
>rpm-like tool to a shared path), I can use the protoc compiler to
>generate protobuf c++ files (.pb.h and .pb.cpp files) from a .proto
>description file.
>> I can add_dependencies so that the external project is built before
>projects depending on libprotobuf.a.
>> 
>> However, I don't know how to do the same thing with .pb.h and .pb.cpp
>files which use a .proto file and the protoc compiler.
>> 
>> make is fine with it, but ninja complains with an error like this :
>> ninja: error:
>'/path_to_external_projects/protobuf/2.6.0.4/bin/protoc', needed by
>'some_project/SomeFile.pb.h', missing and no known rule to make it
>> 
>> how can I tell ninja that protoc is going to be provided by
>externalproject ?
>> If I use byproducts, ninja is happy, but "ninja clean" deletes
>/path_to_external_projects/protobuf/2.6.0.4/bin/protoc.
>> I don't want that to happen since
>/path_to_external_projects/protobuf/2.6.0.4/bin/protoc is shared with
>other users.
>> 
>
>I’ve never used protobufs as an external project (I’ve always just done
>a one-time setup/install)…but is there a reason you can’t just use the
>standard finder to locate it? 
>https://github.com/Kitware/CMake/blob/master/Modules/FindProtobuf.cmake
>
>-Mike

-- 
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20170129/85335ca2/attachment.html>


More information about the CMake mailing list