[Release] wrt-commons_0.2.128
[framework/web/wrt-commons.git] / modules / widget_dao / CMakeLists.txt
1 SET(TARGET_WRT_DAO_DB "Sqlite3DbWRT")
2
3 ADD_CUSTOM_COMMAND(
4    OUTPUT ${CMAKE_BINARY_DIR}/modules/widget_dao/database_checksum.h
5    COMMAND ${CMAKE_SOURCE_DIR}/modules/widget_dao/orm/gen_db_md5.sh
6    ARGS ${CMAKE_BINARY_DIR}/modules/widget_dao/database_checksum.h
7         ${CMAKE_SOURCE_DIR}/modules/widget_dao/orm/wrt_db
8         ${CMAKE_SOURCE_DIR}/modules/widget_dao/orm/iana_db
9    DEPENDS ${CMAKE_SOURCE_DIR}/modules/widget_dao/orm/wrt_db
10         ${CMAKE_SOURCE_DIR}/modules/widget_dao/orm/iana_db
11         ${CMAKE_SOURCE_DIR}/modules/widget_dao/orm/gen_db_md5.sh
12    COMMENT "Generating WRT database checksum"
13    )
14
15 ADD_CUSTOM_COMMAND( OUTPUT .wrt.db
16    COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/.wrt.db
17    COMMAND gcc -Wall -include ${CMAKE_BINARY_DIR}/modules/widget_dao/database_checksum.h -I${PROJECT_SOURCE_DIR}/modules/db/include -I${PROJECT_SOURCE_DIR}/modules/widget_dao/orm -E ${PROJECT_SOURCE_DIR}/modules/widget_dao/orm/wrt_db_sql_generator.h | grep --invert-match "^#" > ${CMAKE_CURRENT_BINARY_DIR}/wrt_db.sql
18    COMMAND sqlite3 ${CMAKE_CURRENT_BINARY_DIR}/.wrt.db ".read ${CMAKE_CURRENT_BINARY_DIR}/wrt_db.sql" || rm -f ${CMAKE_CURRENT_BINARY_DIR}/.wrt.db
19    DEPENDS ${CMAKE_BINARY_DIR}/modules/widget_dao/database_checksum.h ${PROJECT_SOURCE_DIR}/modules/widget_dao/orm/wrt_db_sql_generator.h ${PROJECT_SOURCE_DIR}/modules/widget_dao/orm/wrt_db ${PROJECT_SOURCE_DIR}/modules/widget_dao/orm/iana_db
20    )
21  
22 ADD_CUSTOM_COMMAND( OUTPUT .wrt.db-journal
23    COMMAND touch
24    ARGS  ${CMAKE_CURRENT_BINARY_DIR}/.wrt.db-journal
25    )
26  
27 ADD_CUSTOM_TARGET(${TARGET_WRT_DAO_DB} ALL DEPENDS .wrt.db .wrt.db-journal)
28
29 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/wrt_db.sql
30     DESTINATION share/wrt-engine/
31     )
32
33 ###############################################################################
34
35 INCLUDE(FindPkgConfig)
36
37 PKG_CHECK_MODULES(WRT_DAO_DEPS
38     ecore
39     appcore-efl
40     libxml-2.0
41     openssl
42     REQUIRED)
43
44 set(WRT_DAO_RO_SOURCES
45     dao/config_parser_data.cpp
46     dao/common_dao_types.cpp
47     dao/feature_dao_read_only.cpp
48     dao/global_dao_read_only.cpp
49     dao/path_builder.cpp
50     dao/plugin_dao_read_only.cpp
51     dao/property_dao_read_only.cpp
52     dao/widget_dao_read_only.cpp
53     dao/webruntime_database.cpp
54     dao/WrtDatabase.cpp
55     dao/widget_dao_types.cpp
56 )
57
58 set(WRT_DAO_RW_SOURCES
59     dao/feature_dao.cpp
60     dao/global_dao.cpp
61     dao/plugin_dao.cpp
62     dao/property_dao.cpp
63     dao/widget_dao.cpp
64 )
65
66 SET(WRT_DAO_INCLUDE_DIRS
67     ${PROJECT_SOURCE_DIR}/modules/widget_dao/include
68     ${PROJECT_SOURCE_DIR}/modules/event/include
69     ${PROJECT_SOURCE_DIR}/modules/widget_dao/orm
70     ${PROJECT_SOURCE_DIR}/modules/core/include
71     ${PROJECT_SOURCE_DIR}/modules/db/include
72     ${PROJECT_SOURCE_DIR}/modules/log/include
73     ${PROJECT_SOURCE_DIR}/modules/localization/include
74 )
75
76 INCLUDE_DIRECTORIES(${WRT_DAO_INCLUDE_DIRS})
77 INCLUDE_DIRECTORIES(SYSTEM ${WRT_DAO_DEPS_INCLUDE_DIRS})
78
79 ADD_LIBRARY(${TARGET_WRT_DAO_RO_LIB} SHARED
80             ${WRT_DAO_RO_SOURCES}
81 )
82 SET_TARGET_PROPERTIES(${TARGET_WRT_DAO_RO_LIB} PROPERTIES
83     SOVERSION ${API_VERSION} 
84  VERSION ${VERSION})
85
86 SET_TARGET_PROPERTIES(${TARGET_WRT_DAO_RO_LIB} PROPERTIES
87                       COMPILE_FLAGS -fPIC)
88
89 SET_TARGET_PROPERTIES(${TARGET_WRT_DAO_RO_LIB} PROPERTIES
90                       COMPILE_FLAGS "-include ${CMAKE_BINARY_DIR}/modules/widget_dao/database_checksum.h")
91
92 target_link_libraries(${TARGET_WRT_DAO_RO_LIB}
93     ${TARGET_DPL_EFL}
94     ${TARGET_DPL_DB_EFL}
95     ${WRT_DAO_DEPS_LIBRARIES})
96 ADD_DEPENDENCIES(${TARGET_WRT_DAO_RO_LIB} ${TARGET_WRT_DAO_DB})
97
98 ADD_LIBRARY(${TARGET_WRT_DAO_RW_LIB} SHARED ${WRT_DAO_RW_SOURCES})
99
100 SET_TARGET_PROPERTIES(${TARGET_WRT_DAO_RW_LIB} PROPERTIES
101     SOVERSION ${API_VERSION} 
102  VERSION ${VERSION})
103
104 SET_TARGET_PROPERTIES(${TARGET_WRT_DAO_RW_LIB} PROPERTIES COMPILE_FLAGS -fPIC)
105
106 SET_TARGET_PROPERTIES(${TARGET_WRT_DAO_RW_LIB} PROPERTIES
107                      COMPILE_FLAGS "-include ${CMAKE_BINARY_DIR}/modules/widget_dao/database_checksum.h")
108
109 target_link_libraries(${TARGET_WRT_DAO_RW_LIB}
110     ${TARGET_WRT_DAO_RO_LIB})
111 ADD_DEPENDENCIES(${TARGET_WRT_DAO_RW_LIB} ${TARGET_WRT_DAO_DB})
112
113 INSTALL(TARGETS ${TARGET_WRT_DAO_RO_LIB}
114     DESTINATION lib)
115
116 INSTALL(TARGETS ${TARGET_WRT_DAO_RW_LIB}
117     DESTINATION lib)
118
119 INSTALL(FILES
120     include/dpl/wrt-dao-ro/config_parser_data.h
121     include/dpl/wrt-dao-ro/common_dao_types.h
122     include/dpl/wrt-dao-ro/feature_dao_read_only.h
123     include/dpl/wrt-dao-ro/feature_model.h
124     include/dpl/wrt-dao-ro/global_config.h
125     include/dpl/wrt-dao-ro/global_dao_read_only.h
126     include/dpl/wrt-dao-ro/path_builder.h
127     include/dpl/wrt-dao-ro/plugin_dao_read_only.h
128     include/dpl/wrt-dao-ro/property_dao_read_only.h
129     include/dpl/wrt-dao-ro/widget_config.h
130     include/dpl/wrt-dao-ro/widget_dao_read_only.h
131     include/dpl/wrt-dao-ro/wrt_db_types.h
132     include/dpl/wrt-dao-ro/WrtDatabase.h
133     include/dpl/wrt-dao-ro/widget_dao_types.h
134     DESTINATION include/dpl-efl/dpl/wrt-dao-ro
135     )
136
137 INSTALL(FILES
138     include/dpl/wrt-dao-rw/feature_dao.h
139     include/dpl/wrt-dao-rw/global_dao.h
140     include/dpl/wrt-dao-rw/plugin_dao.h
141     include/dpl/wrt-dao-rw/property_dao.h
142     include/dpl/wrt-dao-rw/widget_dao.h
143     DESTINATION include/dpl-efl/dpl/wrt-dao-rw
144     )