|
|
||
|---|---|---|
| .gitea/workflows | ||
| cmake | ||
| doc | ||
| packaging/Archlinux | ||
| src | ||
| test | ||
| CHANGELOG.md | ||
| CMakeLists.txt | ||
| LICENSE.md | ||
| README.md | ||
LMDBAL - Lightning Memory Data Base Abstraction Level
Prerequisites
- a compiler (c++ would do)
- Qt 5 or higher (qt5-base would do)
- lmdb
- CMake 3.16 or higher
- Doxygen (optional, for documentation)
- gtest (optional, for tests)
Using with CMake
As a system library
If you're using LMDBAL as a system library you probably have no control over it's build options. The easiest way to include the project is to add following
find_package(lmdbal)
if (LMDBAL_FOUND)
target_include_directories(yourTarget PRIVATE ${LMDBAL_INCLUDE_DIRS})
target_link_libraries(yourTarget PRIVATE LMDBAL::LMDBAL)
endif()
As an embeded subproject
If you're using LMDBAL as a embeded library you might want to control it's build options, for example you can run
set(BUILD_STATIC ON)
before including the library in your project. This will set the library to be build in a static mode.
Then you want to run something like this
add_subdirectory(pathTo/yourEmbedded/libraries/lmdbal)
add_library(LMDBAL::LMDBAL ALIAS LMDBAL)
...
target_link_libraries(yourTarget PRIVATE LMDBAL::LMDBAL)
The headers are added as PUBLIC so you might not even need to target_link_libraries them
Building
LMDBAL uses CMake as a build system.
Please check the prerequisites and install them before building.
Here is an easy way to build a project
$ git clone https://git.macaw.me/blue/lmdbal
$ cd lmdbal
$ mkdir build
$ cd build
$ cmake .. [ *optional keys* ]
$ cmake --build .
$ cmake --install . --prefix install
This way will create you a lmdbal/build directory with temporary files, and lmdbal/build/install with all the export files for installation to the system.
After cmake .. you can specify keys to alter the building process. In this context building keys are transfered like so
cmake .. -D KEY1=VALUE1 -D KEY2=VALUE2 ...
List of keys
Here is the list of keys you can pass to configuration phase of cmake ..:
CMAKE_BUILD_TYPE-Debugjust builds showing all warnings,Releasebuilds with no warnings and applies optimizations (default isDebug);BUILD_STATIC-Truebuilds project as a static library,Falsebuilds as dynamic (default isFalse);BUILD_TESTS-Truebuild unit tests,Falsedoes not (default isFalse);BUILD_DOC-Truebuild doxygen documentation,Falsedoes not (default isFalse);BUILD_DOXYGEN_AWESOME-Truebuild doxygen awesome theme ifBUILD_DOCis alsoTrue(default isFalse);QT_VERSION_MAJOR-5links against Qt5,6links agains Qt6, there is no default, so, if you didn't specify it the project will chose automatically;
Running tests
If you built the library with -D BUILD_TESTS=True, then there will be lmdbal/build/tests/runUnitTests executable file. You can simply run it as
./runUnitTests
if you're in the same directory with it
License
This project is available under the GPL-3.0 License or any later version. The file cmake/FindLMDB.cmake is available under the GPL-3.0 License only, - see the LICENSE.md file for details