Some C API functions not exported on Windows
Yes, we can close this. Discussion can continue in the respective GitHub issue about the C-Wrapper: https://github.com/lensfun/lensfun/issues/502
The declaration in the header file was slightly different to the definition in the source file. I think this is already fixed for lf_db_read_timestamp(). The implementation of lf_mount_copy() is missing. The lf_db_save and load functions have to be adapted the new lfDatabase class API. The concept of the load and save functions with its respective overloads is still a bit messy, though.
I think the problem could be related to the following part in the top-level CMakeLists.txt file: # overwrite some folders before GNUInstallDirs is loaded IF (WIN32 AND NOT DEFINED CMAKE_INSTALL_DATAROOTDIR) SET(CMAKE_INSTALL_DATAROOTDIR "$ENV{ALLUSERSPROFILE}" CACHE PATH "read-only architecture-independent data root (share)") ENDIF() On Windows, Lensfun wants to install the database into %ALLUSERSPROFILE% and we want to ignore the usual CMAKE_INSTALL_DATAROOTDIR path for this. I cannot easily reproduce...
Tests not compiling if OpenMP not found
Thanks, should be fixed in master now.
To be more precise, the interface of the C wrapper does not match the functionality of the C++ class. The lfDatabase load/save functionality and the respective C wrapper function and parameters need some optimisation and alignments. So there will be a lf_db_load_data and lf_db_save_data function in the end :)
Ok, think I got it. The declaration in the header and the implementations do not match. It also looks like some of the C-API functions of lfDatabase are not correct anymore and should be removed. e.g lf_db_load_data()