1
- from conans import ConanFile , tools
2
- from conans .errors import ConanInvalidConfiguration
1
+ import os
3
2
4
- required_conan_version = ">=1.43.0"
3
+ from conan import ConanFile , tools
4
+ from conan .errors import ConanInvalidConfiguration
5
+ from conan .tools .files import copy , get
6
+ from conan .tools .layout import basic_layout
7
+
8
+ required_conan_version = ">=1.50.0"
5
9
6
10
7
11
class PolymorphictValueConan (ConanFile ):
@@ -14,10 +18,6 @@ class PolymorphictValueConan(ConanFile):
14
18
settings = "os" , "arch" , "compiler" , "build_type"
15
19
no_copy_source = True
16
20
17
- @property
18
- def _source_subfolder (self ):
19
- return "source_subfolder"
20
-
21
21
@property
22
22
def _minimum_cpp_standard (self ):
23
23
return 17
@@ -32,38 +32,42 @@ def _minimum_compilers_version(self):
32
32
}
33
33
34
34
def validate (self ):
35
- if self .settings .compiler . get_safe ("cppstd" ):
36
- tools .check_min_cppstd (self , self ._minimum_cpp_standard )
35
+ if self .info . settings .get_safe ("compiler. cppstd" ):
36
+ tools .build . check_min_cppstd (self , self ._minimum_cpp_standard )
37
37
min_version = self ._minimum_compilers_version .get (
38
- str (self .settings .compiler ))
38
+ str (self .info . settings .compiler ))
39
39
if not min_version :
40
- self .output .warn ("{} recipe lacks information about the {} "
41
- "compiler support." .format (
42
- self .name , self .settings .compiler ))
40
+ self .output .warning ("{} recipe lacks information about the {} "
41
+ "compiler support." .format (
42
+ self .name , self . info .settings .compiler ))
43
43
else :
44
- if tools .Version (self .settings .compiler .version ) < min_version :
44
+ if tools .Version (self .info . settings .compiler .version ) < min_version :
45
45
raise ConanInvalidConfiguration (
46
46
"{} requires C++{} support. "
47
47
"The current compiler {} {} does not support it." .format (
48
48
self .name , self ._minimum_cpp_standard ,
49
- self .settings .compiler ,
50
- self .settings .compiler .version ))
49
+ self .info . settings .compiler ,
50
+ self .info . settings .compiler .version ))
51
51
52
52
def package_id (self ):
53
- self .info .header_only ()
53
+ self .info .clear ()
54
+
55
+ def layout (self ):
56
+ basic_layout (self , src_folder = "source" )
54
57
55
58
def source (self ):
56
- tools .get (** self .conan_data ["sources" ][self .version ],
57
- strip_root = True , destination = self ._source_subfolder )
59
+ get (self , ** self .conan_data ["sources" ][self .version ], strip_root = True )
58
60
59
61
def package (self ):
60
- self .copy (pattern = "polymorphic_value.*" , dst = "include" ,
61
- src = self ._source_subfolder )
62
- self .copy ("*LICENSE*" , dst = "licenses" , keep_path = False )
62
+ copy (self , "polymorphic_value.*" , self .source_folder ,
63
+ os .path .join (self .package_folder , "include" ))
64
+ copy (self , "*LICENSE*" , self .source_folder ,
65
+ os .path .join (self .package_folder , "licenses" ), keep_path = False )
63
66
64
67
def package_info (self ):
65
68
self .cpp_info .set_property ("cmake_file_name" , "polymorphic_value" )
66
- self .cpp_info .set_property ("cmake_target_name" , "polymorphic_value::polymorphic_value" )
69
+ self .cpp_info .set_property (
70
+ "cmake_target_name" , "polymorphic_value::polymorphic_value" )
67
71
68
72
self .cpp_info .names ["cmake_find_package" ] = "polymorphic_value"
69
73
self .cpp_info .names ["cmake_find_package_multi" ] = "polymorphic_value"
0 commit comments