GenerateExportHeader: Allow use of of this macro with MODULEs.

The significant issue with MODULEs is that on Windows, the exported
symbols must be dllexported and they are not imported.

In other export macro implementations this is done by defining an
export macro outside of any ifdef which depends on definitions set
on the command line. However, with cmake we already expect the
DEFINE_SYMBOL to be defined, so the regular EXPORT macro can be
used by such plugins.
This commit is contained in:
Stephen Kelly 2013-03-14 16:37:49 +01:00
parent 711073e8c6
commit 7ffef5024a
1 changed files with 3 additions and 5 deletions

View File

@ -307,11 +307,9 @@ endmacro()
function(GENERATE_EXPORT_HEADER TARGET_LIBRARY) function(GENERATE_EXPORT_HEADER TARGET_LIBRARY)
get_property(type TARGET ${TARGET_LIBRARY} PROPERTY TYPE) get_property(type TARGET ${TARGET_LIBRARY} PROPERTY TYPE)
if(${type} STREQUAL "MODULE") if(NOT ${type} STREQUAL "STATIC_LIBRARY"
message(WARNING "This macro should not be used with libraries of type MODULE") AND NOT ${type} STREQUAL "SHARED_LIBRARY"
return() AND NOT ${type} STREQUAL "MODULE_LIBRARY")
endif()
if(NOT ${type} STREQUAL "STATIC_LIBRARY" AND NOT ${type} STREQUAL "SHARED_LIBRARY")
message(WARNING "This macro can only be used with libraries") message(WARNING "This macro can only be used with libraries")
return() return()
endif() endif()