Never mind... I spoke too soon. add_dependencies isn't working. It is
correctly making the other project build first, but the header file is for
some reason not generated until after it is needed.

On Tue, Mar 19, 2019 at 1:41 PM Timothy Wrona <tjwrona1...@gmail.com> wrote:

> Seems I might be able to answer my own question.
>
> It looks like "add_dependencies(subproject1_exe subproject2_lib)" worked.
>
> I had to do a clean first though because it didn't work the first time
> since some old files were left around.
>
> Hope this helps anyone else with a similar issue!
>
> On Tue, Mar 19, 2019 at 1:13 PM Timothy Wrona <tjwrona1...@gmail.com>
> wrote:
>
>> I am working on a complex CMake project that is part of a large legacy
>> system that uses a top level project and "add_subdirectory" to create
>> subprojects.
>>
>> I have run into an issue because now one of the subprojects is dependant
>> on another subproject, but I can't seem to find a clear way to tell CMake
>> about this dependency.
>>
>> Consider this example:
>>
>>     my_project/
>>         CMakeLists.txt:
>>           add_subdirectory('subproject1')
>>           add_subdirectory('subproject2')
>>
>>     my_project/subproject1/
>>         CMakeLists.txt:
>>             add_executable(subproject1_exe <sources>)
>>             target_link_libraries(subproject1_exe subproject2_lib) # <--
>> THIS is the problem
>>
>>     my_project/subproject2/
>>         CMakeLists.txt:
>>             add_library(subproject2_lib <sources>)
>>
>> The actual code is much more complex than this, but this simple example
>> illustrates the problem. The actual compilation error I am getting is
>> caused by subproject1 including a header file that gets generated when
>> subproject2 is built.
>>
>> Does anyone know how to properly tell CMake about the dependency so it
>> will build correctly?
>>
>
-- 

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:
https://cmake.org/mailman/listinfo/cmake

Reply via email to