@@ -15,7 +15,6 @@ def get_version():
15
15
except :
16
16
return None
17
17
18
-
19
18
class JsonSchemaValidatorConan (ConanFile ):
20
19
name = 'JsonSchemaValidator'
21
20
version = get_version ()
@@ -24,34 +23,49 @@ class JsonSchemaValidatorConan(ConanFile):
24
23
settings = 'os' , 'compiler' , 'build_type' , 'arch'
25
24
options = {
26
25
'shared' : [True , False ],
27
- 'fPIC' : [True , False ]
26
+ 'fPIC' : [True , False ],
27
+ 'build_examples' : [True , False ],
28
+ 'build_tests' : [True , False ]
28
29
}
29
30
default_options = {
30
31
'shared' : False ,
31
- 'fPIC' : True
32
+ 'fPIC' : True ,
33
+ 'build_examples' : True ,
34
+ 'build_tests' : False
32
35
}
33
- generators = "cmake "
36
+ generators = "CMakeDeps "
34
37
exports_sources = [
35
38
'CMakeLists.txt' ,
36
39
'nlohmann_json_schema_validatorConfig.cmake.in' ,
37
40
'src/*' ,
38
41
'app/*' ,
42
+ 'test/*' ,
39
43
]
40
-
41
44
requires = (
42
- 'nlohmann_json/3.7.3 '
45
+ 'nlohmann_json/3.11.2 '
43
46
)
47
+ _cmake = None
48
+
49
+ def _configure_cmake (self ):
50
+ if self ._cmake :
51
+ return self ._cmake
52
+ self ._cmake = CMake (self )
53
+ self ._cmake .definitions ['JSON_VALIDATOR_BUILD_EXAMPLES' ] = self .options .build_examples
54
+ self ._cmake .definitions ['JSON_VALIDATOR_BUILD_TESTS' ] = self .options .build_tests
55
+ self ._cmake .configure ()
56
+ return self ._cmake
57
+
58
+ def layout (self ):
59
+ build_type = str (self .settings .build_type ).lower ()
60
+ self .folders .build = "build-{}" .format (build_type )
44
61
45
62
def build (self ):
46
- cmake = CMake (self )
47
- cmake .definitions ['nlohmann_json_DIR' ] = os .path .join (self .deps_cpp_info ['nlohmann_json' ].rootpath , 'include' )
48
- cmake .definitions ['JSON_VALIDATOR_BUILD_EXAMPLES' ] = True
49
- cmake .definitions ['JSON_VALIDATOR_BUILD_TESTS' ] = False
63
+ cmake = self ._configure_cmake ()
50
64
cmake .configure ()
51
65
cmake .build ()
52
66
53
67
def package (self ):
54
- cmake = CMake ( self )
68
+ cmake = self . _configure_cmake ( )
55
69
cmake .install ()
56
70
57
71
def package_info (self ):
0 commit comments