1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
project(u1db-qt)
cmake_minimum_required(VERSION 2.8.6)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)
# Dependencies
include(FindPkgConfig)
find_package(Qt5Core REQUIRED)
find_package(Qt5Sql REQUIRED)
add_definitions(-DWITHQT5=1)
set(U1DB_QT_LIBNAME u1db-qt5)
set(OUR_QT_INCLUDES ${Qt5Core_INCLUDE_DIRS} ${Qt5Sql_INCLUDE_DIRS})
set(OUR_QT_CORE_LIB ${Qt5Core_LIBRARIES})
set(OUR_QT_SQL_LIB ${Qt5Sql_LIBRARIES})
set(QT_PKGCONFIG_DEPENDENCIES "Qt5Core Qt5Quick Qt5Sql")
set(QT_U1DB_PKGCONFIG_FILE lib${U1DB_QT_LIBNAME}.pc)
# Build flags
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -Wall -Wundef -std=c++0x")
# Sources
set(U1DB_QT_SRCS
src/database.cpp
src/document.cpp
src/index.cpp
src/query.cpp
)
# Generated files
set(U1DB_QT_GENERATED
src/moc_database.cpp
src/moc_document.cpp
src/moc_index.cpp
src/moc_query.cpp
)
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${U1DB_QT_GENERATED}")
# Resources
set(U1DB_QT_RESOURCES
sql.qrc
)
QT5_ADD_RESOURCES(U1DB_QT_RCC ${U1DB_QT_RESOURCES})
# Build
add_definitions(-DQT_NO_KEYWORDS)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${OUR_QT_INCLUDES}
${U1DB_INCLUDE_DIRS}
)
add_library(${U1DB_QT_LIBNAME} SHARED ${U1DB_QT_SRCS} ${U1DB_QT_RCC})
target_link_libraries(${U1DB_QT_LIBNAME}
${OUR_QT_CORE_LIB}
${OUR_QT_SQL_LIB}
${U1DB_LDFLAGS}
)
set_target_properties(${U1DB_QT_LIBNAME} PROPERTIES
SOVERSION 3
VERSION 3.0.0
)
# Unit-Test
enable_testing()
add_custom_target(check COMMAND "env" "CTEST_OUTPUT_ON_FAILURE=1" "${CMAKE_CTEST_COMMAND}")
add_custom_target(doc "qdoc" "u1db.qdocconf"
COMMAND "sed" "-r" "-i" "'s@(</head>)@<link rel=\"stylesheet\" type=\"text/css\" href=\"style/base.css\" />\\1@'" "./output/html/*.html"
COMMAND "qhelpgenerator" "./output/html/u1dbqt.qhp"
COMMAND "assistant" "-register" "./output/html/u1dbqt.qch"
WORKING_DIRECTORY "documentation")
add_subdirectory(modules)
add_subdirectory(tests)
add_subdirectory(examples)
# Install
set(INCLUDE_INSTALL_DIR include/lib${U1DB_QT_LIBNAME})
install(TARGETS ${U1DB_QT_LIBNAME}
LIBRARY DESTINATION lib${LIB_SUFFIX}
)
install(FILES src/global.h src/database.h src/document.h src/index.h src/query.h
DESTINATION ${INCLUDE_INSTALL_DIR}
)
# PkgConfig file
set (PREFIX "${CMAKE_INSTALL_PREFIX}")
set (EXEC_PREFIX "${CMAKE_INSTALL_PREFIX}")
configure_file (libu1db-qt.pc.in
${CMAKE_CURRENT_BINARY_DIR}/${QT_U1DB_PKGCONFIG_FILE} @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${QT_U1DB_PKGCONFIG_FILE}
DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig
)
|