Closed elsid closed 1 year ago
I agree, that this is not ok, I fixed two methods declarations under #if MYGUI_DEBUG_MODE == 1
What do you think about this lines in the MyGUI::RederItem class:
#if MYGUI_DEBUG_MODE == 1
std::string mTextureName;
#endif
Nevermind, I removed this variable
Worth a 3.4.2.1 or a 3.4.3? :P
Done
Also non debug binary to debug library. Debug or not is determited by presence or absence of
-DNDEBUG
in the compiler flags.Basically the problem is in conditional
MYGUI_DEBUG_MODE
definition and how it's used that changed only in 3.4.2. There is a conditional definition ofRenderManager::checkTexture
function so if a binary compiled without-DNDEBUG
thenMYGUI_DEBUG_MODE
is defined to1
but if such binary is linked with mygui provided by system package manager, unlikely it will be built without-DNDEBUG
soRenderManager::checkTexture
is not defined. And this leads to a linker error:This change in API broke openmw CI on update to 3.4.2 for debug builds because they don't use debug version of mygui. Related disscussion is here and here is the broken build example.
Ideal solution to this is to remove all conditional symbols definition in
*.cpp
files.