-
Notifications
You must be signed in to change notification settings - Fork 6.5k
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
[libmysofa] Adding port #38368
[libmysofa] Adding port #38368
Conversation
IMO the CMake changes are to invasive. Output names and exported target names can be adjusted with properties. CMake config can be moved by |
Yeah I can do that. I always forget about the arguments to config_fixup |
Looks like the CI here failed connecting to an agent |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you please help sync the CMake
config and __declspec(dllexport)
patch to upstream?
Unless the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The port usage tests pass with the following triplets:
- x64-windows
This PR fetches from a separate fork, and since it introduces a significant change, I think we need to wait for upstream to accept it. |
Co-authored-by: Kai Pastor <dg0yt@darc.de>
Friendly bump 😸 Any other feedback? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The port usage tests pass with the following triplets:
- x64-linux
- x64-windows
- x64-windows-static
- x86-windows
You must test with a static triplet, due to #38368 (comment) Also not satisfied with #38368 (comment) |
Thanks for the reminder, I tested the triplets. And the
I re-opened the thread. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything except the skip-install-sample.patch
looks good to me.
I could use some clarification on how these sofa files are used. For example, is it expected that they will be present in both debug and release builds or only for release.
It looks like its failing in downstream projects because the generate cmake targets file is injecting something like:
foreach(_cmake_target IN LISTS _cmake_import_check_targets)
foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
if(NOT EXISTS "${_cmake_file}")
message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
\"${_cmake_file}\"
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
\"${CMAKE_CURRENT_LIST_FILE}\"
but not all the files it references.")
endif()
endforeach()
endforeach()
I believe this happens as a consequence of install(EXPORT...)
They are data files that represent head relative transfer functions. There is no difference between debug and release. Libmysofa is for parsing these files so you could think of the sofa files here as samples/test data. A library user would most likely want to read their own sofa files which is why I opted to simply skip installing them. Would a better solution be a patch that just skips exporting but still installs the default sofa files? |
If the files don't need to be exported then I think skipping the export would solve the issue for downstream projects along with deleting the sofa files so that vcpkg doesn't complain about files living in Don't forget to mark this PR "Ready for Review" when you are ready so I know to check back in. |
The actual problem with |
Oh shoot I didn't notice that. That makes a lot more sense. Thanks |
Coming back to this I'm a bit confused. We do still want to export the libmysofa library target and the .sofa files are just installed with |
…g them from debug/share
Yeah if I just delete the file my downstream project complains when it tries to install the libmysofa package just as @dg0yt described. Only happens on Windows 🤔
Sorry, I clearly made some bad assumptions about what exactly was going on here |
Thank you @Honeybunch for the contribution and thank you @dg0yt for all the assistance! |
Thanks everyone. Sorry it took so long to get this one ironed out 😩 |
find_package
calls are REQUIRED, are satisfied byvcpkg.json
's declared dependencies, or disabled with CMAKE_DISABLE_FIND_PACKAGE_Xxx.vcpkg.json
matches what upstream says.vcpkg.json
matches what upstream says../vcpkg x-add-version --all
and committing the result.This is a dependency that steam-audio needs and I'm trying to get steam-audio ported here too 😄