Updated the license and boilerplate
[apps/home/minicontrol.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(minicontrol C)
3
4 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
5 SET(EXEC_PREFIX "\${prefix}")
6 SET(PROJECT_NAME "${PROJECT_NAME}")
7 SET(LIBDIR "\${exec_prefix}/lib")
8 SET(INCLUDEDIR "\${prefix}/include/${PROJECT_NAME}")
9 SET(VERSION_MAJOR 0)
10 SET(VERSION "${VERSION_MAJOR}.0.1")
11
12 SET(CMAKE_SKIP_BUILD_RPATH true)
13
14 SET(INSTALL_HEADERS
15         minicontrol-error.h
16         minicontrol-type.h
17         minicontrol-monitor.h
18         minicontrol-provider.h
19         minicontrol-viewer.h
20 )
21
22 SET(SUBMODULES
23         minicontrol-provider
24         minicontrol-viewer
25         minicontrol-monitor
26 )
27 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
28
29 INCLUDE(FindPkgConfig)
30 pkg_check_modules(pkgs REQUIRED
31         dlog
32         elementary
33         evas
34         ecore-evas
35         dbus-1
36         dbus-glib-1
37 )
38
39 FOREACH(flag ${pkgs_CFLAGS})
40         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
41 ENDFOREACH(flag)
42
43 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -g -Wall")
44
45 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
46
47 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
48 ADD_DEFINITIONS("-DMINICTRL_USE_DLOG")
49
50 ADD_LIBRARY(${PROJECT_NAME}-inter STATIC
51         src/minicontrol-internal.c
52 )
53 TARGET_LINK_LIBRARIES(${PROJECT_NAME}-inter ${pkgs_LDFLAGS})
54
55 FOREACH(lib_file ${SUBMODULES})
56         ADD_LIBRARY(${lib_file} SHARED src/${lib_file}.c)
57         TARGET_LINK_LIBRARIES(${lib_file} ${pkgs_LDFLAGS} ${PROJECT_NAME}-inter)
58         SET_TARGET_PROPERTIES(${lib_file} PROPERTIES SOVERSION ${VERSION_MAJOR})
59         SET_TARGET_PROPERTIES(${lib_file} PROPERTIES VERSION ${VERSION})
60         INSTALL(TARGETS ${lib_file} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
61 ENDFOREACH(lib_file)
62
63 FOREACH(pcfile ${SUBMODULES})
64         CONFIGURE_FILE(${pcfile}.pc.in ${pcfile}.pc @ONLY)
65         SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${pcfile}.pc")
66         INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${pcfile}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
67 ENDFOREACH(pcfile)
68
69 FOREACH(hfile ${INSTALL_HEADERS})
70         INSTALL(FILES ${CMAKE_SOURCE_DIR}/include/${hfile} DESTINATION include/${PROJECT_NAME})
71 ENDFOREACH(hfile)
72