From 2ba5d793b9575a558880914ead94e806d860dafc Mon Sep 17 00:00:00 2001 From: Transporter Date: Tue, 26 May 2020 09:40:41 +0200 Subject: [PATCH] Applies OPENEXR_DLL only to shared libraries and no longer to static libraries Signed-off-by: Transporter --- IlmBase/config/LibraryDefine.cmake | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/IlmBase/config/LibraryDefine.cmake b/IlmBase/config/LibraryDefine.cmake index 98750fc1..2e3a0527 100644 --- a/IlmBase/config/LibraryDefine.cmake +++ b/IlmBase/config/LibraryDefine.cmake @@ -12,8 +12,6 @@ function(ILMBASE_DEFINE_LIBRARY libname) # only do the object library mechanism in a few cases: # - xcode doesn't handle "empty" targets (i.e. add_library with # an object lib only) - # - under windows, we don't want the static library targets to - # have the export tags # - if we're not compiling both, don't add the extra layer to prevent # extra compiles since we aren't doing that anyway if(ILMBASE_BUILD_BOTH_STATIC_SHARED AND NOT (APPLE OR WIN32)) @@ -39,7 +37,7 @@ function(ILMBASE_DEFINE_LIBRARY libname) target_compile_features(${objlib} PUBLIC cxx_std_${OPENEXR_CXX_STANDARD}) if(ILMBASE_CURLIB_PRIV_EXPORT AND BUILD_SHARED_LIBS) target_compile_definitions(${objlib} PRIVATE ${ILMBASE_CURLIB_PRIV_EXPORT}) - if(WIN32) + if(WIN32 AND NOT ILMBASE_BUILD_BOTH_STATIC_SHARED) target_compile_definitions(${objlib} PUBLIC OPENEXR_DLL) endif() endif() @@ -113,6 +111,7 @@ function(ILMBASE_DEFINE_LIBRARY libname) target_link_libraries(${libname}_static INTERFACE ${objlib}) else() # have to build multiple times... but have different flags anyway (i.e. no dll) + target_compile_definitions(${libname} PRIVATE OPENEXR_DLL) set(curlib ${libname}_static) add_library(${curlib} STATIC ${ILMBASE_CURLIB_SOURCES}) target_compile_features(${curlib} PUBLIC cxx_std_${OPENEXR_CXX_STANDARD})