Генерировать колеса Python с ConanC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Генерировать колеса Python с Conan

Сообщение Anonymous »

Я хочу генерировать колеса Python для моего проекта (последний шаг, прежде чем поставить их на PYPI). Я использую Конан для этого. Cmake обнаружил системные зависимости, но не зависимости конана для CERES, EIGEN и PYBIND11, а также MSYS2 включает.

Код: Выделить всё

[requires]
ceres-solver/2.1.0
eigen/3.4.0
zlib/1.2.13
libcurl/8.6.0
pybind11/2.12.0

[generators]
CMakeToolchain
CMakeDeps

[options]
ceres-solver/2.1.0:shared=False
ceres-solver/2.1.0:use_glog=False
libcurl/8.6.0:with_ssl=openssl
libcurl/8.6.0:with_zlib=True
libcurl/8.6.0:shared=False
< /code>
Вывод команды: < /p>
d:\Programmes\msys64\home\Julien\symreg_ws\SymReg>cd build_conan

d:\Programmes\msys64\home\Julien\symreg_ws\SymReg\build_conan>conan install ..  --build=missing

======== Input profiles ========
Profile host:
[settings]
arch=x86_64
build_type=Release
compiler=msvc
compiler.cppstd=14
compiler.runtime=dynamic
compiler.runtime_type=Release
compiler.version=194
os=Windows

Profile build:
[settings]
arch=x86_64
build_type=Release
compiler=msvc
compiler.cppstd=14
compiler.runtime=dynamic
compiler.runtime_type=Release
compiler.version=194
os=Windows

======== Computing dependency graph ========
Graph root
conanfile.txt: d:\Programmes\msys64\home\Julien\symreg_ws\SymReg\conanfile.txt
Requirements
ceres-solver/2.1.0#61809d7baf47aeb1a0a82472ba2283d0 - Cache
eigen/3.4.0#2e192482a8acff96fe34766adca2b24c - Cache
libcurl/8.6.0#1daf20281d5c28d4999ecde631e15790 - Cache
openssl/3.5.1#7884fb47cae4130ac03814e53e3c7167 - Cache
pybind11/2.12.0#ea1de6fefd9c0c745e2b30e60dd23bfa - Cache
zlib/1.2.13#9df41c65e2c2b6ef47633dc32e0b699a - Cache
Build requirements
nasm/2.16.01#31e26f2ee3c4346ecd347911bd126904 - Cache
strawberryperl/5.32.1.1#8d114504d172cfea8ea1662d09b6333e - Cache
Resolved version ranges
openssl/[>=1.1 =3.23) cmake --preset conan-default
(cmakecmake ..  -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
-- Using Conan toolchain: D:/Programmes/msys64/home/Julien/symreg_ws/SymReg/conan_toolchain.cmake
-- Conan toolchain: CMAKE_GENERATOR_TOOLSET=v143
-- Conan toolchain: Setting CMAKE_MSVC_RUNTIME_LIBRARY=$
-- Conan toolchain: C++ Standard 14 with extensions OFF
-- Selecting Windows SDK version 10.0.26100.0 to target Windows 10.0.19045.
-- Found required Ceres dependency: absl version 20250127 in C:/Program Files (x86)/Ceres/lib/cmake/absl
-- Found required Ceres dependency: Eigen version 3.4.90 in D:/Programmes/eigen-master/build
-- Found Ceres version: 2.3.0 installed in: C:/Program Files (x86)/Ceres with components: [EigenSparse, SparseLinearAlgebraLibrary, SchurSpecializations]
-- Found pybind11: D:/Programmes/msys64/ucrt64/include (found version "2.13.6")
-- Warning: Standard CMAKE_CXX_STANDARD value defined in conan_toolchain.cmake to 14 has been modified to 23 by D:/Programmes/msys64/home/Julien/symreg_ws/SymReg/CMakeLists.txt
-- Found Python3: D:/Programmes/Python/Python312/python.exe (found version "3.12.4") found components: Interpreter
-- Found required Ceres dependency: absl version 20250127 in C:/Program Files (x86)/Ceres/lib/cmake/absl
-- Found required Ceres dependency: Eigen version 3.4.90 in D:/Programmes/eigen-master/build
-- Found Ceres version: 2.3.0 installed in: C:/Program Files (x86)/Ceres with components: [EigenSparse, SparseLinearAlgebraLibrary, SchurSpecializations]
-- Conan: Target declared 'ZLIB::ZLIB'
-- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR)
-- Could NOT find WrapVulkanHeaders (missing: Vulkan_INCLUDE_DIR)
-- Found Python3: D:/Programmes/Python/Python312/python.exe (found version "3.12.4") found components: Interpreter Development Development.Module Development.Embed
-- Configuring done (4.4s)
-- Generating done (0.6s)
-- Build files have been written to: D:/Programmes/msys64/home/Julien/symreg_ws/SymReg/build_conan

d:\Programmes\msys64\home\Julien\symreg_ws\SymReg\build_conan>cmake --build .  --config Release
Version MSBuild 17.12.12+1cce77968 pour .NET Framework

1>Checking Build System
Automatic MOC for target symreg
Building Custom Rule D:/Programmes/msys64/home/Julien/symreg_ws/SymReg/CMakeLists.txt
python_bindings.cpp
mocs_compilation_Release.cpp
D:\Programmes\msys64\ucrt64\include\stdio.h(184,64): error C2144: erreur de syntaxe : 'int' doit être précédé de ';' [D
:\Programmes\msys64\home\Julien\symreg_ws\SymReg\build_conan\symreg.vcxproj]
(compiler le fichier source '../src/python_bindings.cpp')
...
Вот cmakelists.txt :

Код: Выделить всё

cmake_minimum_required(VERSION 3.10)
cmake_policy(SET CMP0091 NEW)
project(SymReg)

find_package(Ceres REQUIRED CONFIG)
set(PYBIND11_FINDPYTHON ON)
find_package(pybind11 REQUIRED CONFIG)

set(CMAKE_BUILD_TYPE Release)
#set(CMAKE_BUILD_TYPE Debug)

if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
add_compile_options(
-march=native
#    -O3 -ffast-math -DNDEBUG
#    -fsanitize=address,undefined -g -O1
)
endif()

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

include(FetchContent)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG v1.14.0
)
FetchContent_MakeAvailable(googletest)

find_package(Ceres REQUIRED)
find_package(CURL REQUIRED)
find_package(Qt6 REQUIRED COMPONENTS Widgets Charts Svg)
find_package(Python3 COMPONENTS Interpreter Development REQUIRED)
find_package(pybind11 REQUIRED)
find_package(Sym REQUIRED)

include_directories(include)

add_compile_definitions(EIGEN_NO_DEBUG)

set(CMAKE_AUTOMOC ON)

add_definitions(-DPYBIND11_DETAILED_ERROR_MESSAGES)
pybind11_add_module(symreg src/python_bindings.cpp)

if (WIN32)
target_link_libraries(symreg PRIVATE Ceres::ceres Sym::Sym Ws2_32)
else()
target_link_libraries(symreg PRIVATE Ceres::ceres Sym::Sym)
endif()

add_executable(primes_demo src/primes_demo.cpp)

if (WIN32)
target_link_libraries(primes_demo
${MLPACK_LIBRARIES}
#  asan ubsan
pybind11::embed Python3::Python
Ceres::ceres Qt6::Widgets Qt6::Charts Qt6::Svg gvc cgraph Sym::Sym Ws2_32)
else()
target_link_libraries(primes_demo
${MLPACK_LIBRARIES}
#  asan ubsan
pybind11::embed Python3::Python
Ceres::ceres Qt6::Widgets Qt6::Charts Qt6::Svg gvc cgraph Sym::Sym)
endif()

add_executable(benchmark src/benchmark.cpp)

if (WIN32)
target_link_libraries(benchmark
#  asan ubsan
pybind11::embed Python3::Python
Ceres::ceres CURL::libcurl Sym::Sym Ws2_32)
else()
target_link_libraries(benchmark
#  asan ubsan
pybind11::embed Python3::Python
Ceres::ceres CURL::libcurl Sym::Sym)
endif()

enable_testing()
add_executable(test_symreg tests/test_symreg.cpp)

if (WIN32)
target_link_libraries(test_symreg
${MLPACK_LIBRARIES}
#  asan ubsan
pybind11::embed Python3::Python
Ceres::ceres CURL::libcurl gtest gtest_main Sym::Sym Ws2_32)
else()
target_link_libraries(test_symreg
${MLPACK_LIBRARIES}
#  asan ubsan
pybind11::embed Python3::Python
Ceres::ceres CURL::libcurl gtest gtest_main Sym::Sym)
endif()

math(EXPR TIMEOUT "3 * 60 * 60")
add_test(NAME TestSymReg COMMAND test_symreg)
set_tests_properties(TestSymReg PROPERTIES TIMEOUT ${TIMEOUT})

if (WIN32)
else()
include(GoogleTest)
gtest_discover_tests(test_symreg)
endif()

install(DIRECTORY include/SymReg DESTINATION include)

add_library(SymReg INTERFACE)
target_include_directories(SymReg INTERFACE
$
$
)

include(CMakePackageConfigHelpers)

configure_package_config_file(
${CMAKE_CURRENT_SOURCE_DIR}/cmake/SymRegConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/SymRegConfig.cmake
INSTALL_DESTINATION lib/cmake/SymReg
)

write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/SymRegConfigVersion.cmake
VERSION 1.0.0
COMPATIBILITY SameMajorVersion
)

install(FILES
${CMAKE_CURRENT_BINARY_DIR}/SymRegConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/SymRegConfigVersion.cmake
DESTINATION lib/cmake/SymReg
)

install(TARGETS SymReg EXPORT SymRegTargets)

install(EXPORT SymRegTargets
NAMESPACE SymReg::
DESTINATION lib/cmake/SymReg
)
выполнение cmake .. -dcmake_toolchain_file = conan_toolchain.cmake -dcmake_prefix_path = .. сделать Cmake с использованием хороших зависимостей, но MSYS2 включает в себя, и компиляция не удалась. Я надеюсь, что я поместил все необходимые файлы и информацию.

Подробнее здесь: https://stackoverflow.com/questions/797 ... with-conan
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»