# Manages the shared library creation/use # * Creates an option ${LIBRARY_NAME}_BUILD_SHARED # * Generates the file ${LIBRARY_NAME}_EXPORT.h which # defines the symbols ${LIBRARY_NAME}_EXPORT and ${LIBRARY_NAME}_CDECL # to be used in exported classes/functions declarations MACRO(CREA_DYNAMIC_LIBRARY_EXPORT_OPTION 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}_EXPORT.h CONFIGURE_FILE( ${CREA_CMAKE_DIR}/LIBRARY_NAME_EXPORT.h.in ${CMAKE_CURRENT_BINARY_DIR}/${LIBRARY_NAME}_EXPORT.h @ONLY IMMEDIATE ) # ADDS IT TO THE LIST OF HEADERS SET(${LIBRARY_NAME}_HEADERS ${${LIBRARY_NAME}_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/${LIBRARY_NAME}_EXPORT.h ) ENDMACRO(CREA_DYNAMIC_LIBRARY_EXPORT_OPTION LIBRARY_NAME) # Manages the shared library creation/use # * Generates the file ${LIBRARY_NAME}_EXPORT.h which # defines the symbols ${LIBRARY_NAME}_EXPORT and ${LIBRARY_NAME}_CDECL # to be used in exported classes/functions declarations MACRO(CREA_DYNAMIC_LIBRARY_EXPORT LIBRARY_NAME) CREA_DEFINE(${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}_EXPORT.h SET(LIBRARY_NAME ${LIBRARY_NAME}) CONFIGURE_FILE( ${CREA_CMAKE_DIR}/LIBRARY_NAME_EXPORT.h.in ${CMAKE_CURRENT_BINARY_DIR}/${LIBRARY_NAME}_EXPORT.h @ONLY IMMEDIATE ) # ADDS IT TO THE LIST OF HEADERS SET(${LIBRARY_NAME}_HEADERS ${${LIBRARY_NAME}_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/${LIBRARY_NAME}_EXPORT.h ) ENDMACRO(CREA_DYNAMIC_LIBRARY_EXPORT LIBRARY_NAME)