cmake_minimum_required(VERSION 3.16) project(harikoff VERSION 0.00.002 LANGUAGES CXX) include(CMakeDependentOption) # Set C++ standard set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # Build type if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif() # Compiler flags set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic") # Mind oscillator configuration set(MIND_VOSCILLATOR_PERIOD_MS 33 CACHE STRING "Mind's virtual osc clock rate (ms)") if(NOT MIND_VOSCILLATOR_PERIOD_MS GREATER 0) message(FATAL_ERROR "MIND_VOSCILLATOR_PERIOD_MS must be a positive integer > 0") endif() math(EXPR MIND_VOSCILLATOR_FREQ_MS "1000 / ${MIND_VOSCILLATOR_PERIOD_MS}") # Configure config.h configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/include/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/include/config.h ) # Include directories include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/hcore/include ${CMAKE_CURRENT_BINARY_DIR}/include ) # Find core dependencies find_package(Boost 1.69.0 REQUIRED COMPONENTS system) find_package(PkgConfig REQUIRED) find_package(FLEX REQUIRED) find_package(BISON REQUIRED) # Need dlopen() and dlsym() find_library(DL_LIBRARY NAMES dl ldl) if(NOT DL_LIBRARY) message(FATAL_ERROR "Dynamic linking library (libdl/libldl) not found") endif() # Add core components add_subdirectory(hcore) add_subdirectory(commonLibs) add_subdirectory(senseApis) add_subdirectory(wilzorApis) # Main executable add_executable(harikoff main.cpp) target_link_libraries(harikoff hcore deviceManager senseApis ${Boost_LIBRARIES} ${DL_LIBRARY} ) install(TARGETS harikoff DESTINATION bin)