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