apply FSL(Flora Software License)
[apps/core/preloaded/ug-image-viewer-efl.git] / main / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2
3 SET(VERSION_MAJOR 0)
4 SET(VERSION "${VERSION_MAJOR}.1.0")
5
6 PROJECT(ug-image-viewer-efl C CXX)
7
8 EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_SYSTEM_VERSION)
9
10 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
11
12 SET(SRCS
13 # Entry point
14         src/ug-image-viewer.c
15
16 # Common
17         src/common/ivug-config.c
18
19 # View related
20         src/view/ivug-main-view.c
21         src/view/ivug-setas-view.c
22         src/view/ivug-detail-info.c
23         src/view/ivug-details-view.c
24         src/view/ivug-popup.c
25         src/view/ivug-slider.c
26         src/view/ivug-slider-item.c
27         src/view/ivug-slider-slideshow.c
28         src/view/ivug-slider-mouse.c
29
30 # Control related
31         src/control/ivug-uuid.c
32         src/control/ivug-parameter.c
33         src/control/ivug-ext-ug.c
34         src/control/ivug-main.c
35
36 # Helper files
37         src/util/ivug-util.c
38         src/util/ivug-file-info.c
39         src/util/ivug-widget.c
40         src/util/ivug-listpopup.c
41
42 # Data & List management
43         src/data/ivug-data.c
44         src/data/ivug-data-list.c
45         src/data/ivug-data-shuffle.c
46         src/data/ivug-mediadata.c
47         src/data/ivug-data-filter.c
48
49 # Effect files
50         src/effect/ivug-effect.c
51         src/effect/ivug-slide.c
52         src/effect/ivug-anim.c
53 )
54
55 # message("System = ${CMAKE_SYSTEM_VERSION}")
56
57 INCLUDE_DIRECTORIES(
58         ${CMAKE_CURRENT_SOURCE_DIR}
59         ${CMAKE_SOURCE_WIDGET_DIR}/include
60         ${CMAKE_SOURCE_COMMON_DIR}/include
61         src
62         src/common
63         src/view
64         src/util
65         src/control
66         src/widget
67         src/data
68         src/effect/include
69 )
70
71 INCLUDE(FindPkgConfig)
72 pkg_check_modules(pkgs REQUIRED
73         elementary
74         edje
75         evas
76         eina
77         dlog
78         ecore
79         ecore-file
80         ecore-imf
81         ecore-input
82         ecore-x
83         ecore-evas
84         efreet-mime
85         utilX
86         ui-gadget
87         libmedia-service
88         aul
89         libexif
90         appcore-efl
91         appcore-common
92         bundle
93         mm-fileinfo
94         icu-i18n
95         icu-io
96         icu-le
97         icu-lx
98         icu-uc
99         pmapi
100         appsvc
101         vconf
102 )
103
104
105 FOREACH(flag ${pkgs_CFLAGS})
106         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
107 ENDFOREACH(flag)
108
109 if("${CMAKE_SYSTEM_VERSION}" STREQUAL "arm")
110         pkg_check_modules(armpkgs REQUIRED
111         )
112
113         FOREACH(flag ${armpkgs_CFLAGS})
114                 SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
115         ENDFOREACH(flag)
116
117 endif()
118
119 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
120 SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
121
122 #message("CFLAGS="${CMAKE_C_FLAGS})
123 #message("CXXFLAGS="${CMAKE_CXX_FLAGS})
124 #message("LDFLAGS="${LDFLAGS})
125
126 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
127 ADD_DEFINITIONS("-DUG_MODULE_API=__attribute__ \(\(visibility\(\"default\"\)\)\)")
128 ADD_DEFINITIONS("-DPACKAGE=\"${PROJECT_NAME}\"")
129 ADD_DEFINITIONS("-DDATADIR=\"${CMAKE_DATA_DIR}\"")
130 #ADD_DEFINITIONS("-D_USE_MEDIAINFO_STRINGID_")
131
132 #ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
133 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
134 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR})
135 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION})
136
137 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib)
138
139 TARGET_LINK_LIBRARIES(${PROJECT_NAME}
140         ${pkgs_LDFLAGS} ${armpkgs_LDFLAGS}
141         -ldl
142         ivug_common
143 )
144
145 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
146
147 FUNCTION (BUILD_EDJ _in _out _base _dir)
148         ADD_CUSTOM_TARGET(${_out}
149                         COMMAND
150                                 edje_cc -id ${_base}/${_dir}
151                                 ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in}
152                                 ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_out}
153                         DEPENDS
154                                 ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in}
155         )
156         ADD_DEPENDENCIES(${PROJECT_NAME} ${_out})
157         INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_out} DESTINATION ${CMAKE_INSTALL_PREFIX}/res/edje/${PROJECT_NAME})
158 ENDFUNCTION (BUILD_EDJ)
159
160
161 # Build edc files
162 BUILD_EDJ(ivug-base.edc                         ivug-base.edj                   layout  images)
163 BUILD_EDJ(ivug-main.edc                         ivug-main.edj                   layout  images)
164 BUILD_EDJ(ivug-icons.edc                        ivug-icons.edj                  layout  icons)
165 BUILD_EDJ(ivug-setas.edc                        ivug-setas.edj                  layout  images)
166 BUILD_EDJ(ivug-naviframe.edc            ivug-naviframe.edj              layout  images/gray-theme)
167 BUILD_EDJ(ivug-toolbar.edc                      ivug-toolbar.edj                layout  images/gray-theme)
168 BUILD_EDJ(ivug-button.edc                       ivug-button.edj                 layout  images/gray-theme)
169 BUILD_EDJ(ivug-effect.edc                       ivug-effect.edj                 layout  images)
170 BUILD_EDJ(ivug-slider.edc                       ivug-slider.edj                 layout  icons)
171 BUILD_EDJ(ivug-details.edc                      ivug-details.edj                layout  images)
172 BUILD_EDJ(ivug-selectioninfo.edc        ivug-selectioninfo.edj  layout  images)
173 BUILD_EDJ(ivug-genlist.edc                      ivug-genlist.edj                layout/genlist  images/gray-theme)
174
175 # Install image files.
176 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/images/ DESTINATION ${CMAKE_INSTALL_PREFIX}/res/images/${PROJECT_NAME})
177
178 #
179 INSTALL(DIRECTORY DESTINATION ${CMAKE_DATA_DIR}/${PROJECT_NAME})
180
181 # i18n
182 ADD_SUBDIRECTORY(res/po)