You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Recently I've stumbled upon a problem while using OpenImageIO via vcpkg on windows, while using clang as my compiler. Vcpkg would build the packages using its default toolchain which means MSVC. This would lead to my user targets inheriting /EHsc flag from OpenEXR and Imath and failing to build with clang.
The problem turned out to be in these lines (and same corresponding lines in config/LibraryDefine.cmake for Imath:
As pointed out to me in microsoft/vcpkg#38466 using generator expression instead of if fixes the problem. In my local overlay port I simply replaced the if with set(_openexr_extra_flags "$<$<CXX_COMPILER_ID:MSVC>:/EHsc>") which would remove the flag completely for non-msvc compilers (+ the same change for Imath). I'm not sure this is entirely correct in this case and perhaps for other compilers corresponding exception handling flag should be publicly exported instead.
Could you advise on the need for this public compile flag and whether it is possible to fix it upstream?
The text was updated successfully, but these errors were encountered:
Hello!
Recently I've stumbled upon a problem while using OpenImageIO via vcpkg on windows, while using clang as my compiler. Vcpkg would build the packages using its default toolchain which means MSVC. This would lead to my user targets inheriting
/EHsc
flag from OpenEXR and Imath and failing to build with clang.The problem turned out to be in these lines (and same corresponding lines in
config/LibraryDefine.cmake
for Imath:openexr/cmake/LibraryDefine.cmake
Lines 12 to 14 in 694606d
As pointed out to me in microsoft/vcpkg#38466 using generator expression instead of
if
fixes the problem. In my local overlay port I simply replaced theif
withset(_openexr_extra_flags "$<$<CXX_COMPILER_ID:MSVC>:/EHsc>")
which would remove the flag completely for non-msvc compilers (+ the same change for Imath). I'm not sure this is entirely correct in this case and perhaps for other compilers corresponding exception handling flag should be publicly exported instead.Could you advise on the need for this public compile flag and whether it is possible to fix it upstream?
The text was updated successfully, but these errors were encountered: