cbd6c98c656ecbf0950666f7b5a58b4880c28068
[platform/core/uifw/dali-toolkit.git] / build / tizen / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 CMAKE_POLICY(SET CMP0012 NEW) # Prevent dereferencing of OFF/ON as variables
3
4 SET(name "dali-toolkit")
5
6 PROJECT(${name})
7 SET(PKG_NAME ${name})
8
9 SET(GCC_COMPILER_VERSION_REQUIRED "6")
10 if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
11   if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS GCC_COMPILER_VERSION_REQUIRED)
12     message(FATAL_ERROR "The GCC required compiler version is " ${GCC_COMPILER_VERSION_REQUIRED})
13   endif()
14 endif()
15
16 # API VERSION (Not DALi release version)
17 SET(${name}_VERSION_MAJOR 0)
18 SET(${name}_VERSION_MINOR 0)
19 SET(${name}_VERSION_PATCH 0)
20 SET(${name}_VERSION ${${name}_VERSION_MAJOR}.${${name}_VERSION_MINOR}.${${name}_VERSION_PATCH} )
21
22 SET(DALI_TOOLKIT_VERSION ${${name}_VERSION} )
23
24 # Define options to CMake
25 OPTION(ENABLE_EXPORTALL          "Enable Export all symbols" OFF)
26 OPTION(ENABLE_DEBUG              "Enable Debug" OFF)
27 OPTION(ENABLE_TRACE              "Enable Trace" OFF)
28 OPTION(ENABLE_I18N               "Turns on internationalisation" OFF)
29 OPTION(ENABLE_COVERAGE           "Coverage" OFF)
30 OPTION(ENABLE_PKG_CONFIGURE      "Use pkgconfig" ON)
31 OPTION(ENABLE_LINK_TEST          "Enable the link test" ON)
32 OPTION(INSTALL_DOXYGEN_DOC       "Install doxygen doc" ON)
33 OPTION(CONFIGURE_AUTOMATED_TESTS "Configure automated tests" ON)
34 OPTION(USE_DEFAULT_RESOURCE_DIR  "Whether to use the default resource folders. Otherwise set environment variables for DALI_IMAGE_DIR, DALI_SOUND_DIR, DALI_STYLE_DIR, DALI_STYLE_IMAGE_DIR and DALI_DATA_READ_ONLY_DIR" ON)
35
36 IF( ENABLE_PKG_CONFIGURE )
37   FIND_PACKAGE( PkgConfig REQUIRED )
38
39   PKG_CHECK_MODULES(DALICORE REQUIRED dali-core)
40   PKG_CHECK_MODULES(DALIADAPTOR REQUIRED dali-adaptor)
41 ENDIF()
42
43 IF( INSTALL_DOXYGEN_DOC )
44   FIND_PACKAGE( Doxygen QUIET )
45 ENDIF()
46
47 IF( WIN32 ) # WIN32 includes x64 as well according to the cmake doc.
48   FIND_PACKAGE( dali-windows-dependencies REQUIRED)
49   FIND_PACKAGE( dali-core REQUIRED)
50   FIND_PACKAGE( dali-adaptor REQUIRED)
51   FIND_PATH( SYSTEM_INCLUDE_DIR "dali-windows-dependencies.h" )
52 ENDIF()
53
54 # Define non-boolean options to CMake
55 SET(WITH_STYLE               "480x800" CACHE STRING "Select the style folder to use")
56
57 # from root/build/tizen, get back to root
58 SET(ROOT_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../)
59
60 # Make sure the path is absolute
61 GET_FILENAME_COMPONENT(ROOT_SRC_DIR ${ROOT_SRC_DIR} ABSOLUTE)
62
63 # Set DALi style
64 SET( dali_style ${WITH_STYLE} )
65
66 # Style folder
67 SET( STYLE_BASE_DIR ${ROOT_SRC_DIR}/dali-toolkit/styles )
68 SET( STYLE_DIR ${STYLE_BASE_DIR}/${dali_style} )
69
70 SET( toolkit_styles_base_dir ${STYLE_BASE_DIR} )
71 SET( toolkit_styles_dir ${STYLE_DIR} )
72 SET( toolkit_style_images_dir ${STYLE_DIR}/images )
73
74 IF( DEFINED ENV{DALI_DATA_RW_DIR} )
75   SET( dataReadWriteDir $ENV{DALI_DATA_RW_DIR} )
76 ELSE()
77   SET( dataReadWriteDir ${CMAKE_INSTALL_PREFIX}/share/dali/ )
78 ENDIF()
79
80 IF( DEFINED ENV{DALI_DATA_RO_DIR} )
81   SET( dataReadOnlyDir $ENV{DALI_DATA_RO_DIR} )
82 ELSE()
83   SET( dataReadOnlyDir ${CMAKE_INSTALL_PREFIX}/share/dali/ )
84 ENDIF()
85
86 # Set up compiler definitions
87 IF(CMAKE_BUILD_TYPE MATCHES Debug)
88   MESSAGE( STATUS "CMAKE_BUILD_TYPE: " Debug )
89   SET( ENABLE_DEBUG ON )
90 ELSE()
91   MESSAGE( STATUS "CMAKE_BUILD_TYPE: " Release )
92 ENDIF()
93
94 IF( ENABLE_DEBUG )
95   ADD_DEFINITIONS( "-DDEBUG_ENABLED" )
96   SET( ENABLE_EXPORTALL ON )
97 ENDIF( ENABLE_DEBUG )
98
99 IF( ENABLE_I18N )
100   ADD_DEFINITIONS( "-DDGETTEXT_ENABLED" )
101 ENDIF( ENABLE_I18N )
102
103 IF( SET_VCPKG_INSTALL_PREFIX )
104   ADD_DEFINITIONS( "-DBUILDING_DALI_TOOLKIT" )
105   IF( USE_DEFAULT_RESOURCE_DIR )
106     ADD_DEFINITIONS( -DDALI_IMAGE_DIR=\"${VCPKG_INSTALLED_DIR}/share/dali/toolkit/images/\"
107                      -DDALI_SOUND_DIR=\"${VCPKG_INSTALLED_DIR}/share/dali/toolkit/sounds/\"
108                      -DDALI_STYLE_DIR=\"${VCPKG_INSTALLED_DIR}/share/dali/toolkit/styles/\"
109                      -DDALI_STYLE_IMAGE_DIR=\"${VCPKG_INSTALLED_DIR}/share/dali/toolkit/styles/images/\"
110                      -DDALI_DATA_READ_ONLY_DIR=\"${VCPKG_INSTALLED_DIR}/share/\" )
111   ENDIF()
112 ELSE()
113   ADD_DEFINITIONS(-DPIC -DSTDC_HEADERS)
114   IF( USE_DEFAULT_RESOURCE_DIR )
115     ADD_DEFINITIONS( -DDALI_IMAGE_DIR=\"${dataReadOnlyDir}/toolkit/images/\"
116                      -DDALI_SOUND_DIR=\"${dataReadOnlyDir}/toolkit/sounds/\"
117                      -DDALI_STYLE_DIR=\"${dataReadOnlyDir}/toolkit/styles/\"
118                      -DDALI_STYLE_IMAGE_DIR=\"${dataReadOnlyDir}/toolkit/styles/images/\"
119                      -DDALI_DATA_READ_ONLY_DIR=\"${dataReadOnlyDir}\" )
120   ENDIF()
121
122   IF("${ARCH}" STREQUAL "arm")
123     ADD_DEFINITIONS("-DTARGET")
124   ENDIF("${ARCH}" STREQUAL "arm")
125
126   IF( NOT ${ENABLE_EXPORTALL} )
127     ADD_DEFINITIONS( "-fvisibility=hidden -DHIDE_DALI_INTERNALS" )
128   ENDIF( NOT ${ENABLE_EXPORTALL} )
129 ENDIF()
130
131 IF( NOT USE_DEFAULT_RESOURCE_DIR )
132   ADD_DEFINITIONS( -DDALI_IMAGE_DIR=0
133                    -DDALI_SOUND_DIR=0
134                    -DDALI_STYLE_DIR=0
135                    -DDALI_STYLE_IMAGE_DIR=0
136                    -DDALI_DATA_READ_ONLY_DIR=0 )
137 ENDIF()
138
139 IF( ENABLE_TRACE )
140   ADD_DEFINITIONS("-DTRACE_ENABLED")
141 ENDIF()
142
143 # Platforms with highp shader support can use vector based text
144 IF( "${PROFILE}" STREQUAL "UBUNTU" )
145   SET( ENABLE_VECTOR_BASED_TEXT_RENDERING 1 )
146 ENDIF()
147
148 # Deployment folder should come from spec file or command line:
149 SET( PREFIX ${CMAKE_INSTALL_PREFIX})
150 SET( EXEC_PREFIX ${CMAKE_INSTALL_PREFIX})
151
152 # Set paths
153 SET( toolkit_images_dir  ${ROOT_SRC_DIR}/dali-toolkit/styles/images-common )
154 SET( toolkit_sounds_dir  ${ROOT_SRC_DIR}/dali-toolkit/sounds )
155 SET( toolkit_src_dir     ${ROOT_SRC_DIR}/dali-toolkit/internal )
156 SET( public_api_src_dir  ${ROOT_SRC_DIR}/dali-toolkit/public-api )
157 SET( devel_api_src_dir   ${ROOT_SRC_DIR}/dali-toolkit/devel-api )
158 SET( third_party_src_dir ${ROOT_SRC_DIR}/dali-toolkit/third-party )
159 SET( package_doxy_dir    ${ROOT_SRC_DIR}/doc )
160
161 # Set up the include dir
162 SET( INCLUDE_DIR $ENV{includedir} )
163 IF( NOT INCLUDE_DIR )
164   SET( INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR} )
165 ENDIF()
166 IF( NOT INCLUDE_DIR )
167   SET( INCLUDE_DIR ${PREFIX}/include )
168 ENDIF()
169
170 # Set up the lib dir
171 IF( SET_VCPKG_INSTALL_PREFIX )
172   SET( LIB_DIR ${PREFIX}/lib )
173   SET( BIN_DIR ${PREFIX}/bin )
174 ELSE()
175   SET( LIB_DIR $ENV{libdir} )
176   IF( NOT LIB_DIR )
177     SET( LIB_DIR ${CMAKE_INSTALL_LIBDIR} )
178   ENDIF()
179   IF( NOT LIB_DIR )
180     SET( LIB_DIR ${PREFIX}/lib )
181   ENDIF()
182 ENDIF()
183
184 IF( ENABLE_PKG_CONFIGURE )
185   # Configure the pkg-config file
186   # Requires the following variables to be setup:
187   # @PREFIX@ @EXEC_PREFIX@ @DALI_VERSION@ @LIB_DIR@ @DEV_INCLUDE_PATH@
188   SET( DEV_INCLUDE_PATH ${INCLUDE_DIR} )
189   SET( CORE_PKG_CFG_FILE dali-toolkit.pc )
190   CONFIGURE_FILE( ${CORE_PKG_CFG_FILE}.in ${CORE_PKG_CFG_FILE} @ONLY )
191 ENDIF()
192
193 IF( WIN32 )
194   ADD_COMPILE_OPTIONS( /FIdali-windows-dependencies.h ) # Adds missing definitions.
195   ADD_COMPILE_OPTIONS( /vmg )                           # Avoids a 'reinterpret_cast' compile error while compiling signals and callbacks.
196 ELSE()
197   # Set up compiler flags and warnings
198   ADD_COMPILE_OPTIONS( -std=c++11 )
199   ADD_COMPILE_OPTIONS( -Wno-ignored-qualifiers )
200
201   # TODO: Clang is a lot more strict with warnings, we should address
202   # those issues at some point.
203   IF( NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
204     ADD_COMPILE_OPTIONS( -Werror )
205   ENDIF()
206
207   ADD_COMPILE_OPTIONS( -Wall -Wno-unused-parameter -Wno-float-equal -Wno-class-memaccess )
208
209   IF( ENABLE_COVERAGE OR "$ENV{CXXFLAGS}" MATCHES --coverage )
210     ADD_COMPILE_OPTIONS( --coverage )
211     SET(ENABLE_COVERAGE ON)
212     SET(COVERAGE --coverage)
213   ENDIF()
214 ENDIF()
215
216
217 INCLUDE_DIRECTORIES(
218   ${SYSTEM_INCLUDE_DIR}
219   ${ROOT_SRC_DIR}
220   ${DALICORE_INCLUDE_DIRS}
221   ${DALIADAPTOR_INCLUDE_DIRS}
222 )
223
224 SET(SOURCE_DIR "${ROOT_SRC_DIR}/dali")
225 SET(PACKAGE_DOXY_SRC_DIR "${ROOT_SRC_DIR}/doc")
226
227 SET(SOURCES "")
228
229 # could use INCLUDE to get the source lists a different way;
230 # would then need to specify a build folder somehow...
231 INCLUDE( ${ROOT_SRC_DIR}/dali-toolkit/sounds/file.list )
232 INCLUDE( ${ROOT_SRC_DIR}/dali-toolkit/styles/file.list )
233 INCLUDE( ${ROOT_SRC_DIR}/dali-toolkit/styles/images-common/file.list )
234 INCLUDE( ${ROOT_SRC_DIR}/dali-toolkit/internal/file.list )
235 INCLUDE( ${ROOT_SRC_DIR}/dali-toolkit/public-api/file.list )
236 INCLUDE( ${ROOT_SRC_DIR}/dali-toolkit/devel-api/file.list )
237 INCLUDE( ${ROOT_SRC_DIR}/dali-toolkit/third-party/file.list )
238 INCLUDE( ${ROOT_SRC_DIR}/doc/file.list )
239
240 SET(LIBTYPE SHARED)
241 IF(DEFINED STATIC)
242   SET(LIBTYPE STATIC)
243 ENDIF()
244
245 IF( WIN32 )
246   SET( DALICORE_LDFLAGS
247         "${DALICORE_LDFLAGS}"
248         dali-core::dali-core )
249
250   FIND_PACKAGE( pthreads REQUIRED )
251   FIND_PACKAGE( curl REQUIRED )
252   FIND_LIBRARY( GETOPT_LIBRARY NAMES getopt )
253   FIND_LIBRARY( EXIF_LIBRARY NAMES libexif )
254
255   FIND_PACKAGE( png REQUIRED )
256   FIND_PACKAGE( gif REQUIRED )
257   FIND_PACKAGE( jpeg REQUIRED )
258   FIND_LIBRARY( TURBO_JPEG_LIBRARY NAMES turbojpeg )
259
260   FIND_PACKAGE( fontconfig REQUIRED )
261   FIND_PACKAGE( freetype REQUIRED )
262   FIND_PACKAGE( harfbuzz REQUIRED )
263   FIND_LIBRARY( FRIBIDI_LIBRARY NAMES fribidi )
264
265   FIND_PACKAGE( unofficial-angle REQUIRED )
266   FIND_PACKAGE( unofficial-cairo REQUIRED )
267
268   SET( DALIADAPTOR_LDFLAGS
269        "${DALIADAPTOR_LDFLAGS}"
270        dali-adaptor::dali-adaptor )
271 ENDIF()
272
273
274 ADD_LIBRARY( ${name} ${LIBTYPE} ${SOURCES} )
275 TARGET_LINK_LIBRARIES( ${name}
276   ${DALICORE_LDFLAGS}
277   ${DALIADAPTOR_LDFLAGS}
278   ${COVERAGE}
279 )
280
281 IF( ANDROID )
282   TARGET_LINK_LIBRARIES( ${name} log )
283 ENDIF()
284
285 SET_TARGET_PROPERTIES( ${name}
286   PROPERTIES
287   VERSION ${DALI_TOOLKIT_VERSION}
288   SOVERSION ${${name}_VERSION_MAJOR}
289   CLEAN_DIRECT_OUPUT 1
290 )
291
292 # Install the library so file and symlinks
293 IF( INSTALL_CMAKE_MODULES )
294   INSTALL( TARGETS ${name}
295     EXPORT ${name}-targets
296     LIBRARY DESTINATION ${LIB_DIR}
297     ARCHIVE DESTINATION ${LIB_DIR}
298     RUNTIME DESTINATION ${BIN_DIR}
299   )
300
301   INSTALL(
302     EXPORT ${name}-targets
303     NAMESPACE ${name}::
304     FILE ${name}-targets.cmake
305     DESTINATION share/${name}
306   )
307
308   FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${name}-config.cmake "
309     include(CMakeFindDependencyMacro)
310     include(\${CMAKE_CURRENT_LIST_DIR}/${name}-targets.cmake)
311   ")
312   install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${name}-config.cmake DESTINATION share/${name})
313 ELSE()
314   INSTALL( TARGETS ${name} DESTINATION ${LIB_DIR} )
315 ENDIF()
316
317 # Install the pkg-config file
318 IF( ENABLE_PKG_CONFIGURE )
319   INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/${CORE_PKG_CFG_FILE} DESTINATION ${LIB_DIR}/pkgconfig )
320 ENDIF()
321
322 # Glob for resources
323 MACRO( COPY_RESOURCES FILE_LIST SRC_RELATIVE_DIRECTORY DESTINATION EXPLICIT_DESTINATION )
324   FOREACH( PATTERN ${FILE_LIST} )
325     FILE(GLOB FILES ${PATTERN} )
326     FOREACH( FILE ${FILES} )
327       STRING(REPLACE ${SRC_RELATIVE_DIRECTORY} ${DESTINATION} NEWFILE ${FILE} )
328       GET_FILENAME_COMPONENT(NEWDIR ${NEWFILE} DIRECTORY)
329       IF( "${EXPLICIT_DESTINATION}" STREQUAL "" )
330         STRING( REPLACE "dali-toolkit" "toolkit" NEWDIR2 ${NEWDIR} )
331         INSTALL( FILES ${FILE} DESTINATION ${NEWDIR2} )
332       ELSE()
333         INSTALL( FILES ${FILE} DESTINATION ${DESTINATION}/${EXPLICIT_DESTINATION} )
334       ENDIF()
335     ENDFOREACH()
336   ENDFOREACH()
337 ENDMACRO()
338
339 # macro for installing headers by replacing prefix. (TODO, investigate
340 # if there is a CMAKE way of doing this automatically)
341 MACRO(INSTALL_HEADERS_WITH_DIRECTORY HEADER_LIST STRIP_PREFIX REPLACE_PREFIX)
342   GET_FILENAME_COMPONENT( SPREFIX ${STRIP_PREFIX} ABSOLUTE )
343   FOREACH(HEADER ${${HEADER_LIST}})
344     STRING(REGEX MATCH "(.*)[/]" DIR ${HEADER})
345     STRING(REPLACE ${SPREFIX} ${REPLACE_PREFIX} NEWDIR ${DIR})
346     INSTALL(FILES ${HEADER} DESTINATION ${INCLUDE_DIR}/${NEWDIR})
347   ENDFOREACH(HEADER)
348 ENDMACRO(INSTALL_HEADERS_WITH_DIRECTORY)
349
350 # Install headers using lists defined by ADD_SUBDIRECTORY
351 INSTALL_HEADERS_WITH_DIRECTORY(PUBLIC_API_HEADERS ${ROOT_SRC_DIR}/dali-toolkit "dali-toolkit")
352 INSTALL_HEADERS_WITH_DIRECTORY(DEVEL_API_HEADERS ${ROOT_SRC_DIR}/dali-toolkit "dali-toolkit")
353 INSTALL_HEADERS_WITH_DIRECTORY(INTEGRATION_API_HEADERS ${ROOT_SRC_DIR}/dali-toolkit "dali-toolkit")
354 INSTALL_HEADERS_WITH_DIRECTORY(PACKAGE_DOXY_HEADERS ${PACKAGE_DOXY_SRC_DIR} "dali-toolkit/doc" )
355
356 # Install dali-toolkit.h
357 INSTALL( FILES ${ROOT_SRC_DIR}/dali-toolkit/dali-toolkit.h DESTINATION ${INCLUDE_DIR}/dali-toolkit )
358
359 # package doxygen file (contains doxygen grouping information)
360 INSTALL( FILES ${package_doxy_files} DESTINATION ${DEV_INCLUDE_PATH}/dali-toolkit/doc )
361
362 # On some platforms we want to install the data files to different location compare to
363 # the data location used runtime. For example, on Android we want the toolkit library to load
364 # the files from /data/data/com.sec.dali_demo/files but to install the files into ${PREFIX}/files
365 # for SDK to pick them up for the archive.
366 IF( DEFINED ENV{DALI_DATA_RW_INSTALL_DIR} )
367   SET( dataReadWriteInstallDir $ENV{DALI_DATA_RW_INSTALL_DIR} )
368 ELSE()
369   SET( dataReadWriteInstallDir ${dataReadWriteDir} )
370 ENDIF()
371
372 IF( DEFINED ENV{DALI_DATA_RO_INSTALL_DIR} )
373   SET( dataReadOnlyInstallDir $ENV{DALI_DATA_RO_INSTALL_DIR} )
374 ELSE()
375   SET( dataReadOnlyInstallDir ${dataReadOnlyDir} )
376 ENDIF()
377
378 COPY_RESOURCES( "${dali_toolkit_style_files}" "${ROOT_SRC_DIR}" "${dataReadOnlyInstallDir}" "./toolkit/styles" )
379 COPY_RESOURCES( "${dali_toolkit_image_files}" "${ROOT_SRC_DIR}" "${dataReadOnlyInstallDir}" "./toolkit/images" )
380 COPY_RESOURCES( "${dali_toolkit_sound_files}" "${ROOT_SRC_DIR}" "${dataReadOnlyInstallDir}" "./toolkit/sounds" )
381 COPY_RESOURCES( "${dali_toolkit_style_images}" "${ROOT_SRC_DIR}" "${dataReadOnlyInstallDir}" "./toolkit/styles/images" )
382
383 # The DALI_TOOLKIT_PREFIX must be set if this CMakeLists.txt is executed
384 # from the top-level CMake script using ADD_SUBDIRECTORY() to avoid
385 # target names duplication with other DALi modules.
386 IF( ENABLE_COVERAGE )
387   FIND_PROGRAM( LCOV_BIN "lcov" )
388   IF( LCOV_BIN )
389
390     # Define custom rules for coverage
391     SET(COVERAGE_DIR .cov)
392     SET(COVERAGE_OUTPUT_DIR doc/coverage)
393
394     # lcov prior to 1.10 doesn't have -rc option; this and subsequent version don't output
395     # branch coverage. Determine the lcov version, and enable branch coverage accordingly.
396     EXECUTE_PROCESS( COMMAND bash -c "${LCOV_BIN} --version | cut -d' ' -f4" OUTPUT_VARIABLE LCOV_VERSION )
397     STRING( REPLACE "." ";" LCOV_VLIST ${LCOV_VERSION})
398     IF( NOT $<VERSION_LESS:${LCOV_VERSION},"1.10"> )
399       SET(LCOV_OPTS --rc lcov_branch_coverage=1)
400     ENDIF()
401
402     ADD_CUSTOM_TARGET( ${DALI_TOOLKIT_PREFIX}rename_cov_data ./rename-cov-data )
403
404     ADD_CUSTOM_TARGET( ${DALI_TOOLKIT_PREFIX}cov_data ${LCOV_BIN} ${LCOV_OPTS} --base-directory . --directory . -c -o dali.info
405       COMMAND ${LCOV_BIN} ${LCOV_OPTS} --remove dali.info \"*/dali-env/*\" \"/usr/include/*\" "*/dali-env/*" "*solid-color-actor*" "*/dali-toolkit/third-party/*" -o dali.info )
406
407     ADD_CUSTOM_TARGET( ${DALI_TOOLKIT_PREFIX}coverage genhtml ${LCOV_OPTS} -o ${COVERAGE_OUTPUT_DIR} dali.info
408       DEPENDS cov_data )
409
410     ADD_CUSTOM_TARGET( ${DALI_TOOLKIT_PREFIX}reset_coverage @${LCOV_BIN} -z --directory `pwd` )
411
412     # Define custom rule for distclean
413     ADD_CUSTOM_TARGET( ${DALI_TOOLKIT_PREFIX}distclean @echo cleaning for source distribution )
414     ADD_CUSTOM_COMMAND(
415           DEPENDS ${DALI_TOOLKIT_PREFIX}clean
416           COMMENT "distribution clean"
417           COMMAND find
418           ARGS    .
419           -not -name config.cmake -and \(
420           -name tester.c -or
421           -name Testing -or
422           -name CMakeFiles -or
423           -name doc -or
424           -name cmake.depends -or
425           -name cmake.check_depends -or
426           -name CMakeCache.txt -or
427           -name cmake.check_cache -or
428           -name *.cmake -or
429           -name Makefile -or
430           -name core -or
431           -name core.* -or
432           -name gmon.out -or
433           -name install_manifest.txt -or
434           -name *.pc -or
435           -name *.gcov -or
436           -name *.gcno -or
437           -name *.gcda -or
438           -name *~ -or
439           -name libdali*.so* \)
440           | grep -v TC | xargs rm -rf
441           TARGET  ${DALI_TOOLKIT_PREFIX}distclean
442           VERBATIM
443           )
444
445   ENDIF( LCOV_BIN )
446 ENDIF()
447
448 # Build documentation if doxygen tool is available
449 SET( doxygenEnabled OFF )
450 IF( DOXYGEN_FOUND )
451   SET( doxygenEnabled ON )
452   # 'prefix' is used by doxygen in-files.
453   SET( prefix ${PREFIX} )
454   SET( DOXYGEN_DOCS_DIR ${ROOT_SRC_DIR}/docs )
455   SET( DOXYGEN_ROOT_DIR ${ROOT_SRC_DIR} )
456   SET( DOXYGEN_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/docs )
457   SET( DOXYGEN_INTERNAL_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/docs-internal )
458   CONFIGURE_FILE( ${DOXYGEN_SRC_DIR}/dali.doxy.in ${DOXYGEN_SRC_DIR}/dali.doxy @ONLY )
459   CONFIGURE_FILE( ${DOXYGEN_INTERNAL_SRC_DIR}/dali-internal.doxy.in ${DOXYGEN_INTERNAL_SRC_DIR}/dali-internal.doxy @ONLY )
460   ADD_CUSTOM_TARGET( doc_doxygen ALL
461                      DEPENDS ${name}
462                      COMMAND ${DOXYGEN_EXECUTABLE} -u ${DOXYGEN_SRC_DIR}/dali.doxy
463                      COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_SRC_DIR}/dali.doxy
464                      COMMAND ${CMAKE_COMMAND} -P ${DOXYGEN_SRC_DIR}/check_for_errors.cmake
465                      COMMENT "Generating API documentation with Doxygen"
466                      WORKING_DIRECTORY ${DOXYGEN_SRC_DIR}
467                      VERBATIM )
468   ADD_CUSTOM_TARGET( doc_doxygen_internal
469                      COMMAND ${DOXYGEN_EXECUTABLE} -u ${DOXYGEN_INTERNAL_SRC_DIR}/dali-internal.doxy
470                      COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_INTERNAL_SRC_DIR}/dali-internal.doxy
471                      COMMENT "Generating Internal API documentation with Doxygen"
472                      VERBATIM )
473
474 ENDIF()
475
476 IF( CONFIGURE_AUTOMATED_TESTS )
477   # Configure automated tests
478   CONFIGURE_FILE( ${ROOT_SRC_DIR}/automated-tests/CMakeLists.txt.in
479                   ${ROOT_SRC_DIR}/automated-tests/CMakeLists.txt @ONLY )
480 ENDIF()
481
482 # Configuration Messages
483 MESSAGE( STATUS "Configuration:\n" )
484 MESSAGE( STATUS "Prefix:                        " ${PREFIX} )
485 MESSAGE( STATUS "Lib Dir:                       " ${LIB_DIR} )
486 MESSAGE( STATUS "Include Dir:                   " ${INCLUDE_DIR} )
487 MESSAGE( STATUS "Debug build:                   " ${ENABLE_DEBUG} )
488 MESSAGE( STATUS "Export all symbols:            " ${ENABLE_EXPORTALL} )
489 MESSAGE( STATUS "Coverage:                      " ${ENABLE_COVERAGE} )
490 MESSAGE( STATUS "Trace:                         " ${ENABLE_TRACE} )
491 MESSAGE( STATUS "Doxygen:                       " ${doxygenEnabled} )
492 MESSAGE( STATUS "Data Dir (Read/Write):         " ${dataReadWriteDir} )
493 MESSAGE( STATUS "Data Dir (Read Only):          " ${dataReadOnlyDir} )
494 MESSAGE( STATUS "Data Install Dir (Read/Write): " ${dataReadWriteInstallDir} )
495 MESSAGE( STATUS "Data Install Dir (Read Only):  " ${dataReadOnlyInstallDir} )
496 MESSAGE( STATUS "Style Dir:                     " ${STYLE_DIR} )
497 MESSAGE( STATUS "Style:                         " ${dali_style} )
498 MESSAGE( STATUS "i18n:                          " ${ENABLE_I18N} )
499 MESSAGE( STATUS "Use pkg configure:             " ${ENABLE_PKG_CONFIGURE} )
500 MESSAGE( STATUS "Enable link test:              " ${ENABLE_LINK_TEST} )
501 MESSAGE( STATUS "Configure automated tests:     " ${CONFIGURE_AUTOMATED_TESTS} )
502 MESSAGE( STATUS "CXXFLAGS:                      " ${CMAKE_CXX_FLAGS} )
503 MESSAGE( STATUS "LDFLAGS:                       " ${CMAKE_SHARED_LINKER_FLAGS_INIT}${CMAKE_SHARED_LINKER_FLAGS} )