@@ -22,6 +22,14 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
2222set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /sqldrivers)
2323
2424option (STATIC "Build plugin as a static library" OFF )
25+
26+ set (CMAKE_CXX_STANDARD 14)
27+ set (CMAKE_CXX_STANDARD_REQUIRED ON )
28+ if (CMAKE_COMPILER_IS_GNUCC)
29+ # Set standard flags for GCC
30+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14" )
31+ endif ()
32+
2533if (STATIC )
2634 set (LIBTYPE STATIC )
2735 add_definitions (-DQT_STATICPLUGIN)
@@ -32,9 +40,52 @@ else()
3240 set (TEST_DIR test -shared)
3341endif ()
3442
43+ if (Qt5Sql_FOUND)
44+ message (STATUS "Found Qt5 version ${Qt5Sql_VERSION} ." )
45+ if (Qt5Sql_VERSION VERSION_LESS 5.8.0)
46+ set (DOWNLOAD_PATH "src/sql/drivers/sqlite" )
47+ else ()
48+ set (DOWNLOAD_PATH "src/plugins/sqldrivers/sqlite" )
49+ endif ()
50+
51+ # # Check whether the patch version is 0
52+ # string(REPLACE "." ";" Qt5Sql_VERSION_LIST ${Qt5Sql_VERSION})
53+ # list(GET Qt5Sql_VERSION_LIST 0 Qt5Sql_VERSION_MAJOR)
54+ # list(GET Qt5Sql_VERSION_LIST 1 Qt5Sql_VERSION_MINOR)
55+ # list(GET Qt5Sql_VERSION_LIST 2 Qt5Sql_VERSION_PATCH)
56+ # if ("${Qt5Sql_VERSION_PATCH}" STREQUAL "0")
57+ # message(STATUS "Qt5 Patch version is zero.")
58+ # else()
59+ # message(STATUS "Qt5 Patch version not zero.")
60+ # endif()
61+ set (URL_HEADER "https://raw.githubusercontent.com/qt/qtbase/v${Qt5Sql_VERSION} /${DOWNLOAD_PATH} /qsql_sqlite_p.h" )
62+ set (URL_CPP "https://raw.githubusercontent.com/qt/qtbase/v${Qt5Sql_VERSION} /${DOWNLOAD_PATH} /qsql_sqlite.cpp" )
63+ message (STATUS "URL = ${URL_HEADER} " )
64+
65+ file (MAKE_DIRECTORY "${CMAKE_BINARY_DIR} /qt-private-from-git-version-${Qt5Sql_VERSION} " )
66+ include_directories ("${CMAKE_BINARY_DIR} /qt-private-from-git-version-${Qt5Sql_VERSION} " )
67+
68+ file (DOWNLOAD URL_HEADER "${CMAKE_BINARY_DIR} /qt-private-from-git-version-${Qt5Sql_VERSION} /qsql_sqlite_p.h" STATUS STATUS_HEADER_LIST TLS_VERIFY on )
69+ file (DOWNLOAD URL_CPP "${CMAKE_BINARY_DIR} /qt-private-from-git-version-${Qt5Sql_VERSION} /qsql_sqlite.cpp" STATUS STATUS_CPP_LIST TLS_VERIFY on )
70+
71+ list (GET STATUS_HEADER_LIST 0 STATUS_HEADER)
72+ list (GET STATUS_CPP_LIST 0 STATUS_CPP)
73+ if ((NOT "${STATUS_HEADER} " STREQUAL "0" ) OR (NOT "${STATUS_CPP} " STREQUAL "0" ))
74+ list (GET STATUS_HEADER_LIST 1 STATUS_HEADER_ERROR)
75+ list (GET STATUS_CPP_LIST 1 STATUS_CPP_ERROR)
76+ message (SEND_ERROR "Could not download required Qt5 private header/source files. Please report this error! Qt Version: ${Qt5Sql_VERSION} . Result Header: ${STATUS_HEADER} . Error: ${STATUS_HEADER_ERROR} . Result Source: ${STATUS_CPP} . Error: ${STATUS_CPP_ERROR} ." )
77+ else ()
78+ message (STATUS "Downloaded required header/source files for your Qt5 version." )
79+ endif ()
80+ endif ()
81+
82+ if (QT5_FOUND)
83+ message (STATUS "Found Qt5 version B ${QT_MAJOR_VERSION} .${QT_MINOR_VERSION} .${QT_PATCH_VERSION} " )
84+ endif ()
85+
3586add_library (qsqlcipher ${LIBTYPE}
3687 smain.cpp
37- qt-private /qsql_sqlite.cpp
88+ " ${CMAKE_BINARY_DIR} / qt-private-from-git-version- ${Qt5Sql_VERSION} /qsql_sqlite.cpp"
3889)
3990
4091if (WIN32 )
0 commit comments