Depending on your build system (Makefiles works best although some
IDE's may work this way also) is that you only have CMake generate
build files from ProductLib/Build. Then if you are just tweaking
baselib then you 'cd' into Build/BaseLib and do a "make" from there.
Only BaseLib will be built. When BaseLib is working the way you want
it to work then you can "cd ../" and do "make" which will then build
productLib (assuming _nothing_ else necessitates a rebuild of baselib).
This is what I'll do when working on subparts of my projects and works
well.
Eclipse CDT: Use a custom make command to tell 'make' to use the
makefiles from Build/BaseLib
VS IDE: Just set the baselib as the only project to compile
Xcode: Set Baselib as the active target.
HTH
_________________________________________________________
Mike Jackson [email protected]
BlueQuartz Software www.bluequartz.net
Principal Software Engineer Dayton, Ohio
On Mar 11, 2009, at 7:15 PM, Tyler Roscoe wrote:
Let's say I have two components baselib and productlib. baselib has a
CMakeLists and knows how to build itself. productlib has a CMakeLists,
has add_subdirectory() and add_dependencies() and target_link_libs()
calls to baselib, and knows how to build baselib and then itself.
As a developer, I'm making some changes in baselib. I cd into
baselib/build, run cmake .., and run make every once in a while to
check
my changes.
Now I'm done so I want to make sure that productlib still works. So
I cd
into productli/build and run cmake ... When I run make, I am surprised
to see that baselib recompiles and relinks even though there have been
no changes (other than running cmake from a different directory).
Is this expected? What causes it? I see that the generated Makefile
gets
rewritten with some different paths -- is that what triggers the
rebuild, or is it something else?
Do your developers accept this as a fact of life, or do they have
workarounds, or do they simply not work in this way (preferring to do
something like always run make from the same top-level build directory
no matter where in the tree they are working)? Am I crazy for wanting
the ability to work with each component both on its own and as part of
the larger system?
Is there a way to avoid this behavior through careful writing of
CMakeLists? Through some other hacks?
Thanks,
tyler
_______________________________________________
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