@@ -42,36 +42,45 @@ endif()
4242
4343if (Qt5Sql_FOUND)
4444 message (STATUS "Found Qt5 version ${Qt5Sql_VERSION} ." )
45- if (Qt5Sql_VERSION VERSION_LESS 5.8.0)
46- set (DOWNLOAD_PATH "src/sql/drivers/sqlite" )
45+
46+ set (_PRIVATE_SOURCES_DIRECTORY "" )
47+ if (EXISTS "${PROJECT_SOURCE_DIR} /qt-file-cache/${Qt5Sql_VERSION} " )
48+ message (STATUS "Using cached/shipped versions of required header/source files." )
49+ set (_PRIVATE_SOURCES_DIRECTORY "${PROJECT_SOURCE_DIR} /qt-file-cache/${Qt5Sql_VERSION} " )
50+ include_directories ("${PROJECT_SOURCE_DIR} /qt-file-cache/${Qt5Sql_VERSION} " )
4751 else ()
48- set (DOWNLOAD_PATH "src/plugins/sqldrivers/sqlite" )
49- endif ()
50-
51- set (URL_HEADER "https://raw.githubusercontent.com/qt/qtbase/v${Qt5Sql_VERSION} /${DOWNLOAD_PATH} /qsql_sqlite_p.h" )
52- set (URL_CPP "https://raw.githubusercontent.com/qt/qtbase/v${Qt5Sql_VERSION} /${DOWNLOAD_PATH} /qsql_sqlite.cpp" )
53- message (STATUS "URL = ${URL_HEADER} " )
54-
55- file (MAKE_DIRECTORY "${CMAKE_BINARY_DIR} /qt-private-from-git-version-${Qt5Sql_VERSION} /qt-private" )
56- include_directories ("${CMAKE_BINARY_DIR} /qt-private-from-git-version-${Qt5Sql_VERSION} " )
57-
58- file (DOWNLOAD "${URL_HEADER} " "${CMAKE_BINARY_DIR} /qt-private-from-git-version-${Qt5Sql_VERSION} /qt-private/qsql_sqlite_p.h" STATUS STATUS_HEADER_LIST TLS_VERIFY on LOG LOG_HEADER)
59- file (DOWNLOAD "${URL_CPP} " "${CMAKE_BINARY_DIR} /qt-private-from-git-version-${Qt5Sql_VERSION} /qt-private/qsql_sqlite.cpp" STATUS STATUS_CPP_LIST TLS_VERIFY on LOG LOG_CPP)
60-
61- list (GET STATUS_HEADER_LIST 0 STATUS_HEADER)
62- list (GET STATUS_CPP_LIST 0 STATUS_CPP)
63- if ((NOT "${STATUS_HEADER} " STREQUAL "0" ) OR (NOT "${STATUS_CPP} " STREQUAL "0" ))
64- list (GET STATUS_HEADER_LIST 1 STATUS_HEADER_ERROR)
65- list (GET STATUS_CPP_LIST 1 STATUS_CPP_ERROR)
66- 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} . Log Header: ${LOG_HEADER} . Log Source: ${LOG_CPP} ." )
67- else ()
68- message (STATUS "Downloaded required header/source files for your Qt5 version." )
52+ if (Qt5Sql_VERSION VERSION_LESS 5.8.0)
53+ set (DOWNLOAD_PATH "src/sql/drivers/sqlite" )
54+ else ()
55+ set (DOWNLOAD_PATH "src/plugins/sqldrivers/sqlite" )
56+ endif ()
57+
58+ set (URL_HEADER "https://raw.githubusercontent.com/qt/qtbase/v${Qt5Sql_VERSION} /${DOWNLOAD_PATH} /qsql_sqlite_p.h" )
59+ set (URL_CPP "https://raw.githubusercontent.com/qt/qtbase/v${Qt5Sql_VERSION} /${DOWNLOAD_PATH} /qsql_sqlite.cpp" )
60+ message (STATUS "URL = ${URL_HEADER} " )
61+
62+ file (MAKE_DIRECTORY "${CMAKE_BINARY_DIR} /qt-private-from-git-version-${Qt5Sql_VERSION} " )
63+ set (_PRIVATE_SOURCES_DIRECTORY "${CMAKE_BINARY_DIR} /qt-private-from-git-version-${Qt5Sql_VERSION} " )
64+ include_directories ("${CMAKE_BINARY_DIR} /qt-private-from-git-version-${Qt5Sql_VERSION} " )
65+
66+ 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 LOG LOG_HEADER)
67+ file (DOWNLOAD "${URL_CPP} " "${CMAKE_BINARY_DIR} /qt-private-from-git-version-${Qt5Sql_VERSION} /qsql_sqlite.cpp" STATUS STATUS_CPP_LIST TLS_VERIFY on LOG LOG_CPP)
68+
69+ list (GET STATUS_HEADER_LIST 0 STATUS_HEADER)
70+ list (GET STATUS_CPP_LIST 0 STATUS_CPP)
71+ if ((NOT "${STATUS_HEADER} " STREQUAL "0" ) OR (NOT "${STATUS_CPP} " STREQUAL "0" ))
72+ list (GET STATUS_HEADER_LIST 1 STATUS_HEADER_ERROR)
73+ list (GET STATUS_CPP_LIST 1 STATUS_CPP_ERROR)
74+ 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} . Log Header: ${LOG_HEADER} . Log Source: ${LOG_CPP} ." )
75+ else ()
76+ message (STATUS "Downloaded required header/source files for your Qt5 version." )
77+ endif ()
6978 endif ()
7079endif ()
7180
7281add_library (qsqlcipher ${LIBTYPE}
7382 smain.cpp
74- "${CMAKE_BINARY_DIR} /qt-private-from-git-version- ${Qt5Sql_VERSION} /qt-private /qsql_sqlite.cpp"
83+ "${_PRIVATE_SOURCES_DIRECTORY} /qsql_sqlite.cpp"
7584)
7685
7786if (WIN32 )
0 commit comments