few fixes for windows shared
- install DLL in bin folder instead of lib folder - export symbols if msvc for shared lib, otherwise import lib of DLL is empty. Visual Studio hides symbols by default. WINDOWS_EXPORT_ALL_SYMBOLS is a workaround, the proper way would be to hide all symbols irrespective of compiler, and carefully export symbols of AMQP-CPP interface.
This commit is contained in:
parent
a1526bad8d
commit
bd1b3e5d46
|
|
@ -84,8 +84,12 @@ if(AMQP-CPP_BUILD_SHARED)
|
||||||
# create shared lib
|
# create shared lib
|
||||||
#add_library(${PROJECT_NAME} SHARED ${SRCS})
|
#add_library(${PROJECT_NAME} SHARED ${SRCS})
|
||||||
add_library(${PROJECT_NAME} SHARED ${src_MAIN} ${src_LINUX_TCP})
|
add_library(${PROJECT_NAME} SHARED ${src_MAIN} ${src_LINUX_TCP})
|
||||||
|
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||||
# set shared lib version
|
# set shared lib version
|
||||||
set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION ${SO_VERSION})
|
SOVERSION ${SO_VERSION}
|
||||||
|
# export symbols for Visual Studio as a workaround
|
||||||
|
WINDOWS_EXPORT_ALL_SYMBOLS ON
|
||||||
|
)
|
||||||
else()
|
else()
|
||||||
# create static lib
|
# create static lib
|
||||||
#add_library(${PROJECT_NAME} STATIC ${SRCS})
|
#add_library(${PROJECT_NAME} STATIC ${SRCS})
|
||||||
|
|
@ -95,24 +99,17 @@ endif()
|
||||||
# install rules
|
# install rules
|
||||||
# ------------------------------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
if(AMQP-CPP_BUILD_SHARED)
|
include(GNUInstallDirs)
|
||||||
# copy shared lib and its static counter part
|
|
||||||
install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Config
|
install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Config
|
||||||
ARCHIVE DESTINATION lib
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
LIBRARY DESTINATION lib
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
RUNTIME DESTINATION lib
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
)
|
)
|
||||||
else()
|
|
||||||
# copy static lib
|
|
||||||
install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Config
|
|
||||||
ARCHIVE DESTINATION lib
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# copy header files
|
# copy header files
|
||||||
install(DIRECTORY include/amqpcpp/ DESTINATION include/amqpcpp
|
install(DIRECTORY include/amqpcpp/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/amqpcpp
|
||||||
FILES_MATCHING PATTERN "*.h")
|
FILES_MATCHING PATTERN "*.h")
|
||||||
install(FILES include/amqpcpp.h DESTINATION include)
|
install(FILES include/amqpcpp.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||||
|
|
||||||
install(EXPORT ${PROJECT_NAME}Config DESTINATION cmake)
|
install(EXPORT ${PROJECT_NAME}Config DESTINATION cmake)
|
||||||
export(TARGETS ${PROJECT_NAME} FILE ${PROJECT_NAME}Config.cmake)
|
export(TARGETS ${PROJECT_NAME} FILE ${PROJECT_NAME}Config.cmake)
|
||||||
|
|
@ -121,7 +118,7 @@ set(DEST_DIR "${CMAKE_INSTALL_PREFIX}")
|
||||||
set(PRIVATE_LIBS "-llibamqpcc")
|
set(PRIVATE_LIBS "-llibamqpcc")
|
||||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/amqpcpp.pc.in"
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/amqpcpp.pc.in"
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/amqpcpp.pc" @ONLY)
|
"${CMAKE_CURRENT_BINARY_DIR}/amqpcpp.pc" @ONLY)
|
||||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/amqpcpp.pc" DESTINATION lib/pkgconfig)
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/amqpcpp.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
|
|
||||||
# submodule support
|
# submodule support
|
||||||
# ------------------------------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue