The split technique should be able to help in this scenario as well,
because for the second project, which builds the code downloaded by the
first project, you can specify a different SOURCE_DIR value... (A sub
directory of the first project's source dir, for example.)

It would be nice if EP stuff were more compose-able. If you have any good
ideas for making it so, this and the dev list are the right places
to mention them.


D

On Friday, July 17, 2015, Klaim - Joël Lamotte <mjkl...@gmail.com> wrote:

>
>
> On 17 July 2015 at 20:06, Bradley Lowekamp <blowek...@mail.nih.gov
> <javascript:_e(%7B%7D,'cvml','blowek...@mail.nih.gov');>> wrote:
>
>> Hello,
>>
>> David Cole just said the solution in another post.
>>
>> You can split the project into two, with the first one being just the
>> download step, the second is the configuration and build. This should allow
>> you to configure the paths for your project correctly.
>>
>>
> I am not 100% sure that the split can solve this problem too, but I will
> try it.
>
> Now that I have the split trick in mind, it seems to match my initial
> assumption that ExternalProjects should have a "download only"
> function/macro
> separated from the other steps, so that it is possible to compose complex
> setup in easier ways than hacking ExternalProjects_Add parametters and
> using clunky patches.
>
>
>> I need to do this for my project too. Thanks for the question to get me
>> paying attention here, and finding the answer is another post :)
>>
>> Brad
>>
>> On Jul 14, 2015, at 5:14 PM, Klaim - Joël Lamotte <mjkl...@gmail.com
>> <javascript:_e(%7B%7D,'cvml','mjkl...@gmail.com');>> wrote:
>>
>> I am attempting to use ExternalDependencies_Add with the last Protobuf
>> version (v3.0.0) which is in alpha3 (I'm using the master branch
>> actually)[1].
>> If you don't already know: contrary to previous Protobuf version, v3.x
>> provides
>> cmake scripts (and also makes CMake's FindProtobuf module unusuable if
>> you build Protobuf using CMake BTW).
>>
>> I am having trouble figuring out how to ExternalProject_add work in this
>> case:
>> the CMakeFiles.txt is not in the root directory of Protobuf sources, it
>> is in ./cmake/ [2]
>> So at build time, after download, I obviously get:
>>
>> >CUSTOMBUILD : CMake error : The source directory
>> "blahblah/install_protobuf" does not appear to contain CMakeLists.txt.
>>
>> I tried several approaches using this as a base:
>>
>> ExternalProject_Add( install_protobuf
>>     PREFIX ${NETRUSH_DEPENDENCIES_DIR}/protobuf
>>     GIT_REPOSITORY https://github.com/google/protobuf.git
>>     GIT_TAG master
>>
>>     CMAKE_CACHE_ARGS
>>         -DBUILD_TESTING:bool=FALSE
>> )
>>
>>
>> I tried setting SOURCE_DIR but failed to make it work mainly because I'm
>> not sure what value to set exactly, and
>>
>>    SOURCE_DIR cmake
>>
>> Does not seem to work.
>>
>> I was wondering if there is some args I could pass to CMake using
>> CMAKE_ARGS
>> but from the cmake[3] page in the doc I don't see anything that match
>> exactly, or
>> I might be misunderstanding something.
>>
>> I found this recommandation from Miklos Espak from 8th February 2015:
>> "Specify a patch command that creates a toplevel cmake list with one
>> 'add_subdirectory(A)'  line."
>>
>> It seems to work, but it also means that the repository is modified,
>> which is something
>> I want to avoid. Also it's really a hack for passing the right working
>> directory to cmake.
>>
>> Is there a simpler way to do it that I missed?
>>
>> Thanks for your time.
>>
>> Joël Lamotte
>>
>>
>> [1] https://github.com/google/protobuf
>> [2] https://github.com/google/protobuf/tree/master/cmake
>> [3]
>> http://www.cmake.org/cmake/help/v3.3/manual/cmake.1.html#manual:cmake(1)
>> --
>>
>> Powered by www.kitware.com
>>
>> Please keep messages on-topic and check the CMake FAQ at:
>> http://www.cmake.org/Wiki/CMake_FAQ
>>
>> Kitware offers various services to support the CMake community. For more
>> information on each offering, please visit:
>>
>> CMake Support: http://cmake.org/cmake/help/support.html
>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/cmake
>>
>>
>>
>
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to