Initial Commit (tested training, testing, and TRT conversion)
This commit is contained in:
29
flightlib/cmake/catkin.cmake
Normal file
29
flightlib/cmake/catkin.cmake
Normal file
@@ -0,0 +1,29 @@
|
||||
# Setup catkin simple
|
||||
find_package(catkin_simple REQUIRED)
|
||||
|
||||
catkin_simple()
|
||||
|
||||
add_definitions(-std=c++17)
|
||||
|
||||
# Library and Executables
|
||||
cs_add_library(${PROJECT_NAME} ${FLIGHTLIB_SOURCES})
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
${catkin_LIBRARIES}
|
||||
${BLAS_LIBRARIES}
|
||||
${LAPACK_LIBRARIES}
|
||||
${LAPACKE_LIBRARIES}
|
||||
${OpenCV_LIBRARIES}
|
||||
yaml-cpp
|
||||
zmq
|
||||
zmqpp
|
||||
)
|
||||
|
||||
# Build tests
|
||||
if(BUILD_TESTS)
|
||||
catkin_add_gtest(flightlib_tests ${FLIGHTLIB_TEST_SOURCES})
|
||||
target_link_libraries(flightlib_tests ${PROJECT_NAME} gtest gtest_main)
|
||||
endif()
|
||||
|
||||
# Finish catkin simple
|
||||
cs_install()
|
||||
cs_export()
|
||||
25
flightlib/cmake/eigen.cmake
Normal file
25
flightlib/cmake/eigen.cmake
Normal file
@@ -0,0 +1,25 @@
|
||||
# Download and unpack eigen at configure time
|
||||
message(STATUS "Getting Eigen...")
|
||||
|
||||
configure_file(
|
||||
cmake/eigen_download.cmake
|
||||
${PROJECT_SOURCE_DIR}/externals/eigen/CMakeLists.txt)
|
||||
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
|
||||
RESULT_VARIABLE result
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/eigen
|
||||
OUTPUT_QUIET)
|
||||
if(result)
|
||||
message(FATAL_ERROR "Download of Eigen failed: ${result}")
|
||||
endif()
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} --build .
|
||||
RESULT_VARIABLE result
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/eigen
|
||||
OUTPUT_QUIET)
|
||||
if(result)
|
||||
message(FATAL_ERROR "Build step for eigen failed: ${result}")
|
||||
endif()
|
||||
|
||||
message(STATUS "Eigen downloaded!")
|
||||
|
||||
set(EIGEN_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/externals/eigen)
|
||||
15
flightlib/cmake/eigen_download.cmake
Normal file
15
flightlib/cmake/eigen_download.cmake
Normal file
@@ -0,0 +1,15 @@
|
||||
cmake_minimum_required(VERSION 3.0.0)
|
||||
|
||||
project(eigen-external)
|
||||
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(eigen
|
||||
GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git
|
||||
GIT_TAG 3.3.4
|
||||
SOURCE_DIR "${PROJECT_SOURCE_DIR}/externals/eigen/eigen3"
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND ""
|
||||
UPDATE_DISCONNECTED ON
|
||||
)
|
||||
37
flightlib/cmake/gtest.cmake
Normal file
37
flightlib/cmake/gtest.cmake
Normal file
@@ -0,0 +1,37 @@
|
||||
# Download and unpack googletest at configure time
|
||||
message(STATUS "Getting gtests...")
|
||||
|
||||
configure_file(cmake/gtest_download.cmake ${PROJECT_SOURCE_DIR}/externals/googletest-download/CMakeLists.txt)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
|
||||
RESULT_VARIABLE result
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/googletest-download
|
||||
OUTPUT_QUIET)
|
||||
if(result)
|
||||
message(FATAL_ERROR "CMake step for googletest failed: ${result}")
|
||||
endif()
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} --build .
|
||||
RESULT_VARIABLE result
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/googletest-download
|
||||
OUTPUT_QUIET)
|
||||
if(result)
|
||||
message(FATAL_ERROR "Build step for googletest failed: ${result}")
|
||||
endif()
|
||||
|
||||
message(STATUS "gtests downloaded!")
|
||||
|
||||
# Prevent overriding the parent project's compiler/linker
|
||||
# settings on Windows
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
|
||||
# Add googletest directly to our build. This defines
|
||||
# the gtest and gtest_main targets.
|
||||
add_subdirectory(${PROJECT_SOURCE_DIR}/externals/googletest-src
|
||||
${PROJECT_SOURCE_DIR}/externals/googletest-build
|
||||
EXCLUDE_FROM_ALL)
|
||||
|
||||
# The gtest/gtest_main targets carry header search path
|
||||
# dependencies automatically when using CMake 2.8.11 or
|
||||
# later. Otherwise we have to add them here ourselves.
|
||||
if (CMAKE_VERSION VERSION_LESS 2.8.11)
|
||||
include_directories("${gtest_SOURCE_DIR}/include")
|
||||
endif()
|
||||
16
flightlib/cmake/gtest_download.cmake
Normal file
16
flightlib/cmake/gtest_download.cmake
Normal file
@@ -0,0 +1,16 @@
|
||||
cmake_minimum_required(VERSION 3.0.0)
|
||||
|
||||
project(googletest-download NONE)
|
||||
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(googletest
|
||||
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
GIT_TAG main
|
||||
SOURCE_DIR "${PROJECT_SOURCE_DIR}/externals/googletest-src"
|
||||
BINARY_DIR "${PROJECT_SOURCE_DIR}/externals/googletest-build"
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND ""
|
||||
UPDATE_DISCONNECTED ON
|
||||
)
|
||||
33
flightlib/cmake/pybind11.cmake
Normal file
33
flightlib/cmake/pybind11.cmake
Normal file
@@ -0,0 +1,33 @@
|
||||
# Download and unpack pybind11 at configure time
|
||||
message(STATUS "Getting Pybind11...")
|
||||
|
||||
# set(PYBIND11_PYTHON_VERSION 3.6)
|
||||
set(PYBIND11_PYTHON_VERSION ${PYTHON_VERSION_STRING})
|
||||
|
||||
configure_file(
|
||||
cmake/pybind11_download.cmake
|
||||
${PROJECT_SOURCE_DIR}/externals/pybind11-download/CMakeLists.txt)
|
||||
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
|
||||
RESULT_VARIABLE result
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/pybind11-download
|
||||
OUTPUT_QUIET)
|
||||
if(result)
|
||||
message(FATAL_ERROR "Cmake Step for Pybind11 failed: ${result}")
|
||||
endif()
|
||||
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} --build .
|
||||
RESULT_VARIABLE result
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/pybind11-download
|
||||
OUTPUT_QUIET)
|
||||
if(result)
|
||||
message(FATAL_ERROR "Build step for eigen failed: ${result}")
|
||||
endif()
|
||||
|
||||
message(STATUS "Pybind11 downloaded!")
|
||||
|
||||
set(PYBIND11_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/externals/pybind11-src/include)
|
||||
add_subdirectory(${PROJECT_SOURCE_DIR}/externals/pybind11-src
|
||||
EXCLUDE_FROM_ALL)
|
||||
|
||||
include_directories(SYSTEM "${PROJECT_SOURCE_DIR}/externals/pybind11-src/include")
|
||||
17
flightlib/cmake/pybind11_download.cmake
Normal file
17
flightlib/cmake/pybind11_download.cmake
Normal file
@@ -0,0 +1,17 @@
|
||||
cmake_minimum_required(VERSION 3.0.0)
|
||||
|
||||
project(pybind11-download)
|
||||
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(pybind11
|
||||
GIT_REPOSITORY https://cf.ghproxy.cc/https://github.com/pybind/pybind11
|
||||
GIT_TAG master
|
||||
SOURCE_DIR "${PROJECT_SOURCE_DIR}/externals/pybind11-src"
|
||||
BINARY_DIR "${PROJECT_SOURCE_DIR}/externals/pybind11-bin"
|
||||
CONFIGURE_COMMAND ""
|
||||
CMAKE_ARGS ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND ""
|
||||
UPDATE_DISCONNECTED ON
|
||||
)
|
||||
33
flightlib/cmake/yaml.cmake
Normal file
33
flightlib/cmake/yaml.cmake
Normal file
@@ -0,0 +1,33 @@
|
||||
# Download and unpack eigen at configure time
|
||||
message(STATUS "Getting yaml-cpp...")
|
||||
|
||||
configure_file(
|
||||
cmake/yaml_download.cmake
|
||||
${PROJECT_SOURCE_DIR}/externals/yaml-download/CMakeLists.txt)
|
||||
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
|
||||
RESULT_VARIABLE result
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/yaml-download
|
||||
OUTPUT_QUIET
|
||||
ERROR_QUIET)
|
||||
if(result)
|
||||
message(FATAL_ERROR "CMake step for yaml-cpp failed: ${result}")
|
||||
endif()
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} --build .
|
||||
RESULT_VARIABLE result
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/externals/yaml-download
|
||||
OUTPUT_QUIET
|
||||
ERROR_QUIET)
|
||||
if(result)
|
||||
message(FATAL_ERROR "Build step for yaml failed: ${result}")
|
||||
endif()
|
||||
|
||||
message(STATUS "Yaml downloaded!")
|
||||
|
||||
add_subdirectory(${PROJECT_SOURCE_DIR}/externals/yaml-src
|
||||
${PROJECT_SOURCE_DIR}/externals/yaml-build
|
||||
EXCLUDE_FROM_ALL)
|
||||
target_compile_options(yaml-cpp PUBLIC -fPIC -w)
|
||||
|
||||
include_directories(SYSTEM "${PROJECT_SOURCE_DIR}/externals/yaml-src/include")
|
||||
link_directories("${PROJECT_SOURCE_DIR}/externals/yaml-build")
|
||||
18
flightlib/cmake/yaml_download.cmake
Normal file
18
flightlib/cmake/yaml_download.cmake
Normal file
@@ -0,0 +1,18 @@
|
||||
cmake_minimum_required(VERSION 3.0.0)
|
||||
|
||||
project(yaml-download)
|
||||
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(yaml
|
||||
GIT_REPOSITORY https://cf.ghproxy.cc/https://github.com/jbeder/yaml-cpp
|
||||
GIT_TAG master
|
||||
SOURCE_DIR "${PROJECT_SOURCE_DIR}/externals/yaml-src"
|
||||
BINARY_DIR "${PROJECT_SOURCE_DIR}/externals/yaml-bin"
|
||||
CONFIGURE_COMMAND ""
|
||||
CMAKE_ARGS "-DBUILD_TESTING=OFF -DYAML_CPP_INSTALL=OFF"
|
||||
CMAKE_CACHE_ARGS -DBUILD_TESTING:BOOL=OFF -DYAML_CPP_INSTALLC:BOOL=ON
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND ""
|
||||
UPDATE_DISCONNECTED ON
|
||||
)
|
||||
Reference in New Issue
Block a user