Improve CMakeLists to remove 3.13 version requirement

This commit is contained in:
Yohan Simard 2021-03-03 10:34:30 +01:00
parent 5f1456bb0f
commit a39a47bb97

View file

@ -1,6 +1,8 @@
cmake_minimum_required(VERSION 3.13)
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)
@ -11,6 +13,7 @@ add_library(base64
lib/base64/base64.h
)
target_include_directories(base64 PUBLIC lib/base64)
set_property(TARGET base64 PROPERTY CXX_STANDARD 11)
# lib
add_library(lib
@ -28,10 +31,12 @@ add_library(lib
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
@ -44,7 +49,7 @@ target_link_libraries(lib ${OpenCV_LIBS})
# Xenomai
set(Xenomai_ROOT_DIR /usr/xenomai) # Optional: hint for Xenomai root folder
set(Xenomai_libs POSIX ALCHEMY RTDM PSOS VXWORKS SMOKEY NATIVE) # List of Xenomai libraries to link
set(Xenomai_libs ALCHEMY) # List of Xenomai libraries to link
find_package(Xenomai 3.0 REQUIRED ${Xenomai_libs})
if (Xenomai_FOUND)
@ -54,9 +59,10 @@ else ()
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_options(main PRIVATE "LINKER:-R/usr/xenomai/lib")
target_link_libraries(main ${Xenomai_${lib}_LIBRARY_DIRS} ${Xenomai_${lib}_LIBRARIES})
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 ()