1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
project(libofetion)
cmake_minimum_required(VERSION 2.6)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules)
set(TARNAME libofetion)
# program name, version etc
set(LIBOFETION_API_VERSION "1.2.0")
set(LIBOFETION_ABI_VERSION "1.1.0")
set(LIBOFETION_ABI_MAJOR_VERSION "1")
set(PACKAGE_VERSION "2.2.0")
set(PACKAGE_NAME "${TARNAME}")
set(PACKAGE_TARNAME "${TARNAME}")
set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
set(PACKAGE_BUGREPORT "http://code.google.com/p/ofetion/issues/list")
find_package(PkgConfig REQUIRED)
if(NOT DEFINED BIN_INSTALL_DIR)
set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin")
endif(NOT DEFINED BIN_INSTALL_DIR)
if(NOT DEFINED LIB_INSTALL_DIR)
set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib")
endif(NOT DEFINED LIB_INSTALL_DIR)
if(NOT DEFINED DATA_INSTALL_DIR)
set(DATA_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share")
endif(NOT DEFINED DATA_INSTALL_DIR)
if(NOT DEFINED INCLUDE_INSTALL_DIR)
set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/${PACKAGE_TARNAME}")
endif(NOT DEFINED INCLUDE_INSTALL_DIR)
if(NOT DEFINED MAN_INSTALL_DIR)
set(MAN_INSTALL_DIR "${DATA_INSTALL_DIR}/man")
endif(NOT DEFINED MAN_INSTALL_DIR)
if(NOT DEFINED RESOURCE_INSTALL_DIR)
set(RESOURCE_INSTALL_DIR "${DATA_INSTALL_DIR}/libofetion${LIBOFETION_ABI_MAJOR_VERSION}/resource/")
endif(NOT DEFINED RESOURCE_INSTALL_DIR)
if(NOT DEFINED LOCALE_INSTALL_DIR)
set(LOCALE_INSTALL_DIR "${DATA_INSTALL_DIR}/locale/")
endif(NOT DEFINED LOCALE_INSTALL_DIR)
add_definitions(-DRESOURCE_DIR="${RESOURCE_INSTALL_DIR}")
install(
FILES resource/city.xml resource/province.xml
DESTINATION ${RESOURCE_INSTALL_DIR}
)
pkg_check_modules(LIBXML2 REQUIRED libxml-2.0)
pkg_check_modules(OPENSSL REQUIRED openssl)
pkg_check_modules(SQLITE3 REQUIRED sqlite3)
# gnu ld version script
set(_link_flags " ")
if(CMAKE_COMPILER_IS_GNUCXX)
include(TestCXXAcceptsFlag)
set(_version_script "${CMAKE_CURRENT_SOURCE_DIR}/./libofetion.map")
check_cxx_accepts_flag("-Wl,--version-script,${_version_script}" LD_ACCEPTS_VERSION_SCRIPT)
if(LD_ACCEPTS_VERSION_SCRIPT)
set(_link_flags "${_link_flags} -Wl,--version-script,'${_version_script}'")
endif(LD_ACCEPTS_VERSION_SCRIPT)
endif(CMAKE_COMPILER_IS_GNUCXX)
##########################################################################
add_definitions(-g -Wall -Wextra)
##########################################################################
include_directories(
${LIBXML2_INCLUDE_DIRS}
${OPENSSL_INCLUDE_DIRS}
${SQLITE3_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
set(libofetion_SRC
./fetion_buddylist.c
./fetion_config.c
./fetion_connection.c
./fetion_contact.c
./fetion_conversation.c
./fetion_debug.c
./fetion_directsms.c
./fetion_group.c
./fetion_history.c
./fetion_list.c
./fetion_login.c
./fetion_message.c
./fetion_share.c
./fetion_sip.c
./fetion_user.c
)
add_library(ofetion SHARED ${libofetion_SRC})
target_link_libraries(ofetion ${LIBXML2_LIBRARIES} ${OPENSSL_LIBRARIES} ${SQLITE3_LIBRARIES})
set_target_properties(ofetion PROPERTIES
VERSION ${LIBOFETION_ABI_VERSION}
SOVERSION ${LIBOFETION_ABI_MAJOR_VERSION}
LINK_FLAGS ${_link_flags}
)
add_library(ofetion-static STATIC ${libofetion_SRC})
SET_TARGET_PROPERTIES(ofetion-static PROPERTIES OUTPUT_NAME "ofetion")
SET_TARGET_PROPERTIES(ofetion-static PROPERTIES PREFIX "lib")
install(TARGETS ofetion ofetion-static
LIBRARY DESTINATION ${LIB_INSTALL_DIR}
ARCHIVE DESTINATION ${LIB_INSTALL_DIR})
file(GLOB ofetion_INCLUDES "./*.h")
install(FILES ${ofetion_INCLUDES} DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel)
##########################################################################
configure_file(./ofetion.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/ofetion.pc)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ofetion.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
|