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