{"action":"created","issue":{"url":"https://api.github.com/repos/Exiv2/exiv2/issues/468","repository_url":"https://api.github.com/repos/Exiv2/exiv2","labels_url":"https://api.github.com/repos/Exiv2/exiv2/issues/468/labels{/name}","comments_url":"https://api.github.com/repos/Exiv2/exiv2/issues/468/comments","events_url":"https://api.github.com/repos/Exiv2/exiv2/issues/468/events","html_url":"https://github.com/Exiv2/exiv2/issues/468","id":368290687,"node_id":"MDU6SXNzdWUzNjgyOTA2ODc=","number":468,"title":"Exiv2 and MinGW : The library compile fine with Unicode paths support","user":{"login":"cgilles","id":2588024,"node_id":"MDQ6VXNlcjI1ODgwMjQ=","avatar_url":"https://avatars0.githubusercontent.com/u/2588024?v=4","gravatar_id":"","url":"https://api.github.com/users/cgilles","html_url":"https://github.com/cgilles","followers_url":"https://api.github.com/users/cgilles/followers","following_url":"https://api.github.com/users/cgilles/following{/other_user}","gists_url":"https://api.github.com/users/cgilles/gists{/gist_id}","starred_url":"https://api.github.com/users/cgilles/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cgilles/subscriptions","organizations_url":"https://api.github.com/users/cgilles/orgs","repos_url":"https://api.github.com/users/cgilles/repos","events_url":"https://api.github.com/users/cgilles/events{/privacy}","received_events_url":"https://api.github.com/users/cgilles/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-10-09T16:17:23Z","updated_at":"2018-10-10T14:47:38Z","closed_at":"2018-10-09T17:51:24Z","author_association":"COLLABORATOR","body":"```\r\n[gilles@localhost exiv2 (master)]$ ./bootstrap.mxe /mnt/data/GIT/6.x/project/bundles/mxe/build.win64\r\nMXE target : 64 bits shared\r\nInstalling to /mnt/data/GIT/6.x/project/bundles/mxe/build.win64 for target x86_64-w64-mingw32.shared with build mode RelWithDebInfo and configure options \r\n== Using MXE wrapper: /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/bin/x86_64-w64-mingw32.shared-cmake\r\n     - cmake version 3.10.0\r\n     - warnings for unused CMAKE_POLICY_DEFAULT variables can be ignored\r\n== Using MXE toolchain: /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/x86_64-w64-mingw32.shared/share/cmake/mxe-conf.cmake\r\n== Using MXE runresult: /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/share/cmake/modules/TryRunResults.cmake\r\nloading initial cache file /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/share/cmake/modules/TryRunResults.cmake\r\n-- The CXX compiler identification is GNU 5.5.0\r\n-- The C compiler identification is GNU 5.5.0\r\n-- Check for working CXX compiler: /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/bin/x86_64-w64-mingw32.shared-g++\r\n-- Check for working CXX compiler: /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/bin/x86_64-w64-mingw32.shared-g++ -- works\r\n-- Detecting CXX compiler ABI info\r\n-- Detecting CXX compiler ABI info - done\r\n-- Detecting CXX compile features\r\n-- Detecting CXX compile features - done\r\n-- Check for working C compiler: /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/bin/x86_64-w64-mingw32.shared-gcc\r\n-- Check for working C compiler: /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/bin/x86_64-w64-mingw32.shared-gcc -- works\r\n-- Detecting C compiler ABI info\r\n-- Detecting C compiler ABI info - done\r\n-- Detecting C compile features\r\n-- Detecting C compile features - done\r\n-- Looking for pthread.h\r\n-- Looking for pthread.h - found\r\n-- Looking for pthread_create\r\n-- Looking for pthread_create - not found\r\n-- Looking for pthread_create in pthreads\r\n-- Looking for pthread_create in pthreads - not found\r\n-- Looking for pthread_create in pthread\r\n-- Looking for pthread_create in pthread - found\r\n-- Found Threads: TRUE  \r\n-- Found Regex: /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/x86_64-w64-mingw32.shared/include  \r\n-- Found ZLIB: /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/x86_64-w64-mingw32.shared/lib/libz.dll.a (found version \"1.2.11\") \r\n-- Found EXPAT: /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/x86_64-w64-mingw32.shared/lib/libexpat.dll.a (found version \"2.2.6\") \r\n-- Found Intl: /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/x86_64-w64-mingw32.shared/include  \r\n-- Found Iconv: /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/x86_64-w64-mingw32.shared/lib/libiconv.dll.a  \r\n-- ICONV_INCLUDE_DIR : /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/x86_64-w64-mingw32.shared/include\r\n-- ICONV_LIBRARIES : /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/x86_64-w64-mingw32.shared/lib/libiconv.dll.a\r\n-- Looking for gmtime_r\r\n-- Looking for gmtime_r - not found\r\n-- Looking for mmap\r\n-- Looking for mmap - not found\r\n-- Looking for munmap\r\n-- Looking for munmap - not found\r\n-- Looking for strerror_r\r\n-- Looking for strerror_r - not found\r\n-- Looking for libintl.h\r\n-- Looking for libintl.h - found\r\n-- Looking for unistd.h\r\n-- Looking for unistd.h - found\r\n-- Looking for memory.h\r\n-- Looking for memory.h - found\r\n-- Looking for process.h\r\n-- Looking for process.h - found\r\n-- Looking for stdbool.h\r\n-- Looking for stdbool.h - found\r\n-- Looking for stdint.h\r\n-- Looking for stdint.h - found\r\n-- Looking for strings.h\r\n-- Looking for strings.h - found\r\n-- Looking for sys/mman.h\r\n-- Looking for sys/mman.h - found\r\n-- Looking for sys/stat.h\r\n-- Looking for sys/stat.h - found\r\n-- Looking for sys/types.h\r\n-- Looking for sys/types.h - found\r\n-- Looking for regex.h\r\n-- Looking for regex.h - found\r\n-- Looking for inttypes.h\r\n-- Looking for inttypes.h - found\r\n-- Performing Test COMPILER_HAS_DEPRECATED_ATTR\r\n-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success\r\n-- Install prefix:    /mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/x86_64-w64-mingw32.shared\r\n-- ------------------------------------------------------------------\r\n-- CMake Generator:   Unix Makefiles\r\n-- Compiler info: GNU (/mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/bin/x86_64-w64-mingw32.shared-g++) ; version: 5.5.0\r\n--  --- Compiler flags --- \r\n-- General:            -Wall -Wcast-align -Wpointer-arith -Wformat-security -Wmissing-format-attribute -Woverloaded-virtual -W -std=gnu++98\r\n-- Extra:              \r\n-- Debug:             -g3 -gstrict-dwarf -O0\r\n-- Release:           -O3 -DNDEBUG\r\n-- RelWithDebInfo:    -O2 -g -DNDEBUG\r\n-- MinSizeRel:        -Os -DNDEBUG\r\n--  --- Linker flags --- \r\n-- General:           \r\n-- Debug:             \r\n-- Release:           \r\n-- RelWithDebInfo:    \r\n-- MinSizeRel:        \r\n-- \r\n-- Compiler Options\r\n-- Warnings as errors:                 NO\r\n-- Use extra compiler warning flags:   NO\r\n-- \r\n-- Compiler info: GNU (/mnt/data/GIT/6.x/project/bundles/mxe/build.win64/usr/bin/x86_64-w64-mingw32.shared-g++) ; version: 5.5.0\r\n-- ------------------------------------------------------------------\r\n-- Building shared library:            YES\r\n-- Building PNG support:               YES\r\n-- XMP metadata support:               YES\r\n-- Native language support:            YES\r\n-- Conversion of Windows XP tags:      YES\r\n-- Nikon lens database:                YES\r\n-- Building video support:             NO\r\n-- Building webready support:          NO\r\n-- Dynamic runtime override:           NO\r\n-- Unicode paths (wstring):            YES\r\n-- Building exiv2 command:             NO\r\n-- Building samples:                   NO\r\n-- Building PO files:                  NO\r\n-- Building unit tests:                NO\r\n-- Building doc:                       NO\r\n-- Building with coverage flags:       NO\r\n-- Using ccache:                       NO\r\n-- ------------------------------------------------------------------\r\n-- Configuring done\r\n-- Generating done\r\n-- Build files have been written to: /mnt/data/GIT/exiv2/build\r\n\r\n[gilles@localhost exiv2 (master)]$ \r\n[gilles@localhost exiv2 (master)]$ cd build\r\n[gilles@localhost build (master)]$ make\r\nScanning dependencies of target xmp\r\n[  1%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/ExpatAdapter.cpp.obj\r\n[  2%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/MD5.cpp.obj\r\n[  3%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/ParseRDF.cpp.obj\r\n[  4%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/UnicodeConversions.cpp.obj\r\n[  6%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/WXMPIterator.cpp.obj\r\n[  7%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/WXMPMeta.cpp.obj\r\n[  8%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/WXMPUtils.cpp.obj\r\n[  9%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XML_Node.cpp.obj\r\n[ 10%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPCore_Impl.cpp.obj\r\n[ 12%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPIterator.cpp.obj\r\n[ 13%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta-GetSet.cpp.obj\r\n[ 14%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta-Parse.cpp.obj\r\n[ 15%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta-Serialize.cpp.obj\r\n[ 16%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPMeta.cpp.obj\r\n[ 18%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPUtils-FileInfo.cpp.obj\r\n[ 19%] Building CXX object xmpsdk/CMakeFiles/xmp.dir/src/XMPUtils.cpp.obj\r\n[ 20%] Linking CXX static library ../lib/libxmp.a\r\n[ 20%] Built target xmp\r\nScanning dependencies of target exiv2lib_int\r\n[ 21%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/canonmn_int.cpp.obj\r\n[ 22%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/casiomn_int.cpp.obj\r\n[ 24%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/cr2header_int.cpp.obj\r\n[ 25%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/crwimage_int.cpp.obj\r\n[ 26%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/fujimn_int.cpp.obj\r\n[ 27%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/makernote_int.cpp.obj\r\n[ 28%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/minoltamn_int.cpp.obj\r\n[ 30%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/nikonmn_int.cpp.obj\r\n[ 31%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/olympusmn_int.cpp.obj\r\n[ 32%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/orfimage_int.cpp.obj\r\n[ 33%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/panasonicmn_int.cpp.obj\r\n[ 34%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/pentaxmn_int.cpp.obj\r\n[ 36%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/rw2image_int.cpp.obj\r\n[ 37%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/samsungmn_int.cpp.obj\r\n[ 38%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/sigmamn_int.cpp.obj\r\n[ 39%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/sonymn_int.cpp.obj\r\n[ 40%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/tags_int.cpp.obj\r\n[ 42%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/tiffcomposite_int.cpp.obj\r\n[ 43%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/tiffimage_int.cpp.obj\r\n[ 44%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/tiffvisitor_int.cpp.obj\r\n[ 45%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/helper_functions.cpp.obj\r\n[ 46%] Building CXX object src/CMakeFiles/exiv2lib_int.dir/pngchunk_int.cpp.obj\r\n[ 46%] Built target exiv2lib_int\r\nScanning dependencies of target exiv2lib\r\n[ 48%] Building CXX object src/CMakeFiles/exiv2lib.dir/asfvideo.cpp.obj\r\n[ 49%] Building CXX object src/CMakeFiles/exiv2lib.dir/basicio.cpp.obj\r\n[ 50%] Building CXX object src/CMakeFiles/exiv2lib.dir/bigtiffimage.cpp.obj\r\n[ 51%] Building CXX object src/CMakeFiles/exiv2lib.dir/bmpimage.cpp.obj\r\n[ 53%] Building CXX object src/CMakeFiles/exiv2lib.dir/convert.cpp.obj\r\n/mnt/data/GIT/exiv2/src/convert.cpp:1511:10: warning: 'bool {anonymous}::convertStringCharsetWindows(std::__cxx11::string&, const char*, const char*)' defined but not used [-Wunused-function]\r\n     bool convertStringCharsetWindows(std::string& str, const char* from, const char* to)\r\n          ^\r\n[ 54%] Building CXX object src/CMakeFiles/exiv2lib.dir/cr2image.cpp.obj\r\n[ 55%] Building CXX object src/CMakeFiles/exiv2lib.dir/crwimage.cpp.obj\r\n[ 56%] Building CXX object src/CMakeFiles/exiv2lib.dir/datasets.cpp.obj\r\n[ 57%] Building CXX object src/CMakeFiles/exiv2lib.dir/easyaccess.cpp.obj\r\n[ 59%] Building CXX object src/CMakeFiles/exiv2lib.dir/epsimage.cpp.obj\r\n[ 60%] Building CXX object src/CMakeFiles/exiv2lib.dir/error.cpp.obj\r\n[ 61%] Building CXX object src/CMakeFiles/exiv2lib.dir/exif.cpp.obj\r\n[ 62%] Building CXX object src/CMakeFiles/exiv2lib.dir/futils.cpp.obj\r\n[ 63%] Building CXX object src/CMakeFiles/exiv2lib.dir/gifimage.cpp.obj\r\n[ 65%] Building CXX object src/CMakeFiles/exiv2lib.dir/http.cpp.obj\r\n[ 66%] Building CXX object src/CMakeFiles/exiv2lib.dir/image.cpp.obj\r\n/mnt/data/GIT/exiv2/src/image.cpp:861:77: warning: unused parameter 'useCurl' [-Wunused-parameter]\r\n     BasicIo::AutoPtr ImageFactory::createIo(const std::wstring& wpath, bool useCurl)\r\n                                                                             ^\r\n[ 67%] Building CXX object src/CMakeFiles/exiv2lib.dir/ini.cpp.obj\r\n[ 68%] Building CXX object src/CMakeFiles/exiv2lib.dir/iptc.cpp.obj\r\n[ 69%] Building CXX object src/CMakeFiles/exiv2lib.dir/jp2image.cpp.obj\r\n[ 71%] Building CXX object src/CMakeFiles/exiv2lib.dir/jpgimage.cpp.obj\r\n[ 72%] Building CXX object src/CMakeFiles/exiv2lib.dir/matroskavideo.cpp.obj\r\n[ 73%] Building CXX object src/CMakeFiles/exiv2lib.dir/metadatum.cpp.obj\r\n[ 74%] Building CXX object src/CMakeFiles/exiv2lib.dir/mrwimage.cpp.obj\r\n[ 75%] Building CXX object src/CMakeFiles/exiv2lib.dir/orfimage.cpp.obj\r\n[ 77%] Building CXX object src/CMakeFiles/exiv2lib.dir/pgfimage.cpp.obj\r\n[ 78%] Building CXX object src/CMakeFiles/exiv2lib.dir/preview.cpp.obj\r\n[ 79%] Building CXX object src/CMakeFiles/exiv2lib.dir/properties.cpp.obj\r\n[ 80%] Building CXX object src/CMakeFiles/exiv2lib.dir/psdimage.cpp.obj\r\n[ 81%] Building CXX object src/CMakeFiles/exiv2lib.dir/quicktimevideo.cpp.obj\r\n[ 83%] Building CXX object src/CMakeFiles/exiv2lib.dir/rafimage.cpp.obj\r\n[ 84%] Building CXX object src/CMakeFiles/exiv2lib.dir/riffvideo.cpp.obj\r\n[ 85%] Building CXX object src/CMakeFiles/exiv2lib.dir/rw2image.cpp.obj\r\n[ 86%] Building CXX object src/CMakeFiles/exiv2lib.dir/tags.cpp.obj\r\n[ 87%] Building CXX object src/CMakeFiles/exiv2lib.dir/tgaimage.cpp.obj\r\n[ 89%] Building CXX object src/CMakeFiles/exiv2lib.dir/tiffimage.cpp.obj\r\n[ 90%] Building CXX object src/CMakeFiles/exiv2lib.dir/types.cpp.obj\r\n[ 91%] Building CXX object src/CMakeFiles/exiv2lib.dir/utilsvideo.cpp.obj\r\n[ 92%] Building CXX object src/CMakeFiles/exiv2lib.dir/value.cpp.obj\r\n[ 93%] Building CXX object src/CMakeFiles/exiv2lib.dir/version.cpp.obj\r\n[ 95%] Building CXX object src/CMakeFiles/exiv2lib.dir/webpimage.cpp.obj\r\n[ 96%] Building CXX object src/CMakeFiles/exiv2lib.dir/xmp.cpp.obj\r\n[ 97%] Building CXX object src/CMakeFiles/exiv2lib.dir/xmpsidecar.cpp.obj\r\n[ 98%] Building CXX object src/CMakeFiles/exiv2lib.dir/pngimage.cpp.obj\r\n[100%] Linking CXX shared library ../bin/libexiv2.dll\r\n[100%] Built target exiv2lib\r\n[gilles@localhost build (master)]$\r\n```\r\nMy patch applied is very simple : \r\n``` patch\r\ndiff --git a/include/exiv2/config.h b/include/exiv2/config.h\r\nindex 41082d83..7b28f15c 100644\r\n--- a/include/exiv2/config.h\r\n+++ b/include/exiv2/config.h\r\n@@ -67,10 +67,10 @@ typedef int pid_t;\r\n # ifndef  __MINGW__\r\n #  define __MINGW__ 1\r\n # endif\r\n-\r\n+/*\r\n #ifdef EXV_UNICODE_PATH\r\n #error EXV_UNICODE_PATH is not supported for MinGW builds\r\n-#endif\r\n+#endif*/\r\n #endif\r\n \r\n #ifndef __CYGWIN__\r\n```\r\nGilles Caulier"},"comment":{"url":"https://api.github.com/repos/Exiv2/exiv2/issues/comments/428601531","html_url":"https://github.com/Exiv2/exiv2/issues/468#issuecomment-428601531","issue_url":"https://api.github.com/repos/Exiv2/exiv2/issues/468","id":428601531,"node_id":"MDEyOklzc3VlQ29tbWVudDQyODYwMTUzMQ==","user":{"login":"cgilles","id":2588024,"node_id":"MDQ6VXNlcjI1ODgwMjQ=","avatar_url":"https://avatars0.githubusercontent.com/u/2588024?v=4","gravatar_id":"","url":"https://api.github.com/users/cgilles","html_url":"https://github.com/cgilles","followers_url":"https://api.github.com/users/cgilles/followers","following_url":"https://api.github.com/users/cgilles/following{/other_user}","gists_url":"https://api.github.com/users/cgilles/gists{/gist_id}","starred_url":"https://api.github.com/users/cgilles/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cgilles/subscriptions","organizations_url":"https://api.github.com/users/cgilles/orgs","repos_url":"https://api.github.com/users/cgilles/repos","events_url":"https://api.github.com/users/cgilles/events{/privacy}","received_events_url":"https://api.github.com/users/cgilles/received_events","type":"User","site_admin":false},"created_at":"2018-10-10T14:47:38Z","updated_at":"2018-10-10T14:47:38Z","author_association":"COLLABORATOR","body":"Note : I can confirm that Exiv2 0.26 do not link at end when UNICODE option\nis enabled with my patch.\nIn same condition, Exiv2 0.27 compile and link fine. So the new version of\ncode is compatible, older one no.\n\nGilles Caulier\n\nLe mar. 9 oct. 2018 à 19:51, Robin Mills <notifications@github.com> a\nécrit :\n\n> Closed #468 <https://github.com/Exiv2/exiv2/issues/468>.\n>\n> —\n> You are receiving this because you authored the thread.\n> Reply to this email directly, view it on GitHub\n> <https://github.com/Exiv2/exiv2/issues/468#event-1893526704>, or mute the\n> thread\n> <https://github.com/notifications/unsubscribe-auth/ACd9eDeFrV8d6AUZ6JkgN27dgBXbpOcEks5ujOIdgaJpZM4XTpXu>\n> .\n>\n"}}
{"actor":{"display_login":"cgilles"}}