Tizen 2.0 Release
[framework/web/wrt-commons.git] / modules / auto_save_dao / CMakeLists.txt
1 SET(TARGET_AUTO_SAVE_DAO_DB "Sqlite3DbAutoSave")
2
3 ADD_CUSTOM_COMMAND(
4    OUTPUT ${CMAKE_BINARY_DIR}/modules/auto_save_dao/database_checksum_autosave.h
5    COMMAND ${CMAKE_SOURCE_DIR}/modules/auto_save_dao/orm/gen_db_md5.sh
6    ARGS ${CMAKE_BINARY_DIR}/modules/auto_save_dao/database_checksum_autosave.h
7         ${CMAKE_SOURCE_DIR}/modules/auto_save_dao/orm/autosave_db
8    DEPENDS ${CMAKE_SOURCE_DIR}/modules/auto_save_dao/orm/autosave_db
9         ${CMAKE_SOURCE_DIR}/modules/auto_save_dao/orm/gen_db_md5.sh
10    COMMENT "Generating WRT auto save database checksum"
11    )
12
13 ADD_CUSTOM_COMMAND( OUTPUT .wrt_autosave.db
14    COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/.wrt_autosave.db
15    COMMAND gcc -Wall -include ${CMAKE_BINARY_DIR}/modules/auto_save_dao/database_checksum_autosave.h -I${PROJECT_SOURCE_DIR}/modules/db/include -I${PROJECT_SOURCE_DIR}/modules/auto_save_dao/orm -E ${PROJECT_SOURCE_DIR}/modules/auto_save_dao/orm/autosave_db_sql_generator.h | grep --invert-match "^#" > ${CMAKE_CURRENT_BINARY_DIR}/wrt_autosave_db.sql
16    COMMAND sqlite3 ${CMAKE_CURRENT_BINARY_DIR}/.wrt_autosave.db ".read ${CMAKE_CURRENT_BINARY_DIR}/wrt_autosave_db.sql" || rm -f ${CMAKE_CURRENT_BINARY_DIR}/.wrt_autosave.db
17    DEPENDS ${CMAKE_BINARY_DIR}/modules/auto_save_dao/database_checksum_autosave.h ${PROJECT_SOURCE_DIR}/modules/auto_save_dao/orm/autosave_db_sql_generator.h ${PROJECT_SOURCE_DIR}/modules/auto_save_dao/orm/autosave_db
18    )
19
20 ADD_CUSTOM_COMMAND( OUTPUT .wrt_autosave.db-journal
21    COMMAND touch
22    ARGS  ${CMAKE_CURRENT_BINARY_DIR}/.wrt_autosave.db-journal
23    )
24
25 ADD_CUSTOM_TARGET(${TARGET_AUTO_SAVE_DAO_DB} ALL DEPENDS .wrt_autosave.db .wrt_autosave.db-journal)
26 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/wrt_autosave_db.sql DESTINATION share/wrt-engine/)
27
28 ###############################################################################
29
30 INCLUDE(FindPkgConfig)
31
32 PKG_CHECK_MODULES(AUTO_SAVE_DAO_DEPS
33     glib-2.0
34     REQUIRED)
35
36 SET(AUTO_SAVE_DAO_INCLUDE_DIRS
37     ${PROJECT_SOURCE_DIR}/modules/auto_save_dao/include
38     ${PROJECT_SOURCE_DIR}/modules/auto_save_dao/orm
39     ${PROJECT_SOURCE_DIR}/modules/core/include
40     ${PROJECT_SOURCE_DIR}/modules/db/include
41     ${PROJECT_SOURCE_DIR}/modules/log/include
42 )
43
44
45 SET(AUTO_SAVE_DAO_SOURCES
46     dao/common_dao_types.cpp
47     dao/AutoSaveDatabase.cpp
48 )
49
50 SET(AUTO_SAVE_DAO_RO_SOURCES
51     dao/auto_save_dao_read_only.cpp
52 )
53
54 SET(AUTO_SAVE_DAO_RW_SOURCES
55     dao/auto_save_dao.cpp
56 )
57
58
59 INCLUDE_DIRECTORIES(${AUTO_SAVE_DAO_INCLUDE_DIRS})
60 INCLUDE_DIRECTORIES(SYSTEM ${AUTO_SAVE_DAO_DEPS_INCLUDE_DIRS})
61
62 ADD_LIBRARY(${TARGET_AUTO_SAVE_DAO_LIB} SHARED ${AUTO_SAVE_DAO_SOURCES})
63 SET_TARGET_PROPERTIES(${TARGET_AUTO_SAVE_DAO_LIB} PROPERTIES SOVERSION ${API_VERSION} VERSION ${VERSION})
64 SET_TARGET_PROPERTIES(${TARGET_AUTO_SAVE_DAO_LIB} PROPERTIES COMPILE_FLAGS "-include ${CMAKE_BINARY_DIR}/modules/auto_save_dao/database_checksum_autosave.h")
65 TARGET_LINK_LIBRARIES(${TARGET_AUTO_SAVE_DAO_LIB} ${TARGET_DPL_EFL} ${TARGET_DPL_DB_EFL} ${AUTO_SAVE_DAO_DEPS_LIBRARIES})
66 ADD_DEPENDENCIES(${TARGET_AUTO_SAVE_DAO_LIB} ${TARGET_AUTO_SAVE_DAO_DB})
67
68 ADD_LIBRARY(${TARGET_AUTO_SAVE_DAO_RO_LIB} SHARED ${AUTO_SAVE_DAO_RO_SOURCES})
69 SET_TARGET_PROPERTIES(${TARGET_AUTO_SAVE_DAO_RO_LIB} PROPERTIES SOVERSION ${API_VERSION} VERSION ${VERSION})
70 SET_TARGET_PROPERTIES(${TARGET_AUTO_SAVE_DAO_RO_LIB} PROPERTIES COMPILE_FLAGS "-include ${CMAKE_BINARY_DIR}/modules/auto_save_dao/database_checksum_autosave.h")
71 TARGET_LINK_LIBRARIES(${TARGET_AUTO_SAVE_DAO_RO_LIB} ${TARGET_AUTO_SAVE_DAO_LIB})
72 ADD_DEPENDENCIES(${TARGET_AUTO_SAVE_DAO_RO_LIB} ${TARGET_AUTO_SAVE_DAO_DB})
73
74 ADD_LIBRARY(${TARGET_AUTO_SAVE_DAO_RW_LIB} SHARED ${AUTO_SAVE_DAO_RW_SOURCES})
75 SET_TARGET_PROPERTIES(${TARGET_AUTO_SAVE_DAO_RW_LIB} PROPERTIES SOVERSION ${API_VERSION} VERSION ${VERSION})
76 SET_TARGET_PROPERTIES(${TARGET_AUTO_SAVE_DAO_RW_LIB} PROPERTIES COMPILE_FLAGS "-include ${CMAKE_BINARY_DIR}/modules/auto_save_dao/database_checksum_autosave.h")
77 TARGET_LINK_LIBRARIES(${TARGET_AUTO_SAVE_DAO_RW_LIB} ${TARGET_AUTO_SAVE_DAO_RO_LIB})
78 ADD_DEPENDENCIES(${TARGET_AUTO_SAVE_DAO_RW_LIB} ${TARGET_AUTO_SAVE_DAO_DB})
79
80 INSTALL(TARGETS ${TARGET_AUTO_SAVE_DAO_LIB} DESTINATION lib)
81 INSTALL(TARGETS ${TARGET_AUTO_SAVE_DAO_RO_LIB} DESTINATION lib)
82 INSTALL(TARGETS ${TARGET_AUTO_SAVE_DAO_RW_LIB} DESTINATION lib)
83
84 INSTALL(FILES
85     include/wrt-commons/auto-save-dao/common_dao_types.h
86     include/wrt-commons/auto-save-dao/AutoSaveDatabase.h
87     DESTINATION include/dpl-efl/wrt-commons/auto-save-dao
88 )
89
90 INSTALL(FILES
91     include/wrt-commons/auto-save-dao-ro/auto_save_dao_read_only.h
92     DESTINATION include/dpl-efl/wrt-commons/auto-save-dao-ro
93 )
94
95 INSTALL(FILES
96     include/wrt-commons/auto-save-dao-rw/auto_save_dao.h
97     DESTINATION include/dpl-efl/wrt-commons/auto-save-dao-rw
98 )