Make spdlog and fmt mutually exclusive and support -Werror=missing-braces#419
Make spdlog and fmt mutually exclusive and support -Werror=missing-braces#419axsaucedo merged 3 commits intoKomputeProject:masterfrom
Conversation
axsaucedo
left a comment
There was a problem hiding this comment.
Thank you for the contribution, just getting around - would you be able to provide more context on the comments? + also re-commit with the DCO
Thanks for the feedback. This PR got muddied because I needed to make changes to my fork to make the logger work in my project. I am happy to split it up into two PRs if necessary. The changes are:
For (2), the problem is if I am using spdlog and kompute in my project, if Kompute uses fmt directly (rather than the one inside spdlog), I will get duplicate symbol errors. This error comes from the code including two different versions of fmt. Therefore, I changed Kompute to disable fmt if spdlog is enabled and instead use the fmt headers inside spdlog. This avoids the duplicate symbols by having the same headers, which have Edit: I updated the commits with the DCO. |
axsaucedo
left a comment
There was a problem hiding this comment.
Ok that makes sense, I have updated the title - we can move forward with single PR
axsaucedo
left a comment
There was a problem hiding this comment.
Seems python tests are failing on build - once updated we can merge
Signed-off-by: zachferguson <zach.ferguson@clo3d.com> Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com>
Signed-off-by: zachferguson <zach.ferguson@clo3d.com> Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com>
Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com>
I think I fixed this now. It seems that you use fmt for more than logging, so when the logger is disabled, you still need to link against fmt. I made it so disabling the logger also implies using fmt to fix this. |
axsaucedo
left a comment
There was a problem hiding this comment.
Good catch - all clear now, thanks for covering these corner cases
…aces (KomputeProject#419) * Update bin2h.cmake to avoid -Werror=missing-braces Signed-off-by: zachferguson <zach.ferguson@clo3d.com> Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com> * Use the fmt inside spdlog if using spdlog Signed-off-by: zachferguson <zach.ferguson@clo3d.com> Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com> * Fix python build by linking fmt when KOMPUTE_OPT_LOG_LEVEL_DISABLED Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com> --------- Signed-off-by: zachferguson <zach.ferguson@clo3d.com> Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com>
* add datatype enum to python module (#404) * add datatype enum to python module Signed-off-by: koubaa <koubaa@github.com> * add datatype enum to python module Signed-off-by: koubaa <koubaa@github.com> * add doc Signed-off-by: koubaa <koubaa@github.com> --------- Signed-off-by: koubaa <koubaa@github.com> Co-authored-by: koubaa <koubaa@github.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Add noexcept to all constructors to explicitly state no exception thrown #44 (#411) * Sequence con/destructor is noexcept Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Operations are noexcept Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Algorithm is noexcept Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> --------- Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Remove copy operations from classes in Kompute (#412) * Operations are non-copy As for Issue #20, operations should be non-copy. Instead of creating a base NonCopyable class, I prefer to keep this inside the classes themselves, so that we do not create new inherited structures. Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Make Algorithm uncopyable Same as previous commit Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Image is non-copy Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Manager is non-copy Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Memory is non-copy Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Sequence is non-copy Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> * Tensor is non-copy Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> --------- Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Fix noexcept missing from OpMemoryBarrier (#413) Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * 414 support for 1 4 headers (#415) * Added guard for vk 1.4 headers Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * CI test for 1.4 compatibility Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> CI test for 1.4 compatibility Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> CI test for 1.4 compatibility Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> CI test for 1.4 compatibility Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> CI test for 1.4 compatibility Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> CI test for 1.4 compatibility Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Updated cast to match vk namespace Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Updated cast to match vk namespace Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Updated debugMessageCallback func to vk:: ns Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Updated debugMessageCallback func to vk:: ns Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> --------- Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Fix syntax error (MSVC) in Manager.cpp (#418) Change VKAPI_PTR to VKAPI_ATTR Tested only on: MSVC version: `Microsoft (R) C/C++ Optimizing Compiler Version 19.43.34808 for x86` VulkanSDK version: 1.4.309.0 Latest kompute commit: 299b11f Signed-off-by: jamorphy <maps@jax2.net> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Fix compile error in android (#423) Signed-off-by: zlaazlaa <2889827787@qq.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Make spdlog and fmt mutually exclusive and support -Werror=missing-braces (#419) * Update bin2h.cmake to avoid -Werror=missing-braces Signed-off-by: zachferguson <zach.ferguson@clo3d.com> Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com> * Use the fmt inside spdlog if using spdlog Signed-off-by: zachferguson <zach.ferguson@clo3d.com> Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com> * Fix python build by linking fmt when KOMPUTE_OPT_LOG_LEVEL_DISABLED Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com> --------- Signed-off-by: zachferguson <zach.ferguson@clo3d.com> Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Add missing eDeviceAndHost MemoryType to the Python Bindings (#424) * Add eDeviceAndHost to Python bindings for MemoryTypes. Update docstrings so that the build works. Signed-off-by: Robert Quill <robert.quill@imgtec.com> * Typo fix Signed-off-by: Robert Quill <robert.quill@imgtec.com> --------- Signed-off-by: Robert Quill <robert.quill@imgtec.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * feat: Add log library linking to Android build (#428) Signed-off-by: zlaazlaa <2889827787@qq.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Fix python SpecConst and PushConst bugs (#430) * Fix push const inconsistent type bug Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Fix push const bug Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Added test to consts Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Added tests for const types@ Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Added test to consts Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Added test to consts Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> * Added test to consts Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> --------- Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Update Python Matmul examples (#434) * feat: Add utility function to compile GLSL source to SPIR-V Signed-off-by: n-jay <nuwanjayawardene@gmail.com> * refactor: Replace kp.Shader.compile_source with utility function compile_source Signed-off-by: n-jay <nuwanjayawardene@gmail.com> --------- Signed-off-by: n-jay <nuwanjayawardene@gmail.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * update internal gtest to v1.17.0 (#437) Signed-off-by: Matthias Möller <m_moeller@live.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Fix incorrect creation of python arrays in Tensor.data (#440) Previously the Python array would just be filled with the first element of the data repeated to fill the array. Fixes a number of the Python tests. Signed-off-by: Robert Quill <robert.quill@imgtec.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Updated to pybind 3.0.0 (#431) Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Clarify status of llama.cpp in README (#446) Updated description for llama.cpp to indicate it is now decommissioned. Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * adding kompute example using debug printf Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * adding link to the draft article Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Updating the readme for the debug statement example Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Adding in the example shader, gitignore targets it so needed to force in Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Modifying the comment to include bytes in the comment on message length Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Correcting the readme for spelling mistakes in vulkan_ext_printf Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Fix family queue selection in tests (#448) * checks if given family queue has compute capability Signed-off-by: Matthias Möller <m_moeller@live.de> * test will search for queues with compute capabilities Signed-off-by: Matthias Möller <m_moeller@live.de> --------- Signed-off-by: Matthias Möller <m_moeller@live.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * removes compile definition defining for spdlog target (#449) spdlog is not build when the CMake option "KOMPUTE_OPT_USE_BUILT_IN_SPDLOG" is set to false. When activating spdlog for logging via CMake option "KOMPUTE_OPT_USE_SPDLOG", CMake will deliver an error, as the current CMake file tries to add a definition to the spdlog target. Defining the compiler definition "SPDLOG_ACTIVE_LEVEL" has no effect on spdlog itself, it just has an effect on spdlog target consumers. Therefore, it can be removed so that the project can be build with the mentioned CMake options. Signed-off-by: Matthias Möller <m_moeller@live.de> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * adding kompute example using debug printf Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * adding link to the draft article Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> * Updating the readme for the debug statement example Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> --------- Signed-off-by: koubaa <koubaa@github.com> Signed-off-by: evanokeeffe <evan.okeeffe@tas-2.com> Signed-off-by: Andrea Calabrese <andrea.calabrese@amarulasolutions.com> Signed-off-by: Andrea Calabrese <andrea1995.c@live.com> Signed-off-by: Alejandro Saucedo <alejandro.saucedo@zalando.de> Signed-off-by: jamorphy <maps@jax2.net> Signed-off-by: zlaazlaa <2889827787@qq.com> Signed-off-by: zachferguson <zach.ferguson@clo3d.com> Signed-off-by: Zachary Ferguson <zach.ferguson@clo3d.com> Signed-off-by: Robert Quill <robert.quill@imgtec.com> Signed-off-by: n-jay <nuwanjayawardene@gmail.com> Signed-off-by: Matthias Möller <m_moeller@live.de> Co-authored-by: Mohamed Koubaa <koubaa.m@gmail.com> Co-authored-by: koubaa <koubaa@github.com> Co-authored-by: Andrea Calabrese <18246320+ThePseudo@users.noreply.github.com> Co-authored-by: Alejandro Saucedo <axsauze@gmail.com> Co-authored-by: jamorphy <148006242+jamorphy@users.noreply.github.com> Co-authored-by: zlaa <72907523+zlaazlaa@users.noreply.github.com> Co-authored-by: Zachary Ferguson <zy.fergus@gmail.com> Co-authored-by: Robert Quill <robert.quill@imgtec.com> Co-authored-by: Nuwan Jayawardene <nuwanjayawardene@gmail.com> Co-authored-by: Matthias Möller <m_moeller@live.de> Co-authored-by: evanokeeffe <evan.okeeffe@tas-2.com>
The header files generated by
bin2h.cmakecause an error when the GCC flag-Werror=missing-bracesis enabled. I fixed this by adding another set of braces around${arrayValues}on Line 98.Edit: I pushed some more changes to my fork which automatically got included in this PR. My new changes make use of FMT in SPDLOG instead of the system-installed version.