Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/azadkuh/sqlite-amalgamation
The SQLite amalgamation mirror with cmake
https://github.com/azadkuh/sqlite-amalgamation
cmake sqlite sqlite-amalgamation
Last synced: about 2 months ago
JSON representation
The SQLite amalgamation mirror with cmake
- Host: GitHub
- URL: https://github.com/azadkuh/sqlite-amalgamation
- Owner: azadkuh
- License: bsd-3-clause
- Created: 2015-04-06T08:58:29.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-01-08T14:40:21.000Z (almost 2 years ago)
- Last Synced: 2023-10-20T18:01:58.132Z (about 1 year ago)
- Topics: cmake, sqlite, sqlite-amalgamation
- Language: C
- Homepage: http://www.sqlite.org/amalgamation.html
- Size: 15.6 MB
- Stars: 86
- Watchers: 12
- Forks: 54
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sqlite-amalgamation
- [Release History](https://www.sqlite.org/changes.html)
- [Chronology](https://www.sqlite.org/chronology.html)This repository mirrors the [SQLite](http://www.sqlite.org/download.html)
amalgamation, which is the recommended method of building SQLite into larger
projects.
It also supports `cmake` for building, installing and exporting.SQLite includes more than 100 files in `*.c` / `*.h`, but
> The [amalgamation](http://www.sqlite.org/amalgamation.html) contains
> everything you need to integrate SQLite into a larger project. Just copy the
> amalgamation into your source directory and compile it along with the other C
> code files in your project.
> ([A more detailed discussion](http://www.sqlite.org/howtocompile.html) of the
> compilation process is available.) You may also want to make use of
> the "sqlite3.h" header file that defines the programming API for SQLite. The
> sqlite3.h header file is available separately. The sqlite3.h file is also
> contained within the amalgamation, in the first few thousand lines. So if you
> have a copy of sqlite3.c but cannot seem to locate sqlite3.h, you can always
> regenerate the sqlite3.h by copying and pasting from the amalgamation.![SQLite3](http://www.sqlite.org/images/sqlite370_banner.gif)
## build / install
A static lib (`libsqlite3`) and the sqlite3 shell will be generated by the build
system.```bash
$> mkdir .build
$> cd .build
$> cmake /path/to/this/repo # or cmake .. -G Ninja
$> ccmake . # for build options or cmake-gui .
$> make -j 2 # or ninja$> make install
```## usage
to integrate this library into your project simply add these lines to your project
`cmake`:
```cmake
find_package(SQLite3 REQUIRED CONFIG)
target_link_libraries(${PROJECT_NAME} SQLite::SQLite3)
```the include directory and link library will be automatically added to your target.
If you need to switch your project to use "standard" SQLite remove CONFIG option
in `find_package` function call.## SQLite3 build options
`SQLite3` comes with plenty of
[compile options](https://www.sqlite.org/compile.html)following cmake build options control some of those compile options:
| options | default |
| :-- | :-- |
| `SQLITE_ENABLE_COLUMN_METADATA` | off |
| `SQLITE_ENABLE_DBSTAT_VTAB` | off |
| `SQLITE_ENABLE_FTS3` | off |
| `SQLITE_ENABLE_FTS4` | off |
| `SQLITE_ENABLE_FTS5` | off |
| `SQLITE_ENABLE_GEOPOLY` | off |
| `SQLITE_ENABLE_ICU` | off |
| `SQLITE_ENABLE_MATH_FUNCTIONS` | on |
| `SQLITE_ENABLE_RBU` | off |
| `SQLITE_ENABLE_RTREE` | off |
| `SQLITE_ENABLE_STAT4` | off |
| `SQLITE_OMIT_DECLTYPE` | on |
| `SQLITE_OMIT_JSON` | off |
| `SQLITE_USE_URI` | off |these **recommended** compile options are also passed to the compiler by
`SQLITE_RECOMMENDED_OPTIONS` (on by default):| options |
| :-- |
| SQLITE_DEFAULT_MEMSTATUS = 0 |
| SQLITE_DEFAULT_WAL_SYNCHRONOUS = 1 |
| SQLITE_DQS = 0 |
| SQLITE_LIKE_DOESNT_MATCH_BLOBS |
| SQLITE_MAX_EXPR_DEPTH = 0 |
| SQLITE_OMIT_DECLTYPE |
| SQLITE_OMIT_DEPRECATED |
| SQLITE_OMIT_PROGRESS_CALLBACK |
| SQLITE_OMIT_SHARED_CACHE |
| SQLITE_USE_ALLOCA |all compile-time options will go into `sqlite3_config.h`, you may
use this file to check these options when building your application.the SQLite3 shell (executable) is disabled by default, to build it just
activate the `BUILD_SHELL` option.