released vkdt 0.5.0

Great job @hanatos !

I’m looking to try it out properly on Windows (MSYS2 build). Everything seems to be recognized, except…

~/vkdt/bin$ make -j6
(...)
mkdir -p ../built/ext/rawspeed
cd ../built/ext/rawspeed; cmake ../../../ext/rawspeed -DBUILD_TESTING=0 -DCMAKE_BUILD_TYPE=release -DRAWSPEED_ENABLE_LTO=off -DRAWSPEED_ENABLE_DEBUG_INFO=off -DBUILD_BENCHMARKING=off -DBUILD_FUZZERS=off -DBUILD_TOOLS=off
-- Building for: Ninja
(...)
-- Configuring done
-- Generating done
-- Build files have been written to: C:/msys64/home/Roel/vkdt/built/ext/rawspeed
mkdir -p ../built/ext/rawspeed
make -C ../built/ext/rawspeed
make[3]: Entering directory '/home/Roel/vkdt/built/ext/rawspeed'
make[3]: *** No targets specified and no makefile found.  Stop.
make[3]: Leaving directory '/home/Roel/vkdt/built/ext/rawspeed'
make[2]: *** [Makefile:27: ../built/ext/rawspeed/librawspeed.a] Error 2
make[2]: Leaving directory '/home/Roel/vkdt/ext'
make[1]: *** [Makefile:57: ext] Error 2
make[1]: Leaving directory '/home/Roel/vkdt'
make: *** [Makefile:7: all] Error 2

I’m not entirely sure what to do here.

1 Like

:+1: :+1:
@Thanatomanic , I’d like to know how you get on with a Windows build - I’m a windows user and would like to try vkdt. The Way Forward…? :wink:
Happy New Year everyone!

missing “ninja” in your build env? just a guess.

Here is what I get when I try on Windows…

Package glfw3 was not found in the pkg-config search path.
Perhaps you should add the directory containing glfw3.pc' to the PKG_CONFIG_PATH environment variable Package 'glfw3', required by 'virtual:world', not found Package glfw3 was not found in the pkg-config search path. Perhaps you should add the directory containing glfw3.pc’
to the PKG_CONFIG_PATH environment variable
Package ‘glfw3’, required by ‘virtual:world’, not found
Package glfw3 was not found in the pkg-config search path.
Perhaps you should add the directory containing glfw3.pc' to the PKG_CONFIG_PATH environment variable Package 'glfw3', required by 'virtual:world', not found Package glfw3 was not found in the pkg-config search path. Perhaps you should add the directory containing glfw3.pc’
to the PKG_CONFIG_PATH environment variable
Package ‘glfw3’, required by ‘virtual:world’, not found
make[1]: Entering directory ‘/home/user/vkdt’
Makefile:56: [ext (Makefile)]
mkdir -p built/
bin/config.mk.defaults:51: [ext (Makefile)]
bin/config.mk.defaults:51: [ext (Makefile)]
bin/config.mk.defaults:51: [ext (Makefile)]
Package glfw3 was not found in the pkg-config search path.
Perhaps you should add the directory containing glfw3.pc' to the PKG_CONFIG_PATH environment variable Package 'glfw3', required by 'virtual:world', not found bin/config.mk.defaults:51: [ext (Makefile)] Package glfw3 was not found in the pkg-config search path. Perhaps you should add the directory containing glfw3.pc’
to the PKG_CONFIG_PATH environment variable
Package ‘glfw3’, required by ‘virtual:world’, not found
bin/config.mk.defaults:52: [ext (Makefile)]
bin/config.mk.defaults:52: [ext (Makefile)]
bin/config.mk.defaults:52: [ext (Makefile)]
Package glfw3 was not found in the pkg-config search path.
Perhaps you should add the directory containing glfw3.pc' to the PKG_CONFIG_PATH environment variable Package 'glfw3', required by 'virtual:world', not found bin/config.mk.defaults:52: [ext (Makefile)] Package glfw3 was not found in the pkg-config search path. Perhaps you should add the directory containing glfw3.pc’
to the PKG_CONFIG_PATH environment variable
Package ‘glfw3’, required by ‘virtual:world’, not found
Makefile:13: [ext (Makefile)]
Makefile:57: [ext (Makefile)]
make -C ext/
make[2]: Entering directory ‘/home/user/vkdt/ext’
mkdir -p …/built/ext/rawspeed
cd …/built/ext/rawspeed; cmake …/…/…/ext/rawspeed -DBUILD_TESTING=0 -DCMAKE_BUILD_TYPE=release -DRAWSPEED_ENABLE_LTO=off -DRAWSPEED_ENABLE_DEBUG_INFO=off -DBUILD_BENCHMARKING=off -DBUILD_FUZZERS=off -DBUILD_TOOLS=off
CMake Error at C:/msys64/ucrt64/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake:48 (message):
Could not find compiler set in environment variable CXX:
clang++.
Call Stack (most recent call first):
CMakeLists.txt:17 (project)
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
– Configuring incomplete, errors occurred!
See also “C:/msys64/home/user/vkdt/built/ext/rawspeed/CMakeFiles/CMakeOutput.log”.
make[2]: *** [Makefile:15: …/built/ext/rawspeed/Makefile] Error 1
make[2]: Leaving directory ‘/home/user/vkdt/ext’
make[1]: *** [Makefile:57: ext] Error 2
make[1]: Leaving directory ‘/home/user/vkdt’
make: *** [Makefile:7: all] Error 2>

Try installing this first: Package: mingw-w64-x86_64-glfw - MSYS2 Packages

heya, nice to see you trying this roel :slight_smile: unfortunately i don’t know pretty much anything about windows.

there has been this thread and there is a fork trying to build with mingw (but i can’t even tell how that relates to msys2). probably something relating to posix dirent is relevant for both cases.

i don’t know about ninja, i haven’t been using it. maybe that’s a default/fallback now? this here seems to indicate you should be able to somehow supply -G or set the CMAKE_GENERATOR environment variable and maybe just set it to make?

the build process aside, i expect some compatibility issues on windows, off the top of my head:

  • src/core/fs.h needs platform specific implementations for standard things like path handling. in particular detecting the full path of the executable is necessary so vkdt can pick up the data and modules directories
  • in a few places i’m depending on a gnu extension to realpath which also fills in the expanded real path (replacing symlink to directories by the real name) even if the resulting filename does not point to an existing file. probably realpath should have a fs_realpath platform specific implementation too.
  • vkdt uses symlinks to create collections of tags. probably there’s no such thing on windows.

Windows has had symlinks since Win2k or so. But only with NTFS filesystems, I believe.

oh, it seems you are right. you can tell i haven’t used windows for productive work since 2000 or so (reluctantly so). if that works with interface calls like unlink() or symlink() there should be “no problem™”.

Thanks. I know enough to be dangerous :grin:. or so my dad used to say. I will give that a try and see where that leaves me… Thx

Looks like slowly and silently vkdt is taking over the lead. Many tools are still missing but some are already better than in old darktable… time flies…

2 Likes

Got rid of the first part… now stuck here…

make -C … all
make[1]: Entering directory ‘/home/prior/vkdt’
Makefile:56: [ext (Makefile)]
mkdir -p built/
bin/config.mk.defaults:51: [ext (Makefile)]
bin/config.mk.defaults:51: [ext (Makefile)]
bin/config.mk.defaults:51: [ext (Makefile)]
bin/config.mk.defaults:51: [ext (Makefile)]
bin/config.mk.defaults:52: [ext (Makefile)]
bin/config.mk.defaults:52: [ext (Makefile)]
bin/config.mk.defaults:52: [ext (Makefile)]
bin/config.mk.defaults:52: [ext (Makefile)]
Makefile:13: [ext (Makefile)]
Makefile:57: [ext (Makefile)]
make -C ext/
make[2]: Entering directory ‘/home/prior/vkdt/ext’
mkdir -p …/built/ext/rawspeed
cd …/built/ext/rawspeed; cmake …/…/…/ext/rawspeed -DBUILD_TESTING=0 -DCMAKE_BUILD_TYPE=release -DRAWSPEED_ENABLE_LTO=off -DRAWSPEED_ENABLE_DEBUG_INFO=off -DBUILD_BENCHMARKING=off -DBUILD_FUZZERS=off -DBUILD_TOOLS=off
CMake Error at C:/msys64/ucrt64/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake:48 (message):
Could not find compiler set in environment variable CXX:

clang++.

Call Stack (most recent call first):
CMakeLists.txt:17 (project)

CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
– Configuring incomplete, errors occurred!
See also “C:/msys64/home/prior/vkdt/built/ext/rawspeed/CMakeFiles/CMakeOutput.log”.
make[2]: *** [Makefile:15: …/built/ext/rawspeed/Makefile] Error 1
make[2]: Leaving directory ‘/home/prior/vkdt/ext’
make[1]: *** [Makefile:57: ext] Error 2
make[1]: Leaving directory ‘/home/prior/vkdt’
make: *** [Makefile:7: all] Error 2

This is a hint on what to do next :wink:

I’ve packaged this for nixpkgs and will open a PR for it shortly

I was trying from the ucrt terminal as that works nicely with dark table. Should I try clang term instead and also check that the path is set properly??

I’ll poke around a bit and see what I can do

It seems to me that you just need to install clang/clang++ in your terminal. No need to switch environment.

Guys, can we share noise profiles or create a database or something like that? Or is that already simplified?

I will try…the first thing I really dont ezactly understand are all these options. I assumed each was using a different compiler or well really I don’t understand it… I just know I had downloaded all the ucrt packages and built DT from that terminal when it was updated to use that… but what if I open the clang option here… is that going to use clang?? I think I still get the same results…

image

Got it to compile just fine here on Fedora 37, it’s heckin fast on my RX 6900XT. A little different to work with than traditional darktable or RawTherapee.

1 Like

Inching along…got past all that and fairly far along but hit a wall here…

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:

  • Pugixml (required version >= 1.8), Light-weight, simple and fast XML parser, http://pugixml.org/
    Used for loading of data/cameras.xml

– Configuring done
– Generating done
– Build files have been written to: C:/msys64/home/user/vkdt/built/ext/rawspeed
mkdir -p …/built/ext/rawspeed
/bin/make -C …/built/ext/rawspeed
make[2]: Entering directory ‘/home/prior/vkdt/built/ext/rawspeed’
make[2]: *** No targets specified and no makefile found. Stop.
make[2]: Leaving directory ‘/home/prior/vkdt/built/ext/rawspeed’
make[1]: *** [Makefile:27: …/built/ext/rawspeed/librawspeed.a] Error 2
make[1]: Leaving directory ‘/home/prior/vkdt/ext’
make: *** [Makefile:57: ext] Error 2

You and I are now facing the same wall.

As for the confusion in environments: it’s all about which standards are used by default, and a little about compatibility. I don’t think it matters a lot if you’re just compiling for yourself. More info here: Environments - MSYS2