summaryrefslogtreecommitdiffstats
path: root/src/sql/CMakeLists.txt
blob: 1987afeaf36f88d9693addb4a5cfd64b769cecf3 (plain)
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
include_directories(
  ${CMAKE_BINARY_DIR}
  ${CMAKE_CURRENT_BINARY_DIR}
  ${CMAKE_CURRENT_SOURCE_DIR}
  ${CMAKE_BINARY_DIR}/include
  ${TQT_PLATFORM_INCLUDE_DIRS}
  ${CMAKE_SOURCE_DIR}/src/sql/drivers/cache
  ${PostgreSQL_INCLUDE_DIRS}
  ${MYSQL_INCLUDE_DIRS}
  ${ODBC_INCLUDE_DIRS}
  ${FBCLIENT_INCLUDE_DIRS}
  ${SQLITE3_INCLUDE_DIRS}
)

link_directories()


##### sql (static)

set( target sql )
set( _SRC_ qsqlquery.cpp
           qsqldatabase.cpp
           qsqlfield.cpp
           qsqlrecord.cpp
           qsqlform.cpp
           qsqlcursor.cpp
           qeditorfactory.cpp
           qsqleditorfactory.cpp
           qsqldriver.cpp
           qsqlextension_p.cpp
           qsqldriverplugin.cpp
           qsqlerror.cpp
           qsqlresult.cpp
           qsqlindex.cpp
           qsqlpropertymap.cpp
           qsqlmanager_p.cpp
           qdatatable.cpp
           qdataview.cpp
           qdatabrowser.cpp
           qsqlselectcursor.cpp
           ./drivers/cache/qsqlcachedresult.cpp
)

set( _PSQL_src    drivers/psql/qsql_psql.cpp       )
set( _MYSQL_src   drivers/mysql/qsql_mysql.cpp     )
set( _ODBC_src    drivers/odbc/qsql_odbc.cpp       )
set( _IBASE_src   drivers/ibase/qsql_ibase.cpp     )
set( _SQLITE_src  drivers/sqlite/qsql_sqlite.cpp   )
set( _SQLITE3_src drivers/sqlite3/qsql_sqlite3.cpp )

set( _PSQL_libraries    ${PostgreSQL_LIBRARIES} )
set( _MYSQL_libraries   ${MYSQL_LIBRARIES}      )
set( _ODBC_libraries    ${ODBC_LIBRARIES}       )
set( _IBASE_libraries   ${FBCLIENT_LIBRARIES}   )
set( _SQLITE_libraries  ${SQLITE_LIBRARIES}     )
set( _SQLITE3_libraries ${SQLITE3_LIBRARIES}    )

set( _PSQL_flag    "QT_SQL_POSTGRES" )
set( _MYSQL_flag   "QT_SQL_MYSQL"    )
set( _ODBC_flag    "QT_SQL_ODBC"     )
set( _IBASE_flag   "QT_SQL_IBASE"    )
set( _SQLITE_flag  "QT_SQL_SQLITE"   )
set( _SQLITE3_flag "QT_SQL_SQLITE3"  )

unset( _sql_libraries )
unset( _sql_driver_flags )

foreach(_driver PSQL MYSQL ODBC IBASE SQLITE SQLITE3)
    if( BUILD_SQL_PLUGIN_${_driver} )
        string( TOLOWER "q${_driver}" _plugin_lib )
        tde_add_library( ${_plugin_lib} SHARED
          SOURCES ${_${_driver}_src}
          LINK tqt-mt-shared ${_${_driver}_libraries}
          DESTINATION "${QT_INSTALL_PLUGINS}/sqldrivers"
        )
        tqt_automoc( ${_plugin_lib}-shared )
    elseif( WITH_SQL_DRIVER_${_driver})
        list( APPEND _SRC_ ${_${_driver}_src} )
        list( APPEND _sql_driver_flags ${_${_driver}_flag} )
        list( APPEND _sql_libraries ${_${_driver}_libraries} )
    endif()
endforeach()

tde_add_library( ${target} STATIC_PIC

  SOURCES
        ${_SRC_}
  LINK
        ${_sql_libraries}

  DEPENDENCIES
    tqt-includes
)

tqt_automoc( ${target}-static )

list( APPEND tqtlib_embed ${target}-static )
set( tqtlib_embed ${tqtlib_embed} PARENT_SCOPE )

set_property( TARGET ${target}-static
              APPEND PROPERTY COMPILE_DEFINITIONS
              ${NO_XCURSOR} TQT_NO_MESSAGEBOX
              ${_sql_driver_flags}
)
set_property( SOURCE qsql_psql.h APPEND PROPERTY COMPILE_DEFINITIONS QT_PLUGIN )