[CMake] add_subdirectory and build directory

Marcel Loose loose at astron.nl
Fri Sep 11 12:09:28 EDT 2009


Hi Pierre-Julien,

I think I see what the problem is. You didn't specify any dependencies.
You mention that project A depends on B. But don't you actually mean
that libA depends on libB? If that's the case you should add a
target_link_libraries(libA libB) to the CMakeLists.txt file of project
A.

Anyway, you may want to post your CMakeLists.txt files, so that people
can spot what you might be doing wrong. At the moment, I can only make
some wild guesses.

Best regards,
Marcel Loose.

On Fri, 2009-09-11 at 17:34 +0200, Pierre-Julien Villoud wrote:
> Hi and thanks for your answer...
> 
> Here is the ouput : 
> 
> I'm building A : My CMakelists.txt is in C:/A
> 
> -- Configuring done
> -- Generating done
> -- Build files have been written to: C:/A/Debug
> ==============Building A==============
> [  0%] Built target CMake
> Scanning dependencies of target B
> [  4%] Building CXX object C:/B/CMakeFiles/B.dir/B.cpp.obj
> Linking CXX static library C:\lib\libB.a
> [  4%] Built target B
> Linking CXX shared module C:\bin\A.dll
> [100%] Built target A
> 
> Then I'm building B : My CMakeLists.txt is in C:/B
> 
> -- Configuring done
> -- Generating done
> -- Build files have been written to: C:/B/Debug
> ==============Building B==============
> [  0%] Built target CMake
> Scanning dependencies of target B
> [100%] Building CXX object CMakeFiles/B.dir/B.cpp.obj
> Linking CXX static library C:\lib\libB.a
> [100%] Built target B
> 
> 
> Any clues ?
> 
> @Michael : I did not look at your long and precise answer (thank you very much for it BTW) but it seems quite complicated !! How are you managing your dependencies ?
> 
> Thank you for your help !
> 
> 
> 
> -----Message d'origine-----
> De : Marcel Loose [mailto:loose at astron.nl] 
> Envoyé : vendredi 11 septembre 2009 16:30
> À : Pierre-Julien Villoud
> Cc : cmake at cmake.org
> Objet : Re: [CMake] add_subdirectory and build directory
> 
> Hi Pierre-Julien,
> 
> Are you sure it's rebuilding? CMake (or 'make' actually), prints a lot
> of messages "Built target ..." even if no compilation was needed.
> However, if you also see messages like "Building ..." then it is
> actually rebuilding.
> 
> Without an example of the output of your build, it is hard to judge
> what, if anything, is going wrong.
> 
> Best regards,
> Marcel Loose.
> 
> On Fri, 2009-09-11 at 15:12 +0200, Pierre-Julien Villoud wrote:
> > Hi everyone, 
> > 
> >  
> > 
> > After unsuccessfully looking for an answer on Google, I contact you.
> > 
> > I have a question regarding the use of add_subdirectory. When a
> > project A is depending on a project B, I add the following in A's
> > CMakeLists.txt : 
> > 
> >  
> > 
> > Add_subdirectory(B Path/To/B/Build/Directory)
> > 
> >  
> > 
> > It does build B before A. But when I build B in its build directory
> > and I build A after, it builds B again whereas it should not since B
> > is up to date.
> > 
> >  
> > 
> > Anyone sees what's wrong ?
> > 
> >  
> > 
> > Thanks in advance
> > 
> >  
> > 
> > Pierre-Julien VILLOUD
> > 
> > 
> > _______________________________________________
> > Powered by www.kitware.com
> > 
> > Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
> > 
> > Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
> > 
> > Follow this link to subscribe/unsubscribe:
> > http://www.cmake.org/mailman/listinfo/cmake
> 
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake



More information about the CMake mailing list