2 # @author Lukasz Wrzosek (l.wrzosek@samsung.com)
7 # Check minimum CMake version
8 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
11 PROJECT(voice-control-elm)
13 SET(LIBRARY_NAME "vc-elm")
14 #SET(VOICE_CONTROL_ELM_VERSION_MAJOR 0)
15 #SET(VOICE_CONTROL_ELM_VERSION_MINOR 65)
16 #SET(VOICE_CONTROL_ELM_VERSION_PATCH 3)
17 SET(VERSION ${VERSION})
20 INCLUDE(FindPkgConfig)
21 pkg_check_modules(pkgs REQUIRED
26 SET(CMAKE_BUILD_TYPE "Release")
27 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -g -D_GNU_SOURCE")
29 ADD_DEFINITIONS("-DVOICE_LIBDIR=\"${LIBDIR}\"")
32 MESSAGE(STATUS "========================================")
33 MESSAGE(STATUS "CMAKE_BINARY_DIR: " ${CMAKE_BINARY_DIR})
34 MESSAGE(STATUS "CMAKE_CURRENT_BINARY_DIR: " ${CMAKE_CURRENT_BINARY_DIR})
35 MESSAGE(STATUS "CMAKE_SOURCE_DIR: " ${CMAKE_SOURCE_DIR})
36 MESSAGE(STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR})
37 MESSAGE(STATUS "PROJECT_BINARY_DIR: " ${PROJECT_BINARY_DIR})
38 MESSAGE(STATUS "PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR})
39 MESSAGE(STATUS "EXECUTABLE_OUTPUT_PATH: " ${EXECUTABLE_OUTPUT_PATH})
40 MESSAGE(STATUS "LIBRARY_OUTPUT_PATH: " ${LIBRARY_OUTPUT_PATH})
41 MESSAGE(STATUS "CMAKE_MODULE_PATH: " ${CMAKE_MODULE_PATH})
42 MESSAGE(STATUS "CMAKE_COMMAND: " ${CMAKE_COMMAND})
43 MESSAGE(STATUS "CMAKE_ROOT: " ${CMAKE_ROOT})
44 MESSAGE(STATUS "CMAKE_CURRENT_LIST_FILE: " ${CMAKE_CURRENT_LIST_FILE})
45 MESSAGE(STATUS "CMAKE_CURRENT_LIST_LINE: " ${CMAKE_CURRENT_LIST_LINE})
46 MESSAGE(STATUS "CMAKE_INCLUDE_PATH: " ${CMAKE_INCLUDE_PATH})
47 MESSAGE(STATUS "CMAKE_LIBRARY_PATH: " ${CMAKE_LIBRARY_PATH})
48 MESSAGE(STATUS "CMAKE_SYSTEM: " ${CMAKE_SYSTEM})
49 MESSAGE(STATUS "CMAKE_SYSTEM_NAME: " ${CMAKE_SYSTEM_NAME})
50 MESSAGE(STATUS "CMAKE_SYSTEM_VERSION: " ${CMAKE_SYSTEM_VERSION})
51 MESSAGE(STATUS "CMAKE_SYSTEM_PROCESSOR: " ${CMAKE_SYSTEM_PROCESSOR})
52 MESSAGE(STATUS "UNIX: " ${UNIX})
53 MESSAGE(STATUS "WIN32: " ${WIN32})
54 MESSAGE(STATUS "APPLE: " ${APPLE})
55 MESSAGE(STATUS "MINGW: " ${MINGW})
56 MESSAGE(STATUS "CYGWIN: " ${CYGWIN})
57 MESSAGE(STATUS "BORLAND: " ${BORLAND})
58 MESSAGE(STATUS "MSVC: " ${MSVC})
59 MESSAGE(STATUS "MSVC_IDE: " ${MSVC_IDE})
60 MESSAGE(STATUS "MSVC60: " ${MSVC60})
61 MESSAGE(STATUS "MSVC70: " ${MSVC70})
62 MESSAGE(STATUS "MSVC71: " ${MSVC71})
63 MESSAGE(STATUS "MSVC80: " ${MSVC80})
64 MESSAGE(STATUS "CMAKE_COMPILER_2005: " ${CMAKE_COMPILER_2005})
65 MESSAGE(STATUS "CMAKE_SKIP_RULE_DEPENDENCY: " ${CMAKE_SKIP_RULE_DEPENDENCY})
66 MESSAGE(STATUS "CMAKE_SKIP_INSTALL_ALL_DEPENDENCY: " ${CMAKE_SKIP_INSTALL_ALL_DEPENDENCY})
67 MESSAGE(STATUS "CMAKE_SKIP_RPATH: " ${CMAKE_SKIP_RPATH})
68 MESSAGE(STATUS "CMAKE_VERBOSE_MAKEFILE: " ${CMAKE_VERBOSE_MAKEFILE})
69 MESSAGE(STATUS "CMAKE_SUPPRESS_REGENERATION: " ${CMAKE_SUPPRESS_REGENERATION})
70 MESSAGE(STATUS "CMAKE_C_FLAGS: " ${CMAKE_C_FLAGS})
71 MESSAGE(STATUS "CMAKE_CXX_FLAGS: " ${CMAKE_CXX_FLAGS})
72 MESSAGE(STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE})
73 MESSAGE(STATUS "BUILD_SHARED_LIBS: " ${BUILD_SHARED_LIBS})
74 MESSAGE(STATUS "CMAKE_C_COMPILER: " ${CMAKE_C_COMPILER})
75 MESSAGE(STATUS "CMAKE_CXX_COMPILER: " ${CMAKE_CXX_COMPILER})
76 MESSAGE(STATUS "CMAKE_COMPILER_IS_GNUCC: " ${CMAKE_COMPILER_IS_GNUCC})
77 MESSAGE(STATUS "CMAKE_COMPILER_IS_GNUCXX : " ${CMAKE_COMPILER_IS_GNUCXX})
78 MESSAGE(STATUS "CMAKE_AR: " ${CMAKE_AR})
79 MESSAGE(STATUS "CMAKE_RANLIB: " ${CMAKE_RANLIB})
80 MESSAGE(STATUS "========================================")
83 #ADD_DEFINITIONS("-Werror") # Generate all warnings as errors
84 ADD_DEFINITIONS("-Wall") # Generate all warnings
85 ADD_DEFINITIONS("-Wextra") # Generate even more extra warnings
86 #ADD_DEFINITIONS("-pedantic") # Accept only pedantic code
87 ADD_DEFINITIONS("-Wwrite-strings") # Do not accept writing to constant string memory
88 ADD_DEFINITIONS("-Winit-self") # Do not accept initializing variable with itself
89 ADD_DEFINITIONS("-Wcast-align") # Do not accept misaligning with casting
90 ADD_DEFINITIONS("-Wcast-qual") # Do not accept removing qualifiers with casting
91 ADD_DEFINITIONS("-Wpointer-arith") # Warn about void pointer arthimetic
92 ADD_DEFINITIONS("-Wstrict-aliasing") # Ensure strict aliasing
93 ADD_DEFINITIONS("-Wuninitialized") # Do not accept uninitialized variables
94 ADD_DEFINITIONS("-Wlong-long") # Do not allow using long long
95 ADD_DEFINITIONS("-Wunreachable-code") # Warn about unreachable code
96 ADD_DEFINITIONS("-Wfloat-equal") # Do not accept comparing floating points with equal operator
97 ADD_DEFINITIONS("-Wabi") # Warn about possible ABI problems
98 ADD_DEFINITIONS("-Wswitch-enum") # Check switch enumeration
99 ADD_DEFINITIONS("-Wformat=2") # Check printf formatting
100 ADD_DEFINITIONS("-Wundef") # Warn if an undefined identifier is evaluated in an @if directive.
101 ADD_DEFINITIONS("-Wshadow") # Warn whenever a local variable shadows another local variable, parameter or global variable or whenever a built-in function is shadowed
102 ADD_DEFINITIONS("-Wconversion") # Warn for implicit conversions that may alter a value
103 ADD_DEFINITIONS("-Wlogical-op") # Warn about suspicious uses of logical operators in expressions
104 ADD_DEFINITIONS("-Wmissing-field-initializers") # Warn if a structure's initializer has some fields missing.
105 ADD_DEFINITIONS("-Wredundant-decls") # Warn if anything is declared more than once in the same scope, even in cases where multiple declaration is valid and changes nothing.
106 ADD_DEFINITIONS("-Wswitch-default") # Warn whenever a switch statement does not have a default case.
107 ADD_DEFINITIONS("-Wsync-nand") # Warn when __sync_fetch_and_nand and __sync_nand_and_fetch built-in functions are used. These functions changed semantics in GCC 4.4.
108 ADD_DEFINITIONS("-Wunused") # All the above -Wunused options combined.
109 ADD_DEFINITIONS("-Wstrict-overflow=5") # Also warn about cases where the compiler reduces the magnitude of a constant involved in a comparison.
112 SET(TARGET_VC_ELM_LIBRARY ${LIBRARY_NAME})
114 SET(VC_ELM_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include)
116 ADD_SUBDIRECTORY(src)
117 ADD_SUBDIRECTORY(include)
119 # INCLUDE FOR BUILD & INSTALL .PO FILES
120 ADD_SUBDIRECTORY(data/po)
122 ADD_CUSTOM_TARGET(voice-control-elm.edj
123 COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/data
124 ${CMAKE_SOURCE_DIR}/data/${PROJECT_NAME}.edc ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj
126 ADD_DEPENDENCIES(${LIBRARY_NAME} ${PROJECT_NAME}.edj)
128 INSTALL(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj
129 DESTINATION ${TZ_SYS_RO_SHARE}/edje)
131 INSTALL(FILES ${PROJECT_SOURCE_DIR}/data/image.png
132 ${PROJECT_SOURCE_DIR}/data/image_test.png
133 DESTINATION ${TZ_SYS_RO_SHARE}/voice/vc-elm/1.0)
135 INSTALL(FILES ${PROJECT_SOURCE_DIR}/voice-control-elm-config.xml
136 DESTINATION ${TZ_SYS_RO_SHARE}/voice/vc-elm/1.0)