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
|
${PROJECT_NAME} PUBLIC urdfdom::urdfdom orocos-kdl::orocos-kdl
|
||||||
tinyxml::tinyxml tinyxml2::tinyxml2)
|
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)
|
if(NOT BUILD_TESTING STREQUAL OFF)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
|
|
||||||
|
|
|
@ -25,18 +25,17 @@ class kdl_parserRecipe(ConanFile):
|
||||||
exports_sources = (
|
exports_sources = (
|
||||||
"CMakeLists.txt",
|
"CMakeLists.txt",
|
||||||
"src/*",
|
"src/*",
|
||||||
"tests/*",
|
"test/*",
|
||||||
"include/*",
|
"include/*",
|
||||||
)
|
)
|
||||||
|
|
||||||
def requirements(self):
|
def requirements(self):
|
||||||
self.requires("orocos-kdl/[>=1.5.1 <2]")
|
self.requires("orocos-kdl/[>=1.5.1 <2]", transitive_headers=True, transitive_libs=True)
|
||||||
self.requires("tinyxml/[>=2.6.0 <3]")
|
self.requires("tinyxml/[>=2.6.0 <3]", transitive_headers=True)
|
||||||
self.requires("tinyxml2/[>=11.0.0 <13.0.0]")
|
self.requires("tinyxml2/[>=11.0.0 <13.0.0]", transitive_headers=True)
|
||||||
self.requires("urdfdom/[>=3.1.1 <5.0.0]")
|
self.requires("urdfdom/[>=3.1.1 <5.0.0]", transitive_headers=True)
|
||||||
self.requires("urdfdom_headers/[>=1.1.1 <2]")
|
|
||||||
self.tool_requires("cmake/[>=3.12 <5]")
|
self.tool_requires("cmake/[>=3.12 <5]")
|
||||||
self.test_requires("gtest/[>=1.11]")
|
self.test_requires("gtest/[>=1.11 <2.0]")
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
check_min_cppstd(self, "14")
|
check_min_cppstd(self, "14")
|
||||||
|
@ -66,6 +65,9 @@ class kdl_parserRecipe(ConanFile):
|
||||||
cmake = CMake(self)
|
cmake = CMake(self)
|
||||||
cmake.configure()
|
cmake.configure()
|
||||||
cmake.build()
|
cmake.build()
|
||||||
|
if can_run(self):
|
||||||
|
cmake.test()
|
||||||
|
cmake.install()
|
||||||
|
|
||||||
def package(self):
|
def package(self):
|
||||||
cmake = CMake(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