Initialize Tizen 2.3
[framework/web/wrt-commons.git] / modules / i18n / dao / CMakeLists.txt
1 SET(TARGET_I18N_DAO_DB "Sqlite3DbI18n")
2
3 SET(I18N_DB_FILE_NAME "iana_db")
4 SET(I18N_DB_INCLUDE_NAME "i18n_db_sql_generator.h")
5
6 ADD_CUSTOM_COMMAND(
7    OUTPUT ${CMAKE_BINARY_DIR}/modules/i18n/dao/database_checksum_i18n.h
8    COMMAND ${CMAKE_SOURCE_DIR}/modules/i18n/dao/orm/gen_db_md5.sh
9    ARGS ${CMAKE_BINARY_DIR}/modules/i18n/dao/database_checksum_i18n.h
10         ${CMAKE_SOURCE_DIR}/modules/i18n/dao/orm/${I18N_DB_FILE_NAME}
11    DEPENDS ${CMAKE_SOURCE_DIR}/modules/i18n/dao/orm/${I18N_DB_FILE_NAME}
12         ${CMAKE_SOURCE_DIR}/modules/i18n/dao/orm/gen_db_md5.sh
13    COMMENT "Generating WRT i18n database checksum"
14    )
15
16 ADD_CUSTOM_COMMAND( OUTPUT .wrt_i18n.db
17    COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/.wrt_i18n.db
18    COMMAND gcc -Wall -include ${CMAKE_BINARY_DIR}/modules/i18n/dao/database_checksum_i18n.h -I${PROJECT_SOURCE_DIR}/modules/db/include -I${PROJECT_SOURCE_DIR}/modules/i18n/dao/orm -E ${PROJECT_SOURCE_DIR}/modules/i18n/dao/orm/${I18N_DB_INCLUDE_NAME} | grep --invert-match "^#" > ${CMAKE_CURRENT_BINARY_DIR}/wrt_i18n_db.sql
19    COMMAND sqlite3 ${CMAKE_CURRENT_BINARY_DIR}/.wrt_i18n.db ".read ${CMAKE_CURRENT_BINARY_DIR}/wrt_i18n_db.sql" || rm -f ${CMAKE_CURRENT_BINARY_DIR}/.wrt_i18n.db
20    DEPENDS ${CMAKE_BINARY_DIR}/modules/i18n/dao/database_checksum_i18n.h ${PROJECT_SOURCE_DIR}/modules/i18n/dao/orm/i18n_db_sql_generator.h ${PROJECT_SOURCE_DIR}/modules/i18n/dao/orm/iana_db
21    )
22
23 ADD_CUSTOM_COMMAND( OUTPUT .wrt_i18n.db-journal
24    COMMAND touch
25    ARGS  ${CMAKE_CURRENT_BINARY_DIR}/.wrt_i18n.db-journal
26    )
27
28 ADD_CUSTOM_TARGET(${TARGET_I18N_DAO_DB} ALL DEPENDS .wrt_i18n.db .wrt_i18n.db-journal)
29 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/wrt_i18n_db.sql DESTINATION share/wrt-engine/)
30
31 ###############################################################################
32
33 INCLUDE(FindPkgConfig)
34
35 PKG_CHECK_MODULES(I18N_DAO_DEPS
36     dlog
37     REQUIRED)
38
39 SET(I18N_DAO_INCLUDE_DIRS
40     ${PROJECT_SOURCE_DIR}/modules/i18n/dao/include
41     ${PROJECT_SOURCE_DIR}/modules/i18n/dao/orm
42     ${PROJECT_SOURCE_DIR}/modules/core/include
43     ${PROJECT_SOURCE_DIR}/modules/db/include
44     ${PROJECT_SOURCE_DIR}/modules/log/include
45 )
46
47
48 SET(I18N_DAO_RO_SOURCES
49     src/i18n_database.cpp
50     src/i18n_dao_read_only.cpp
51 )
52
53 INCLUDE_DIRECTORIES(${I18N_DAO_INCLUDE_DIRS})
54 INCLUDE_DIRECTORIES(SYSTEM ${I18N_DAO_DEPS_INCLUDE_DIRS})
55
56 ADD_LIBRARY(${TARGET_I18N_DAO_RO_LIB} SHARED ${I18N_DAO_RO_SOURCES})
57 SET_TARGET_PROPERTIES(${TARGET_I18N_DAO_RO_LIB} PROPERTIES SOVERSION ${API_VERSION} VERSION ${VERSION})
58 SET_TARGET_PROPERTIES(${TARGET_I18N_DAO_RO_LIB} PROPERTIES COMPILE_FLAGS "-include ${CMAKE_BINARY_DIR}/modules/i18n/dao/database_checksum_i18n.h")
59 TARGET_LINK_LIBRARIES(${TARGET_I18N_DAO_RO_LIB} ${TARGET_DPL_DB_EFL})
60 ADD_DEPENDENCIES(${TARGET_I18N_DAO_RO_LIB} ${TARGET_I18N_DAO_DB})
61
62 INSTALL(TARGETS ${TARGET_I18N_DAO_RO_LIB} DESTINATION lib)
63
64 INSTALL(FILES
65     include/wrt-commons/i18n-dao-ro/i18n_database.h
66     include/wrt-commons/i18n-dao-ro/i18n_dao_read_only.h
67     DESTINATION include/dpl-efl/wrt-commons/i18n-dao-ro
68 )