cmake_minimum_required(VERSION 3.16) project(lmdbal VERSION 0.2.0 LANGUAGES CXX) cmake_policy(SET CMP0076 NEW) cmake_policy(SET CMP0079 NEW) option(BUILD_STATIC "Builds library as static library" ON) option(BUILD_TESTS "Builds tests" ON) include(GNUInstallDirs) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOUIC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") if (NOT DEFINED QT_VERSION_MAJOR) find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core) endif() find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core) find_package(LMDB REQUIRED) # Build type if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Debug) endif () if (BUILD_STATIC) add_library(lmdbal STATIC ${SOURCES}) else () add_library(lmdbal SHARED ${SOURCES}) endif() add_subdirectory(src) if (BUILD_TESTS) add_subdirectory(test) endif () target_include_directories(lmdbal PUBLIC ${CMAKE_SOURCE_DIR}/src) target_include_directories(lmdbal PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(lmdbal PRIVATE ${Qt${QT_VERSION_MAJOR}_INCLUDE_DIRS}) target_include_directories(lmdbal PRIVATE ${Qt${QT_VERSION_MAJOR}Core_INCLUDE_DIRS}) target_link_libraries(lmdbal PRIVATE Qt${QT_VERSION_MAJOR}::Core ) target_link_libraries(lmdbal PRIVATE lmdb) install(TARGETS lmdbal RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/lmdbal PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lmdbal )