<style type="text/css">
p, li { white-space: pre-wrap; }
</style>
<p style="margin:0px;text-indent:0px">So I removed the build directory and started fresh. Here&#39;s the CMake output.<br></p><p style="margin:0px;text-indent:0px;font-family:courier new,monospace"><br></p><p style="margin:0px 0px 0px 40px;text-indent:0px;font-family:courier new,monospace">
Setting PDAL build type - Debug</p>
<p style="margin:0px 0px 0px 40px;text-indent:0px;font-family:courier new,monospace">Using embedded boost tree</p>
<p style="margin:0px 0px 0px 40px;text-indent:0px;font-family:courier new,monospace">Using boost lib: pdalboost</p>
<p style="margin:0px 0px 0px 40px;text-indent:0px;font-family:courier new,monospace">Building with PDAL unit tests</p>
<p style="margin:0px 0px 0px 40px;text-indent:0px;font-family:courier new,monospace">No non-embed static boost library found, setting BOOST_TEST_DYN_LINK</p>
<p style="margin:0px 0px 0px 40px;text-indent:0px;font-family:courier new,monospace">Configuring done</p>
<p style="margin:0px 0px 0px 40px;text-indent:0px;font-family:courier new,monospace">Generating done</p><br>While linking ../bin/libpdal.dylib, I get the following<br><br><div style="margin-left:40px"><span style="font-family:courier new,monospace">Undefined symbols for architecture x86_64:</span><br style="font-family:courier new,monospace">
<span style="font-family:courier new,monospace">  &quot;boost::filesystem3::path::root_directory() const&quot;, referenced from:</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">      boost::filesystem3::path::has_root_directory() constin FileUtils.cpp.o</span><br>
<br>...<br style="font-family:courier new,monospace"></div><br>make VERBOSE=1 confirms that only PDAL/boost is being included, and that libpdal is linking against libpdalboost.a.<br><br>Brad<br><br><div class="gmail_quote">
On Mon, Mar 26, 2012 at 12:32 PM, Howard Butler <span dir="ltr">&lt;<a href="mailto:hobu.inc@gmail.com">hobu.inc@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
On Mar 26, 2012, at 11:01 AM, Bradley Chambers wrote:<br>
<br>
&gt; I found two previous tickets stating that the minimum Boost version should be 1.41 (<a href="https://github.com/PDAL/PDAL/issues/51" target="_blank">https://github.com/PDAL/PDAL/issues/51</a> and <a href="https://github.com/PDAL/PDAL/pull/55" target="_blank">https://github.com/PDAL/PDAL/pull/55</a>), and yet the main CMakeLists file requires 1.48 (references to 1.41 disappeared around <a href="https://github.com/PDAL/PDAL/commit/41b3b39d85c073a7325d03bf853477c71f37a05c" target="_blank">https://github.com/PDAL/PDAL/commit/41b3b39d85c073a7325d03bf853477c71f37a05c</a>). Should the CMakeLists file be downgraded once again to require 1.41?<br>

&gt;<br>
&gt; I believe the embedded PDAL Boost may be taking over a bit too gracefully if the initial find_package call fails. I discovered this when attempting to run CMake with Boost 1.47 (before noticing the dependency on 1.48). Because the embedded package took over, and CMake completed without errors, this took a while to figure out. In hindsight, there was a status message that Boost was not found, and embedded Boost would be used, but it&#39;s easy to overlook. If the user chooses to not use embedded Boost, should the default behavior really be to use it if CMake runs into any issues?<br>

<br>
</div>There&#39;s definitely room to fix the CMake logic up here.  I just did a quick and dirty on it, and I almost always build embedded now. I think the expectation should be that you&#39;re building embedded to simplify the build setup for folks and so that we can dictate a high boost version number.  Right now the minimum Boost version number is 1.48, which is due to some newish boost::random being used in filters.stats.<br>

<div class="im"><br>
&gt;<br>
&gt; Finally, when building on OS X and using the embedded Boost libraries, I currently get a slew of errors about undefined symbols in Boost::filesystem3.<br>
<br>
</div>If you were using the embedded boost, I think the errors here would be pdalboost::filesystem3:: of boost::filesystem3<br>
<br>
$ make VERBOSE=1 should give you an indication of the include path ordering and whether or not your boost is being used ahead of the system one.  When the embedded boost is used, a single library that is built by CMake in ./boost is linked in.  Otherwise, for a system boost, each individual library specified in the find_package invocation is required.<br>

<div><div class="h5"><br>
&gt;<br>
&gt; Undefined symbols for architecture x86_64:<br>
&gt;   &quot;boost::filesystem3::detail::remove(boost::filesystem3::path const&amp;, boost::system::error_code*)&quot;, referenced from:<br>
&gt;       boost::filesystem3::remove(boost::filesystem3::path const&amp;) in FileUtils.o<br>
&gt;   &quot;boost::filesystem3::detail::rename(boost::filesystem3::path const&amp;, boost::filesystem3::path const&amp;, boost::system::error_code*)&quot;, referenced from:<br>
&gt;       boost::filesystem3::rename(boost::filesystem3::path const&amp;, boost::filesystem3::path const&amp;) in FileUtils.o<br>
&gt;   &quot;boost::filesystem3::detail::status(boost::filesystem3::path const&amp;, boost::system::error_code*)&quot;, referenced from:<br>
&gt;       boost::filesystem3::exists(boost::filesystem3::path const&amp;) in FileUtils.o<br>
&gt;   &quot;boost::filesystem3::detail::file_size(boost::filesystem3::path const&amp;, boost::system::error_code*)&quot;, referenced from:<br>
&gt;       boost::filesystem3::file_size(boost::filesystem3::path const&amp;) in FileUtils.o<br>
&gt;   &quot;boost::filesystem3::detail::current_path(boost::system::error_code*)&quot;, referenced from:<br>
&gt;       boost::filesystem3::current_path() in FileUtils.o<br>
&gt;   &quot;boost::filesystem3::absolute(boost::filesystem3::path const&amp;, boost::filesystem3::path const&amp;)&quot;, referenced from:<br>
&gt;       pdal::FileUtils::toAbsolutePath(std::string const&amp;) in FileUtils.o<br>
&gt;       pdal::FileUtils::toAbsolutePath(std::string const&amp;, std::string) in FileUtils.o<br>
&gt;   &quot;boost::filesystem3::path::parent_path() const&quot;, referenced from:<br>
&gt;       pdal::FileUtils::getDirectory(std::string const&amp;) in FileUtils.o<br>
&gt;   &quot;boost::filesystem3::path::root_directory() const&quot;, referenced from:<br>
&gt;       boost::filesystem3::path::has_root_directory() const in FileUtils.o<br>
&gt;   &quot;boost::filesystem3::path::filename() const&quot;, referenced from:<br>
&gt;       pdal::StageFactory::loadPlugins() in StageFactory.o<br>
&gt;   &quot;boost::filesystem3::path::extension() const&quot;, referenced from:<br>
&gt;       pdal::StageFactory::loadPlugins() in StageFactory.o<br>
&gt;   &quot;boost::filesystem3::path::stem() const&quot;, referenced from:<br>
&gt;       pdal::StageFactory::loadPlugins() in StageFactory.o<br>
&gt;   &quot;boost::filesystem3::directory_entry::m_get_symlink_status(boost::system::error_code*) const&quot;, referenced from:<br>
&gt;       boost::filesystem3::directory_entry::symlink_status() const in StageFactory.o<br>
&gt;   &quot;boost::filesystem3::path::begin() const&quot;, referenced from:<br>
&gt;       boost::filesystem3::operator&lt;(boost::filesystem3::path const&amp;, boost::filesystem3::path const&amp;) in StageFactory.o<br>
&gt;   &quot;boost::filesystem3::path::end() const&quot;, referenced from:<br>
&gt;       boost::filesystem3::operator&lt;(boost::filesystem3::path const&amp;, boost::filesystem3::path const&amp;) in StageFactory.o<br>
&gt;   &quot;boost::filesystem3::path::m_path_iterator_increment(boost::filesystem3::path::iterator&amp;)&quot;, referenced from:<br>
&gt;       boost::filesystem3::path::iterator::increment() in StageFactory.o<br>
&gt;   &quot;boost::filesystem3::detail::directory_iterator_increment(boost::filesystem3::directory_iterator&amp;, boost::system::error_code*)&quot;, referenced from:<br>
&gt;       boost::filesystem3::directory_iterator::increment() in StageFactory.o<br>
&gt;   &quot;boost::filesystem3::detail::directory_iterator_construct(boost::filesystem3::directory_iterator&amp;, boost::filesystem3::path const&amp;, boost::system::error_code*)&quot;, referenced from:<br>
&gt;       boost::filesystem3::directory_iterator::directory_iterator(boost::filesystem3::path const&amp;) in StageFactory.o<br>
&gt;   &quot;boost::filesystem3::detail::dir_itr_close(void*&amp;, void*&amp;)&quot;, referenced from:<br>
&gt;       boost::filesystem3::detail::dir_itr_imp::~dir_itr_imp() in StageFactory.o<br>
&gt;   &quot;boost::filesystem3::detail::unique_path(boost::filesystem3::path const&amp;, boost::system::error_code*)&quot;, referenced from:<br>
&gt;       boost::filesystem3::unique_path(boost::filesystem3::path const&amp;) in Utils.o<br>
&gt;   &quot;boost::filesystem3::detail::temp_directory_path(boost::system::error_code*)&quot;, referenced from:<br>
&gt;       boost::filesystem3::temp_directory_path() in Utils.o<br>
&gt;   &quot;boost::filesystem3::path::operator/=(boost::filesystem3::path const&amp;)&quot;, referenced from:<br>
&gt;       boost::filesystem3::operator/(boost::filesystem3::path const&amp;, boost::filesystem3::path const&amp;) in Utils.o<br>
&gt; ld: symbol(s) not found for architecture x86_64<br>
&gt;<br>
&gt; Brad<br>
</div></div>&gt; _______________________________________________<br>
&gt; pdal mailing list<br>
&gt; <a href="mailto:pdal@lists.osgeo.org">pdal@lists.osgeo.org</a><br>
&gt; <a href="http://lists.osgeo.org/mailman/listinfo/pdal" target="_blank">http://lists.osgeo.org/mailman/listinfo/pdal</a><br>
<br>
</blockquote></div><br>