darktable-org / darktable

darktable is an open source photography workflow application and raw developer
https://www.darktable.org
GNU General Public License v3.0
9.49k stars 1.12k forks source link

Can't build anymore on Windows #4692

Closed Mark-64 closed 4 years ago

Mark-64 commented 4 years ago

Hi, I have always been able to compile DT git master on Windows 10. Last version I built is 3.1.0+801~gad36572f5. Now after some time, and having first updated my MSYS2 installation, I suddenly get this CMake error

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
_osmgpsmap_LIBRARY
    linked by target "lib_darktable" in directory C:/msys64/home/marco/darktable-3.0/darktable/src
    linked by target "lib_darktable" in directory C:/msys64/home/marco/darktable-3.0/darktable/src
    linked by target "lib_darktable" in directory C:/msys64/home/marco/darktable-3.0/darktable/src
    linked by target "lib_darktable" in directory C:/msys64/home/marco/darktable-3.0/darktable/src
    linked by target "lib_darktable" in directory C:/msys64/home/marco/darktable-3.0/darktable/src
    linked by target "lib_darktable" in directory C:/msys64/home/marco/darktable-3.0/darktable/src
    linked by target "lib_darktable" in directory C:/msys64/home/marco/darktable-3.0/darktable/src
    linked by target "lib_darktable" in directory C:/msys64/home/marco/darktable-3.0/darktable/src

Also, I get a series of warnings that I am sure weren't there before, for example:

CMake Warning (dev) at C:/msys64/mingw64/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message):
  The package name passed to `find_package_handle_standard_args` (PANGOCAIRO)
  does not match the name of the calling package (PangoCairo).  This can lead
  to problems in calling code that expects `find_package` result variables
  (e.g., `_FOUND`) to follow a certain pattern.
Call Stack (most recent call first):
  cmake/modules/FindPangoCairo.cmake:27 (find_package_handle_standard_args)
  src/CMakeLists.txt:355 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.
GrahamByrnes commented 4 years ago

I had a different failure about a week ago after updating msys2. That was specific to the gps features... it couldn't find osm-gps-map. Are you using msys2? You could try turning off the map option in the file darktable/DefineOptions.cmake Or it could be something else, and I agree that it's not ideal...

Mark-64 commented 4 years ago

Yes I am using MSYS2 and the error seems to be about _osmgpsmap_LIBRARY, so definitely gps related. mingw-w64-x86_64-osm-gps-map is installed but it seems the last MSYS2 update broke that package. How did you solve the issue ?

GrahamByrnes commented 4 years ago

Find the file DefineOptions.cmake in the folder where you've cloned darktable. Open it in a text editor... you'll find a long list of options set either ON or OFF. At about line 4, you should find a reference to maps, set to ON. Edit to OFF, save, exit and retry the build :-)

Mark-64 commented 4 years ago

Yes, it does work that way. The funny thing is that the package mingw-w64-x86_64-osm-gps-map has not been updated recently...

GrahamByrnes commented 4 years ago

Yes, strange. I mucked about for most of a week trying to downgrade... which didn't make sense given the age of the package. So I presume there is an error in cmake, since you were able to downgrade that and get it to work.

phrrk commented 4 years ago

I have not updated my MSYS2 since 10th March and latest git master builds without issues. I see that with your updated MSYS2 that cmake is version 3.17. For my older MSYS2 cmake is version 3.16 so I guess that the problem lies somewhere there.

Mark-64 commented 4 years ago

Using a new debug feature of cmake 3.17, I have created a find debog log with this command

cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_FIND_DEBUG_MODE=ON -DCMAKE_INSTALL_PREFIX=/opt/darktable ../. > log.txt 2>&1

Here is the log.txt

It seem cmake cannot find some of the components needed for osm-gps-map, for example libgdi32.a. This file in my MSYS2 installation is now located in C:\msys64\mingw64\x86_64-w64-mingw32\lib and I suspect that with the last MSYS update it has been moved, together some other libraries. Can someone with a previous MSYS2 version check where this file is?

phrrk commented 4 years ago

@Mark-64 libgdi32.a is also located in C:\msys64\mingw64\x86_64-w64-mingw32\lib with my older MSYS2 (cmake 3.16) system

ItaloCunhaBueno commented 4 years ago

Thank you both, I was having this issue trying to compile on Windows recently. I'm also getting "missing libavif" and "missing exiftool" messages, I followed the step by step in the "darktable/packaging/windows/BUILD.txt" document.

Here's the full log:

-- The CXX compiler identification is GNU 9.3.0 -- The C compiler identification is GNU 9.3.0 -- Check for working CXX compiler: C:/msys64/mingw64/bin/g++.exe -- Check for working CXX compiler: C:/msys64/mingw64/bin/g++.exe - works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Check for working C compiler: C:/msys64/mingw64/bin/gcc.exe -- Check for working C compiler: C:/msys64/mingw64/bin/gcc.exe - works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Found OpenMP_C: -fopenmp (found suitable version "4.5", minimum required is "4.5") -- Found OpenMP_CXX: -fopenmp (found suitable version "4.5", minimum required is "4.5") -- Found OpenMP: TRUE (found suitable version "4.5", minimum required is "4.5") -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE -- Looking for cpuid.h -- Looking for cpuid.h - found -- Looking for __get_cpuid -- Looking for __get_cpuid - found -- Performing Test HAVE_OMP_FIRSTPRIVATE_WITH_CONST -- Performing Test HAVE_OMP_FIRSTPRIVATE_WITH_CONST - Success -- Performing Test HAVE_THREAD_RWLOCK_ARCH_T_READERS -- Performing Test HAVE_THREAD_RWLOCK_ARCH_T_READERS - Failed -- Performing Test HAVE_THREAD_RWLOCK_ARCH_T_NR_READERS -- Performing Test HAVE_THREAD_RWLOCK_ARCH_T_NR_READERS - Failed -- Performing Test IS_SUPPORTED_PLATFORM -- Performing Test IS_SUPPORTED_PLATFORM - Success -- Is the target platform supported: 1 -- Check if the system is big endian -- Searching 16 bit integer -- Looking for sys/types.h -- Looking for sys/types.h - found -- Looking for stdint.h -- Looking for stdint.h - found -- Looking for stddef.h -- Looking for stddef.h - found -- Check size of unsigned short -- Check size of unsigned short - done -- Searching 16 bit integer - Using unsigned short -- Check if the system is big endian - little endian -- Found little endian system. Good. -- Performing Test _MSSE2 -- Performing Test _MSSE2 - Success -- Building SSE2-optimized codepaths: ON -- Win32 build detected, setting default features -- Performing Test C_COMPILERUNDERSTANDS-Wall -- Performing Test C_COMPILERUNDERSTANDS-Wall - Success -- Performing Test CXX_COMPILERUNDERSTANDS-Wall -- Performing Test CXX_COMPILERUNDERSTANDS-Wall - Success -- Performing Test C_COMPILERUNDERSTANDS-Wno-format -- Performing Test C_COMPILERUNDERSTANDS-Wno-format - Success -- Performing Test CXX_COMPILERUNDERSTANDS-Wno-format -- Performing Test CXX_COMPILERUNDERSTANDS-Wno-format - Success -- Performing Test C_COMPILERUNDERSTANDS-Wshadow -- Performing Test C_COMPILERUNDERSTANDS-Wshadow - Success -- Performing Test CXX_COMPILERUNDERSTANDS-Wshadow -- Performing Test CXX_COMPILERUNDERSTANDS-Wshadow - Success -- Performing Test C_COMPILERUNDERSTANDS-Wtype-limits -- Performing Test C_COMPILERUNDERSTANDS-Wtype-limits - Success -- Performing Test CXX_COMPILERUNDERSTANDS-Wtype-limits -- Performing Test CXX_COMPILERUNDERSTANDS-Wtype-limits - Success -- Performing Test C_COMPILERUNDERSTANDS-Wvla -- Performing Test C_COMPILERUNDERSTANDS-Wvla - Success -- Performing Test CXX_COMPILERUNDERSTANDS-Wvla -- Performing Test CXX_COMPILERUNDERSTANDS-Wvla - Success -- Performing Test C_COMPILERUNDERSTANDS-Wold-style-declaration -- Performing Test C_COMPILERUNDERSTANDS-Wold-style-declaration - Success -- Performing Test CXX_COMPILERUNDERSTANDS-Wold-style-declaration -- Performing Test CXX_COMPILERUNDERSTANDS-Wold-style-declaration - Failed -- Performing Test C_COMPILERUNDERSTANDS-Wthread-safety -- Performing Test C_COMPILERUNDERSTANDS-Wthread-safety - Failed -- Performing Test CXX_COMPILERUNDERSTANDS-Wthread-safety -- Performing Test CXX_COMPILERUNDERSTANDS-Wthread-safety - Failed -- Performing Test C_COMPILERUNDERSTANDS-Wno-unknown-pragmas -- Performing Test C_COMPILERUNDERSTANDS-Wno-unknown-pragmas - Success -- Performing Test CXX_COMPILERUNDERSTANDS-Wno-unknown-pragmas -- Performing Test CXX_COMPILERUNDERSTANDS-Wno-unknown-pragmas - Success -- Performing Test C_COMPILERUNDERSTANDS-Wno-error=varargs -- Performing Test C_COMPILERUNDERSTANDS-Wno-error=varargs - Success -- Performing Test CXX_COMPILERUNDERSTANDS-Wno-error=varargs -- Performing Test CXX_COMPILERUNDERSTANDS-Wno-error=varargs - Success -- Performing Test C_COMPILERUNDERSTANDS-Wno-format-truncation -- Performing Test C_COMPILERUNDERSTANDS-Wno-format-truncation - Success -- Performing Test CXX_COMPILERUNDERSTANDS-Wno-format-truncation -- Performing Test CXX_COMPILERUNDERSTANDS-Wno-format-truncation - Success -- Performing Test C_COMPILERUNDERSTANDS-Wno-error=address-of-packed-member -- Performing Test C_COMPILERUNDERSTANDS-Wno-error=address-of-packed-member - Success -- Performing Test CXX_COMPILERUNDERSTANDS-Wno-error=address-of-packed-member -- Performing Test CXX_COMPILERUNDERSTANDS-Wno-error=address-of-packed-member - Success -- Looking for external programs -- Found perl -- Found intltool-merge -- Missing desktop-file-validate, problems in darktable.desktop might go unnoticed -- Test-compilation of OpenCL programs is disabled. -- Found jsonschema -- Found xsltproc -- Found xmllint -- Missing exiftool -- All external programs found -- Found Gettext: C:/msys64/mingw64/bin/msgmerge.exe (found version "0.19.8.1") -- Found msgfmt to convert .po file. Translation enabled -- Performing Test RAWSPEED_CXX_DEBUG_INFO_FOR_AUTO_IS_SUPPORTED -- Performing Test RAWSPEED_CXX_DEBUG_INFO_FOR_AUTO_IS_SUPPORTED - Success -- Checking for -march=native support -- Performing Test MARCHNATIVE -- Performing Test MARCHNATIVE - Success -- Checking for -march=native support - works -- Checking for -std=c++14 support -- Performing Test COMPILER_SUPPORTS_CXX14 -- Performing Test COMPILER_SUPPORTS_CXX14 - Success -- Checking for -std=c++14 support - works -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WALL -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WALL - Success -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WEXTRA -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WEXTRA - Success -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WCAST_QUAL -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WCAST_QUAL - Success -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WEXTRA_SEMI -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WEXTRA_SEMI - Success -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WFORMAT_2 -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WFORMAT_2 - Success -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WMISSING_PROTOTYPES -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WMISSING_PROTOTYPES - Failed -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WOLD_STYLE_CASTS -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WOLD_STYLE_CASTS - Failed -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WPOINTER_ARITH -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WPOINTER_ARITH - Success -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WSTRICT_PROTOTYPES -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WSTRICT_PROTOTYPES - Failed -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WTRADITIONAL -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WTRADITIONAL - Failed -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WVLA -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WVLA - Success -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WNO_UNUSED_PARAMETER -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WNO_UNUSED_PARAMETER - Success -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WNO_FORMAT -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WNO_FORMAT - Success -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WSTACK_USAGE_4096 -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WSTACK_USAGE_4096 - Success -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WFRAME_LARGER_THAN_4096 -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WFRAME_LARGER_THAN_4096 - Success -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WLARGER_THAN_32768 -- Performing Test RAWSPEED_HAVE_CXX_FLAG_WLARGER_THAN_32768 - Success -- Looking for OpenMP -- Found OpenMP_C: -fopenmp (found suitable version "4.5", minimum required is "4.0") -- Found OpenMP_CXX: -fopenmp (found suitable version "4.5", minimum required is "4.0") -- Found OpenMP: TRUE (found suitable version "4.5", minimum required is "4.0") -- Looking for OpenMP - found (system) -- Looking for pugixml -- Found Pugixml 1.10 -- Looking for pugixml - found (system) -- Looking for JPEG -- Found JPEG: C:/msys64/mingw64/lib/libjpeg.dll.a (found version "80") -- Looking for JPEG - found -- Looking for jpeg_mem_src -- Looking for jpeg_mem_src - found -- Looking for ZLIB -- Found ZLIB: C:/msys64/mingw64/lib/libz.dll.a (found suitable version "1.2.11", minimum required is "1.2.11") -- Looking for C++ include zlib.h -- Looking for C++ include zlib.h - found -- Check size of uLongf -- Check size of uLongf - done -- Looking for Z_OK -- Looking for Z_OK - found -- Checking prototype uncompress for HAVE_ZLIB_UNCOMPRESS_PROTOTYPE -- Checking prototype uncompress for HAVE_ZLIB_UNCOMPRESS_PROTOTYPE - True -- Checking prototype zError for HAVE_ZLIB_ZERROR_PROTOTYPE -- Checking prototype zError for HAVE_ZLIB_ZERROR_PROTOTYPE - True -- Looking for uncompress -- Looking for uncompress - found -- Looking for zError -- Looking for zError - found -- Looking for ZLIB - found (system) -- Looking for malloc -- Looking for malloc - found -- Looking for free -- Looking for free - found -- Looking for posix_memalign -- Looking for posix_memalign - not found -- Looking for aligned_alloc -- Looking for aligned_alloc - not found -- Looking for _mm_malloc -- Looking for _mm_malloc - found -- Looking for _mm_free -- Looking for _mm_free - found -- Performing Test HAVE_CXX_THREAD_LOCAL -- Performing Test HAVE_CXX_THREAD_LOCAL - Success -- Found XMLLINT: C:/msys64/mingw64/bin/xmllint.exe -- The following features have been enabled:

  • OpenMP-based threading, used for parallelization of the library
  • XML reading, used for loading of data/cameras.xml
  • Lossy JPEG decoding, used for DNG Lossy JPEG compression decoding
  • ZLIB decoding, used for DNG Deflate compression decoding

-- The following OPTIONAL packages have been found:

  • Gettext
  • XMLLINT, command line XML tool, http://xmlsoft.org/ Used for validation of data/cameras.xml

-- The following RECOMMENDED packages have been found:

  • JPEG, free library for handling the JPEG image data format, implements a JPEG codec Used for decoding DNG Lossy JPEG compression
  • ZLIB (required version >= 1.2.11), software library used for data compression Used for decoding DNG Deflate compression

-- The following REQUIRED packages have been found:

  • Threads
  • OpenMP (required version >= 4.0), Open Multi-Processing, https://www.openmp.org/ Used for parallelization of the library
  • Pugixml (required version >= 1.8), Light-weight, simple and fast XML parser, http://pugixml.org/ Used for loading of data/cameras.xml

-- Performing Test COMPILER_SUPPORTS_C99 -- Performing Test COMPILER_SUPPORTS_C99 - Success -- Performing Test COMPILER_SUPPORTS_C11 -- Performing Test COMPILER_SUPPORTS_C11 - Success -- Checking for -std=c++14 support -- Checking for -std=c++14 support - works -- Found Glib 2.64.1 -- Found PkgConfig: C:/msys64/mingw64/bin/pkg-config.exe (found version "0.29.2") -- Checking for module 'gtk+-3.0' -- Found gtk+-3.0, version 3.24.14 -- Found GTK3: C:/msys64/mingw64/include/gtk-3.0;C:/msys64/mingw64/include/cairo;C:/msys64/mingw64/include;C:/msys64/mingw64/include/pango-1.0;C:/msys64/mingw64/include/fribidi;C:/msys64/mingw64/include;C:/msys64/mingw64/include/atk-1.0;C:/msys64/mingw64/include/cairo;C:/msys64/mingw64/include/pixman-1;C:/msys64/mingw64/include;C:/msys64/mingw64/include/freetype2;C:/msys64/mingw64/include;C:/msys64/mingw64/include/harfbuzz;C:/msys64/mingw64/include/libpng16;C:/msys64/mingw64/include/gdk-pixbuf-2.0;C:/msys64/mingw64/include;C:/msys64/mingw64/lib/libffi-3.2.1/include;C:/msys64/mingw64/include/glib-2.0;C:/msys64/mingw64/lib/glib-2.0/include;C:/msys64/mingw64/include (Required is at least version "3.22") -- Found LibXml2: C:/msys64/mingw64/lib/libxml2.dll.a (found suitable version "2.9.10", minimum required is "2.6") CMake Warning (dev) at C:/msys64/mingw64/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to find_package_handle_standard_args (PkgConfig) does not match the name of the calling package (LibSoup2). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): C:/msys64/mingw64/share/cmake-3.17/Modules/FindPkgConfig.cmake:45 (find_package_handle_standard_args) cmake/modules/FindLibSoup2.cmake:45 (INCLUDE) src/CMakeLists.txt:288 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

-- Checking for one of the modules 'libsoup-2.4;libsoup2' -- Checking for one of the modules 'libsoup-2.2;libsoup2' CMake Warning (dev) at C:/msys64/mingw64/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to find_package_handle_standard_args (GPHOTO2) does not match the name of the calling package (Gphoto2). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): cmake/modules/FindGphoto2.cmake:43 (find_package_handle_standard_args) src/CMakeLists.txt:298 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

-- Found GPHOTO2: C:/msys64/mingw64/lib/libgphoto2.dll.a CMake Warning (dev) at C:/msys64/mingw64/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to find_package_handle_standard_args (OPENEXR) does not match the name of the calling package (OpenEXR). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): cmake/modules/FindOpenEXR.cmake:47 (find_package_handle_standard_args) src/CMakeLists.txt:305 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

-- Found OPENEXR: C:/msys64/mingw64/lib/libIlmImf.dll.a;C:/msys64/mingw64/lib/libImath.dll.a;C:/msys64/mingw64/lib/libIex.dll.a;C:/msys64/mingw64/lib/libIlmThread.dll.a CMake Warning (dev) at C:/msys64/mingw64/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to find_package_handle_standard_args (WEBP) does not match the name of the calling package (WebP). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): cmake/modules/FindWebP.cmake:34 (find_package_handle_standard_args) src/CMakeLists.txt:315 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

-- Found WEBP: C:/msys64/mingw64/lib/libwebp.dll.a (Required is at least version "0.3.0") -- Could NOT find libavif (missing: libavif_DIR) CMake Warning (dev) at C:/msys64/mingw64/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to find_package_handle_standard_args (LENSFUN) does not match the name of the calling package (LensFun). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): cmake/modules/FindLensFun.cmake:37 (find_package_handle_standard_args) src/CMakeLists.txt:335 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

-- Found LENSFUN: C:/msys64/mingw64/lib/liblensfun.dll.a -- Found Sqlite3 3.31.1 -- Sqlite3 version 3.24 or newer -- Found GIO -- Found GThread: C:/msys64/mingw64/lib/libgthread-2.0.dll.a -- Found GModule: C:/msys64/mingw64/lib/libgmodule-2.0.dll.a CMake Warning (dev) at C:/msys64/mingw64/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to find_package_handle_standard_args (PANGOCAIRO) does not match the name of the calling package (PangoCairo). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): cmake/modules/FindPangoCairo.cmake:27 (find_package_handle_standard_args) src/CMakeLists.txt:355 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

-- Found PANGOCAIRO: C:/msys64/mingw64/lib/libpangocairo-1.0.dll.a CMake Warning (dev) at C:/msys64/mingw64/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to find_package_handle_standard_args (RSVG2) does not match the name of the calling package (Rsvg2). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): cmake/modules/FindRsvg2.cmake:27 (find_package_handle_standard_args) src/CMakeLists.txt:355 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

-- Found RSVG2: C:/msys64/mingw64/lib/librsvg-2.dll.a -- Found LibXml2: C:/msys64/mingw64/lib/libxml2.dll.a (found version "2.9.10") -- Found CURL: C:/msys64/mingw64/lib/libcurl.dll.a (found version "7.69.1") -- Found ZLIB: C:/msys64/mingw64/lib/libz.dll.a (found version "1.2.11") -- Found PNG: C:/msys64/mingw64/lib/libpng.dll.a (found version "1.6.37") -- Found TIFF: C:/msys64/mingw64/lib/libtiff.dll.a (found version "4.1.0") -- Found LCMS2: C:/msys64/mingw64/lib/liblcms2.dll.a -- Found JsonGlib CMake Warning (dev) at C:/msys64/mingw64/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to find_package_handle_standard_args (EXIV2) does not match the name of the calling package (Exiv2). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): cmake/modules/FindExiv2.cmake:50 (find_package_handle_standard_args) src/CMakeLists.txt:362 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

-- Found EXIV2: C:/msys64/mingw64/lib/libexiv2.dll.a;C:/msys64/mingw64/lib/libexpat.dll.a;C:/msys64/mingw64/lib/libiconv.dll.a -- Found OpenJPEG -- Checking for module 'iso-codes' -- Found iso-codes, version 4.4 CMake Warning (dev) at C:/msys64/mingw64/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to find_package_handle_standard_args (LIBSECRET) does not match the name of the calling package (Libsecret). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): cmake/modules/FindLibsecret.cmake:56 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) src/CMakeLists.txt:389 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

-- Found LIBSECRET: C:/msys64/mingw64/include/libsecret-1;C:/msys64/mingw64/include;C:/msys64/mingw64/lib/libffi-3.2.1/include;C:/msys64/mingw64/include/glib-2.0;C:/msys64/mingw64/lib/glib-2.0/include;C:/msys64/mingw64/include -- Found GraphicsMagick -- Performing Test GMIC_VERSION_OK -- Performing Test GMIC_VERSION_OK - Success -- Found GMIC -- Performing Test HAVE_BUILTIN_CPU_SUPPORTS -- Performing Test HAVE_BUILTIN_CPU_SUPPORTS - Success -- Does the compiler support __builtin_cpu_supports(): 1 -- Performing Test HAVE_TLS -- Performing Test HAVE_TLS - Success -- Checking for -march=native support CMake Warning (dev) at C:/msys64/mingw64/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to find_package_handle_standard_args (PkgConfig) does not match the name of the calling package (Lua53). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): C:/msys64/mingw64/share/cmake-3.17/Modules/FindPkgConfig.cmake:45 (find_package_handle_standard_args) cmake/modules/FindLua53.cmake:8 (include) src/CMakeLists.txt:591 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

-- Checking for one of the modules 'lua53;lua5.3;lua-5.3;lua' -- Lua support: Enabled -- Found Pugixml 1.10 -- Map mode: disabled -- Print mode: disabled -- Game: the good knight -- Found CURL: C:/msys64/mingw64/lib/libcurl.dll.a (found suitable version "7.69.1", minimum required is "7.56") -- Found recent CURL version to build piwigo. -- WIN32: Adding dependency files to install -- Installing lensfun database from C:/msys64/mingw64/bin/../share/lensfun/version_1

-- Found Java: C:/Program Files/Java/jre1.8.0_241/bin/java.exe (found version "1.8.0.241") found components: Runtime -- No saxon XSLT processor and/or no docbook saxon extension library found. Missing fop Xslt processor saxon not found. HTML usermanual will be built with xsltproc; expect usermanual with inconsistent screenshot and image dimensions. Missing xml2po. No localized usermanuals are build Can NOT build usermanual and Lua API documentation Missing xml2po Can NOT update usermanual translations Missing po4a-translate. Can NOT create translated manpages Missing po4a-updatepo. Can NOT update manpage translations -- Configuring done -- Generating done -- Build files have been written to: C:/msys64/home/Italo/darktable/build

todd-prior commented 4 years ago

Find the file DefineOptions.cmake in the folder where you've cloned darktable. Open it in a text editor... you'll find a long list of options set either ON or OFF. At about line 4, you should find a reference to maps, set to ON. Edit to OFF, save, exit and retry the build :-)

Thanks Graham same conditions and issue....I guess this means the map feature won't work...I don't really use it anyway but I guess it would be nice t fix or clean this up somehow....

todd-prior commented 4 years ago

@GrahamByrnes Any chance you know what use Darktable Profiling is?? mine is set to off...just wondering

GrahamByrnes commented 4 years ago

Hopefully someone who cares a lot about maps will make a fuss with msys... It's been broken for at least 2 weeks now.

Profiling? A priori no idea. Related to white balance, noise profiles, or the program itself?

todd-prior commented 4 years ago

@GrahamByrnes Any chance you know what use Darktable Profiling is?? mine is set to off...just wondering

@TurboGit would you know what the DarktableProfiling option is in the DefineOptions file for building DT??

option(USE_UNITY "Use libunity to report progress in the launcher" OFF) option(USE_OPENMP "Use openmp threading support." ON) option(USE_OPENCL "Use OpenCL support." ON) option(USE_GRAPHICSMAGICK "Use GraphicsMagick library for image import." ON) option(USE_DARKTABLE_PROFILING OFF)**** option(CUSTOM_CFLAGS "Don't override compiler optimization flags." OFF) option(BUILD_USERMANUAL "Build all the versions of the usermanual." OFF) option(BINARY_PACKAGE_BUILD "Sets march optimization to generic" OFF)

Hopefully someone who cares a lot about maps will make a fuss with msys... It's been broken for at least 2 weeks now.

Profiling? A priori no idea. Related to white balance, noise profiles, or the program itself?

GrahamByrnes commented 4 years ago

Oh I see. Nope, still no idea. Sounds like a debug tool, but just an empty guess.

phrrk commented 4 years ago

I have now succeeded in getting darktable to build with the latest MSYS2 and with mapping enabled. The simplest way is to add

/mingw64/x86_64-w64-mingw32

to your $PATH in MSYS2 in your .bash_profile file. Alternatively add the following

LIST(APPEND CMAKE_PREFIX_PATH /mingw64/x86_64-w64-mingw32)

to the CMakeLists.txt file in ~/darktable. There is a win32 specific part begining at line 130. Either of these approaches make cmake look in /mingw64/x86_64-w64-mingw32/lib (note cmake adds the /lib) to find libraries. I guess that this is just a hack and that there must be a better solution, but I don't know anything about cmake. It seems odd that the previous version of cmake managed to find the libraries ok.

phrrk commented 4 years ago

I think that I have found the problem. This appears in the cmake 3.17 release notes:

When using MinGW tools, the find_library() command no longer finds .dll files by default. Instead, it expects .dll.a import libraries to be available.

Looking back at my old MSYS2 setup with cmake 3.17 the problem libraries such as libgdi32 are actually found in C:/Windows/System32/ (which is in the default search path) as libgdi32.dll and not from C:/msys64/mingw64/x86_64-w64-mingw32/lib where they are static library .a files. Not sure what the best way forward is.

GrahamByrnes commented 4 years ago

I tried quickly with adding the path to my CMakeLists.txt file... but I didn't pay attention to the bit about the win32 specific part. Just putting the LIST(APPEND... command up the top under the other LIST(APPEND...

That didn't work for me. I tried again putting it in the proper place, but this time without deleting the build folder, which seems in fact to be necessary (but very slow, of course). I'm still rebuilding with the previous set-up, with the maps option turned off, but I'm past the critical 50-ish % where it bombs out.

Hopefully someone else will try it more cautiously...

phrrk commented 4 years ago

@GrahamByrnes, yes you need to clear out the build folder, or cmake uses the CMakeCache.txt file for info about library locations etc.

phrrk commented 4 years ago

Further to my ealier suggesting for overcoming the windows build problem the second suggestion doesn't work! Cmake doesn't understand Unix style paths in this context. What does work is: LIST(APPEND CMAKE_PREFIX_PATH C:/msys64/mingw64/x86_64-w64-mingw32)

However this is no good as a general solution as it hard codes in the installation directory of MSYS. Unless someone has a better idea I think the solution is to add /mingw64/x86_64-w64-mingw32 to $PATH in your .bash_profile

peterbud commented 4 years ago

Unless someone has a better idea I think the solution is to add /mingw64/x86_64-w64-mingw32 to $PATH in your .bash_profile

That was how I have built the 3.0.2

I try to have some time to look into the packaging of OSMGPSMAP, it has some specific issue with the packaging which prevents new cmake to find the libraries.

That was the only dependency which was not found during the build, right?

phrrk commented 4 years ago

I have submitted PR #4759 as an alternative approach. It leaves cmake behaviour exactly as it was.

houz commented 4 years ago

I merged the PR about looking for DLLs, but having osmgpsmap fixed in msys wouldn't be that bad either :-)

peterbud commented 4 years ago

I'm not sure that simply adding the DLL suffix is the right approach.

Consider the following:

For me it seems that the new cmake is not considering anymore the mingw64/x86_64-w64-mingw32/ library search path on MINGW64 systems, and this should be fixed first place.

Any thoughts?

phrrk commented 4 years ago

I don't think that cmake ever did look in mingw64/x86_64-w64-mingw32/. I did try to run cmake 3.16 in debug mode to see where it was searching, but it doesn't seem to be as informative as with version 3.17.

The release notes for cmake 3.17 state that with mingw it no longer looks for dll's. Below are a couple of lines from the CMakeCache.txt file from my earlier MSYS with cmake 3.16 clearly showing that it was using the dlls and not the corresponding .a libraries in mingw64/x86_64-w64-mingw32/.

//Path to a library. pkgcfg_lib_OSMGPSMAP_setupapi:FILEPATH=C:/Windows/System32/setupapi.dll

//Path to a library. pkgcfg_lib_OSMGPSMAP_shell32:FILEPATH=C:/Windows/System32/shell32.dll

I haven't checked thoroughly, but I don't think anything other than OSMGPSMAP is affected by this change. So my feeling is that with the DLL suffix added cmake 3.17 is behaving like the older versions did. What puzzles me is why these libraries that OSMGPSMAP links to are not available as .dll.a versions in the normally searched paths, but I am sure there is a good reason.

mbaumgae commented 4 years ago

The changes in cmake 3.17 , which changes the observed behavior compared to 3.16 is that one:

https://gitlab.kitware.com/cmake/cmake/-/merge_requests/4248/diffs

They didn't change the search path, but the library suffix. Basically the PR from @phrrk restores the behavior of cmake 3.16.

Mark-64 commented 4 years ago

I confirm the last PR solves the issue when building from MinGW console and also under Eclipse IDE

todd-prior commented 4 years ago

Thanks to everyone that worked on this...I’m not that organized but might like to use the Map feature soon ....and any glitches during the build process are disconcerting so thank you to all those that worked to sort this out...       Sent from Mail for Windows 10  

From: Marco Sent: April 20, 2020 1:33 AM To: darktable-org/darktable Cc: Prior,Todd; Comment Subject: Re: [darktable-org/darktable] Can't build anymore on Windows (#4692)

 

I confirm the last PR solves the issue when building from MinGW console and also under Eclipse IDE — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

kmilos commented 4 years ago

There is an interesting comment a propos the workaround from the cmake dev suggesting not to use find_library() in this case

Mark-64 commented 4 years ago

Fixed