1
- from conans import tools , CMake , ConanFile
1
+ from conans import tools , ConanFile
2
+ from conan .tools .cmake import CMake , CMakeToolchain , CMakeDeps
3
+ from conan .tools .env import VirtualBuildEnv
2
4
3
5
4
6
class TconcurrentConan (ConanFile ):
@@ -20,7 +22,7 @@ class TconcurrentConan(ConanFile):
20
22
"with_sanitizer_support=False" ,
21
23
)
22
24
exports_sources = "CMakeLists.txt" , "src/*" , "include/*" , "test/*"
23
- generators = "cmake "
25
+ generators = "CMakeDeps" , "VirtualBuildEnv "
24
26
25
27
@property
26
28
def should_build_tests (self ):
@@ -36,7 +38,7 @@ def requirements(self):
36
38
37
39
def build_requirements (self ):
38
40
if self .should_build_tests :
39
- self .build_requires ("doctest/2.4.6-r1" )
41
+ self .test_requires ("doctest/2.4.6-r1" )
40
42
41
43
def configure (self ):
42
44
if self .options .with_coroutines_ts and self .settings .compiler != "clang" :
@@ -48,17 +50,28 @@ def imports(self):
48
50
self .copy ("*.dylib" , dst = "bin" , src = "lib" )
49
51
self .copy ("*.so*" , dst = "bin" , src = "lib" )
50
52
53
+ def generate (self ):
54
+ vbe = VirtualBuildEnv (self )
55
+ vbe .generate ()
56
+
57
+ ct = CMakeToolchain (self )
58
+ ct .variables ["TCONCURRENT_SANITIZER" ] = self .options .with_sanitizer_support
59
+ ct .variables ["TCONCURRENT_COROUTINES_TS" ] = self .options .with_coroutines_ts
60
+ ct .variables ["BUILD_SHARED_LIBS" ] = self .options .shared
61
+ ct .variables ["CMAKE_POSITION_INDEPENDENT_CODE" ] = self .options .fPIC
62
+ ct .variables ["BUILD_TESTING" ] = self .should_build_tests
63
+ ct .variables ["WITH_COVERAGE" ] = self .options .coverage
64
+ ct .generate ()
65
+
66
+ cd = CMakeDeps (self )
67
+ cd .generate ()
68
+
51
69
def build (self ):
52
70
cmake = CMake (self )
53
- cmake .definitions ["TCONCURRENT_SANITIZER" ] = self .options .with_sanitizer_support
54
- cmake .definitions ["TCONCURRENT_COROUTINES_TS" ] = self .options .with_coroutines_ts
55
- cmake .definitions ["BUILD_SHARED_LIBS" ] = self .options .shared
56
- cmake .definitions ["CMAKE_POSITION_INDEPENDENT_CODE" ] = self .options .fPIC
57
- cmake .definitions ["BUILD_TESTING" ] = self .should_build_tests
58
- cmake .definitions ["WITH_COVERAGE" ] = self .options .coverage
59
71
cmake .configure ()
60
72
cmake .build ()
61
- cmake .install ()
73
+ if self .should_install and self .develop :
74
+ cmake .install ()
62
75
63
76
def package_info (self ):
64
77
self .cpp_info .libs = ["tconcurrent" ]
0 commit comments