]> rtime.felk.cvut.cz Git - hubacji1/rrts.git/blobdiff - CMakeLists.txt
Update readme
[hubacji1/rrts.git] / CMakeLists.txt
index d9ca70847639646bd9aedee7fa911d8b0e575840..e767f08db5093284afc1c39bff9888d98c240df3 100644 (file)
@@ -1,38 +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")
 
-include_directories(../bcar/api)
-link_directories(../../bcar/build)
-link_libraries(bcar)
-
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/incl)
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/api)
+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()
 
-add_library(rrts SHARED
-        src/rrts.cc
-        src/rrtext3.cc
-        src/rrtext2.cc
-        src/rrtext1.cc
-        src/reeds_shepp.cpp
-)
-set_target_properties(rrts PROPERTIES
-        PUBLIC_HEADER api/rrts.h
-)
+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}/wvtest/cpp)
-ADD_DEFINITIONS(-DWVTEST_CONFIGURED)
-add_executable(ut
-        wvtest/cpp/wvtestmain.cc
-        wvtest/cpp/wvtest.cc
-        ut/rrts.t.cc
-        ut/rrtext.t.cc
-)
-target_link_libraries(ut rrts)
+if (NOT TARGET "JsonCpp::JsonCpp")
+       find_package(jsoncpp REQUIRED)
+endif ()
+link_libraries(jsoncpp_lib)
 
-add_custom_command(TARGET ut
-        POST_BUILD COMMAND ./wvtestrun ../build/ut
-        WORKING_DIRECTORY ../wvtest
+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)