Fix from -std=c++11 to -std=c++14 for gtest 1.14.0 version upgrade
[platform/core/uifw/voice-control-elm.git] / CMakeLists.txt
1 # @file         CMakeLists.txt
2 # @author       Lukasz Wrzosek (l.wrzosek@samsung.com)
3 # @version      1.0
4 # @brief
5 #
6
7 # Check minimum CMake version
8 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
9
10 # Project name
11 PROJECT(voice-control-elm)
12
13 SET(LIBRARY_NAME "vc-elm")
14 SET(VERSION ${VERSION})
15
16 # pkg config tool
17 INCLUDE(FindPkgConfig)
18 pkg_check_modules(pkgs REQUIRED
19                 vconf
20 )
21
22 # Build type
23 SET(CMAKE_BUILD_TYPE "Release")
24 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -g -D_GNU_SOURCE")
25
26 ADD_DEFINITIONS("-DVOICE_LIBDIR=\"${LIBDIR}\"")
27
28 # CMake settings
29 MESSAGE(STATUS "========================================")
30 MESSAGE(STATUS "CMAKE_BINARY_DIR: " ${CMAKE_BINARY_DIR})
31 MESSAGE(STATUS "CMAKE_CURRENT_BINARY_DIR: " ${CMAKE_CURRENT_BINARY_DIR})
32 MESSAGE(STATUS "CMAKE_SOURCE_DIR: " ${CMAKE_SOURCE_DIR})
33 MESSAGE(STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR})
34 MESSAGE(STATUS "PROJECT_BINARY_DIR: " ${PROJECT_BINARY_DIR})
35 MESSAGE(STATUS "PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR})
36 MESSAGE(STATUS "EXECUTABLE_OUTPUT_PATH: " ${EXECUTABLE_OUTPUT_PATH})
37 MESSAGE(STATUS "LIBRARY_OUTPUT_PATH: " ${LIBRARY_OUTPUT_PATH})
38 MESSAGE(STATUS "CMAKE_MODULE_PATH: " ${CMAKE_MODULE_PATH})
39 MESSAGE(STATUS "CMAKE_COMMAND: " ${CMAKE_COMMAND})
40 MESSAGE(STATUS "CMAKE_ROOT: " ${CMAKE_ROOT})
41 MESSAGE(STATUS "CMAKE_CURRENT_LIST_FILE: " ${CMAKE_CURRENT_LIST_FILE})
42 MESSAGE(STATUS "CMAKE_CURRENT_LIST_LINE: " ${CMAKE_CURRENT_LIST_LINE})
43 MESSAGE(STATUS "CMAKE_INCLUDE_PATH: " ${CMAKE_INCLUDE_PATH})
44 MESSAGE(STATUS "CMAKE_LIBRARY_PATH: " ${CMAKE_LIBRARY_PATH})
45 MESSAGE(STATUS "CMAKE_SYSTEM: " ${CMAKE_SYSTEM})
46 MESSAGE(STATUS "CMAKE_SYSTEM_NAME: " ${CMAKE_SYSTEM_NAME})
47 MESSAGE(STATUS "CMAKE_SYSTEM_VERSION: " ${CMAKE_SYSTEM_VERSION})
48 MESSAGE(STATUS "CMAKE_SYSTEM_PROCESSOR: " ${CMAKE_SYSTEM_PROCESSOR})
49 MESSAGE(STATUS "UNIX: " ${UNIX})
50 MESSAGE(STATUS "WIN32: " ${WIN32})
51 MESSAGE(STATUS "APPLE: " ${APPLE})
52 MESSAGE(STATUS "MINGW: " ${MINGW})
53 MESSAGE(STATUS "CYGWIN: " ${CYGWIN})
54 MESSAGE(STATUS "BORLAND: " ${BORLAND})
55 MESSAGE(STATUS "MSVC: " ${MSVC})
56 MESSAGE(STATUS "MSVC_IDE: " ${MSVC_IDE})
57 MESSAGE(STATUS "MSVC60: " ${MSVC60})
58 MESSAGE(STATUS "MSVC70: " ${MSVC70})
59 MESSAGE(STATUS "MSVC71: " ${MSVC71})
60 MESSAGE(STATUS "MSVC80: " ${MSVC80})
61 MESSAGE(STATUS "CMAKE_COMPILER_2005: " ${CMAKE_COMPILER_2005})
62 MESSAGE(STATUS "CMAKE_SKIP_RULE_DEPENDENCY: " ${CMAKE_SKIP_RULE_DEPENDENCY})
63 MESSAGE(STATUS "CMAKE_SKIP_INSTALL_ALL_DEPENDENCY: " ${CMAKE_SKIP_INSTALL_ALL_DEPENDENCY})
64 MESSAGE(STATUS "CMAKE_SKIP_RPATH: " ${CMAKE_SKIP_RPATH})
65 MESSAGE(STATUS "CMAKE_VERBOSE_MAKEFILE: " ${CMAKE_VERBOSE_MAKEFILE})
66 MESSAGE(STATUS "CMAKE_SUPPRESS_REGENERATION: " ${CMAKE_SUPPRESS_REGENERATION})
67 MESSAGE(STATUS "CMAKE_C_FLAGS: " ${CMAKE_C_FLAGS})
68 MESSAGE(STATUS "CMAKE_CXX_FLAGS: " ${CMAKE_CXX_FLAGS})
69 MESSAGE(STATUS "CMAKE_BUILD_TYPE: " ${CMAKE_BUILD_TYPE})
70 MESSAGE(STATUS "BUILD_SHARED_LIBS: " ${BUILD_SHARED_LIBS})
71 MESSAGE(STATUS "CMAKE_C_COMPILER: " ${CMAKE_C_COMPILER})
72 MESSAGE(STATUS "CMAKE_CXX_COMPILER: " ${CMAKE_CXX_COMPILER})
73 MESSAGE(STATUS "CMAKE_COMPILER_IS_GNUCC: " ${CMAKE_COMPILER_IS_GNUCC})
74 MESSAGE(STATUS "CMAKE_COMPILER_IS_GNUCXX : " ${CMAKE_COMPILER_IS_GNUCXX})
75 MESSAGE(STATUS "CMAKE_AR: " ${CMAKE_AR})
76 MESSAGE(STATUS "CMAKE_RANLIB: " ${CMAKE_RANLIB})
77 MESSAGE(STATUS "========================================")
78
79 # Warning flags
80 #ADD_DEFINITIONS("-Werror")             # Generate all warnings as errors
81 ADD_DEFINITIONS("-Wall")                # Generate all warnings
82 ADD_DEFINITIONS("-Wextra")              # Generate even more extra warnings
83 #ADD_DEFINITIONS("-pedantic")           # Accept only pedantic code
84 ADD_DEFINITIONS("-Wwrite-strings")      # Do not accept writing to constant string memory
85 ADD_DEFINITIONS("-Winit-self")          # Do not accept initializing variable with itself
86 ADD_DEFINITIONS("-Wcast-align")         # Do not accept misaligning with casting
87 ADD_DEFINITIONS("-Wcast-qual")          # Do not accept removing qualifiers with casting
88 ADD_DEFINITIONS("-Wpointer-arith")      # Warn about void pointer arthimetic
89 ADD_DEFINITIONS("-Wstrict-aliasing")    # Ensure strict aliasing
90 ADD_DEFINITIONS("-Wuninitialized")      # Do not accept uninitialized variables
91 ADD_DEFINITIONS("-Wlong-long")          # Do not allow using long long
92 ADD_DEFINITIONS("-Wunreachable-code")   # Warn about unreachable code
93 ADD_DEFINITIONS("-Wfloat-equal")        # Do not accept comparing floating points with equal operator
94 ADD_DEFINITIONS("-Wabi")                # Warn about possible ABI problems
95 ADD_DEFINITIONS("-Wswitch-enum")        # Check switch enumeration
96 ADD_DEFINITIONS("-Wformat=2")           # Check printf formatting
97 ADD_DEFINITIONS("-Wundef")              # Warn if an undefined identifier is evaluated in an @if directive.
98 ADD_DEFINITIONS("-Wshadow")             # Warn whenever a local variable shadows another local variable, parameter or global variable or whenever a built-in function is shadowed
99 ADD_DEFINITIONS("-Wconversion")         # Warn for implicit conversions that may alter a value
100 ADD_DEFINITIONS("-Wlogical-op")         # Warn about suspicious uses of logical operators in expressions
101 ADD_DEFINITIONS("-Wmissing-field-initializers") # Warn if a structure's initializer has some fields missing.
102 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.
103 ADD_DEFINITIONS("-Wswitch-default")     # Warn whenever a switch statement does not have a default case.
104 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.
105 ADD_DEFINITIONS("-Wunused")             # All the above -Wunused options combined.
106 ADD_DEFINITIONS("-Wstrict-overflow=5")  # Also warn about cases where the compiler reduces the magnitude of a constant involved in a comparison.
107
108
109 SET(TARGET_VC_ELM_LIBRARY ${LIBRARY_NAME})
110
111 SET(VC_ELM_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include)
112
113 ADD_SUBDIRECTORY(src)
114 ADD_SUBDIRECTORY(include)
115
116 # INCLUDE FOR BUILD & INSTALL .PO FILES
117 ADD_SUBDIRECTORY(data/po)
118
119 ADD_CUSTOM_TARGET(voice-control-elm.edj
120         COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/data
121         ${CMAKE_SOURCE_DIR}/data/${PROJECT_NAME}.edc ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj
122         )
123 ADD_DEPENDENCIES(${LIBRARY_NAME} ${PROJECT_NAME}.edj)
124
125 INSTALL(FILES    ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj
126                 DESTINATION ${TZ_SYS_RO_SHARE}/edje)
127
128 INSTALL(FILES   ${PROJECT_SOURCE_DIR}/data/image.png
129                 ${PROJECT_SOURCE_DIR}/data/image_test.png
130         DESTINATION ${TZ_SYS_RO_SHARE}/voice/vc-elm/1.0)
131
132 INSTALL(FILES   ${PROJECT_SOURCE_DIR}/voice-control-elm-config.xml
133         DESTINATION ${TZ_SYS_RO_SHARE}/voice/vc-elm/1.0)
134
135
136 ## Test
137 IF(NOT DEFINED MINIMUM_BUILD)
138 ENABLE_TESTING()
139 SET(UNITTEST_VC_ELM vc-elm-unittests)
140 ADD_TEST(NAME ${UNITTEST_VC_ELM} COMMAND ${UNITTEST_VC_ELM}
141                                     WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests)
142
143 ADD_SUBDIRECTORY(tests)
144 ENDIF(NOT DEFINED MINIMUM_BUILD)