11from conan import ConanFile
22from conan .errors import ConanInvalidConfiguration
33from conan .tools .build import check_min_cppstd
4- from conan .tools .cmake import CMakeToolchain , CMake , cmake_layout
4+ from conan .tools .cmake import CMakeDeps , CMakeToolchain , CMake , cmake_layout
55from conan .tools .files import get , copy
66from conan .tools .scm import Version
77import os
@@ -22,7 +22,7 @@ class RealTimeMonitorRecipe(ConanFile):
2222 default_options = {"shared" : False , "fPIC" : True }
2323
2424 # Sources are located in the same place as this recipe, copy them to the recipe
25- exports_sources = "CMakeLists.txt" , "lib/*" , "cmake/*" , "py_bindings/*"
25+ exports_sources = "CMakeLists.txt" , "lib/*" , "cmake/*" , "tools/*" , " py_bindings/*"
2626
2727 def export_sources (self ):
2828 # This method is used for local development to copy sources into the recipe
@@ -31,6 +31,7 @@ def export_sources(self):
3131 copy (self , "CMakeLists.txt" , src = root , dst = self .export_sources_folder )
3232 copy (self , "lib/*" , src = root , dst = self .export_sources_folder )
3333 copy (self , "cmake/*" , src = root , dst = self .export_sources_folder )
34+ copy (self , "tools/*" , src = root , dst = self .export_sources_folder )
3435 copy (self , "py_bindings/*" , src = root , dst = self .export_sources_folder )
3536 copy (self , "LICENSE" , src = root , dst = self .export_sources_folder )
3637
@@ -62,13 +63,14 @@ def validate(self):
6263 raise ConanInvalidConfiguration ("Building requires GCC >= 11" )
6364
6465 def requirements (self ):
65- pass
66-
66+ self .requires ("argparse/3.2" , visible = False )
6767
6868 def generate (self ):
69+ deps = CMakeDeps (self )
70+ deps .generate ()
6971 tc = CMakeToolchain (self )
7072 tc .cache_variables ["BUILD_MONITOR" ] = "OFF"
71- tc .cache_variables ["BUILD_TOOLS" ] = "OFF "
73+ tc .cache_variables ["BUILD_TOOLS" ] = "ON "
7274 tc .cache_variables ["BUILD_TESTS" ] = "OFF"
7375 tc .generate ()
7476
@@ -78,6 +80,9 @@ def build(self):
7880 cmake .build ()
7981
8082 def package (self ):
83+ cmake = CMake (self )
84+ cmake .install ()
85+
8186 src_folders = ["lib/include" ]
8287 for folder in src_folders :
8388 copy (self , "*.h" , os .path .join (self .source_folder , folder ),
@@ -87,8 +92,17 @@ def package(self):
8792 os .path .join (self .package_folder , "lib" ), keep_path = False )
8893 copy (self , "*.so" , self .build_folder ,
8994 os .path .join (self .package_folder , "lib" ), keep_path = False )
95+
96+ copy (self , "real_time_monitor_recorder_target.cmake" ,
97+ os .path .join (self .source_folder , "cmake" ),
98+ os .path .join (self .package_folder , "cmake" ))
99+
90100 copy (self , "LICENSE" , self .source_folder ,
91101 os .path .join (self .package_folder , "licenses" ))
92102
93103 def package_info (self ):
94104 self .cpp_info .libs = ["rtm" ]
105+ self .cpp_info .bindirs = ["bin" ]
106+ self .cpp_info .set_property (
107+ "cmake_build_modules" ,
108+ ["cmake/real_time_monitor_recorder_target.cmake" ])
0 commit comments