2024-01-24 11:03:03 +01:00
cmake_minimum_required ( VERSION 3.18.0.0 )
2024-01-04 11:53:24 +01:00
project ( sqlite3mc )
# Helper macro
macro ( _Enable_MT _target )
target_compile_options ( ${ _target } PRIVATE
$ < $ < C O N F I G : R e l e a s e > : / M T > $ < $ < C O N F I G : D e b u g > : / M T d >
)
endmacro ( )
set ( _SQLITE3MC_REQUIRE_ZLIB OFF )
OPTION ( SQLITE3MC_STATIC_RUNTIME_LINK "Link the c++ runtime statically" OFF )
OPTION ( SQLITE3MC_STATIC "Build SQLITE3MC as a static library" OFF )
OPTION ( SQLITE3MC_BUILD_SHELL "Builds the SQLITE3MC Shell" ON )
OPTION ( SQLITE3MC_WITH_ICU "Builds SQLITE3MC with the ICU library. Will use the FindICU function to locate the library. (https://cmake.org/cmake/help/latest/module/FindICU.html)" OFF )
OPTION ( SQLITE_ENABLE_DEBUG "Enable SQLite debugging" OFF )
OPTION ( SQLITE_SOUNDEX "Enable the soundex() SQL function" ON )
OPTION ( SQLITE_ENABLE_COLUMN_METADATA "Enable convenient access to meta-data about tables and queries" ON )
OPTION ( SQLITE_SECURE_DELETE "Enable secure delete to overwrite deleted content with zeros" ON )
OPTION ( SQLITE_ENABLE_FTS3 "Enable version 3 of the full-text search engine" ON )
OPTION ( SQLITE_ENABLE_FTS3_PARENTHESIS "Support operators AND and NOT and nested parenthesis" ON )
OPTION ( SQLITE_ENABLE_FTS4 "Enable version 4 of the full-text search engine" ON )
OPTION ( SQLITE_ENABLE_FTS5 "Enable version 5 of the full-text search engine" ON )
OPTION ( SQLITE_ENABLE_CARRAY "Enable extension 'carray'" ON )
OPTION ( SQLITE_ENABLE_CSV "Enable extension 'csv'" ON )
OPTION ( SQLITE_ENABLE_EXTFUNC "Enable extension 'extfunc'" ON )
OPTION ( SQLITE_ENABLE_GEOPOLY "Enable extension 'geopoly'" ON )
OPTION ( SQLITE_ENABLE_JSON1 "Enable extension 'json1'" ON )
OPTION ( SQLITE_ENABLE_RTREE "Enable extension 'rtree'" ON )
OPTION ( SQLITE_ENABLE_UUID "Enable extension 'uuid'" ON )
OPTION ( SQLITE_USE_URI "Enable the URI filename process logic" ON )
OPTION ( SQLITE_USER_AUTHENTICATION "Enable extension 'user authentication'" ON )
OPTION ( SQLITE_ENABLE_PREUPDATE_HOOK "Enable preupdate hooks" OFF )
OPTION ( SQLITE_ENABLE_SESSION "Enable session extension" OFF )
OPTION ( SQLITE_SHELL_IS_UTF8 "Shell command line arguments in UTF-8 encoding" ON )
# Options for library only
OPTION ( SQLITE_ENABLE_FILEIO "Enable extension 'fileio'" ON )
OPTION ( SQLITE_ENABLE_REGEXP "Enable extension 'regexp'" ON )
OPTION ( SQLITE_ENABLE_SERIES "Enable extension 'series'" ON )
OPTION ( SQLITE_ENABLE_SHA3 "Enable extension 'sha3'" ON )
# Options for shell only (compatibility with official SQLite shell)
OPTION ( SQLITE_ENABLE_EXPLAIN_COMMENTS "Insert comment text into the output of EXPLAIN (shell only)" ON )
OPTION ( SQLITE_ENABLE_DBPAGE_VTAB "Enable the SQLITE_DBPAGE virtual table (shell only)" ON )
OPTION ( SQLITE_ENABLE_DBSTAT_VTAB "Enable the dbstat virtual table (shell only)" ON )
OPTION ( SQLITE_ENABLE_STMTVTAB "Enable the SQLITE_STMT virtual table (shell only)" ON )
OPTION ( SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION "Suppress 'unknown function' errors when running an EXPLAIN or EXPLAIN QUERY PLAN (shell only)" ON )
# Embedded Compression
OPTION ( SQLITE3MC_USE_MINIZ "Use builtin ZLIB replacement" OFF )
# Compression/Options that require ZLIB
OPTION ( SQLITE_ENABLE_COMPRESS "Enable extension 'compress'" OFF )
OPTION ( SQLITE_ENABLE_SQLAR "Enable extension 'sqlar'" OFF )
OPTION ( SQLITE_ENABLE_ZIPFILE "Enable extension 'zipfile'" OFF )
# Legacy Encryption Extensions
OPTION ( SQLITE3MC_USE_SQLEET_LEGACY "Use sqleet legacy mode as default" OFF )
OPTION ( SQLITE3MC_USE_SQLCIPHER_LEGACY "Use sqlcipher legacy mode as default" OFF )
# Additional memory security (filling freed memory allocations with zeros or random data)
OPTION ( SQLITE3MC_SECURE_MEMORY "Enable pragma to secure freed memory" OFF )
OPTION ( SQLITE3MC_USE_RANDOM_FILL_MEMORY "Fill freed memory with random data" OFF )
# Omit AES hardware support
OPTION ( SQLITE3MC_OMIT_AES_HARDWARE_SUPPORT "Omit AES hardware support" OFF )
2024-01-18 15:31:47 +01:00
# Enable Wasm runtime
OPTION ( LIBSQL_ENABLE_WASM_RUNTIME "Enable libSQL Wasm runtime" OFF )
2024-01-04 11:53:24 +01:00
# TCL
#OPTION(SQLITE_ENABLE_TCL "Enable TCL interface" OFF)
set ( SQLITE_MAX_ATTACHED "10" CACHE STRING "Max number of attached files (must be in the range 0..125)" )
set ( SQLITE_DQS "0" CACHE STRING "Allow double-quoted string literals" )
set_property ( CACHE SQLITE_DQS PROPERTY STRINGS 0 1 2 3 )
set ( SQLITE_THREADSAFE 1 CACHE STRING "Set threading mode (0 = single-threaded, 1 = serialized, 2 = multi-threaded)" )
set_property ( CACHE SQLITE_THREADSAFE PROPERTY STRINGS 0 1 2 )
set ( CODEC_TYPE CHACHA20 CACHE STRING "Set default codec type" )
set_property ( CACHE CODEC_TYPE PROPERTY STRINGS AES128 AES256 CHACHA20 SQLCIPHER RC4 ASCON128 )
if ( SQLITE_ENABLE_COMPRESS OR SQLITE_ENABLE_SQLAR OR SQLITE_ENABLE_ZIPFILE )
if ( NOT SQLITE3MC_USE_MINIZ )
set ( _SQLITE3MC_REQUIRE_ZLIB ON )
endif ( )
endif ( )
# Setup the options
set ( SQLITE3MC_BASE_DEFINITIONS
$ < $ < B O O L : $ { S Q L I T E _ S H E L L _ I S _ U T F 8 } > : S Q L I T E _ S H E L L _ I S _ U T F 8 = 1 >
C O D E C _ T Y P E = C O D E C _ T Y P E _ $ { C O D E C _ T Y P E }
S Q L I T E _ D Q S = $ { S Q L I T E _ D Q S }
S Q L I T E _ M A X _ A T T A C H E D = $ { S Q L I T E _ M A X _ A T T A C H E D }
$ < $ < B O O L : $ { S Q L I T E _ U S E R _ A U T H E N T I C A T I O N } > : S Q L I T E _ U S E R _ A U T H E N T I C A T I O N = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ D E B U G } > : S Q L I T E _ E N A B L E _ D E B U G = 1 >
S Q L I T E _ T H R E A D S A F E = $ { S Q L I T E _ T H R E A D S A F E }
$ < $ < B O O L : $ { S Q L I T E _ S O U N D E X } > : S Q L I T E _ S O U N D E X = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ C O L U M N _ M E T A D A T A } > : S Q L I T E _ E N A B L E _ C O L U M N _ M E T A D A T A = 1 >
$ < $ < B O O L : $ { S Q L I T E _ S E C U R E _ D E L E T E } > : S Q L I T E _ S E C U R E _ D E L E T E = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ F T S 3 } > : S Q L I T E _ E N A B L E _ F T S 3 = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ F T S 3 _ P A R E N T H E S I S } > : S Q L I T E _ E N A B L E _ F T S 3 _ P A R E N T H E S I S = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ F T S 4 } > : S Q L I T E _ E N A B L E _ F T S 4 = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ F T S 5 } > : S Q L I T E _ E N A B L E _ F T S 5 = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ J S O N 1 } > : S Q L I T E _ E N A B L E _ J S O N 1 = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ R T R E E } > : S Q L I T E _ E N A B L E _ R T R E E = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ G E O P O L Y } > : S Q L I T E _ E N A B L E _ G E O P O L Y = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ E X T F U N C } > : S Q L I T E _ E N A B L E _ E X T F U N C = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ C A R R A Y } > : S Q L I T E _ E N A B L E _ C A R R A Y = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ U U I D } > : S Q L I T E _ E N A B L E _ U U I D = 1 >
S Q L I T E _ T E M P _ S T O R E = 2
$ < $ < B O O L : $ { S Q L I T E _ U S E _ U R I } > : S Q L I T E _ U S E _ U R I = 1 >
$ < $ < B O O L : $ { S Q L I T E _ U S E R _ A U T H E N T I C A T I O N } > : S Q L I T E _ U S E R _ A U T H E N T I C A T I O N = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ P R E U P D A T E _ H O O K } > : S Q L I T E _ E N A B L E _ P R E U P D A T E _ H O O K = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ S E S S I O N } > : S Q L I T E _ E N A B L E _ S E S S I O N = 1 >
$ < $ < B O O L : $ { S Q L I T E 3 M C _ U S E _ M I N I Z } > : S Q L I T E 3 M C _ U S E _ M I N I Z = 1 >
$ < $ < B O O L : $ { S Q L I T E 3 M C _ O M I T _ A E S _ H A R D W A R E _ S U P P O R T } > : S Q L I T E 3 M C _ O M I T _ A E S _ H A R D W A R E _ S U P P O R T = 1 >
2024-01-18 15:31:47 +01:00
$ < $ < B O O L : $ { L I B S Q L _ E N A B L E _ W A S M _ R U N T I M E } > : L I B S Q L _ E N A B L E _ W A S M _ R U N T I M E = 1 >
2024-01-04 11:53:24 +01:00
L I B S Q L _ E X T R A _ P R A G M A S = 1
L I B S Q L _ C U S T O M _ P A G E R _ C O D E C = 1
2024-01-12 10:30:20 +01:00
2024-01-30 11:53:18 +01:00
S Q L I T E _ E N A B L E _ D B S T A T _ V T A B = 1
S Q L I T E _ E N A B L E _ D B P A G E _ V T A B = 1
S Q L I T E _ E N A B L E _ S T M T V T A B = 1
2024-02-02 10:33:26 +01:00
S Q L I T E _ D E F A U L T _ F O R E I G N _ K E Y S = 1
2024-01-30 11:53:18 +01:00
2024-01-12 10:30:20 +01:00
H A V E _ C I P H E R _ A E S _ 1 2 8 _ C B C = 0
H A V E _ C I P H E R _ A E S _ 2 5 6 _ C B C = 1
H A V E _ C I P H E R _ C H A C H A 2 0 = 0
2024-03-06 10:55:19 +02:00
H A V E _ C I P H E R _ S Q L C I P H E R = 0
2024-01-12 10:30:20 +01:00
H A V E _ C I P H E R _ R C 4 = 0
H A V E _ C I P H E R _ A S C O N 1 2 8 = 0
2024-01-04 11:53:24 +01:00
# $<$<BOOL:${SQLITE_USE_TCL}>:SQLITE_USE_TCL=1>
)
set ( SQLITE3MC_LIBONLY_DEFINITIONS
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ F I L E I O } > : S Q L I T E _ E N A B L E _ F I L E I O = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ R E G E X P } > : S Q L I T E _ E N A B L E _ R E G E X P = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ S E R I E S } > : S Q L I T E _ E N A B L E _ S E R I E S = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ S H A 3 } > : S Q L I T E _ E N A B L E _ S H A 3 = 1 >
)
set ( SQLITE3MC_ZLIB_DEFINITIONS
)
set ( SQLITE3MC_SHELL_DEFINITIONS
$ < $ < B O O L : $ { S Q L I T E _ S H E L L _ I S _ U T F 8 } > : S Q L I T E _ S H E L L _ I S _ U T F 8 = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ E X P L A I N _ C O M M E N T S } > : S Q L I T E _ E N A B L E _ E X P L A I N _ C O M M E N T S = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ D B P A G E _ V T A B } > : S Q L I T E _ E N A B L E _ D B P A G E _ V T A B = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ D B S T A T _ V T A B } > : S Q L I T E _ E N A B L E _ D B S T A T _ V T A B = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ S T M T V T A B } > : S Q L I T E _ E N A B L E _ S T M T V T A B = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ U N K N O W N _ S Q L _ F U N C T I O N } > : S Q L I T E _ E N A B L E _ U N K N O W N _ S Q L _ F U N C T I O N = 1 >
)
if ( SQLITE3MC_USE_SQLEET_LEGACY )
set ( SQLITE3MC_BASE_DEFINITIONS
$ { S Q L I T E 3 M C _ B A S E _ D E F I N I T I O N S }
S Q L I T E 3 M C _ U S E _ S Q L E E T _ L E G A C Y = 1
)
endif ( )
if ( SQLITE3MC_USE_SQLCIPHER_LEGACY )
if ( NOT DEFINED SQLCIPHER_VERSION_DEFAULT )
set ( SQLCIPHER_VERSION_DEFAULT "4" )
endif ( )
set ( SQLITE3MC_BASE_DEFINITIONS
$ { S Q L I T E 3 M C _ B A S E _ D E F I N I T I O N S }
S Q L I T E 3 M C _ U S E _ S Q L C I P H E R _ L E G A C Y = 1
S Q L C I P H E R _ V E R S I O N _ D E F A U L T = $ { S Q L C I P H E R _ V E R S I O N _ D E F A U L T }
)
endif ( )
if ( SQLITE3MC_SECURE_MEMORY )
set ( SQLITE3MC_BASE_DEFINITIONS
$ { S Q L I T E 3 M C _ B A S E _ D E F I N I T I O N S }
S Q L I T E 3 M C _ S E C U R E _ M E M O R Y = 1
)
endif ( )
if ( SQLITE3MC_USE_RANDOM_FILL_MEMORY )
set ( SQLITE3MC_BASE_DEFINITIONS
$ { S Q L I T E 3 M C _ B A S E _ D E F I N I T I O N S }
S Q L I T E 3 M C _ U S E _ R A N D O M _ F I L L _ M E M O R Y = 1
)
endif ( )
if ( SQLITE3MC_USE_MINIZ OR _SQLITE3MC_REQUIRE_ZLIB )
if ( _SQLITE3MC_REQUIRE_ZLIB )
# Use ZLIB_ROOT to specify the location to look
find_package ( ZLIB )
if ( NOT ZLIB_FOUND )
message ( FATAL_ERROR "One of the flags specified requires zlib. Zlib is not found. Try specifying the ZLIB_ROOT environment variable." )
endif ( )
endif ( )
if ( SQLITE3MC_USE_MINIZ OR ZLIB_FOUND )
set ( SQLITE3MC_BASE_DEFINITIONS
$ { S Q L I T E 3 M C _ B A S E _ D E F I N I T I O N S }
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ C O M P R E S S } > : S Q L I T E _ E N A B L E _ C O M P R E S S = 1 >
)
set ( SQLITE3MC_ZLIB_DEFINITIONS
$ { S Q L I T E 3 M C _ Z L I B _ D E F I N I T I O N S }
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ S Q L A R } > : S Q L I T E _ E N A B L E _ S Q L A R = 1 >
$ < $ < B O O L : $ { S Q L I T E _ E N A B L E _ Z I P F I L E } > : S Q L I T E _ E N A B L E _ Z I P F I L E = 1 >
)
set ( SQLITE3MC_SHELL_DEFINITIONS
$ { S Q L I T E 3 M C _ S H E L L _ D E F I N I T I O N S }
S Q L I T E _ H A V E _ Z L I B = 1
)
endif ( )
endif ( )
if ( SQLITE3MC_WITH_ICU )
find_package ( ICU REQUIRED COMPONENTS data i18n io uc )
if ( ICU_FOUND )
set ( SQLITE3MC_ICU_DEFINITIONS
S Q L I T E _ E N A B L E _ I C U = 1
)
else ( )
message ( FATAL_ERROR "ICU not found." )
endif ( )
endif ( )
# Only generate Debug and Release configuration types.
set ( CMAKE_CONFIGURATION_TYPES Debug Release )
set ( SQLITE3MC_PUBLIC_HEADERS
s r c / s q l i t e 3 . h
s r c / s q l i t e 3 e x t . h
s r c / s q l i t e 3 m c . h
s r c / s q l i t e 3 m c _ v e r s i o n . h
s r c / s q l i t e 3 m c _ v f s . h
s r c / s q l i t e 3 u s e r a u t h . h
)
set ( SQLITE3MC_BASE_SRCS
s r c / s q l i t e 3 m c . c
s r c / c i p h e r _ c o m m o n . h
s r c / c i p h e r _ c o n f i g . h
s r c / f a s t p b k d f 2 . h
s r c / m y s t d i n t . h
s r c / r i j n d a e l . h
s r c / s h a 1 . h
s r c / s h a 2 . h
s r c / t e s t _ w i n d i r e n t . h
$ { S Q L I T E 3 M C _ P U B L I C _ H E A D E R S }
)
set ( SQLITE3MC_DLLRES_SRCS
s r c / s q l i t e 3 m c . r c
)
set ( SQLITE3MC_SHELL_SRCS
s r c / s h e l l . c
s r c / s q l i t e 3 m c . c
s r c / s q l i t e 3 m c _ s h e l l . r c
)
set ( SQLITE3MC_INCLUDEDIRS
s r c
)
set ( SQLITE3MC_LINK_LIBRARIES )
set ( SQLITE3MC_DLL_DEFINITIONS )
set ( SQLITE3MC_SHELL_SYSTEM_LINKS )
if ( MSVC )
set ( SQLITE3MC_DLL_DEFINITIONS
_ U S R D L L
)
endif ( )
if ( CMAKE_SYSTEM_NAME STREQUAL "Linux"
O R C M A K E _ S Y S T E M _ N A M E S T R E Q U A L " D a r w i n " )
2024-01-31 14:52:15 -05:00
# Do not set `-maes -msee4.2` when we are on arm which doesn't support
# this instruction set.
2024-02-01 12:58:56 -05:00
if ( CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64"
2024-01-31 14:52:15 -05:00
O R C M A K E _ S Y S T E M _ P R O C E S S O R S T R E Q U A L " a r m 6 4 " )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" )
else ( )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2 -maes" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2 -maes" )
endif ( )
2024-01-04 11:53:24 +01:00
set ( SQLITE3MC_LINK_LIBRARIES
p t h r e a d
d l
m
)
if ( CMAKE_SYSTEM_NAME STREQUAL "Darwin" )
list ( APPEND SQLITE3MC_LINK_LIBRARIES "-framework Security" )
endif ( )
set ( SHARED_LIB_EXPORT_DEFINITION "__attribute__((visibility(\" default\ ")))" )
else ( )
if ( CMAKE_C_COMPILER_ID STREQUAL "GNU" )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2 -maes" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2 -maes" )
endif ( )
set ( SHARED_LIB_EXPORT_DEFINITION "__declspec(dllexport)" )
endif ( )
2024-01-25 16:03:11 -05:00
if ( CMAKE_C_COMPILER_ID STREQUAL "Clang" )
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2 -maes -Wno-error=incompatible-function-pointer-types" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2 -maes" )
endif ( )
2024-01-04 11:53:24 +01:00
set ( _LIB_DIFINITIONS
_ L I B
)
set ( _DEFAULT_DEFINITIONS
_ C R T _ S E C U R E _ N O _ W A R N I N G S
_ C R T _ S E C U R E _ N O _ D E P R E C A T E
_ C R T _ N O N S T D C _ N O _ W A R N I N G S
_ C R T _ N O N S T D C _ N O _ D E P R E C A T E
_ U N I C O D E
U N I C O D E
)
set ( SQLITE3MC_SHELL_TARGET "sqlite3mc_shell" )
if ( SQLITE3MC_STATIC )
set ( SQLITE3MC_LINK "STATIC" )
set ( SQLITE3MC_TARGET "sqlite3mc_static" )
else ( )
set ( SQLITE3MC_LINK "SHARED" )
set ( SQLITE3MC_TARGET "sqlite3mc" )
list ( APPEND SQLITE3MC_BASE_SRCS ${ SQLITE3MC_DLLRES_SRCS } )
endif ( )
# Lib Project
add_library ( ${ SQLITE3MC_TARGET } ${ SQLITE3MC_LINK }
$ { S Q L I T E 3 M C _ B A S E _ S R C S }
)
target_include_directories ( ${ SQLITE3MC_TARGET } PRIVATE
$ { S Q L I T E 3 M C _ I N C L U D E D I R S }
)
target_compile_definitions ( ${ SQLITE3MC_TARGET } PRIVATE
$ { _ L I B _ D I F I N I T I O N S }
$ { _ D E F A U L T _ D E F I N I T I O N S }
$ { S Q L I T E 3 M C _ B A S E _ D E F I N I T I O N S }
$ { S Q L I T E 3 M C _ L I B O N L Y _ D E F I N I T I O N S }
$ { S Q L I T E 3 M C _ Z L I B _ D E F I N I T I O N S }
)
target_link_libraries ( ${ SQLITE3MC_TARGET } PRIVATE
$ { S Q L I T E 3 M C _ L I N K _ L I B R A R I E S }
)
if ( NOT SQLITE3MC_STATIC )
target_compile_definitions ( ${ SQLITE3MC_TARGET } PRIVATE
S Q L I T E _ A P I = $ { S H A R E D _ L I B _ E X P O R T _ D E F I N I T I O N }
)
endif ( )
if ( ZLIB_FOUND )
target_include_directories ( ${ SQLITE3MC_TARGET } PRIVATE
$ { Z L I B _ I N C L U D E _ D I R S }
)
target_link_libraries ( ${ SQLITE3MC_TARGET } PRIVATE
$ { Z L I B _ L I B R A R I E S }
)
message ( ${ ZLIB_LIBRARIES } )
endif ( )
if ( SQLITE3MC_WITH_ICU )
target_compile_definitions ( ${ SQLITE3MC_TARGET } PRIVATE
$ { S Q L I T E 3 M C _ I C U _ D E F I N I T I O N S }
)
target_include_directories ( ${ SQLITE3MC_TARGET } PRIVATE
$ { I C U _ I N C L U D E _ D I R S }
)
target_link_libraries ( ${ SQLITE3MC_TARGET } PRIVATE
$ { I C U _ L I B R A R I E S }
)
message ( "Will build ${SQLITE3MC_TARGET} with ICU" )
endif ( )
if ( SQLITE3MC_STATIC_RUNTIME_LINK )
message ( "Will build ${SQLITE3MC_TARGET} with static runtime link" )
_Enable_MT ( ${ SQLITE3MC_TARGET } )
endif ( )
message ( "Will build ${SQLITE3MC_TARGET} as ${SQLITE3MC_LINK}" )
set_target_properties ( ${ SQLITE3MC_TARGET } PROPERTIES PUBLIC_HEADER "${SQLITE3MC_PUBLIC_HEADERS}" )
INSTALL ( TARGETS ${ SQLITE3MC_TARGET }
A R C H I V E D E S T I N A T I O N l i b
L I B R A R Y D E S T I N A T I O N l i b
P U B L I C _ H E A D E R D E S T I N A T I O N i n c l u d e / $ { C M A K E _ P R O J E C T _ N A M E }
R U N T I M E D E S T I N A T I O N b i n
)
# Shell Executable project
if ( SQLITE3MC_BUILD_SHELL )
add_executable ( ${ SQLITE3MC_SHELL_TARGET }
$ { S Q L I T E 3 M C _ S H E L L _ S R C S }
)
target_include_directories ( ${ SQLITE3MC_SHELL_TARGET } PRIVATE
$ { S Q L I T E 3 M C _ I N C L U D E D I R S }
)
target_compile_definitions ( ${ SQLITE3MC_SHELL_TARGET } PRIVATE
$ { _ D E F A U L T _ D E F I N I T I O N S }
$ { S Q L I T E 3 M C _ B A S E _ D E F I N I T I O N S }
$ { S Q L I T E 3 M C _ S H E L L _ D E F I N I T I O N S }
)
target_link_libraries ( ${ SQLITE3MC_SHELL_TARGET } PRIVATE
$ { S Q L I T E 3 M C _ S H E L L _ S Y S T E M _ L I N K S }
$ { S Q L I T E 3 M C _ L I N K _ L I B R A R I E S }
)
if ( ZLIB_FOUND )
target_include_directories ( ${ SQLITE3MC_SHELL_TARGET } PRIVATE
$ { Z L I B _ I N C L U D E _ D I R S }
)
target_link_libraries ( ${ SQLITE3MC_SHELL_TARGET } PRIVATE
$ { Z L I B _ L I B R A R I E S }
)
endif ( )
if ( SQLITE3MC_WITH_ICU )
target_compile_definitions ( ${ SQLITE3MC_SHELL_TARGET } PRIVATE
$ { S Q L I T E 3 M C _ I C U _ D E F I N I T I O N S }
)
target_include_directories ( ${ SQLITE3MC_SHELL_TARGET } PRIVATE
$ { I C U _ I N C L U D E _ D I R S }
)
target_link_libraries ( ${ SQLITE3MC_SHELL_TARGET } PRIVATE
$ { I C U _ L I B R A R I E S }
)
message ( "Will build ${SQLITE3MC_SHELL_TARGET} with ICU" )
endif ( )
if ( SQLITE3MC_RUNTIME_LINK )
message ( "Will build ${SQLITE3MC_SHELL_TARGET} with static runtime" )
_Enable_MT ( ${ SQLIT3MC_SHELL_TARGET } )
endif ( )
message ( "Will build ${SQLITE3MC_SHELL_TARGET}" )
INSTALL ( TARGETS ${ SQLITE3MC_SHELL_TARGET }
A R C H I V E D E S T I N A T I O N l i b
L I B R A R Y D E S T I N A T I O N l i b
P U B L I C _ H E A D E R D E S T I N A T I O N i n c l u d e / $ { C M A K E _ P R O J E C T _ N A M E }
R U N T I M E D E S T I N A T I O N b i n
)
endif ( )