cmake_minimum_required(VERSION 3.0) project(superviseur) SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) # Import modules set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules) # Compile libraries # Base64 add_library(base64 lib/base64/base64.cpp lib/base64/base64.h ) target_include_directories(base64 PUBLIC lib/base64) set_property(TARGET base64 PROPERTY CXX_STANDARD 11) # lib add_library(lib lib/camera.cpp lib/camera.h lib/commonitor.cpp lib/commonitor.h lib/comrobot.cpp lib/comrobot.h lib/img.cpp lib/img.h lib/messages.cpp lib/messages.h ) target_include_directories(lib PUBLIC lib) target_link_libraries(lib base64) target_compile_definitions(lib PUBLIC __FOR_PC__ __SIMULATION__ __WITH_ARUCO__ __WITH_OPENCV4__) set_property(TARGET lib PROPERTY CXX_STANDARD 11) # Compile main executable add_executable(main main.cpp tasks.cpp tasks.h) target_link_libraries(main lib) set_property(TARGET main PROPERTY CXX_STANDARD 11) # OpenCV #set (OpenCV_DIR /path/to/opencv) # Optiona: hint for OpenCV root folder find_package(OpenCV REQUIRED) target_link_libraries(lib ${OpenCV_LIBS}) # Raspicam_CV #find_package(raspicam REQUIRED) #target_link_libraries(lib ${raspicam_CV_LIBS}) # Xenomai set(Xenomai_ROOT_DIR /usr/xenomai) # Optional: hint for Xenomai root folder set(Xenomai_libs ALCHEMY) # List of Xenomai libraries to link find_package(Xenomai 3.0 REQUIRED ${Xenomai_libs}) if (Xenomai_FOUND) message(STATUS "Xenomai found with theses skins: ${Xenomai_SKINS}") else () message(FATAL_ERROR "Xenomai not found") endif () foreach (lib IN LISTS Xenomai_libs) string(SUBSTRING ${Xenomai_${lib}_LIBRARY_DIRS} 2 -1 Xenomai_${lib}_LIBRARY_DIRS) # remove -L prefix target_include_directories(main PRIVATE ${Xenomai_${lib}_INCLUDE_DIRS}) target_link_directories(main PRIVATE ${Xenomai_${lib}_LIBRARY_DIRS}) target_link_libraries(main ${Xenomai_${lib}_LIBRARIES}) set_target_properties(main PROPERTIES LINK_FLAGS ${Xenomai_${lib}_LDFLAGS}) target_compile_definitions(main PRIVATE ${Xenomai_${lib}_DEFINITIONS}) endforeach ()