-
Notifications
You must be signed in to change notification settings - Fork 259
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot build Fluidsynth with libsndfile on Windows. #1422
Comments
The symbol ENABLE_SNDFILE_WINDOWS_PROTOTYPES has been deprecated since v1.1.0: |
@carlo-bramini Which version of libsndfile where you using, when you experienced the build error? |
The The latest libsndfile version having |
I don't know exactly what's going on with EDIT: perhaps, the comment near |
That would be a real bug if it could be reproduced, which I can't. I've just configured fluidsynth current master in Linux, enabling libsndfile, installed libsndfile v1.1.0 and cmake correctly rejects it:
And the same can be observed in Azure pipelines when building for Windows:
|
I'm using CYGWIN:
this pkg-config:
This CMake:
and x86_64-w64-mingw32 cross compiler version 12.4.0, which is the latest available for this platform.
As you can see, it prints:
But this message also looks interesting:
Perhaps, the cross compiling is the cause. |
IMO, keeping the now unnecessary I'd keep this open as a reminder to update libsndfile used in Windows CI. |
The reason for @carlo-bramini's succeeded build where libsndfile 1.0.31 is found and used for building fluidsynth's master is a non functional pkg-config. And this comes from our own FindSndFile.cmake depending on pkg-config for reading the version, and being too nice when it can't be retrieved. And why we have a FindSndFile.cmake script in the first place? because #1211, and because libsndfile's cmake buildsystem was broken until @FtZPetruska was able to contribute fixes to that project, which were published in libsndfile v1.2.1 That was the reason for bumping LIBSNDFILE_MINIMUM_VERSION. Now we should be able to remove our FindSndFile.cmake script and its dependencies: FindFLAC.cmake, FindOGG.cmake, FindMPG123.cmake, Findmp3lame.cmake and FindVorbis.cmake. One problem I've detected is that some Linux distros (debian, red hat/fedora) still fail to package libsndfile with cmake config scripts. But it is not our place to workaround that, and we may open bug reports on the distros about it. At the end, they will find the problem when building a newest fluidsynth version. |
It looks like there is an additional side effect to this.
If somebody will be interested, it is possible to retrieve those precompiled CYGWIN packages for i686 and x86_64 from my repository here:
And I also verified with
But I'm 100% sure that libsndfile includes them instead. |
libsndfile must be found and consumed through the cmake file |
Building Fluidsynth with support for libsndfile with MinGW stops with this error:
According to the description inside
sndfile.h
, you must activatesf_wchar_open()
by declaringENABLE_SNDFILE_WINDOWS_PROTOTYPES
somewhere:But this is missing.
The text was updated successfully, but these errors were encountered: