Add build configuration for CPP static library

The CPP static library respects options
BUILD_STATIC_LIBRARY and WITH_PIC as well.

Signed-off-by: Lance Chen <cyen0312@gmail.com>
pull/179/head
Lance Chen 9 years ago
parent aa360e4029
commit f18e8e12a8
No known key found for this signature in database
GPG Key ID: 2B9B29056A82FEB1

@ -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_OBJECTS:mosquittopp_obj>)
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
$<TARGET_OBJECTS:libmosquitto_obj>
${C_SRC}
)
else (${WITH_PIC} STREQUAL OFF)
add_library(mosquittopp_static STATIC
$<TARGET_OBJECTS:libmosquitto_obj>
$<TARGET_OBJECTS:mosquittopp_obj>
)
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)

Loading…
Cancel
Save