summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
blob: 939e00c55c7741a3fc8d7696aa39394a7bddaf42 (plain)
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
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(bundle C)

IF("${VERSION}" STREQUAL "")
	MESSAGE(FATAL_ERROR "VERSION is not defined")
ENDIF()
STRING(REGEX MATCH "^[0-9]+" VERSION_MAJOR ${VERSION})
IF("${VERSION_MAJOR}" STREQUAL "")
	MESSAGE(FATAL_ERROR "can't get VERSION_MAJOR")
ENDIF()

### Required packages
INCLUDE(FindPkgConfig)
pkg_check_modules(pkgs REQUIRED glib-2.0 dlog capi-base-common json-glib-1.0)
FOREACH(flag ${pkgs_CFLAGS})
	SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ENDFOREACH(flag)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=hidden -flto")

### Local include directories
include_directories(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/src)

### Build
aux_source_directory(src SRCS)
add_library(bundle SHARED ${SRCS})
set_target_properties(bundle PROPERTIES SOVERSION ${VERSION_MAJOR})
set_target_properties(bundle PROPERTIES VERSION "${VERSION}")
message(STATUS "Version from debian/changelog: ${VERSION},  Major version: ${VERSION_MAJOR}")
target_link_libraries(bundle ${pkgs_LDFLAGS})


### Make pkgconfig file
SET(PREFIX ${CMAKE_INSTALL_PREFIX})
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/bundle.pc.in ${CMAKE_BINARY_DIR}/bundle.pc @ONLY)

### Install
install(TARGETS bundle DESTINATION ${LIB_INSTALL_DIR})
install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include/)
install(FILES ${CMAKE_BINARY_DIR}/bundle.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig/)