| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- cmake_minimum_required(VERSION 3.20)
- project(smartbotic-microbit VERSION 0.1.0 LANGUAGES CXX C)
- set(CMAKE_CXX_STANDARD 20)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
- set(CMAKE_CXX_EXTENSIONS OFF)
- set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
- if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type" FORCE)
- endif()
- option(BUILD_TESTS "Build tests" OFF)
- option(BUNDLE_DATABASE "Include smartbotic-database service in build" OFF)
- list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
- include(CompilerFlags)
- include(FindPackages)
- include(Dependencies)
- # Database submodule
- set(SMARTBOTIC_DB_BUILD_CLIENT ON CACHE BOOL "" FORCE)
- set(SMARTBOTIC_DB_BUILD_SERVICE ${BUNDLE_DATABASE} CACHE BOOL "" FORCE)
- if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/external/smartbotic-database/CMakeLists.txt")
- add_subdirectory(external/smartbotic-database)
- else()
- message(FATAL_ERROR "smartbotic-database submodule not found. Run: git submodule update --init --recursive")
- endif()
- # Libraries
- add_subdirectory(lib)
- # Main application
- add_subdirectory(src)
- # Tests
- if(BUILD_TESTS)
- enable_testing()
- add_subdirectory(tests)
- endif()
- # Install
- include(GNUInstallDirs)
- install(TARGETS smartbotic-microbit RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- install(DIRECTORY config/ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/smartbotic-microbit
- FILES_MATCHING PATTERN "*.json")
|