Modified the structure to provide fini() function and correct cleanup for singleton...
[platform/core/uifw/libscl-ui.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(libscl-ui CXX)
3
4 SET(SRCS
5     sclres/sclres_manager.cpp
6     sclres/sclres.cpp
7     xmlresource/main_entry_parser.cpp
8     xmlresource/input_mode_configure_parser.cpp
9     xmlresource/layout_parser.cpp
10     xmlresource/layout_parser_helper.cpp
11     xmlresource/modifier_decoration_parser.cpp
12     xmlresource/label_properties_parser.cpp
13     xmlresource/default_configure_parser.cpp
14     xmlresource/autopopup_configure_parser.cpp
15     xmlresource/magnifier_configure_parser.cpp
16     xmlresource/nine_patch_file_list_parser.cpp
17     xmlresource/xmlresource.cpp
18     xmlresource/xml_parser_utils.cpp
19     binary_xmlresource/string_bin_parser.cpp
20     binary_xmlresource/metadata_bin_parser.cpp
21     binary_xmlresource/input_mode_configure_bin_parser.cpp
22     binary_xmlresource/layout_bin_parser.cpp
23     binary_xmlresource/key_coordinate_frame_bin_parser.cpp
24     binary_xmlresource/modifier_decoration_bin_parser.cpp
25     binary_xmlresource/label_properties_bin_parser.cpp
26     binary_xmlresource/default_configure_bin_parser.cpp
27     binary_xmlresource/autopopup_configure_bin_parser.cpp
28     binary_xmlresource/magnifier_configure_bin_parser.cpp
29     binary_xmlresource/nine_patch_file_list_bin_parser.cpp
30     binary_xmlresource/binary_xmlresource.cpp
31     binary_xmlresource/file_storage.cpp
32     scl/sclerroradjustment.cpp
33     scl/utils/win32/sclutils-win32.cpp
34     scl/utils/linux/sclutils-linux.cpp
35     scl/scldebug.cpp
36     scl/sclutils.cpp
37     scl/sclcontroller.cpp
38     scl/sclgwes.cpp
39     scl/sclevents.cpp
40     scl/gwes/win32/sclgraphics-win32.cpp
41     scl/gwes/efl/sclwindows-efl.cpp
42     scl/gwes/efl/sclgraphics-efl.cpp
43     scl/gwes/efl/sclevents-efl.cpp
44     scl/gwes/win32/sclevents-win32.cpp
45     scl/sclfeedback.cpp
46     scl/scluibuilder.cpp
47     scl/scluiimpl.cpp
48     scl/sclui.cpp
49     scl/scleffect.cpp
50     scl/scleventhandler.cpp
51     scl/sclwindows.cpp
52     scl/sclgraphics.cpp
53     scl/sclimageproxy.cpp
54     scl/sclfontproxy.cpp
55     scl/sclcontext.cpp
56     scl/sclactionstate.cpp
57     scl/sclresourcecache.cpp
58     res/sclresource.cpp
59     res/simple_debug.cpp
60 )
61
62 SET(PACKAGE ${PROJECT_NAME})
63 SET(PKGNAME ${PACKAGE})
64 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
65 SET(LIBDIR "${PREFIX}/lib")
66 SET(INCLUDEDIR "\${PREFIX}/scl/include")
67
68 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
69     SET(CMAKE_BUILD_TYPE "Release")
70 ENDIF()
71 MESSAGE(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
72
73 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src
74                     ${CMAKE_SOURCE_DIR}/src/include
75                     ${CMAKE_SOURCE_DIR}/scl
76                     ${CMAKE_SOURCE_DIR}/scl/include
77                     ${CMAKE_SOURCE_DIR}/xmlresource/include
78                     ${CMAKE_SOURCE_DIR}/binary_xmlresource/include
79                     ${CMAKE_SOURCE_DIR}/binary_xmlresource/include/interface
80                     ${CMAKE_SOURCE_DIR}/sclres
81                     ${CMAKE_SOURCE_DIR}/scl/gwes
82                     ${CMAKE_SOURCE_DIR}/scl/gwes/gtk
83                     ${CMAKE_SOURCE_DIR}/scl/gwes/win32
84                     ${CMAKE_SOURCE_DIR}/scl/gwes/efl
85                     ${CMAKE_SOURCE_DIR}/res )
86
87 INCLUDE(FindPkgConfig)
88 pkg_check_modules(pkgs REQUIRED
89         elementary
90         feedback
91         sensor
92         dlog
93         ecore-imf
94         libxml-2.0
95         utilX
96         tts
97         vconf
98         )
99
100 FOREACH(flag ${pkgs_CFLAGS})
101     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
102 ENDFOREACH(flag)
103
104 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fpie -Wall")
105 SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
106 SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -g")
107
108 ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
109 ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
110 ADD_DEFINITIONS("-DLOG_TAG=\"LIBSCL_UI\"")
111 ADD_DEFINITIONS("-DDEFAULT_THEME=\"default\"")
112 ADD_DEFINITIONS("-DIMG_PATH_PREFIX=\"image\"")
113 ADD_DEFINITIONS("-D__EFL__")
114
115 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
116
117 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
118
119 set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
120 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIBDIR})
121
122 INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/include/scl.h" DESTINATION include/libscl-ui)
123 INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/include/sclui.h" DESTINATION include/libscl-ui)
124 INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/include/scltypes.h" DESTINATION include/libscl-ui)
125 INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/include/sclconfig.h" DESTINATION include/libscl-ui)
126 INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/include/sclstructs.h" DESTINATION include/libscl-ui)
127 INSTALL(FILES "${CMAKE_SOURCE_DIR}/scl/include/scleventcallback.h" DESTINATION include/libscl-ui)
128 INSTALL(FILES "${CMAKE_SOURCE_DIR}/res/simple_debug.h" DESTINATION include/libscl-ui)
129
130 CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
131 INSTALL(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION lib/pkgconfig)
132
133 ADD_SUBDIRECTORY("xml2binary")