On Tue, Sep 20, 2016 at 8:38 PM, Pavolik, Ethan Thomas <et...@pitt.edu> wrote:
> I'm (bravely) trying to build Avogadro 2 using Visual Studio 2015 and I
> wanted to post on some issues I've resolved so far as well as try to get
> some help on the issues I'm currently facing.
Thanks for posting a summary of your progress.
> I've been working on a Windows 10 PC that I reset/wiped and completely
> reinstalled VS2015 and the Windows SDK version 10.0.10586.0 to cross out any
> errors being due to my install.
> Some things I've noticed and changed so far:
> zlib- zlib seems to build fine, however there is a post-build instruction
> that is defined somewhere in the cmake files that renames zlib.lib - >
> zlib1.lib. I'm not sure if this is a problem building on other platforms,
> but when I build in debug mode, VS produces zlibd.lib. Then when it attempts
> to do the renaming step, it will say the build failed despite zlibd.lib
> being correctly generated. Building as release seems to work fine.
I have never put the time in to get a working debug build on Windows,
this is likely true with VS2010 that I was using too.
> libxml2- At the time of this message, libxml 2.9.1 is being used as a
> dependency. After much frustration it turns out that they introduced a fix
> for VS2015 in version 2.9.2 involving a macro definition of "snprintf". I've
> since changed it to use version 2.9.4 on my machine. While that has allowed
> me to compile fine, I'm currently facing unresolved external errors during
> linking which I have yet to look into.
I actually had to push libxml2 back in order to get it to build with
VS2010, I am all in favor of moving this forward. It is mainly there
for Open Babel at this point, Avogadro 2 doesn't use it directly.
> boost- Attempting to build boost resulted in a single toolset error, which I
> was able to fix by adding
> "elseif(MSVC14)
>     set(_toolset "msvc-14.0")"
> to cmake/External_boost.cmake.

For VS2015 and Avogadro 2/MoleQueue there should be no need for Boost
as far as I know.
> HDF5- They recently changed where they were hosting their 1.8.12 source. If
> you don't already have it in your downloads folder you will get a 404 error
> when trying to download the source. After changing the download location and
> version to 1.8.17 I still was not able to compile, but luckily they offer a
> binary compiled on VS2015 which seemed to work fine.

If you have the new location I would love to fix that, if you want to
make a pull request, or I can update it in the superbuild.
> Molequeue- Setting "CMAKE_PREFIX_PATH" was required for the required QT
> files to be located.

I have a couple of patches, where CMAKE_PREFIX_PATH will continue to
work, but Qt5_DIR should work and be passed down. I had been using
prefix path as it was the simplest solution.
> avogadrolibs- VS2015 wasn't able to recognize the type "uint" so I had to
> add "typedef unsigned int uint" at the top of poscarformat.cpp in order for
> this project to compile.

That is a mistake, I must have missed it in review. It should be
changed to unsigned int, I can patch that.
> These are the changes I've made so far in order to build most of the
> solution. Hopefully my notes so far can help some people in a similar
> situation, as well as bring up some issues that may affect others too (such
> as the HDF5 download location).

I will turn HDF5 off by default, the support was experimental and we
don't want to make builds harder unless they are actually using the
> Right now my build is being stopped by unresolved externals in both the
> libxml2 and avogadrolibs projects. I'm focusing on solving my issues with
> avogadrolibs right now. The issue seems to be between AvogadroQuantumIo +
> Json::Value (http://pastebin.com/nG4YYRXj)  and AvogadroMoleQueue +
> Avogadro::QtGui::GenericHighlighter (http://pastebin.com/XDbDfAhA).

They are news to me, I will see if I can take a look. Thanks for
posting detailed notes, I can create a few patches for the simpler
fixes, and will see if I can get VS2015 up and running on my machine.


Avogadro-devel mailing list

Reply via email to