Skip to content

Commit f8e45fd

Browse files
committed
updated to use conan 2.0
1 parent 6faa4c9 commit f8e45fd

7 files changed

Lines changed: 29 additions & 128 deletions

File tree

.github/workflows/build_cmake.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ jobs:
6060
- name: Install conan
6161
shell: bash
6262
run: |
63-
python3 -m pip install --upgrade pip setuptools conan==1.59
63+
python3 -m pip install --upgrade pip setuptools conan
6464
source ~/.profile
6565
6666
- name: Install dependencies
@@ -108,7 +108,7 @@ jobs:
108108
- name: Install conan
109109
shell: bash
110110
run: |
111-
python3 -m pip install --upgrade pip setuptools conan==1.59
111+
python3 -m pip install --upgrade pip setuptools conan
112112
source ~/.profile
113113
114114
- name: Install dependencies
@@ -164,7 +164,7 @@ jobs:
164164
- name: Install conan
165165
shell: bash
166166
run: |
167-
python3 -m pip install --upgrade pip setuptools conan==1.59
167+
python3 -m pip install --upgrade pip setuptools conan
168168
source ~/.profile
169169
170170
- name: Install dependencies
@@ -218,7 +218,7 @@ jobs:
218218
- name: Install conan
219219
shell: bash
220220
run: |
221-
python3 -m pip install --upgrade pip setuptools conan==1.59
221+
python3 -m pip install --upgrade pip setuptools conan
222222
source ~/.profile
223223
224224
- name: Install dependencies

CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
CMAKE_MINIMUM_REQUIRED(VERSION 3.21)
22

3+
INCLUDE(cmake/Conan.cmake)
4+
35
# strongly encouraged to enable this globally to avoid conflicts between
46
# -Wpedantic being enabled and -std=c++20 and -std=gnu++20 for example
57
# when compiling with PCH enabled
@@ -62,9 +64,6 @@ INCLUDE(cmake/StaticAnalyzers.cmake)
6264
INCLUDE(cmake/PrecompiledHeader.cmake)
6365
ENABLE_PCH()
6466

65-
INCLUDE(cmake/Conan.cmake)
66-
RUN_CONAN()
67-
6867
ADD_SUBDIRECTORY(src)
6968

7069
IF(CMAKE_CROSSCOMPILING)

CMakePresets.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@
301301
"name": "win32-gcc-x64-mingw-debug",
302302
"inherits": "conf-common",
303303
"environment": {
304-
"PATH": "C:/msys64/mingw64/bin;$penv{PATH}"
304+
"PATH": "C:/msys64/mingw64/bin;C:/msys64/mingw64/usr/bin;$penv{PATH}"
305305
},
306306
"cacheVariables": {
307307
"CMAKE_C_COMPILER": "gcc.exe",

cmake/Conan.cmake

Lines changed: 14 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -1,114 +1,14 @@
1-
MACRO(RUN_CONAN)
2-
# Download automatically, you can also just copy the conan.cmake file
3-
IF(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake")
4-
MESSAGE(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan")
5-
FILE(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/develop/conan.cmake" "${CMAKE_BINARY_DIR}/conan.cmake" TLS_VERIFY ON)
6-
ENDIF()
7-
8-
SET(ENV{CONAN_REVISIONS_ENABLED} 1)
9-
LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR})
10-
LIST(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR})
11-
12-
INCLUDE(${CMAKE_BINARY_DIR}/conan.cmake)
13-
14-
# Add (or remove) remotes as needed
15-
# conan_add_remote(NAME conan-center URL https://center.conan.io)
16-
CONAN_ADD_REMOTE(
17-
NAME
18-
conancenter
19-
URL
20-
https://center.conan.io
21-
INDEX
22-
0)
23-
24-
IF(NOT CONAN_EXPORTED)
25-
# For multi configuration generators, like VS and XCode
26-
IF(NOT CMAKE_CONFIGURATION_TYPES)
27-
MESSAGE(STATUS "Single configuration build!")
28-
SET(LIST_OF_BUILD_TYPES ${CMAKE_BUILD_TYPE})
29-
ELSE()
30-
MESSAGE(STATUS "Multi-configuration build: '${CMAKE_CONFIGURATION_TYPES}'!")
31-
SET(LIST_OF_BUILD_TYPES ${CMAKE_CONFIGURATION_TYPES})
32-
ENDIF()
33-
34-
FOREACH(TYPE ${LIST_OF_BUILD_TYPES})
35-
MESSAGE(STATUS "Running Conan for build type '${TYPE}'")
36-
37-
IF("${ProjectOptions_CONAN_PROFILE}" STREQUAL "")
38-
# Detects current build settings to pass into conan
39-
CONAN_CMAKE_AUTODETECT(settings BUILD_TYPE ${TYPE})
40-
SET(CONAN_SETTINGS SETTINGS ${settings})
41-
SET(CONAN_ENV ENV "CC=${CMAKE_C_COMPILER}" "CXX=${CMAKE_CXX_COMPILER}")
42-
ELSE()
43-
# Derive all conan settings from a conan profile
44-
SET(CONAN_SETTINGS
45-
PROFILE
46-
${ProjectOptions_CONAN_PROFILE}
47-
SETTINGS
48-
"build_type=${TYPE}")
49-
# CONAN_ENV should be redundant, since the profile can set CC & CXX
50-
ENDIF()
51-
52-
IF("${ProjectOptions_CONAN_PROFILE}" STREQUAL "")
53-
SET(CONAN_DEFAULT_PROFILE "default")
54-
ELSE()
55-
SET(CONAN_DEFAULT_PROFILE ${ProjectOptions_CONAN_PROFILE})
56-
ENDIF()
57-
IF("${ProjectOptions_CONAN_BUILD_PROFILE}" STREQUAL "")
58-
SET(CONAN_BUILD_PROFILE ${CONAN_DEFAULT_PROFILE})
59-
ELSE()
60-
SET(CONAN_BUILD_PROFILE ${ProjectOptions_CONAN_BUILD_PROFILE})
61-
ENDIF()
62-
63-
IF("${ProjectOptions_CONAN_HOST_PROFILE}" STREQUAL "")
64-
SET(CONAN_HOST_PROFILE ${CONAN_DEFAULT_PROFILE})
65-
ELSE()
66-
SET(CONAN_HOST_PROFILE ${ProjectOptions_CONAN_HOST_PROFILE})
67-
ENDIF()
68-
69-
IF(CMAKE_CROSSCOMPILING AND NOT CONAN_ARCHITECTURE)
70-
MESSAGE(FATAL_ERROR "The variable CONAN_ARCHITECTURE must be specified for cross-compiling")
71-
ENDIF()
72-
73-
IF(CMAKE_CROSSCOMPILING)
74-
CONAN_CMAKE_RUN(
75-
CONANFILE conanfile_embedded.txt
76-
BASIC_SETUP
77-
ARCH ${CONAN_ARCHITECTURE}
78-
ENV CC=${CMAKE_C_COMPILER}
79-
ENV CXX=${CMAKE_CXX_COMPILER}
80-
ENV CFLAGS=${CMAKE_C_FLAGS}
81-
ENV CXXFLAGS=${CMAKE_CXX_FLAGS}
82-
PROFILE_AUTO ALL
83-
BUILD missing
84-
)
85-
ELSE()
86-
CONAN_CMAKE_INSTALL(
87-
PATH_OR_REFERENCE
88-
${CMAKE_SOURCE_DIR}
89-
BUILD
90-
missing
91-
# Pass compile-time configured options into conan
92-
OPTIONS
93-
${ProjectOptions_CONAN_OPTIONS}
94-
# Pass CMake compilers to Conan
95-
${CONAN_ENV}
96-
PROFILE_HOST
97-
${CONAN_HOST_PROFILE}
98-
PROFILE_BUILD
99-
${CONAN_BUILD_PROFILE}
100-
# Pass either autodetected settings or a conan profile
101-
${CONAN_SETTINGS}
102-
${OUTPUT_QUIET})
103-
ENDIF()
104-
ENDFOREACH()
105-
106-
ENDIF()
107-
# standard conan installation, in which deps will be defined in conanfile. It is not necessary to call conan again, as it is already running.
108-
IF(EXISTS "${CMAKE_BINARY_DIR}/conanbuildinfo.cmake")
109-
INCLUDE(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
110-
ELSE()
111-
MESSAGE(FATAL_ERROR "Could not set up conan because \"${CMAKE_BINARY_DIR}/conanbuildinfo.cmake\" does not exist")
112-
ENDIF()
113-
CONAN_BASIC_SETUP(TARGETS)
114-
ENDMACRO()
1+
SET(CONAN_FILE "conanfile_default.txt.in")
2+
IF(CMAKE_CROSSCOMPILING)
3+
SET(CONAN_FILE "conanfile_embedded.txt.in")
4+
ENDIF()
5+
CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/conan/${CONAN_FILE}" "${CMAKE_SOURCE_DIR}/conanfile.txt" ESCAPE_QUOTES)
6+
7+
# Download automatically, you can also just copy the conan.cmake file
8+
IF(NOT EXISTS "${CMAKE_BINARY_DIR}/conan.cmake")
9+
MESSAGE(STATUS "Downloading conan.cmake from https://github.com/conan-io/cmake-conan")
10+
FILE(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake-conan/develop2/conan_provider.cmake" "${CMAKE_BINARY_DIR}/conan.cmake" TLS_VERIFY ON)
11+
ENDIF()
12+
13+
LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR})
14+
SET(CMAKE_PROJECT_TOP_LEVEL_INCLUDES "${CMAKE_BINARY_DIR}/conan.cmake")

conanfile.txt renamed to conan/conanfile_default.txt.in

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
catch2/3.3.2
44
gtest/1.13.0
55
docopt.cpp/0.6.3
6-
fmt/9.1.0
6+
fmt/10.1.0
77
spdlog/1.11.0
88
sml/1.1.6
99
nlohmann_json/3.11.2
@@ -13,7 +13,8 @@ cppzmq/4.9.0
1313
protobuf/3.21.9
1414

1515
[generators]
16-
cmake
16+
CMakeDeps
17+
CMakeToolchain
1718

1819
[options]
1920
gtest:build_gmock=True
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# Docs at https://docs.conan.io/en/latest/reference/conanfile_txt.html
22
[requires]
3-
fmt/9.1.0
3+
fmt/10.1.0
44
sml/1.1.6
55

66
[generators]
7-
cmake
7+
CMakeDeps
8+
CMakeToolchain
89

910
[options]
1011
fmt:header_only=True

docker/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ WORKDIR /home/${DEV_USER}
7979
RUN sed -i 's/\\h/docker/;s/01;32m/01;33m/' /home/${DEV_USER}/.bashrc \
8080
&& mkdir /home/${DEV_USER}/git
8181

82-
RUN pip install --user conan==1.59
82+
RUN pip install --user conan
8383

8484

8585
FROM cpp-docker-common as cpp-docker-ci
@@ -96,5 +96,5 @@ RUN groupadd -g 1000 ${CI_USER} && \
9696

9797
COPY ccache.conf /etc/.
9898
USER ${CI_USER}
99-
RUN pip install conan==1.59
99+
RUN pip install conan
100100
WORKDIR /home/${CI_USER}

0 commit comments

Comments
 (0)