use assert instead of if check
[profile/tv/apps/native/homescreen.git] / CMakeLists.txt
1 # Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
2 #
3 #    Licensed under the Apache License, Version 2.0 (the "License");
4 #    you may not use this file except in compliance with the License.
5 #    You may obtain a copy of the License at
6 #
7 #        http://www.apache.org/licenses/LICENSE-2.0
8 #
9 #    Unless required by applicable law or agreed to in writing, software
10 #    distributed under the License is distributed on an "AS IS" BASIS,
11 #    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 #    See the License for the specific language governing permissions and
13 #    limitations under the License.
14 #
15
16 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
17 PROJECT("homescreen-tv-ref" CXX C)
18
19 IF(NOT DEFINED PACKAGE_NAME)
20         SET(PACKAGE_NAME "org.tizen.homescreen-tv-ref")
21 ENDIF(NOT DEFINED PACKAGE_NAME)
22
23 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
24 IF(NOT DEFINED BINDIR)
25         SET(BINDIR"${PREFIX}/bin")
26 ENDIF(NOT DEFINED BINDIR)
27 IF(NOT DEFINED IMAGEDIR)
28         SET(IMAGEDIR "${PREFIX}/res/images")
29 ENDIF(NOT DEFINED IMAGEDIR)
30 IF(NOT DEFINED CFGDIR)
31         SET(CFGDIR "${PREFIX}/res/config")
32 ENDIF(NOT DEFINED CFGDIR)
33 IF(NOT DEFINED LOCALEDIR)
34         SET(LOCALEDIR "${PREFIX}/res/locale")
35 ENDIF(NOT DEFINED LOCALEDIR)
36 IF(NOT DEFINED MANIFESTDIR)
37         SET(MANIFESTDIR "/usr/share/packages")
38 ENDIF(NOT DEFINED MANIFESTDIR)
39
40 SET(TARGET_EDJ "${PROJECT_NAME}.edj")
41 SET(THEME_EDJ "${PROJECT_NAME}-theme.edj")
42 SET(DEF_CONFIG "${PROJECT_NAME}.json")
43 SET(SRCS
44                 src/homescreen.cpp
45                 src/homebar.cpp
46                 src/userbar.cpp
47                 src/dynamicbar.cpp
48                 src/custombar.cpp
49                 src/deletebar.cpp
50                 src/engine.cpp
51                 src/engine/src/Entity.cpp
52                 src/engine/src/EngineBarItem.cpp
53                 src/engine/src/EngineUBarItem.cpp
54                 src/engine/src/EngineDBarItem.cpp
55                 src/engine/src/EngineDBarItemContent.cpp
56                 src/Bus.cpp
57                 src/ClientBus.cpp
58                 src/BaseBus.cpp
59                 src/Parcel.cpp
60                 src/main.cpp)
61
62 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
63 ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE_NAME}\"")
64 ADD_DEFINITIONS("-DEDJEDIR=\"${EDJEDIR}\"")
65 ADD_DEFINITIONS("-DEDJEFILE=\"${EDJEDIR}/${TARGET_EDJ}\"")
66 ADD_DEFINITIONS("-DTHEMEFILE=\"${EDJEDIR}/${THEME_EDJ}\"")
67 ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"")
68 ADD_DEFINITIONS("-DDEF_CONFIG=\"${CFGDIR}/${DEF_CONFIG}\"")
69
70 INCLUDE(FindPkgConfig)
71 pkg_check_modules(PKGS REQUIRED
72                 elementary
73                 dlog
74                 json-glib-1.0
75                 gio-2.0
76                 aul
77                 libgum
78                 cynara-client
79                 app-content
80                 app-content-provider
81                 capi-appfw-application)
82
83 FOREACH(flag ${PKGS_CFLAGS})
84         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
85 ENDFOREACH(flag)
86
87 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
88 SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
89 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
90 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PKGS_LDFLAGS})
91 CONFIGURE_FILE(${PACKAGE_NAME}.xml.in ${PACKAGE_NAME}.xml)
92
93 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
94 INSTALL(FILES ${PACKAGE_NAME}.xml DESTINATION ${MANIFESTDIR})
95 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/images/ DESTINATION ${IMAGEDIR} FILES_MATCHING PATTERN "*.png")
96
97 ADD_SUBDIRECTORY(edje)
98 ADD_SUBDIRECTORY(config)