Fix invalid file path when 64 bit build
[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(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})
18
19 # pkg config tool
20 INCLUDE(FindPkgConfig)
21 pkg_check_modules(pkgs REQUIRED
22                 vconf
23 )
24
25 # Build type
26 SET(CMAKE_BUILD_TYPE "Release")
27 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -g -D_GNU_SOURCE")
28
29 ADD_DEFINITIONS("-DVOICE_LIBDIR=\"${LIBDIR}\"")
30
31 # CMake settings
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 "========================================")
81
82 # Warning flags
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.
110
111
112 SET(TARGET_VC_ELM_LIBRARY ${LIBRARY_NAME})
113
114 SET(VC_ELM_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include)
115
116 ADD_SUBDIRECTORY(src)
117 ADD_SUBDIRECTORY(include)
118
119 # INCLUDE FOR BUILD & INSTALL .PO FILES
120 ADD_SUBDIRECTORY(data/po)
121
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
125         )
126 ADD_DEPENDENCIES(${LIBRARY_NAME} ${PROJECT_NAME}.edj)
127
128 INSTALL(FILES    ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj
129                 DESTINATION ${TZ_SYS_RO_SHARE}/edje)
130
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)
134
135 INSTALL(FILES   ${PROJECT_SOURCE_DIR}/voice-control-elm-config.xml
136         DESTINATION ${TZ_SYS_RO_SHARE}/voice/vc-elm/1.0)
137