Release version 0.1.57
[platform/core/appfw/app-svc.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
3
4 PROJECT(appsvc C)
5 SET(VERSION_MAJOR 0)
6 SET(VERSION "${VERSION_MAJOR}.1.0")
7 AUX_SOURCE_DIRECTORY(src SOURCES)
8
9 ### Global setting ###
10
11 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
12 SET(EXEC_PREFIX "\${prefix}")
13 SET(LIBDIR ${LIB_INSTALL_DIR})
14 SET(INCLUDEDIR "\${prefix}/include/appsvc")
15
16 # Build type : Release
17 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
18         SET(CMAKE_BUILD_TYPE "Release")
19 ENDIF()
20 MESSAGE("Build type: ${CMAKE_BUILD_TYPE}")
21
22 # Set required packages
23 INCLUDE(FindPkgConfig)
24
25 SET(APPSVC_LIBPKGS_CHECK_MODULES "dlog bundle aul ecore")
26
27 IF (with_x)
28 pkg_check_modules(libpkgs REQUIRED ${APPSVC_LIBPKGS_CHECK_MODULES} ecore-x)
29 ENDIF(with_x)
30
31 IF (with_wayland)
32 ADD_DEFINITIONS("-DWAYLAND")
33 pkg_check_modules(libpkgs REQUIRED ${APPSVC_LIBPKGS_CHECK_MODULES})
34 ENDIF (with_wayland)
35
36 FOREACH(flag ${libpkgs_CFLAGS})
37         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
38 ENDFOREACH(flag)
39
40 # Compiler flags
41 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
42 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/legacy)
43 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wl,-zdefs" )
44 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
45 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
46 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
47 SET(CMAKE_C_FLAGS_RELEASE "-O2")
48
49 SET(CMAKE_SKIP_BUILD_RPATH true)
50
51 # Get uname value to set 'TARGET' definition 
52 FIND_PROGRAM(UNAME NAMES uname)
53 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
54 IF("${ARCH}" STREQUAL "arm")
55         ADD_DEFINITIONS("-DTARGET")
56         MESSAGE("add -DTARGET")
57 ENDIF("${ARCH}" STREQUAL "arm")
58
59 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
60
61 # Linker flags
62 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
63
64 ### Build ###
65 # aul
66 ADD_LIBRARY(appsvc SHARED ${SOURCES})
67
68 TARGET_LINK_LIBRARIES(appsvc ${libpkgs_LDFLAGS})
69 SET_TARGET_PROPERTIES(appsvc PROPERTIES SOVERSION ${VERSION_MAJOR})
70 SET_TARGET_PROPERTIES(appsvc PROPERTIES VERSION ${VERSION})
71
72 # pkgconfig file
73 CONFIGURE_FILE(appsvc.pc.in appsvc.pc @ONLY)
74
75
76 ### Install ###
77 INSTALL(TARGETS appsvc DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
78 INSTALL(TARGETS ${AVATAR_NAME} DESTINATION bin)
79
80 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/include/ DESTINATION include/appsvc/
81         FILES_MATCHING
82         PATTERN "*.h"
83         )
84 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/appsvc.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
85
86 # test
87 add_subdirectory(test)
88