Project

General

Profile

Feature #1236

Build Exiv2 on MinGW using CMake

Added by Robin Mills about 5 years ago. Updated about 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
build
Target version:
Start date:
30 Sep 2016
Due date:
% Done:

100%

Estimated time:
35.00 h

Description

I've got this working and documented. For sure we should consider it 'experimental' for v0.26.


Related issues

Related to Exiv2 - Support #1237: Report CMake/MinGW issues to KitwareClosed02 Oct 2016

Actions

Associated revisions

Revision 4590 (diff)
Added by Robin Mills about 5 years ago

#1236 CMake build on MinGW.

Revision 4591 (diff)
Added by Robin Mills about 5 years ago

#1236 Documentation

Revision 4592 (diff)
Added by Robin Mills about 5 years ago

Adding #1236 to the Feature report.

Revision 4593 (diff)
Added by Robin Mills about 5 years ago

#1236. Updated CMake/MinGW build instructions. That's all I intend to do on CMake/MinGW for v0.26

Revision 4596 (diff)
Added by Robin Mills about 5 years ago

#1236 Updated CMake Documentation.

Revision 4599 (diff)
Added by Robin Mills about 5 years ago

#1230 and #1236 Buildserver maintenance. Work-in-progress fixes for CMake/MinGW32

Revision 4601 (diff)
Added by Robin Mills about 5 years ago

#1236 and #1237 Improvements/fixed to TODO-CMAKE for CMake/MinGW/32.

History

#1

Updated by Robin Mills about 5 years ago

  • Status changed from Closed to Resolved
  • % Done changed from 100 to 80
#2

Updated by Robin Mills about 5 years ago

This is a very exciting and bold new feature. I've go this mostly completed in #1230 (bug hunt). However it's crashing the test suite here and there (metadata, geotag and exiv2json).

#3

Updated by Robin Mills about 5 years ago

  • % Done changed from 80 to 100
  • Estimated time changed from 50.00 h to 25.00 h

The crashing in the test programs (geotag, exiv2json for sure) is coming from expat:

#0  0x6085daa6 in strsep () from c:\MinGW\msys\1.0\bin\msys-1.0.dll
#1  0x6082d627 in msys-1.0!calloc () from c:\MinGW\msys\1.0\bin\msys-1.0.dll
#2  0x6088d3a1 in strftime () from c:\MinGW\msys\1.0\bin\msys-1.0.dll
#3  0x6082d320 in msys-1.0!malloc () from c:\MinGW\msys\1.0\bin\msys-1.0.dll
#4  0x6994127c in msys-expat-1!XML_ParserCreate_MM () from c:\MinGW\msys\1.0\bin\msys-expat-1.dll <-- using msys-expat  
#5  0x69941076 in msys-expat-1!XML_ParserCreate_MM () from c:\MinGW\msys\1.0\bin\msys-expat-1.dll
#6  0x69941044 in msys-expat-1!XML_ParserCreateNS () from c:\MinGW\msys\1.0\bin\msys-expat-1.dll
#7  0x6c71e18b in ExpatAdapter::ExpatAdapter() () from c:\MinGW\msys\1.0\home\rmills\gnu\exiv2\trunk\build\bin\libexiv2.dll
I want it to use /usr/local/bin/libexpat-1.dll

I'm not going to spend more time on this for v0.26. This has to be "experimental - use at your own risk". I'll get this all fixed in v0.27 and deploy it on the nightly build.

#4

Updated by Robin Mills about 5 years ago

  • Status changed from Resolved to Closed
#5

Updated by Robin Mills about 5 years ago

  • Status changed from Closed to Resolved
  • % Done changed from 100 to 90

I've realised (while eating breakfast) why CMake has linked the wrong versions of expat and zlib. It's for the same issue in CMake concerning the include files. We'll have to rewrite the linker response files to link the libraries in /usr/local/lib.

The problem with CMake on MinGW is that CMake does not use the CMAKE_CXX_COMPILER directive in it's initial search for support for common matters such as linkng ZLIB, HAVE_STDINT_H and so on.

CMake is unfit for purpose on Windows. It works well on Cygwin which is posix compliant layer over windows. However MinGW is a thin veneer over Windows. For sure CMake/Visual Studio is hideous.

I will report the bugs I have discovered in CMake/MinGW to Kitware. I'll review CMake/MinGW before we ship v0.27. In the meanwhile, I will update our CMAKE documentation to reflect the current status.

#6

Updated by Robin Mills about 5 years ago

  • % Done changed from 90 to 100

I've opened a new issue to pursue this matter during v0.27 #1237

r4596 CMAKE documentation updated.

#7

Updated by Robin Mills about 5 years ago

  • Status changed from Resolved to Closed
#8

Updated by Robin Mills about 5 years ago

  • Estimated time changed from 25.00 h to 35.00 h
#9

Updated by Robin Mills about 5 years ago

  • Subject changed from Enable CMake to build on MinGW to Enable Exiv2 to build on MinGW using CMake
#10

Updated by Robin Mills about 5 years ago

  • Subject changed from Enable Exiv2 to build on MinGW using CMake to Build Exiv2 on MinGW using CMake

Also available in: Atom PDF