<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta content="MSHTML 6.00.6000.16981" name="GENERATOR">
</head>
<body>
<div><span class="314141621-02022010"><font face="Arial" size="2">My current project has many components that need to be built. Some portions of our code depend on others and using add_subdirectory, I am having an issue where I get multiple of my targets loaded
 causing a faliure.</font></span></div>
<div><span class="314141621-02022010"><font face="Arial" size="2"></font></span>&nbsp;</div>
<div><span class="314141621-02022010"><font face="Arial" size="2">I placed the add_subdirectory in a macro that uses a simple hash style of access</font></span></div>
<div><span class="314141621-02022010"><font face="Arial" size="2"></font></span>&nbsp;</div>
<div><span class="314141621-02022010"><font face="Arial" size="2">set ( BUILD_MAP_${_name}&nbsp;1 ) where ${_name} is the target name.</font></span></div>
<div><span class="314141621-02022010"><font face="Arial" size="2"></font></span>&nbsp;</div>
<div><span class="314141621-02022010"><font face="Arial" size="2">I have an if statement in the macro that tests if BUILD_MAP_${_name} is defined. The issue is say I have a custom mysqlclient that is used by 3 of my projects that are all built as part of &quot;all&quot;.</font></span></div>
<div><span class="314141621-02022010"><font face="Arial" size="2"></font></span>&nbsp;</div>
<div><span class="314141621-02022010"><font face="Arial" size="2">Project&nbsp;A: Depends on Mysqlclient</font></span></div>
<div><span class="314141621-02022010"><font face="Arial" size="2">Project B: Depends on Mysqlclient</font></span></div>
<div><span class="314141621-02022010"><font face="Arial" size="2">Project C: Depends on Mysqlclient</font></span></div>
<div><span class="314141621-02022010"><font face="Arial" size="2"></font></span>&nbsp;</div>
<div><span class="314141621-02022010"><font face="Arial" size="2">Dir structure</font></span></div>
<div><span class="314141621-02022010"><font face="Arial" size="2">all/</font></span></div>
<div><span class="314141621-02022010"><font face="Arial" size="2">&nbsp;&nbsp;&nbsp;/lib/Mysqlclient</font></span></div>
<div><span class="314141621-02022010"><font face="Arial" size="2">&nbsp;&nbsp; /bin/Project A</font></span></div>
<div><span class="314141621-02022010"><font face="Arial" size="2">
<div><span class="314141621-02022010"><font face="Arial" size="2">&nbsp;&nbsp; /bin/Project B</font></span></div>
<div><span class="314141621-02022010">
<div><span class="314141621-02022010"><font face="Arial" size="2">&nbsp;&nbsp; /bin/Project C</font></span></div>
<div><span class="314141621-02022010"></span>&nbsp;</div>
<div><span class="314141621-02022010">each of these folders have a CMakeLists.txt. The all/CMakeLists.txt has the following</span></div>
<div><span class="314141621-02022010"></span>&nbsp;</div>
<div><span class="314141621-02022010">project(all)</span></div>
<div><span class="314141621-02022010">add_subdirectory(lib/Mysqlclient)</span></div>
<div><span class="314141621-02022010">add_subdirectory(<span class="314141621-02022010"><font face="Arial" size="2">bin/Project A)</font></span></span></div>
<div><span class="314141621-02022010"><span class="314141621-02022010">
<div><span class="314141621-02022010">add_subdirectory(<span class="314141621-02022010"><font face="Arial" size="2">bin/Project B)</font></span></span></div>
<div><span class="314141621-02022010"><span class="314141621-02022010">
<div><span class="314141621-02022010">add_subdirectory(<span class="314141621-02022010"><font face="Arial" size="2">bin/Project C)</font></span></span></div>
<div><span class="314141621-02022010"><span class="314141621-02022010"></span></span>&nbsp;</div>
<div><span class="314141621-02022010"><span class="314141621-02022010">When building from the top level and having a definition of &quot;-lmysqlclient&quot; everything works as expected. The issue comes up when I do not want to build all of the source.</span></span></div>
<div><span class="314141621-02022010"><span class="314141621-02022010"></span></span>&nbsp;</div>
<div><span class="314141621-02022010"><span class="314141621-02022010">Say I would like to build only Project B.</span></span></div>
<div><span class="314141621-02022010"><span class="314141621-02022010"></span></span>&nbsp;</div>
<div><span class="314141621-02022010"><span class="314141621-02022010">from my build directory, I would run cmake ~/all/Project B.</span></span></div>
<div><span class="314141621-02022010"><span class="314141621-02022010"></span></span>&nbsp;</div>
<div><span class="314141621-02022010"><span class="314141621-02022010">The cmake process ends without issue, but the make fails on link due to the missing Mysqlclient library not being built. I want to be able to declare dependencies for each project that way
 I can build each seperately from the top level. So far using a macro to do the add_subdirectory fails because even though I check to see if BUILD_MAP_${_name} is defined, the add_subdirectory command is still run as if the BUILD_MAP_${_name} is not defined
 (if defined, only an add_dependencies should be run)</span></span></div>
<div><span class="314141621-02022010"><span class="314141621-02022010"></span></span>&nbsp;</div>
<div><span class="314141621-02022010"><span class="314141621-02022010">Any help would be greatly appreciated.</span></span></div>
</span></span></div>
</span></span></div>
</span></div>
</font></span></div>
<br>
<hr>
<font face="Arial" color="Black" size="3">This message (including any attachments) contains confidential information intended for a specific individual and purpose, and is protected by law. If you are not the intended recipient, you should delete this message.
 Any disclosure, copying, or distribution of this message, or the taking of any action based on it, is strictly prohibited.<br>
</font>
</body>
</html>