* Add Database constructor for filesystem::path #296
* Fixed incorrect MSVC version value for C++17
* Updated another incorrect version string
* Updated MSVC compiler check again. The <filesystem> header wasn't transitioned from std::experimental until MSVC 15.7
* Changed version check to look at c++ version no MSVC version
Similar to Statement::tryExecuteStep(), allows calls to sqlite3_exec()
with the caller assuming responsibility for checking and handling the
returned status.
strncpy gives an "output may be truncated" warning in newer versions of
GCC due to *pBuf being larger (100) than *pHeaderStr (16). Use memcpy
and explicitly null-terminate the target string.
When building with SQLITECPP_INTERNAL_SQLITE=ON the SQLite amalgamation
source is used for generating the library. Using one big source file
means all the library code will be put in a single section. When
building statically linked executables the entire section will be
linked even if a small portion of the library is actually used.
This commit addresses this issue by setting the -ffunction-sections
compiler option when building the library. As each function is placed in
a section of its own the linker, when passed the --gc-sections, will
throw away unused sections (functions) and reduce the executable size.
It's not needed since the automatically generated file
SQLiteCppConfig.cmake already exists.
Added a small section to the README to explain how it can be used when
this library is installed to the system.
Fixes#283
It was failing to compile since it wasn't linking against the sqlcipher
library if using the system libraries. This fix simply links the library
& includes the header path.
PkgConf is optional in this process, and it will fall back to regular
search for header & lib if it's not installed.
Without this, systems that linked against Threads::Threads (namely
Linux) don't "just work" with find_package(SQLiteCpp), but instead
require you to find & link against Threads manually.
So this fixes that by finiding it for you, if it was used.