]> rtime.felk.cvut.cz Git - hubacji1/rrts.git/blobdiff - CMakeLists.txt
Update readme
[hubacji1/rrts.git] / CMakeLists.txt
index c27bbb12a359da8a92f0886204c0088880dc0072..e767f08db5093284afc1c39bff9888d98c240df3 100644 (file)
@@ -1,36 +1,49 @@
-cmake_minimum_required(VERSION 2.8)
+# SPDX-FileCopyrightText: 2021 Jiri Vlasak <jiri.vlasak.2@cvut.cz>
+#
+# SPDX-License-Identifier: GPL-3.0-only
+
+cmake_minimum_required(VERSION 3.8)
 project(rrts)
 
 #set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
 #set (CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
 
-find_package(jsoncpp REQUIRED)
-link_libraries(jsoncpp_lib)
+set(CMAKE_CXX_STANDARD 17)
+add_compile_options(-O2)
+# Require compiler version (g++ >= 7 tested)
+if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7)
+       message(FATAL_ERROR "GCC version must be at least 7!")
+endif()
 
-include_directories(../bcar/api)
-link_directories(../../bcar/build)
+if (NOT TARGET bcar)
+       set(SKIP_UT TRUE)
+       add_subdirectory(bcar)
+       unset(SKIP_UT)
+endif()
 link_libraries(bcar)
+link_libraries(pslot)
 
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/incl)
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/api)
+if (NOT TARGET "JsonCpp::JsonCpp")
+       find_package(jsoncpp REQUIRED)
+endif ()
+link_libraries(jsoncpp_lib)
 
-add_library(rrts SHARED
-        src/rrts.cc
-        src/rrtext13.cc
-        src/rrtext12.cc
-        src/rrtext11.cc
-        src/rrtext10.cc
-        src/rrtext9.cc
-        src/rrtext8.cc
-        src/rrtext7.cc
-        src/rrtext6.cc
-        src/rrtext5.cc
-        src/rrtext4.cc
-        src/rrtext3.cc
-        src/rrtext2.cc
-        src/rrtext1.cc
-        src/reeds_shepp.cpp
-)
-set_target_properties(rrts PROPERTIES
-        PUBLIC_HEADER api/rrts.h
+add_library(rrts STATIC
+       src/rrts.cc
+       src/rrtext21.cc
+       src/rrtext20.cc
+       src/rrtext19.cc
+       src/rrtext18.cc
+       src/rrtext17.cc
+       src/rrtext16.cc
+       src/rrtext15.cc
+       src/rrtext14.cc
+       src/rrtext13.cc
+       src/rrtext10.cc
+       src/rrtext8.cc
+       src/rrtext6.cc
+       src/rrtext2.cc
+       src/reeds_shepp.cpp
+       src/dubins.c
 )
+target_include_directories(rrts PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/incl)