Skip to content

Commit

Permalink
Added ability to specify library name's suffix
Browse files Browse the repository at this point in the history
Added cmake option JREEN_SUFFIX. It may be usefull for installing
Qt4 and Qt5-based Jreen to system at the same time.
  • Loading branch information
Ruslan Nigmatullin committed May 6, 2014
1 parent f3235a6 commit a6c44b9
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 11 deletions.
19 changes: 10 additions & 9 deletions CMakeLists.txt
Expand Up @@ -12,6 +12,7 @@ set(CMAKE_JREEN_VERSION_STRING "${CMAKE_JREEN_VERSION_MAJOR}.${CMAKE_JREEN_VERSI
file(GLOB_RECURSE SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")

option(JREEN_FORCE_QT4 "Force using of Qt4 in Jreen" off)
option(JREEN_SUFFIX "Suffix for jreen library's name, should be used to resolve conflicts connected with different Qt versions" "")

if(NOT JREEN_FORCE_QT4)
find_package(Qt5Core QUIET)
Expand Down Expand Up @@ -128,7 +129,7 @@ else()
set(JREEN_BUILD_TYPE SHARED)
endif()

ADD_LIBRARY(jreen ${JREEN_BUILD_TYPE} ${SRC} ${MOC_SRC})
ADD_LIBRARY(jreen${JREEN_SUFFIX} ${JREEN_BUILD_TYPE} ${SRC} ${MOC_SRC})

#compiler flags
#fixme add macro to clang
Expand All @@ -146,7 +147,7 @@ elseif(MSVC)
ADD_DEFINITIONS("/W3" )
endif()

set_target_properties(jreen PROPERTIES
set_target_properties(jreen${JREEN_SUFFIX} PROPERTIES
VERSION ${CMAKE_JREEN_VERSION_STRING}
SOVERSION ${CMAKE_JREEN_VERSION_MAJOR}
DEFINE_SYMBOL J_BUILD_LIBRARY
Expand All @@ -171,7 +172,7 @@ foreach(header ${JREEN_INCLUDE_HEADERS})
endif(NOT ${header} MATCHES ".*_p\\.h")
endforeach(header)

set(JREEN_LIBRARIES jreen CACHE INTERNAL "" )
set(JREEN_LIBRARIES jreen${JREEN_SUFFIX} CACHE INTERNAL "" )
set(JREEN_INCLUDE_DIRS "${CMAKE_CURRENT_BINARY_DIR}/include" CACHE INTERNAL "")

if(WIN32)
Expand All @@ -182,27 +183,27 @@ if(SPEEX_FOUND)
list(APPEND EXTRA_LIBS ${SPEEX_LIBRARIES} )
endif()

target_link_libraries(jreen
target_link_libraries(jreen${JREEN_SUFFIX}
${QT_LIBRARIES}
${GSASL_LIBRARIES}
${ZLIB_LIBRARIES}
${EXTRA_LIBS}
)

set_target_properties(jreen PROPERTIES AUTOMOC TRUE)
qt5_use_modules(jreen Core Network)
set_target_properties(jreen${JREEN_SUFFIX} PROPERTIES AUTOMOC TRUE)
qt5_use_modules(jreen${JREEN_SUFFIX} Core Network)

# Install package config file
if(NOT WIN32)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/libjreen.pc.cmake
${CMAKE_CURRENT_BINARY_DIR}/libjreen.pc
${CMAKE_CURRENT_BINARY_DIR}/libjreen${JREEN_SUFFIX}.pc
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libjreen.pc
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libjreen${JREEN_SUFFIX}.pc
DESTINATION lib${LIB_SUFFIX}/pkgconfig
)
endif()

install( TARGETS jreen
install( TARGETS jreen${JREEN_SUFFIX}
RUNTIME DESTINATION bin
COMPONENT jreen
LIBRARY DESTINATION lib${LIB_SUFFIX}
Expand Down
4 changes: 2 additions & 2 deletions src/libjreen.pc.cmake
Expand Up @@ -3,10 +3,10 @@ exec_prefix=${CMAKE_INSTALL_PREFIX}/bin
libdir=${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}
includedir=${CMAKE_INSTALL_PREFIX}/include

Name: libjreen
Name: libjreen${JREEN_SUFFIX}
Description: Qt Jabber/XMPP extensible library
Requires: QtCore QtNetwork
Version: ${CMAKE_JREEN_VERSION_MAJOR}.${CMAKE_JREEN_VERSION_MINOR}.${CMAKE_JREEN_VERSION_PATCH}
Libs: -L${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} -ljreen
Libs: -L${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} -ljreen${JREEN_SUFFIX}
Cflags: -I${CMAKE_INSTALL_PREFIX}/include

0 comments on commit a6c44b9

Please sign in to comment.