Skip to content

Commit 4add071

Browse files
committed
Made the code more flexible.
1 parent fbaa832 commit 4add071

File tree

5 files changed

+305
-77
lines changed

5 files changed

+305
-77
lines changed

CMakeLists.txt

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
11
cmake_minimum_required(VERSION 3.0)
22
project(qsqlcipher)
33

4+
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${PROJECT_SOURCE_DIR}/cmake/")
5+
SET(CMAKE_PREFIX_PATH "D:/Qt/5.9.2/msvc2017_64/lib/cmake/")
6+
47
find_package(Qt5Sql REQUIRED)
58
find_package(PkgConfig REQUIRED)
6-
pkg_check_modules(SQLCIPHER REQUIRED sqlcipher)
9+
10+
if (NOT WIN32)
11+
pkg_check_modules(SQLCIPHER REQUIRED sqlcipher)
12+
else()
13+
find_package(Libsqlcipher REQUIRED)
14+
endif()
715

816
set(CMAKE_INCLUDE_CURRENT_DIR ON)
917
set(CMAKE_AUTOMOC ON)
@@ -20,6 +28,7 @@ if(STATIC)
2028
set(TEST_DIR test-static)
2129
else()
2230
set(LIBTYPE MODULE)
31+
add_definitions(-DQT_PLUGIN)
2332
set(TEST_DIR test-shared)
2433
endif()
2534

@@ -28,14 +37,24 @@ add_library(qsqlcipher ${LIBTYPE}
2837
qt-private/qsql_sqlite.cpp
2938
)
3039

40+
if (WIN32)
41+
# Change this by hand if needed
42+
set(SQLCIPHER_INCLUDE_DIRS "D:/CppProjects/sqlcipher-original")
43+
endif()
44+
3145
target_include_directories(qsqlcipher PRIVATE
3246
${Qt5Sql_PRIVATE_INCLUDE_DIRS}
33-
${SQLCIPHER_INCLUDE_DIRS}
47+
${SQLCIPHER_INCLUDE_DIRS} ${Libsqlcipher_INCLUDE_DIRS}
3448
)
3549

50+
if (WIN32)
51+
# Change this by hand if needed
52+
set(SQLCIPHER_LIBRARIES "optimized;D:/CppProjects/sqlcipher-original-build/Retail/x64/sqlite3.lib;debug;D:/CppProjects/sqlcipher-original-build/Debug/x64/sqlite3.lib")
53+
endif()
54+
3655
target_link_libraries(qsqlcipher
3756
Qt5::Sql
38-
${SQLCIPHER_LIBRARIES}
57+
${SQLCIPHER_LIBRARIES} ${Libsqlcipher_LIBRARIES}
3958
)
4059

4160
include(CTest)

cmake/FindLibsqlcipher.cmake

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#
2+
# FindLibsqlcipher
3+
#
4+
# This module finds the libsqlcipher header and library files. It
5+
# sets the following variables.
6+
#
7+
# Libsqlcipher_INCLUDE_DIR - Include directory for Libsqlcipher header files.
8+
# Libsqlcipher_LIBRARIES - The name of the library to link against.
9+
#
10+
# Libsqlcipher_FOUND - Indicates whether Libsqlcipher has been found
11+
#
12+
13+
find_package(PkgConfig QUIET)
14+
if(PKG_CONFIG_FOUND)
15+
pkg_check_modules(Libsqlcipher QUIET SQLCipher)
16+
endif()
17+
18+
find_path(Libsqlcipher_INCLUDE_DIR sqlcipher/sqlite3.h
19+
HINTS
20+
$ENV{LIBSQLCIPHER_DIR}
21+
PATH_SUFFIXES include/sqlcipher include
22+
PATHS
23+
~/Library/Frameworks
24+
/Library/Frameworks
25+
/usr/local
26+
/usr
27+
/opt/local
28+
/opt
29+
)
30+
31+
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
32+
set(_lib_suffix 64)
33+
set(_lib_suffix_win "x64")
34+
else()
35+
set(_lib_suffix 32)
36+
set(_lib_suffix_win "x86")
37+
endif()
38+
39+
IF (WIN32)
40+
IF (MINGW)
41+
SET (LIB_PREFIX "lib")
42+
SET (LIB_POSTFIX "so")
43+
ELSEIF (MSVC)
44+
SET (LIB_PREFIX "lib")
45+
SET (LIB_POSTFIX "lib")
46+
ENDIF(MINGW)
47+
ELSE (UNIX)
48+
SET (LIB_PREFIX "lib")
49+
SET (LIB_POSTFIX "so")
50+
ENDIF (WIN32)
51+
52+
FIND_LIBRARY(Libsqlcipher_LIBRARIES
53+
NAMES ${LIB_PREFIX}sqlcipher.${LIB_POSTFIX}
54+
HINTS
55+
$ENV{LIBSQLCIPHER_DIR}
56+
PATH_SUFFIXES lib64 lib
57+
PATHS
58+
/sw
59+
/opt/local
60+
/opt
61+
/usr
62+
)
63+
64+
set(Libsqlcipher_INCLUDE_DIRS ${Libsqlcipher_INCLUDE_DIR})
65+
find_package_handle_standard_args(Libsqlcipher FOUND_VAR Libsqlcipher_FOUND REQUIRED_VARS Libsqlcipher_LIBRARIES Libsqlcipher_INCLUDE_DIRS)
66+
mark_as_advanced(Libsqlcipher_INCLUDE_DIR)
67+
mark_as_advanced(Libsqlcipher_LIBRARIES)

0 commit comments

Comments
 (0)