mirror of
https://github.com/modelec/modelec-marcel-ROS.git
synced 2026-01-18 16:47:43 +01:00
start using a top level cmake so it's easier with CLion
This commit is contained in:
45
CMakeLists.txt
Normal file
45
CMakeLists.txt
Normal file
@@ -0,0 +1,45 @@
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
project("ROS2 Master")
|
||||
|
||||
# usually I put this in a separate file include("/opt/ros/_common/Colcon.cmake")
|
||||
function(colcon_add_subdirectories)
|
||||
cmake_parse_arguments(PARSE_ARGV 0 "ARG" "" "BUILD_BASE;BASE_PATHS" "")
|
||||
|
||||
message("search criteria: ${ARGV}")
|
||||
|
||||
execute_process(COMMAND colcon list
|
||||
--paths-only
|
||||
--base-paths ${ARG_BASE_PATHS}
|
||||
--topological-order
|
||||
${ARG_UNPARSED_ARGUMENTS}
|
||||
OUTPUT_VARIABLE paths)
|
||||
string(STRIP "${paths}" paths)
|
||||
string(REPLACE "\n" ";" paths "${paths}")
|
||||
|
||||
MESSAGE("colcon shows paths ${paths}")
|
||||
|
||||
foreach(path IN LISTS paths)
|
||||
message("...examining ${path}")
|
||||
# if(EXISTS "${path}/CMakeLists.txt")
|
||||
execute_process(COMMAND colcon info --paths "${path}" OUTPUT_VARIABLE package_info)
|
||||
if(NOT "${package_info}" MATCHES "type:[ \t]+(cmake|ros.ament_cmake|ros.cmake)")
|
||||
message("skipping non-cmake project")
|
||||
elseif(NOT "${package_info}" MATCHES "name:[ \t]+([^ \r\n\t]*)")
|
||||
message(WARNING "could not identify package at ${path}")
|
||||
else()
|
||||
set(name "${CMAKE_MATCH_1}")
|
||||
message("...adding package ${name} from path ${path}")
|
||||
MESSAGE("package info: ${package_info}")
|
||||
|
||||
get_filename_component(BUILD_PATH "${name}" ABSOLUTE BASE_DIR "${ARG_BUILD_BASE}")
|
||||
|
||||
add_subdirectory("${path}" "${BUILD_PATH}")
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
colcon_add_subdirectories(
|
||||
BUILD_BASE "${PROJECT_SOURCE_DIR}/build"
|
||||
BASE_PATHS "${PROJECT_SOURCE_DIR}/src/"
|
||||
--packages-select modelec_utils
|
||||
)
|
||||
6
test.zsh
Normal file
6
test.zsh
Normal file
@@ -0,0 +1,6 @@
|
||||
ros_env="AMENT_PREFIX_PATH CMAKE_PREFIX_PATH COLCON_PREFIX_PATH PKG_CONFIG_PATH PYTHONPATH LD_LIBRARY_PATH PATH ROS_DISTRO ROS_PYTHON_VERSION ROS_LOCALHOST_ONLY ROS_VERSION"
|
||||
|
||||
for e in ${=ros_env}; do
|
||||
# In Zsh, ${(P)e} performs the indirect expansion
|
||||
echo "$e=${(P)e}"
|
||||
done
|
||||
Reference in New Issue
Block a user