diff --git a/lib/cpp/CMakeLists.txt b/lib/cpp/CMakeLists.txt index 2a81c2bf..2b9f3eb9 100644 --- a/lib/cpp/CMakeLists.txt +++ b/lib/cpp/CMakeLists.txt @@ -2,8 +2,14 @@ include_directories(${mosquitto_SOURCE_DIR}/lib ${mosquitto_SOURCE_DIR}/lib/cpp ${STDBOOL_H_PATH} ${STDINT_H_PATH}) link_directories(${mosquitto_BINARY_DIR}/lib) -add_library(mosquittopp SHARED - mosquittopp.cpp mosquittopp.h) +set(C_SRC mosquittopp.cpp mosquittopp.h) + +add_library(mosquittopp_obj OBJECT ${C_SRC}) +set_target_properties(mosquittopp_obj PROPERTIES + POSITION_INDEPENDENT_CODE 1 +) + +add_library(mosquittopp SHARED $) target_link_libraries(mosquittopp libmosquitto) set_target_properties(mosquittopp PROPERTIES @@ -11,6 +17,31 @@ set_target_properties(mosquittopp PROPERTIES SOVERSION 1 ) install(TARGETS mosquittopp RUNTIME DESTINATION ${BINDIR} LIBRARY DESTINATION ${LIBDIR}) + +if (${BUILD_STATIC_LIBRARY} STREQUAL ON) + if (${WITH_PIC} STREQUAL OFF) + add_library(mosquittopp_static STATIC + $ + ${C_SRC} + ) + else (${WITH_PIC} STREQUAL OFF) + add_library(mosquittopp_static STATIC + $ + $ + ) + endif (${WITH_PIC} STREQUAL OFF) + + target_link_libraries(mosquittopp_static ${LIBRARIES}) + + set_target_properties(mosquittopp_static PROPERTIES + OUTPUT_NAME mosquittopp + VERSION ${VERSION} + ) + + target_compile_definitions(mosquittopp_static PUBLIC "LIBMOSQUITTO_STATIC") + install(TARGETS mosquittopp_static RUNTIME DESTINATION ${BINDIR} ARCHIVE DESTINATION ${LIBDIR}) +endif (${BUILD_STATIC_LIBRARY} STREQUAL ON) + install(FILES mosquittopp.h DESTINATION ${INCLUDEDIR}) if (UNIX AND NOT APPLE)