[pdal] Building pdal 1.3.0 under Windows

Kristian Evers kreve at sdfe.dk
Thu Oct 20 01:39:12 PDT 2016


Charles,

I use the script below to set up cmake for Visual Studio 2015 on Windows 7. It took me quite a while to find a setup that worked, but in the end I settled on building with VS2015 inside an OSGeo4W shell. Most dependencies are met this way. The remaining dependencies, boost and hexer, for the configuration below I had to build myself. Boost and hexer dll's need to be in the system search path if I remember correctly. If you don't need hexbin I think you can do without both boost and hexer, but I am not entirely sure about that.

/Kristian

---------------------------------------pdal_cmake_setup.bat--------------------------------------
@echo off
REM Run this to get access to the Microsoft command line build stuff: 
REM
REM "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64
REM
REM Run script from build directory, e.g. C:\dev\pdal_build
REM Build with:
REM
REM     devenv PDAL.sln /Build "Release|x64"
REM
REM Run tests:
REM
REM     ctest -V --output-on-failure -C Release
REM

set OSGEO4W_ROOT=C:\OSGeo4W64
set BUILD_TYPE=Release
set BOOST_ROOT=C:\lib\boost_1_61_0


cmake -G "Visual Studio 14 2015 Win64" ^
    -DBoost_DEBUG=OFF ^
    -DBOOST_ROOT=%BOOST_ROOT% ^
    -DBUILD_PLUGIN_CPD=OFF ^
    -DBUILD_PLUGIN_GEOWAVE=OFF ^
    -DBUILD_PLUGIN_GREYHOUND=OFF ^
    -DBUILD_PLUGIN_HEXBIN=ON ^
    -DBUILD_PLUGIN_ICEBRIDGE=OFF ^
    -DBUILD_PLUGIN_MATLAB=OFF ^
    -DBUILD_PLUGIN_MRSID=OFF ^
    -DBUILD_PLUGIN_NITF=OFF ^
    -DBUILD_PLUGIN_OCI=OFF ^
    -DBUILD_PLUGIN_P2G=OFF ^
    -DBUILD_PLUGIN_PCL=OFF ^
    -DBUILD_PLUGIN_PGPOINTCLOUD=OFF ^
    -DBUILD_PLUGIN_PYTHON=ON ^
    -DBUILD_PLUGIN_RIVLIB=OFF ^
    -DBUILD_PLUGIN_SQLITE=OFF ^
    -DENABLE_CTEST=OFF ^
    -DWITH_APPS=ON ^
    -DWITH_LAZPERF=OFF ^
    -DWITH_GEOTIFF=ON ^
    -DWITH_LASZIP=ON ^
    -DWITH_TESTS=ON ^
    -DPYTHON_LIBRARY=%OSGEO4W_ROOT%\apps\python27\libs\python27.lib ^
    -DPYTHON_INCLUDE_DIR=%OSGEO4W_ROOT%\apps\python27\include ^
    -DNUMPY_INCLUDE_DIR=%OSGEO4W_ROOT%\apps\python27\lib\site-packages\numpy\core\include ^
    -DNUMPY_VERSION=1.11.0 ^
    -Dgtest_force_shared_crt=ON ^
    -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ^
    -DCMAKE_INSTALL_PREFIX=C:\bin\PDAL ^
    C:\dev\PDAL\
---------------------------------------------------------------------------------------------------------



> -----Oprindelig meddelelse-----
> Fra: pdal [mailto:pdal-bounces at lists.osgeo.org] På vegne af Howard Butler
> Sendt: 19. oktober 2016 21:32
> Til: Charles Karney
> Cc: pdal
> Emne: Re: [pdal] Building pdal 1.3.0 under Windows
> 
> 
> > On Oct 19, 2016, at 1:48 PM, Charles Karney <charles.karney at sri.com>
> wrote:
> >
> > I've started investigating using pdal as a substitute for liblas for
> > reading point cloud data.  I have it building under Linux OK (with
> > cmake).  I having problems building under Windows (this is pdal 1.3.0):
> >
> > (1) A required dependency is geos.  The seems to require Visual Studio
> > 2013 or later.  This comes from
> >
> >  geos/tests/xmltester/XMLTester.cpp
> >
> > expecting std::round to be defined in <cmath>.  Is this right?  Or can I
> > skip the tests in geos and compile with Visual Studio 2012 as well.
> 
> You should be fine to skip the tests there. I didn't realize GEOS gave up on
> 2012, but maybe this wasn't intentional.
> 
> >
> > (2) curl appears to be an optional dependency (cmake does not insist
> > that it be found).  And yet
> >
> >  pdal/src/PDALUtils.cpp
> >
> > includes vendor/arbiter/arbiter.hpp and this tries to do
> >
> >  #include <curl/curl.h>
> >
> > (3) Installing curl (for Visual Studio 2013 this time) and building with
> > cmake hits an error on line 898 or pdal/util/Utils.hpp:
> >
> >  error C2144: syntax error : 'std::underlying_type<_Ty>::type' should
> >  be preceded by ';'
> >
> > This looks like some new-fangled C++11 stuff which perhaps Visual Studio
> > 2013 doesn't recognize.
> 
> PDAL definitely has requirement for the new-fangled C++11 stuff, which was
> the deal with the devil we made to (almost entirely) ditch Boost (we have a
> small embedded copy of a few things that are about to be ditched in 1.4 or
> 1.5 PDAL release). That probably means 2013 *might* work, but we only
> auto-build stuff with 2015. We are happy to take patches to get that down to
> 2013 as long as they aren't too disruptive, but we can't back off of the C++11
> stuff because it's sprinkled throughout the codebase now.
> 
> 
> I'll also note that none of the very active PDAL developers are windows-first
> devs, and we're happy to take patches to bolster that particular topic. The
> effort done on the AppVeyor builds have mostly been an attempt to prevent
> things from diverging so far that we could never get windows happy again,
> but they haven't been there to keep windows a first class operator with
> PDAL.
> 
> IMO, curl should be an optional dependency, and I see that our AppVeyor
> builds [1] are failing because of it. AppVeyor uses MSVC 19.0.24215.1 (MSVC
> 2015). Run [2] to ground to see what we're doing for our windows builds. I
> will try to clean up the curl thing so we degrade gracefully without that
> library.
> 
> [1] https://ci.appveyor.com/project/hobu/pdal
> [2] https://github.com/PDAL/PDAL/blob/master/appveyor.yml
> 
> >
> > I'm happy to delve into this further.  But I thought I should first
> > align my expectations with those of the developer:
> >
> >  With what versions of Visual Studio should I expect success?
> >  I've attempting to build it with
> >    gdal 2.1.1
> >    LASzip 2.2.0
> >    eigen 3.2.8
> >    geos 3.5.0
> >    curl (maybe) 7.39.0
> >  Should I expect this combination to work?
> 
> PDAL embeds a copy of eigen at the moment. This may or may not be a
> problem for you depending on what you're doing. That should be fixable
> though with some CMake tweaks.
> 
> Count on any windows-specific patches getting merged as long as they don't
> regress our C++11 situation too much. We've been waiting on a champion for
> this particular topic.
> 
> Howard
> 
> 
> _______________________________________________
> pdal mailing list
> pdal at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pdal


More information about the pdal mailing list