~kalikiana/u1db-qt/query4a

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
    )