darktable windows insider program 12/12

Make a ticket on GitHub and see what the devs think of it. It’s at least the proper way to report bugs :slight_smile:

@wpferguson I noticed a few things from my own (pretty simple follow-the-instructions) build environment.

The OpenEXR dependency in src/CMakeLists.txt got raised from 2.x to 3.0 somewhere during the DT 3.8 cycle. But there is no OpenEXR msys2 package. Changing the version requirement from 3.0 to 2.5 seems to compile and build fine, though. Am I doing something stupid, or can the version requirement be lowered back to 2.5?

Something similar with libheif. The latest msys2 packages list themselves as being version 1.12.0.0, while src/CMakeLists.txt searches for 1.9.0. It appears that the check sees 1.12.0.0 as lower than 1.9.0. If I change the version requirement to 1.9.0.0 it still doesn’t work.
But if I change the version requirement to 1.12.0.0, it builds fine.

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 7c1155d30..75bc5e7a5 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -325,7 +325,7 @@ if(USE_CAMERA_SUPPORT)
 endif(USE_CAMERA_SUPPORT)

 if(USE_OPENEXR)
-  find_package(OpenEXR 3.0 CONFIG)
+  find_package(OpenEXR 2.5 CONFIG)
   if(TARGET OpenEXR::OpenEXR)
     set(OpenEXR_LIBRARIES OpenEXR::OpenEXR)
   else()
@@ -359,11 +359,11 @@ if (USE_AVIF)
 endif()

 if(USE_HEIF)
-  find_package(libheif 1.9.0 CONFIG)
+  find_package(libheif 1.12.0.0 CONFIG)
   if(TARGET heif)
     list(APPEND LIBS heif)
   else()
-    find_package(libheif 1.9.0)
+    find_package(libheif 1.12.0.0)
     if(TARGET libheif::libheif)
       list(APPEND LIBS libheif::libheif)
     endif()

Am I wrong in doing it this way, or are there better msys2 packages available somewhere? (I don’t really feel like building OpenEXR myself in msys2 to be honest :wink: ).

The source builds on MSYS2 MINGW64 ootb, no changes are necessary. The versions in CMakeLists.txt are recommended, not required (you will see that mentioned explicitly for some other libs).

You can compare to the log of a nightly build that uses a vanilla MSYS2 installation:

CMake Warning at src/CMakeLists.txt:328 (find_package):
  Could not find a configuration file for package "OpenEXR" that is
  compatible with requested version "3.0".

  The following configuration files were considered but not accepted:

    D:/a/_temp/msys64/mingw64/lib/cmake/OpenEXR/OpenEXRConfig.cmake, version: 2.5.7



-- Found OpenEXR: D:/a/_temp/msys64/mingw64/lib/libIlmImf.dll.a;D:/a/_temp/msys64/mingw64/lib/libImath.dll.a;D:/a/_temp/msys64/mingw64/lib/libIex.dll.a;D:/a/_temp/msys64/mingw64/lib/libIlmThread.dll.a  
-- Found WebP: D:/a/_temp/msys64/mingw64/lib/libwebp.dll.a (Required is at least version "0.3.0") 
CMake Warning at src/CMakeLists.txt:362 (find_package):
  Could not find a configuration file for package "libheif" that is
  compatible with requested version "1.9.0".

  The following configuration files were considered but not accepted:

    D:/a/_temp/msys64/mingw64/lib/cmake/libheif/libheif-config.cmake, version: 1.12.0.0



-- Found libheif: D:/a/_temp/msys64/mingw64/lib/libheif.dll.a (found suitable version "1.12.0", minimum required is "1.9.0")

These are warnings, not errors. At the end, it says “Found” for both libheif and OpenEXR.

I know they are optional… but a few simple changes seems to make them working, while if you follow the build instructions they will be skipped (so you get a DT build without heic/av1 support and without EXR support I guess).

No, you don’t, they are found and used just fine as I demonstrated above for full support. Have you inspected the log I have linked to?

The if-then-else logic is: try to find exact version through CONFIG mode first, else (throw a warning), use a suitable version through regular find_package().

No changes are needed whatsoever.

Ah, I didn’t look that far, i just responded to the messages during configure.

No questions left from me, then