feat: support create conan package
This commit is contained in:
parent
42a8fd2d45
commit
f49e4991db
|
@ -112,6 +112,14 @@ else()
|
|||
${PROJECT_NAME} PUBLIC urdfdom::urdfdom orocos-kdl::orocos-kdl
|
||||
tinyxml::tinyxml tinyxml2::tinyxml2)
|
||||
|
||||
set(KDL_PARSER_PUBLIC_HEADERS "include/kdl_parser/kdl_parser.hpp"
|
||||
"include/kdl_parser/visibility_control.hpp")
|
||||
|
||||
set_target_properties(${PROJECT_NAME}
|
||||
PROPERTIES PUBLIC_HEADER "${KDL_PARSER_PUBLIC_HEADERS}")
|
||||
install(TARGETS ${PROJECT_NAME}
|
||||
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/kdl_parser)
|
||||
|
||||
if(NOT BUILD_TESTING STREQUAL OFF)
|
||||
enable_testing()
|
||||
|
||||
|
|
|
@ -25,18 +25,17 @@ class kdl_parserRecipe(ConanFile):
|
|||
exports_sources = (
|
||||
"CMakeLists.txt",
|
||||
"src/*",
|
||||
"tests/*",
|
||||
"test/*",
|
||||
"include/*",
|
||||
)
|
||||
|
||||
def requirements(self):
|
||||
self.requires("orocos-kdl/[>=1.5.1 <2]")
|
||||
self.requires("tinyxml/[>=2.6.0 <3]")
|
||||
self.requires("tinyxml2/[>=11.0.0 <13.0.0]")
|
||||
self.requires("urdfdom/[>=3.1.1 <5.0.0]")
|
||||
self.requires("urdfdom_headers/[>=1.1.1 <2]")
|
||||
self.requires("orocos-kdl/[>=1.5.1 <2]", transitive_headers=True, transitive_libs=True)
|
||||
self.requires("tinyxml/[>=2.6.0 <3]", transitive_headers=True)
|
||||
self.requires("tinyxml2/[>=11.0.0 <13.0.0]", transitive_headers=True)
|
||||
self.requires("urdfdom/[>=3.1.1 <5.0.0]", transitive_headers=True)
|
||||
self.tool_requires("cmake/[>=3.12 <5]")
|
||||
self.test_requires("gtest/[>=1.11]")
|
||||
self.test_requires("gtest/[>=1.11 <2.0]")
|
||||
|
||||
def validate(self):
|
||||
check_min_cppstd(self, "14")
|
||||
|
@ -66,6 +65,9 @@ class kdl_parserRecipe(ConanFile):
|
|||
cmake = CMake(self)
|
||||
cmake.configure()
|
||||
cmake.build()
|
||||
if can_run(self):
|
||||
cmake.test()
|
||||
cmake.install()
|
||||
|
||||
def package(self):
|
||||
cmake = CMake(self)
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
cmake_minimum_required(VERSION 3.12)
|
||||
project(test_package LANGUAGES CXX)
|
||||
|
||||
find_package(kdl_parser CONFIG REQUIRED)
|
||||
|
||||
add_executable(${PROJECT_NAME} test_package.cpp)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE kdl_parser::kdl_parser)
|
|
@ -0,0 +1,26 @@
|
|||
import os
|
||||
|
||||
from conan import ConanFile
|
||||
from conan.tools.cmake import CMake, cmake_layout
|
||||
from conan.tools.build import can_run
|
||||
|
||||
|
||||
class kdl_parserTestConan(ConanFile):
|
||||
settings = "os", "compiler", "build_type", "arch"
|
||||
generators = "CMakeDeps", "CMakeToolchain"
|
||||
|
||||
def requirements(self):
|
||||
self.requires(self.tested_reference_str)
|
||||
|
||||
def build(self):
|
||||
cmake = CMake(self)
|
||||
cmake.configure()
|
||||
cmake.build()
|
||||
|
||||
def layout(self):
|
||||
cmake_layout(self)
|
||||
|
||||
def test(self):
|
||||
if can_run(self):
|
||||
cmd = os.path.join(self.cpp.build.bindir, "test_package")
|
||||
self.run(cmd, env="conanrun")
|
|
@ -0,0 +1,12 @@
|
|||
#include <kdl_parser/kdl_parser.hpp>
|
||||
|
||||
int main()
|
||||
{
|
||||
KDL::Tree tree;
|
||||
std::string xml_string = "<robot name=\"test_robot\"><link name=\"base_link\"/></robot>";
|
||||
if (!kdl_parser::treeFromString(xml_string, tree))
|
||||
{
|
||||
return 1; // Failed to parse the KDL tree from the string
|
||||
}
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue