# Manages the shared library creation/use # * Creates an option ${LIBRARY_NAME}_BUILD_SHARED # * Generates the file ${LIBRARY_NAME}DLLImportExport.h which # defines the symbols ${LIBRARY_NAME}_EXPORT and ${LIBRARY_NAME}_CDECL # to be used in exported classes/functions declarations MACRO(CREA_MANAGE_SHARED_LIBRARY LIBRARY_NAME) # STATIC OR DYNAMIC (SHARED) ? OPTION( ${LIBRARY_NAME}_BUILD_SHARED "Build ${LIBRARY_NAME} as a shared library (dynamic) ?" ON) IF (${LIBRARY_NAME}_BUILD_SHARED) SET(${LIBRARY_NAME}_SHARED SHARED) CREA_DEFINE(${LIBRARY_NAME}_BUILD_SHARED) ENDIF(${LIBRARY_NAME}_BUILD_SHARED) CREA_DEFINE(${LIBRARY_NAME}_EXPORT_SYMBOLS) # ADDS CURRENT BINARY DIR TO INCLUDE DIRS INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) # CONFIGURES ${LIBRARY_NAME}DLLImportExport.h CONFIGURE_FILE( ${CREA_CMAKE_DIR}/LIBRARY_NAMEDLLImportExport.h.in ${CMAKE_CURRENT_BINARY_DIR}/${LIBRARY_NAME}DLLImportExport.h @ONLY IMMEDIATE ) # ADDS IT TO THE LIST OF HEADERS SET(${LIBRARY_NAME}_HEADERS ${${LIBRARY_NAME}_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/${LIBRARY_NAME}DLLImportExport.h ) ENDMACRO(CREA_MANAGE_SHARED_LIBRARY LIBRARY_NAME)