vcpkg | conan | |
---|---|---|
organization | microsoft | conan.io |
platform | Linux, OSX, Windows | all: Linux, OSX, Windows, Solaris, FreeBSD, embedded and cross-compiling |
host packages | centralized | decentralized: Artifactory, Bintray, private |
build system | CMake, MSBuild | any: CMake, MSBuild, Makefiles, Meson, etc |
num. of library | ~1350 | ~560 official unique libraries, 113,369 Binary Packages Indexed + github community |
different versions of library support | no | yes |
link type | static (extra works is required to build shared library) | static, shared |
CMakeLists.txt | manually add include\ and link libraries | automatically |
missing library | 1. open a feature issue 2. create package and pull request |
1. open a feature issue 2. create package |
git clone https://github.com/52doho/vcpkg-vs-conan.git && \
cd vcpkg-vs-conan && \
./auto-build-run.sh
git clone https://github.com/Microsoft/vcpkg.git && \
cd vcpkg && \
./bootstrap-vcpkg.sh && \
./vcpkg integrate install
be careful for building failed in centos
./vcpkg search cpprestsdk
./vcpkg install cpprestsdk
(Only v2.10.16 is available. glog install failed in CentOS, success in Ubuntu)
cmake_minimum_required(VERSION 3.5)
project(vcpkg-vs-conan)
set(CMAKE_CXX_STANDARD 11)
find_package(cpprestsdk CONFIG REQUIRED)
find_package(OpenCV CONFIG REQUIRED)
find_package(glog CONFIG REQUIRED)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME}
cpprestsdk::cpprest
${OpenCV_LIBS}
glog::glog
)
cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake && \
make
sudo yum install python36 python36-devel python36-setuptools && \
sudo easy_install-3.6 pip && \
sudo pip3 install conan
sudo apt-get install python3.5 python3-pip && \
sudo pip3 install conan
conan remote add conan-center https://conan.bintray.com
conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan
conan remote add conan-transit https://conan-transit.bintray.com
conan remote add conan-community https://api.bintray.com/conan/conan-community/conan
conan remote add conan-camposs https://conan.campar.in.tum.de/api/conan/conan-camposs
conan remote add wheelfinder https://api.bintray.com/conan/wheelfinder/public-conan
conan remote add dbely https://api.bintray.com/conan/dbely/conan
conan remote add picoreti https://api.bintray.com/conan/picoreti/is
conan remote add is https://api.bintray.com/conan/labviros/is
conan remote add lasote https://api.bintray.com/conan/lasote/conan-repo
conan search cpprestsdk
add configs in conanfile.txt file:
[requires]
cpprestsdk/2.10.13@bincrafters/stable
glog/0.4.0@bincrafters/stable
opencv/3.4.3@conan/stable
faiss/1.6.3@jdai/stable
[options]
*:shared=True
gflags:nothreads=False
gflags:fPIC=True
gflags:namespace=google
[imports]
#bin, *.dll -> ./src/bin
#lib, *.dylib* -> ./src/bin
#lib, *.so* -> ./src/bin
[generators]
cmake
cmake_minimum_required(VERSION 3.5)
project(vcpkg-vs-conan)
set(CMAKE_CXX_STANDARD 11)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(NO_OUTPUT_DIRS)
link_libraries(
${CONAN_LIBS}
)
add_executable(${PROJECT_NAME} main.cpp)
conan install .. && \
cmake .. && \
make
checkout official doc
a demo is included in ./custom-package/ folder.