Skip to content

Commit ab2a780

Browse files
author
Saurav Agarwal
committed
Reorganize
1 parent d8633d9 commit ab2a780

File tree

97 files changed

+294
-190
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+294
-190
lines changed

core/CMakeLists.txt

Lines changed: 0 additions & 92 deletions
This file was deleted.

core/cmake/Config.cmake.in

Lines changed: 0 additions & 6 deletions
This file was deleted.

core/cmake/CoverageControlConfig.h.in

Lines changed: 0 additions & 3 deletions
This file was deleted.

cppsrc/core/CMakeLists.txt

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
cmake_minimum_required(VERSION 3.15)
2+
project(CoverageControlCore VERSION 0.3 LANGUAGES CUDA CXX)
3+
4+
set(CMAKE_CXX_STANDARD 17)
5+
set(CMAKE_CXX_STANDARD_REQUIRED True)
6+
set(CMAKE_COLOR_DIAGNOSTICS ON)
7+
8+
include(CheckCXXCompilerFlag)
9+
include(GNUInstallDirs)
10+
11+
find_package(OpenMP REQUIRED)
12+
find_package(Eigen3 REQUIRED)
13+
find_package(yaml-cpp REQUIRED)
14+
find_package(CGAL REQUIRED)
15+
find_package(GeographicLib REQUIRED)
16+
17+
configure_file(cmake/CoverageControlCoreConfig.h.in CoverageControlCoreConfig.h)
18+
19+
add_library(compiler_flags INTERFACE)
20+
target_compile_features(compiler_flags INTERFACE cxx_std_17)
21+
22+
set(gcc_like_cxx "$<COMPILE_LANG_AND_ID:CXX,ARMClang,AppleClang,Clang,GNU,LCC>")
23+
set(msvc_cxx "$<COMPILE_LANG_AND_ID:CXX,MSVC>")
24+
target_compile_options(compiler_flags INTERFACE
25+
"$<${gcc_like_cxx}:$<BUILD_INTERFACE:-Wall;-Wextra;-Wshadow;-Wformat=2;-Wunused;-pedantic>>"
26+
"$<${msvc_cxx}:$<BUILD_INTERFACE:-W3>>"
27+
)
28+
29+
30+
#################################
31+
## CoverageControlCore library ##
32+
#################################
33+
34+
set(sources_list
35+
generate_world_map.cu
36+
polygon_utils.cpp
37+
parameters.cpp
38+
voronoi.cpp
39+
coverage_system.cpp
40+
plotter.cpp
41+
extern/Hungarian.cpp)
42+
list(TRANSFORM sources_list PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/src/")
43+
44+
set(dependencies_list Eigen3::Eigen m stdc++fs yaml-cpp OpenMP::OpenMP_CXX CGAL::CGAL pthread ${GeographicLib_LIBRARIES} boost_iostreams boost_system boost_filesystem)
45+
46+
add_library(CoverageControl_core SHARED ${sources_list})
47+
48+
add_library(CoverageControlCore INTERFACE)
49+
target_include_directories(CoverageControlCore INTERFACE
50+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
51+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
52+
target_link_libraries(CoverageControlCore INTERFACE ${dependencies_list} CoverageControl_core)
53+
54+
target_include_directories(CoverageControl_core PRIVATE "${PROJECT_BINARY_DIR}")
55+
target_link_libraries(CoverageControl_core PRIVATE ${dependencies_list} compiler_flags)
56+
set_target_properties(CoverageControl_core PROPERTIES CUDA_ARCHITECTURES native POSITION_INDEPENDENT_CODE ON)
57+
58+
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
59+
60+
install(TARGETS CoverageControl_core CoverageControlCore EXPORT CoverageControlCoreTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
61+
62+
set(CMAKEPACKAGE_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/CoverageControlCore)
63+
64+
include(CMakePackageConfigHelpers)
65+
# generate the config file that includes the exports
66+
configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Config.cmake.in
67+
${CMAKE_CURRENT_BINARY_DIR}/CoverageControlCoreConfig.cmake
68+
INSTALL_DESTINATION "${CMAKEPACKAGE_INSTALL_DIR}"
69+
NO_SET_AND_CHECK_MACRO
70+
NO_CHECK_REQUIRED_COMPONENTS_MACRO
71+
)
72+
73+
write_basic_package_version_file(
74+
"${CMAKE_CURRENT_BINARY_DIR}/CoverageControlCoreConfigVersion.cmake"
75+
VERSION "${CoverageControlCore_VERSION_MAJOR}.${CoverageControlCore_VERSION_MINOR}"
76+
COMPATIBILITY AnyNewerVersion
77+
)
78+
79+
export (PACKAGE CoverageControlCore)
80+
install(EXPORT CoverageControlCoreTargets FILE CoverageControlCoreTargets.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/CoverageControlCore)
81+
82+
install(FILES
83+
${CMAKE_CURRENT_BINARY_DIR}/CoverageControlCoreConfig.cmake
84+
${CMAKE_CURRENT_BINARY_DIR}/CoverageControlCoreConfigVersion.cmake
85+
DESTINATION ${CMAKEPACKAGE_INSTALL_DIR}
86+
)

cppsrc/core/cmake/Config.cmake.in

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
@PACKAGE_INIT@
2+
include ( "${CMAKE_CURRENT_LIST_DIR}/CoverageControlCoreTargets.cmake" )
3+
4+
get_filename_component(CoverageControlCore_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
5+
set(CoverageControlCore_INCLUDE_DIR "@CMAKE_INSTALL_FULL_INCLUDEDIR@")
6+
set(CoverageControlCore_LIB_DIR "@CMAKE_INSTALL_FULL_LIBDIR@")
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// the configured options and settings for CoverageControl
2+
#define CoverageControlCore_VERSION_MAJOR @CoverageControlCore_VERSION_MAJOR@
3+
#define CoverageControlCore_VERSION_MINOR @CoverageControlCore_VERSION_MINOR@

core/include/CoverageControl/algorithms/lloyd_algorithms.h renamed to cppsrc/core/include/CoverageControl/algorithms/lloyd_algorithms.h

File renamed without changes.

core/include/CoverageControl/algorithms/lloyd_global_online.h renamed to cppsrc/core/include/CoverageControl/algorithms/lloyd_global_online.h

File renamed without changes.

core/include/CoverageControl/algorithms/lloyd_local_sensor_global_comm.h renamed to cppsrc/core/include/CoverageControl/algorithms/lloyd_local_sensor_global_comm.h

File renamed without changes.

0 commit comments

Comments
 (0)