Skip to content

Commit 93fcb11

Browse files
committed
maint: Update to conan CMakeToolchain for building
1 parent bd9b72d commit 93fcb11

File tree

4 files changed

+33
-19
lines changed

4 files changed

+33
-19
lines changed

CMakeLists.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
cmake_minimum_required(VERSION 3.4)
1+
cmake_minimum_required(VERSION 3.10)
22

33
project(tconcurrent)
4-
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
5-
conan_basic_setup(TARGETS)
64

75
set(CMAKE_CXX_STANDARD 17)
86
set(CMAKE_CXX_EXTENSIONS OFF)
@@ -36,6 +34,9 @@ if(${WITH_COVERAGE})
3634
endif()
3735
endif()
3836

37+
find_package(Boost CONFIG REQUIRED)
38+
find_package(enum-flags CONFIG REQUIRED)
39+
find_package(function2 CONFIG REQUIRED)
3940

4041
set(tconcurrent_SRC
4142
include/tconcurrent/async.hpp
@@ -69,9 +70,9 @@ set(tconcurrent_SRC
6970
)
7071

7172
set(tconcurrent_LIBS
72-
CONAN_PKG::boost
73-
CONAN_PKG::enum-flags
74-
CONAN_PKG::function2
73+
Boost
74+
enum-flags::enum-flags
75+
function2::function2
7576
)
7677

7778
if (CMAKE_SYSTEM_NAME STREQUAL "Emscripten")

conanfile.py

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
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
24

35

46
class TconcurrentConan(ConanFile):
@@ -20,7 +22,7 @@ class TconcurrentConan(ConanFile):
2022
"with_sanitizer_support=False",
2123
)
2224
exports_sources = "CMakeLists.txt", "src/*", "include/*", "test/*"
23-
generators = "cmake"
25+
generators = "CMakeDeps", "VirtualBuildEnv"
2426

2527
@property
2628
def should_build_tests(self):
@@ -36,7 +38,7 @@ def requirements(self):
3638

3739
def build_requirements(self):
3840
if self.should_build_tests:
39-
self.build_requires("doctest/2.4.6-r1")
41+
self.test_requires("doctest/2.4.6-r1")
4042

4143
def configure(self):
4244
if self.options.with_coroutines_ts and self.settings.compiler != "clang":
@@ -48,17 +50,28 @@ def imports(self):
4850
self.copy("*.dylib", dst="bin", src="lib")
4951
self.copy("*.so*", dst="bin", src="lib")
5052

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+
5169
def build(self):
5270
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
5971
cmake.configure()
6072
cmake.build()
61-
cmake.install()
73+
if self.should_install and self.develop:
74+
cmake.install()
6275

6376
def package_info(self):
6477
self.cpp_info.libs = ["tconcurrent"]

run-ci.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ def main() -> None:
3737
if args.home_isolation:
3838
user_home = Path.cwd() / ".cache" / "conan" / args.remote
3939

40-
tankerci.conan.update_config()
41-
4240
if args.command == "build-and-test":
4341
src_path = Path.cwd()
4442
build_path = "." # tankerci.cpp.Builder runs ctest from the build directory

test/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
find_package(doctest CONFIG REQUIRED)
2+
13
add_library(tconcurrent_doctest_main STATIC
24
main.cpp
35
)
4-
target_link_libraries(tconcurrent_doctest_main PUBLIC CONAN_PKG::doctest)
6+
target_link_libraries(tconcurrent_doctest_main PUBLIC doctest::doctest)
57
if (CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
68
target_compile_definitions(tconcurrent_doctest_main PUBLIC DOCTEST_CONFIG_NO_POSIX_SIGNALS)
79
endif()

0 commit comments

Comments
 (0)