Skip to main content

sqlitecpp-build-cmake

Build SQLiteCpp with CMake. Use for CMake builds, tests, options, or build scripts.

Source facts

Repository
SRombauts/SQLiteCpp
Last source activity
October 2, 2026 at 19:16
Detected SKILL.md language
English
Stars
2,789
Forks
575

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
sqlitecpp-build-cmake
description
Build SQLiteCpp with CMake. Use for CMake builds, tests, options, or build scripts.
# SQLiteCpp CMake Build ## Quick builds - Windows (VS 2026): - `mkdir build` - `cd build` - `cmake -G "Visual Studio 18 2026" -DSQLITECPP_BUILD_TESTS=ON -DSQLITECPP_BUILD_EXAMPLES=ON ..` - `cmake --build . --config Release` - Unix/macOS: - `mkdir build && cd build` - `cmake -DCMAKE_BUILD_TYPE=Debug -DSQLITECPP_BUILD_TESTS=ON -DSQLITECPP_BUILD_EXAMPLES=ON ..` - `cmake --build .` ## Build scripts - `build.bat` (Windows) enables shared libs, tests, examples, and runs `ctest`. - `build.sh` (Unix) enables ASAN, shared libs, tests, examples, and runs `ctest`. ## Common options - `SQLITECPP_BUILD_TESTS` (OFF): build unit tests. - `SQLITECPP_BUILD_EXAMPLES` (OFF): build examples. - `BUILD_SHARED_LIBS` (OFF): build shared libs (DLLs). - `SQLITECPP_INTERNAL_SQLITE` (ON): use bundled sqlite3 source. - `SQLITE_ENABLE_COLUMN_METADATA` (ON): enable `getColumnOriginName()`. - `SQLITECPP_RUN_CPPLINT` (ON): run cpplint target. - `SQLITECPP_RUN_CPPCHECK` (ON): run cppcheck target. - `SQLITECPP_RUN_DOXYGEN` (OFF): generate docs. - `SQLITECPP_USE_ASAN` (OFF): address sanitizer. - `SQLITECPP_USE_UBSAN` (OFF): undefined behavior sanitizer for the library and linked consumers. - `SQLITECPP_USE_GCOV` (OFF): GCov coverage. - `SQLITECPP_DISABLE_STD_FILESYSTEM` (OFF): disable std::filesystem support. - `SQLITECPP_DISABLE_EXPANDED_SQL` (OFF): disable sqlite3_expanded_sql support. ## Tests - `ctest --output-on-failure` - `ctest --output-on-failure -V` - `ctest --output-on-failure -R "Database"` ## Notes - Tests can use a system `GTest`; otherwise they fall back to the `googletest` submodule. - If the submodule is needed: `git submodule update --init --recursive`. - SQLiteCpp requires CMake 3.16 or newer and C++17 or newer. - MSVC requires VS2017 15.9 / MSVC 19.16 or newer, enforced with a fatal configuration diagnostic. - `cxx_std_17` requests a standard mode; it does not prove complete C++17 feature support. Old MSVC toolsets are a special case: CMake can advertise standard meta-features even when the compiler has no standard-selection flag, and can map C++17 to `/std:c++latest` on VS2015 Update 3. `CXX_STANDARD_REQUIRED` therefore does not guarantee an early rejection of unsupported MSVC versions. Preserve explicit minimum-version diagnostics when needed, using `message(FATAL_ERROR ...)`. See https://cmake.org/cmake/help/latest/prop_tgt/CXX_STANDARD_REQUIRED.html and https://cmake.org/cmake/help/latest/manual/cmake-compile-features.7.html#requiring-language-standards. - Keep the minimum CMake version deliberate and update CMake configuration and documentation together. - The `...4.4` policy maximum in `cmake_minimum_required` does not cap the supported CMake version; it opts into policy behavior through CMake 4.4 while still allowing newer CMake releases.
View on GitHub