2015.08.13 18:58 "[Tiff] [patch] Additional CMake fixes (2)", by Roger Leigh

2015.08.13 22:54 "Re: [Tiff] [patch] Additional CMake fixes (2)", by Roger Leigh

On 13/08/2015 18:58, Roger Leigh wrote:

I found that there's a copy-paste error in libtiff/CMakeLists.txt. The libtiffxx logic was actually applying properties to the libtiff target, which includes its linker map file and this meant that the libtiff symbols were not versioned correctly and the libtiffxx symbol versioning was absent entirely.

The attached patch sets the properties on the targets correctly, and so the symbol versioning should match the autotools logic now.

I have been using the cmake build logic against 4.0.4 for a few months now on Linux, MacOS X, FreeBSD and Windows with several Visual Studio versions, and it seems to be working well. On Windows, I now have daily integration testing against VS 2012 and 2013, with 2010/2015 to come.

We have a reasonably large set of build slaves in the ci.openmicroscopy.org Jenkins CI setup; I could likely set up a libtiff build/test job to build the current CVS against all the Visual Studio versions if that would be of any benefit to you. Likewise for Linux/MacOSX/BSD, though I suspect these already have much better test coverage! If you wanted to drop the set of project files for each Visual Studio version in favour of CMake, this would give you test coverage of the complete set.

Just set up for our own internal use and as an example of what's possible:


This builds the libtiff CVS HEAD with the following configuration combinations:

Visual Studio Version: 11, 12 and 14 (VS2012, 2013 and 2015)

Build Type:            Release and Debug
Architecture:          x86 and x64
Build System:          MSBuild and Ninja

It doesn't build against any third-party libraries such as zlib or libjpeg, but they can be downloaded and built as well.