#1230 Work in Progress. CMake/MinGW/32.

v0.27.3
Robin Mills 9 years ago
parent dbd7e7de10
commit b6c3552458

@ -17,6 +17,9 @@ NOTE:
The msvc-2003 build files are deprecated and will not be supported after v0.26.
Exiv2 will not build on MinGW (neither 32bit nor 64bit)
This is discussed in TODO-CMAKE
Robin Mills
robin@clanmills.com
2016-09-23

@ -9,10 +9,52 @@
Current Status
ToDo: * CMake/MinGW is not working.
See config/buildserver/dailyBuild.sh for explanation.
ToDo: * CMake/MinGW is not working. I hope to fix this for v0.26
# Reasons why I can't get cmake to work:
#
# 1) Even although gcc is on the path, we must tell cmake not to use /c/MinGW/bin/gcc)
# 2) It's using the wrong headers. Needs /c/Qt/Qt5.6.0/Tools/mingw492_32/i686-w64-mingw32/include
# cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$dist -DEXIV2_ENABLE_NLS=OFF \
# -DCMAKE_C_COMPILER=$(which gcc) -DCMAKE_CXX_COMPILER=$(which g++) \
# "-DCMAKE_CXX_FLAGS=-I/c/Qt/Qt5.6.0/Tools/mingw492_32/i686-w64-mingw32/include"
# $exiv2
# 3) even so, it errors instantly on:
# In file included from c:/Qt/Qt5.6.0/Tools/mingw492_32/i686-w64-mingw32/include/stddef.h:7:0,
# from c:/Qt/Qt5.6.0/Tools/mingw492_32/lib/gcc/i686-w64-mingw32/4.9.2/include/stddef.h:1,
# from C:/MinGW/msys/1.0/home/rmills/gnu/exiv2/trunk/xmpsdk/include/XMP_Const.h:14,
# from C:/MinGW/msys/1.0/home/rmills/gnu/exiv2/trunk/xmpsdk/src/XMPCore_Impl.hpp:13,
# from C:/MinGW/msys/1.0/home/rmills/gnu/exiv2/trunk/xmpsdk/src/ExpatAdapter.cpp:10:
# c:/Qt/Qt5.6.0/Tools/mingw492_32/i686-w64-mingw32/include/crtdefs.h:26:9: error: 'size_t' does not name a type
# typedef size_t rsize_t;
# 4) Building cmake itself required setting CC CXX CXXFLAGS and LDFLAGS
# AND editing a system file in Qt with an erroneous #pragma error NTDDI_VERSION and _WIN32_WINNT
# In file included from c:/Qt/Qt5.6.0/Tools/mingw492_32/i686-w64-mingw32/include/windows.h:10:0,
# from c:/Users/rmills/gnu/cmake/cmake-3.6.2/Utilities/cmlibarchive/libarchive/archive_windows.h:74,
# from c:/Users/rmills/gnu/cmake/cmake-3.6.2/Utilities/cmlibarchive/libarchive/archive_platform.h:60,
# from c:/Users/rmills/gnu/cmake/cmake-3.6.2/Utilities/cmlibarchive/libarchive/xxhash.c:35:
# c:/Qt/Qt5.6.0/Tools/mingw492_32/i686-w64-mingw32/include/sdkddkver.h:186:2: error: #error NTDDI_VERSION and _WIN32_WINNT mismatch!
# My work-around was to comment off the #error statement!
CMake generates the wrong include response files.
On my system, these should have the code:
-IC:/MinGW/msys/1.0/home/rmills/gnu/exiv2/trunk/src
-IC:/MinGW/msys/1.0/home/rmills/gnu/exiv2/trunk/include
-IC:/MinGW/msys/1.0/home/rmills/gnu/exiv2/trunk/include/exiv2
-IC:/MinGW/msys/1.0/home/rmills/gnu/exiv2/trunk/build
-IC:/MinGW/msys/1.0/home/rmills/gnu/exiv2/trunk/xmpsdk/include
-IC:/MinGW/msys/1.0/home/rmills/gnu/exiv2/trunk/xmpsdk/src
-IC:/Qt/Qt5.6.0/Tools/mingw492_32/i686-w64-mingw32/include
-IC:/Qt/Qt5.6.0/Tools/mingw492_32/lib/gcc/i686-w64-mingw32/4.9.2/include
-IC:/MinGW/msys/1.0/local/include
Even with this correction, the build fails.
I put the correct include code into includes.rsp and find to propagate it to the wrong files.
/home/rmills/gnu/exiv2/trunk/build> find . -name "includes_*.rsp" -exec cp includes.rsp {} \;
Robin Mills
robin@clanmills.com
2016-09-29
2016-09-30

Loading…
Cancel
Save