diff --git a/.c3i/authorized_users.yml b/.c3i/authorized_users.yml
index bb46de7b8ad443..56fdf9df94977a 100644
--- a/.c3i/authorized_users.yml
+++ b/.c3i/authorized_users.yml
@@ -1201,3 +1201,28 @@ authorized_users:
- klausholstjacobsen
- xahon
- jeremy-rifkin
+- Christian-Prather
+- Siarh199
+- liquiddaniel
+- seppeon
+- SavenkovIgor
+- aliaksei135
+- ibosnic00
+- Xav83
+- matthewT53
+- sjlamerton
+- marxin
+- Arkokat
+- adattatri
+- jwfallawuiuc
+- tgurriet
+- mgfernan
+- chrisc66
+- KevDi
+- XVilka
+- DoomHammer
+- cschreib
+- AleksandraVolosevich-TomTom
+- p-groarke
+- Kalixio
+- temap
diff --git a/.c3i/conan_v2_ready_references.yml b/.c3i/conan_v2_ready_references.yml
index 24a3d8f44d6475..52d413af7f3cc5 100644
--- a/.c3i/conan_v2_ready_references.yml
+++ b/.c3i/conan_v2_ready_references.yml
@@ -13,6 +13,7 @@ required_for_references:
- aeron
- aggeom-agg
- alac
+- alembic
- alpaca
- amgcl
- amqp-cpp
@@ -25,6 +26,8 @@ required_for_references:
- apr
- apr-util
- apriltag
+- aravis
+- archicad-apidevkit
- arcus
- arduinojson
- arg_router
@@ -34,11 +37,15 @@ required_for_references:
- args-parser
- argtable2
- argtable3
+- arrow
- arsenalgear
- artery-font-format
- asio
+- asio-grpc
- asmjit
+- assimp
- astc-codec
+- astro-informatics-so3
- async_simple
- asyncly
- asyncplusplus
@@ -46,6 +53,7 @@ required_for_references:
- autoconf
- autoconf-archive
- automake
+- avahi
- avir
- aws-c-auth
- aws-c-cal
@@ -55,21 +63,29 @@ required_for_references:
- aws-c-http
- aws-c-io
- aws-c-mqtt
+- aws-c-s3
- aws-c-sdkutils
- aws-checksums
+- aws-crt-cpp
+- aws-kvs-pic
+- aws-libfabric
+- aws-sdk-cpp
- b2
- b64
- backport-cpp
- backward-cpp
- bacnet-stack
- baical-p7
+- bandit
- base64
- bazel
- bdwgc
- bear
- benchmark
- bertrand
+- bgfx
- bigint
+- bimg
- binutils
- bison
- bit-lite
@@ -85,6 +101,7 @@ required_for_references:
- boost
- boost-ext-ut
- boost-leaf
+- boostdep
- box2d
- breakpad
- brigand
@@ -94,6 +111,7 @@ required_for_references:
- bullet3
- butteraugli
- bvdberg-ctest
+- bx
- byte-lite
- bzip2
- bzip3
@@ -110,6 +128,8 @@ required_for_references:
- canvas_ity
- capnproto
- capstone
+- cargs
+- cassandra-cpp-driver
- catch2
- ccache
- cccl
@@ -139,10 +159,12 @@ required_for_references:
- cli11
- clickhouse-cpp
- clipper
+- clipper2
- clove-unit
- cmake
- cmocka
- cmp
+- cn-cbor
- cnpy
- coin-cgl
- coin-clp
@@ -154,12 +176,15 @@ required_for_references:
- concurrentqueue
- console_bridge
- continuable
+- cotila
- cpp-httplib
+- cpp-ipc
- cpp-jwt
- cpp-lazy
- cpp-optparse
- cpp-peglib
- cpp-sort
+- cpp_project_framework
- cppbenchmark
- cppcheck
- cppcmd
@@ -172,7 +197,9 @@ required_for_references:
- cpptoml
- cppunit
- cpputest
+- cppzmq
- cpr
+- cprocessing
- cpu_features
- cpuinfo
- cqrlib
@@ -191,6 +218,7 @@ required_for_references:
- cubicinterpolation
- cuda-api-wrappers
- cuda-kat
+- cuda-samples
- cunit
- cute_headers
- cvplot
@@ -198,6 +226,7 @@ required_for_references:
- cxxopts
- cyclonedds
- cyrus-sasl
+- czmq
- dacap-clip
- darknet
- dataframe
@@ -211,9 +240,13 @@ required_for_references:
- dbus
- debug_assert
- decimal_for_cpp
+- deco
+- di
- dice-template-library
- dirent
- discount
+- djinni-generator
+- dlib
- dlpack
- docopt.cpp
- doctest
@@ -226,27 +259,40 @@ required_for_references:
- drmp3
- drogon
- drwav
+- dsp-filters
+- dtl
- duckdb
+- duktape
- eabase
- earcut
- eastl
- easy_profiler
+- easyhttpcpp
+- easyloggingpp
- ecos
- editline
- edlib
+- edyn
- effcee
- effolkronium-random
- egl
+- egl-headers
- eigen
- elfio
+- embag
- embree3
- emio
+- emsdk
- enet
+- enhex-generic_serialization
+- enhex-strong_type
+- enkits
- entityx
- entt
- enum-flags
- erikzenker-hsm
- erkir
+- etc2comp
- eternal
- etl
- exiv2
@@ -259,40 +305,62 @@ required_for_references:
- fakeit
- farmhash
- fast-cdr
+- fast-cpp-csv-parser
- fast-dds
+- fast_double_parser
- fast_float
- fastgltf
+- fastpfor
+- fastprng
- fernandovelcic-hexdump
- fff
- ffmpeg
- fft
- fftw
+- fire-hpp
- flac
- flann
- flatbuffers
- flatbush
+- flecs
- flex
+- fltk
- fmt
- fmtlog
- fontconfig
- foonathan-lexy
- foonathan-memory
+- forestdb
- foxglove-schemas-protobuf
+- foxi
- fp16
+- fpgen
+- fpzip
- freeglut
+- freeimage
- freetype
+- freexl
+- fribidi
- frozen
+- fruit
- ftxui
- function2
+- functionalplus
+- fusepp
- fxdiv
- g3log
+- gainput
- gamma
+- gcem
- gdbm
- gdcm
- gdk-pixbuf
- gegles-spdlog_setup
- gemmlowp
+- genie
+- geographiclib
- geos
+- geotrans
- getopt-for-visual-studio
- gettext
- gflags
@@ -303,23 +371,29 @@ required_for_references:
- gklib
- glad
- glaze
+- glbinding
+- glew
+- glext
- glfw
- gli
- glib
- glm
- glog
- glpk
+- glshaderpp
- glslang
- glu
- gmp
- gnu-config
- gnutls
+- godot_headers
- googleapis
- gperf
- gperftools
- graphene
- graphthewy
- greatest
+- greg7mdp-gtl
- grpc
- grpc-proto
- gsl
@@ -329,13 +403,24 @@ required_for_references:
- gtest
- gtk
- gtk-doc-stub
+- gtsam
+- gumbo-parser
- gurkenlaeufer
+- gzip-hpp
- h3
- h5pp
+- half
- happly
- harfbuzz
+- hash-library
+- hazelcast-cpp-client
+- hdf4
- hdf5
- hdrhistogram-c
+- heatshrink
+- hedley
+- hffix
+- hictk
- hidapi
- highfive
- highs
@@ -343,16 +428,25 @@ required_for_references:
- hipony-enumerate
- hippomocks
- hiredis
+- hlslpp
- homog2d
- http_parser
+- hunspell
+- hwloc
+- hyperscan
- icecream-cpp
- icu
- id3v2lib
- iir1
- im95able-rea
+- imagl
- imake
- imath
- imgui
+- imguizmo
+- immer
+- implot
+- imutils-cpp
- incbin
- indicators
- indirect_value
@@ -360,57 +454,92 @@ required_for_references:
- inih
- inja
- intel-neon2sse
+- intx
- inversify-cpp
+- iqa
+- irrxml
+- iso8601lib
+- itk
- itlib
+- ittapi
+- ixwebsocket
+- jansson
- jasper
- jbig
+- jeaiii-itoa
+- jfalcou-eve
- jinja2cpp
- joltphysics
- jom
- jpcre2
+- jpeg-compressor
+- jsmn
- json-c
- json-schema-validator
- jsoncons
- jsoncpp
- jsonnet
+- jthread-lite
+- jungle
+- jwasm
- jwt-cpp
- jxrlib
- kainjow-mustache
+- kaitai_struct_cpp_stl_runtime
- kangaru
+- kcp
+- kdbindings
- keychain
- khrplatform
+- kickcat
+- kissfft
- kmod
- ktx
- kuba-zip
+- laszip
- lcms
- ldns
- lefticus-tools
+- lely-core
- lemon
- leptonica
- lerc
- lest
+- leveldb
- lexbor
+- libaio
- libalsa
+- libaom-av1
- libarchive
- libassert
- libatomic_ops
- libattr
+- libavif
+- libb2
- libbacktrace
- libbigwig
- libbsd
- libcap
- libcbor
+- libccd
- libcds
+- libconfig
- libconfuse
- libcoro
+- libcorrect
- libcuckoo
- libcurl
+- libdaemon
+- libdc1394
- libde265
- libdeflate
- libdisasm
- libdivide
+- libdmtx
- libdrawille
- libdwarf
+- libdxfrw
+- libe57format
- libelf
- libepoxy
- libev
@@ -421,15 +550,21 @@ required_for_references:
- libfreenect
- libfuse
- libgcrypt
+- libgd
- libgeotiff
- libgettext
- libgpg-error
- libgphoto2
- libgpiod
+- libgta
+- libhal
- libharu
+- libheif
+- libhydrogen
- libiberty
- libiconv
- libinterpolate
+- libipt
- libjpeg
- libjpeg-turbo
- libkml
@@ -437,19 +572,29 @@ required_for_references:
- libltc
- liblzf
- libmad
+- libmaxminddb
+- libmbus
- libmediainfo
- libmemcached
+- libmetalink
+- libmicrohttpd
- libmikmod
+- libmnl
- libmodbus
- libmodplug
- libmorton
- libmount
- libmp3lame
+- libmpdclient
- libmysqlclient
- libnabo
+- libnet
+- libnfnetlink
- libnfs
- libnghttp2
+- libnice
- libnl
+- libnoise
- libnop
- libnova
- libnuma
@@ -461,23 +606,32 @@ required_for_references:
- libpqxx
- libpsl
- libqrencode
+- librasterlite
- libraw
- librdkafka
- librealsense
- libressl
- librttopo
+- libsafec
- libsamplerate
+- libschrift
- libsecret
- libselinux
- libserial
- libsgp4
+- libsigcpp
+- libsixel
+- libslz
- libsmacker
- libsndfile
- libsodium
- libspatialindex
+- libspatialite
- libspng
+- libsquish
- libsrtp
- libssh2
+- libsvm
- libsvtav1
- libsystemd
- libtar
@@ -486,12 +640,15 @@ required_for_references:
- libtins
- libtool
- libtorrent
+- libucl
- libudev
+- libunistring
- libunwind
- libusb
- libuuid
- libuv
- libuvc
+- libvault
- libverto
- libvips
- libvpx
@@ -500,102 +657,171 @@ required_for_references:
- libwebsockets
- libx264
- libx265
+- libxcrypt
+- libxft
- libxls
+- libxlsxwriter
- libxml2
- libxslt
+- libyaml
- libyuv
- libzen
- libzip
- libzippp
- lief
+- lightpcapng
+- linmath.h
- linux-headers-generic
- linux-syscall-support
+- litehtml
- llhttp
+- llvm-openmp
+- lmdb
- lodepng
+- log.c
+- log4cplus
- logr
- loguru
+- ls-qpack
- lua
+- luajit
- luau
- lunasvg
- luple
+- lurlparser
+- lyra
- lz4
+- lzfse
+- lzham
+- lzip
- lzma_sdk
- lzo
- m4
+- maddy
- magic_enum
- mailio
- make
+- mapbox-geometry
+- mapbox-variant
- mariadb-connector-c
+- marisa
- matchit
- mathter
+- matio
- mattiasgustavsson-libs
- maven
- mawk
- mbedtls
- mbits-args
+- mbits-diags
+- mbits-lngs
- mbits-mstch
- mbits-semver
- mbits-utfconv
+- mcap
- md4c
- md4qt
+- mdns
- mdnsresponder
- mdspan
+- meshoptimizer
- meson
+- metall
- metis
- mgs
- microservice-essentials
+- microtar
- mikelankamp-fpm
+- mikktspace
- mimalloc
- mingw-builds
- miniaudio
- minimp3
- minisat
+- miniscript
+- minitrace
+- miniupnpc
- miniz
- minizip
- minizip-ng
+- mio
+- modern-cpp-kafka
+- moltenvk
- mongo-c-driver
- mongo-cxx-driver
+- morton-nd
- mozilla-build
- mozjpeg
- mp-units
+- mpark-variant
+- mpc
+- mpfr
- mpg123
+- mpmcqueue
- mppp
- ms-gsl
- msdf-atlas-gen
+- msdfgen
- msgpack-c
- msgpack-cxx
- msys2
+- mujs
+- muparser
+- muparserx
- naive-tsearch
- namedtype
- nameof
+- nanobench
- nanodbc
- nanoflann
- nanomsg
- nanorange
- nanort
+- nanosvg
- nas
- nasm
+- neargye-semver
- netcdf
- nettle
+- newmat
- nextsilicon-cpp-subprocess
+- nfrechette-acl
- ninja
- nlohmann_json
+- nlopt
+- nmea
+- nmslib
- nng
- nodejs
+- nodesoup
- norm
- nsync
+- ntv2
- nudb
+- nuklear
- numcpp
- nuraft
- nv-codec-headers
+- nvtx
+- oatpp
+- objectbox
+- objectbox-generator
+- observer-ptr-lite
+- octo-encryption-cpp
+- octo-keygen-cpp
+- octo-logger-cpp
- octomap
- odbc
+- ode
- ogdf
- ogg
- ois
+- onedpl
- onetbb
+- oniguruma
- onnx
- onnxruntime
+- open-dis-cpp
- openal
- openal-soft
- openapi-generator
@@ -605,62 +831,120 @@ required_for_references:
- opencl-icd-loader
- opencolorio
- opencore-amr
+- opencv
+- openddl-parser
- openexr
+- openfbx
+- openfst
+- openfx
- opengl
+- opengl-registry
- opengv
- openh264
- openjdk
- openjpeg
- openmesh
+- openmvg
+- openpam
- openssl
- opensubdiv
+- opentdf-client
- opentelemetry-cpp
- opentelemetry-proto
+- opentracing-cpp
+- openxlsx
- optional-lite
- opus
- opusfile
- orcania
- osqp
- out_ptr
+- outcome
- p-ranav-glob
- paho-mqtt-c
- paho-mqtt-cpp
+- panzi-portable-endian
+- parallel-hashmap
+- parg
+- parson
- patchelf
+- pbtools
- pcapplusplus
- pcg-cpp
+- pcl
- pcre
- pcre2
- pdfgen
+- pdqsort
+- perf
+- perfetto
+- perlinnoise
+- pffft
- pfr
+- pgm-index
+- physfs
- physx
- picobench
- picojson
+- picosha2
+- pipes
- pixman
- pkgconf
+- platform.delegates
+- platform.exceptions
- platform.hashing
+- platform.interfaces
+- plf_colony
+- plf_indiesort
+- plf_list
+- plf_nanotimer
+- plf_queue
+- plf_stack
+- plog
+- plusaes
- plutovg
+- pngpp
- poco
+- poly2tri
+- polylabel
+- polylineencoder
+- polymorphic_value
+- poppler-data
- popt
- portable-file-dialogs
- pprint
- pranav-csv2
- pretty-name
+- procxx-boost-ext-simd
- proj
- prometheus-cpp
- proposal
- protobuf
- protobuf-c
+- protopuf
+- protozero
- psimd
+- psyinf-gmtl
+- ptex
- pthreadpool
- pthreads4w
- pugixml
- pulseaudio
+- pupnp
- pybind11
+- pybind11_json
- pystring
+- qcbor
+- qdbm
- qhull
- qpdf
+- qpoases
+- qr-code-generator
+- qt
- quantlib
- quaternions
+- quickfix
+- quickjs
- quill
- quirc
- r8brain-free-src
@@ -668,6 +952,8 @@ required_for_references:
- ragel
- rang
- range-v3
+- rangeless
+- rangesnext
- rapidcheck
- rapidcsv
- rapidfuzz
@@ -676,56 +962,87 @@ required_for_references:
- rapidyaml
- raylib
- re2
+- reactiveplusplus
+- read-excel
- readerwriterqueue
- readline
- readosm
+- recastnavigation
+- reckless
+- rectanglebinpack
- rectpack2d
- redis-plus-plus
+- refl-cpp
- replxx
- restbed
- restinio
+- rg-etc1
+- rgbcx
- ring-span-lite
- rmm
- roaring
- robin-hood-hashing
+- rpclib
+- rply
+- rsync
+- rtklib
- rtm
+- rtmidi
- rttr
- ruy
+- rvo2
+- rxcpp
- s2n
+- safeint
+- sail
- samurai
- sbepp
- sbp
- scip
+- scippp
- scnlib
- scons
+- scope-lite
- screen_capture_lite
- sdbus-cpp
+- sdf
- sdl
- sdl_image
- sdl_ttf
- seadex-essentials
+- seasocks
- semimap
+- semver.c
- sentry-breakpad
- sentry-crashpad
- sentry-native
+- seqan
- serd
- serdepp
- sfml
+- shapelib
- shield
+- si
- sigslot
- simde
- simdjson
- simdutf
- simple-websocket-server
+- simple-yaml
- sjson-cpp
- skyr-url
- sml
- snappy
- snowhouse
+- sobjectizer
- soci
+- sofa
+- sokol
+- sol2
- sonic-cpp
- sophus
- soplex
+- soundtouch
- source_location
- soxr
- span-lite
@@ -733,26 +1050,44 @@ required_for_references:
- spirv-cross
- spirv-headers
- spirv-tools
+- spscqueue
+- spy
- sqlite3
- sqlite_orm
- sqlitecpp
- sqlpp11
+- squirrel
- ssht
+- st_tree
+- statslib
- status-code
+- status-value-lite
- stb
+- stc
+- stduuid
- stlab
- strawberryperl
+- streamvbyte
- string-view-lite
- stringtoolbox
- strong_type
- structopt
+- sundials
+- svector
+- svgpp
- svgwrite
- symengine
+- systemc
- szip
- tabulate
+- taglib
- taocpp-json
+- taocpp-operators
- taocpp-pegtl
+- taocpp-sequences
+- taocpp-tuple
- taskflow
+- taywee-args
- tcb-span
- tcl
- tclap
@@ -760,43 +1095,67 @@ required_for_references:
- tensorpipe
- termcap
- termcolor
+- tesseract
+- tgc
- thelink2012-any
- threadpool
- thrift
- thrust
+- tidy-html5
- timsort
+- tinkerforge-bindings
+- tiny-aes-c
+- tiny-bignum-c
+- tiny-dnn
+- tiny-regex-c
+- tiny-utf8
+- tinycbor
- tinycthread
- tinycthreadpool
- tinydir
- tinyexif
+- tinyexr
- tinygltf
- tinymidi
+- tinyobjloader
+- tinyply
+- tinyspline
- tinyxml
- tinyxml2
+- tl
- tl-expected
- tl-function-ref
- tllist
- tlx
- toml11
+- tracy
- trantor
+- tree-sitter
+- tree-sitter-c
- troldal-zippy
+- trompeloeil
- tsl-hopscotch-map
- turtle
- type_safe
- tz
- ua-nodeset
+- uchardet
- uni-algo
- unicorn
- unity
- univalue
- unordered_dense
- unqlite
+- upx
+- urdfdom
- uriparser
- usockets
+- usrsctp
- utf8proc
- utfcpp
- util-linux-libuuid
- uvw
+- uwebsockets
- vaapi
- variant-lite
- vdpau
@@ -813,6 +1172,8 @@ required_for_references:
- vulkan-loader
- vulkan-memory-allocator
- vulkan-validationlayers
+- vvenc
+- wasm-micro-runtime
- wasmer
- wasmtime
- wasmtime-cpp
@@ -823,6 +1184,7 @@ required_for_references:
- websocketpp
- wg21-linear_algebra
- wglext
+- whereami
- whisper-cpp
- wil
- winflexbison
@@ -833,6 +1195,7 @@ required_for_references:
- wt
- wtl
- xapian-core
+- xbyak
- xerces-c
- xkbcommon
- xkeyboard-config
@@ -846,6 +1209,7 @@ required_for_references:
- xorg-makedepend
- xorg-proto
- xoshiro-cpp
+- xsd
- xsimd
- xtensor
- xtl
@@ -853,8 +1217,10 @@ required_for_references:
- xxhash
- xxsds-sdsl-lite
- xz_utils
+- yaclib
- yajl
- yaml-cpp
+- yas
- yasm
- yyjson
- z3
@@ -865,6 +1231,7 @@ required_for_references:
- zlib
- zlib-ng
- zmarok-semver
+- zmqpp
- zookeeper-client-c
- zpp_bits
- zstd
diff --git a/.c3i/config_v1.yml b/.c3i/config_v1.yml
index 5241e481d134fb..bc6adc07ba3705 100644
--- a/.c3i/config_v1.yml
+++ b/.c3i/config_v1.yml
@@ -3,7 +3,7 @@
id: 'conan-io/conan-center-index'
conan:
- version: 1.60.1
+ version: 1.60.2
artifactory:
url: "https://c3i.jfrog.io/c3i"
@@ -41,7 +41,6 @@ tasks:
- name: "license/cla"
- name: "continuous-integration/jenkins/pr-merge"
- name: "c3i/conan-v2/pr-merge"
- required_for_references: "conan_v2_ready_references.yml"
build_single_reference:
package_id_cache_type: "none"
timeout_minutes: 600
diff --git a/.c3i/config_v2.yml b/.c3i/config_v2.yml
index 7aaabf1c918f16..6ce21e93668a5c 100644
--- a/.c3i/config_v2.yml
+++ b/.c3i/config_v2.yml
@@ -3,7 +3,15 @@
id: 'conan-io/conan-center-index'
conan:
- version: 2.0.8
+ version: 2.0.9
+ backup_sources:
+ upload_url: "https://c3i.jfrog.io/artifactory/conan-center-backup-sources/"
+ download_url: "https://c3i.jfrog.io/artifactory/conan-center-backup-sources/"
+
+ globalconf:
+ - 'core.sources:download_cache={{ CONFIG_HOME }}/backup_sources_cache'
+ - 'core.sources:download_urls=["{{ ARTI_DOWNLOAD_URL }}", "origin"]'
+ - 'core.sources:upload_url={{ ARTI_UPLOAD_URL }}'
artifactory:
url: "https://c3i.jfrog.io/c3i"
@@ -38,9 +46,9 @@ tasks:
update_labels: false
user_feedback:
title: "Conan v2 pipeline"
- description: "> **Note**: Conan v2 builds may be required once they are on the [v2 ready](https://github.com/conan-io/conan-center-index/blob/master/.c3i/conan_v2_ready_references.yml) list"
+ description: "> **Note**: Conan v2 builds are now mandatory. Please read our [discussion](https://github.com/conan-io/conan-center-index/discussions/19104) about it."
regression: "> **Regression**: Conan v2 builds are mandatory and they are required for the PR to be merged, because this recipe worked with Conan v2 previously."
- text_on_failure: "The v2 pipeline failed. Please, review the errors and note this will be required for pull requests to be merged in the near future."
+ text_on_failure: "The v2 pipeline failed. Please, review the errors and note this is required for pull requests to be merged. In case this recipe is still not ported to Conan 2.x, please, ping `@conan-io/barbarians` on the PR and we will help you."
collapse_on_success: false
collapse_on_failure: true
list_packages:
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e3e7f52de2da86..6e24832e93e988 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -23,7 +23,7 @@ To contribute follow the next steps:
1. Comment in the corresponding issue that you want to contribute the package/fix proposed. If there is no open issue, we strongly suggest
opening one to gather feedback.
-2. Make sure to [request access](docs/adding_packages/README.md#request-access) and be aware there is a [CLA](docs/CONTRIBUTOR_LICENSE_AGREEMENT.md).
+2. Make sure to [request access](docs/adding_packages/README.md#request-access) and be aware there is a [contributor licenses agreement](https://cla-assistant.io/conan-io/conan-center-index).
3. Get setup by following the [Developing Recipes](docs/developing_recipes_locally.md) guide and learn the basic commands.
4. Check the [How To Add Packages](docs/adding_packages/README.md) page for the break down of ConanCenterIndex specific conventions and practices.
5. In your fork create a `package/xxx` branch from the `master` branch and develop
diff --git a/docs/CONTRIBUTOR_LICENSE_AGREEMENT.md b/docs/CONTRIBUTOR_LICENSE_AGREEMENT.md
deleted file mode 100644
index 39acf20a7aebd5..00000000000000
--- a/docs/CONTRIBUTOR_LICENSE_AGREEMENT.md
+++ /dev/null
@@ -1,23 +0,0 @@
-Conan-Center-Index project Contributor License Agreement
---------------------------------------------------------
-
-The following terms are used throughout this agreement:
-
-- You - the person or legal entity including its affiliates asked to accept this agreement. An affiliate is any entity that controls or is controlled by the legal entity, or is under common control with it.
-- Contribution - any type of work that is submitted to the repository, including any modifications or additions to existing work.
-- Project - Conan-Center-Index project (https://github.com/conan-io/conan-center-index)
-- Submitted - conveyed to a Project via a pull request, commit, issue, or any form of electronic, written, or verbal communication with the copyright owner, contributors or maintainers.
-
-1. Grant of Copyright License.
-
- Subject to the terms and conditions of this agreement, You grant to JFrog LTD, a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute your contributions and such derivative works.
-
-2. Grant of Patent License.
-
- Subject to the terms and conditions of this agreement, You grant to JFrog LTD, a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer your contributions, where such license applies only to those patent claims licensable by you that are necessarily infringed by your contribution or by combination of your contribution with the project to which this contribution was submitted.
-
- If any entity institutes patent litigation - including cross-claim or counterclaim in a lawsuit - against You alleging that your contribution or any project it was submitted to constitutes or is responsible for direct or contributory patent infringement, then any patent licenses granted to that entity under this agreement shall terminate as of the date such litigation is filed.
-
-3. Source of Contribution.
-
- Your contribution is either your original creation, based upon previous work that, to the best of your knowledge, is covered under an appropriate open source license and you have the right under that license to submit that work with modifications, whether created in whole or in part by you, or you have clearly identified the source of the contribution and any license or other restriction (like related patents, trademarks, and license agreements) of which you are personally aware.
diff --git a/docs/adding_packages/README.md b/docs/adding_packages/README.md
index 3f310562fdf6a1..409f61c38fc0eb 100644
--- a/docs/adding_packages/README.md
+++ b/docs/adding_packages/README.md
@@ -30,7 +30,7 @@ generally approved on a weekly basis. Feel free to continue to step :two: while
> All interactions are subject to the expectations of the [code of conduct](../code_of_conduct.md). Any misuse or inappropriate behavior
> are subject to the same principals.
-When submitting a pull request for the first time, you will be prompted to sign the [CLA](../CONTRIBUTOR_LICENSE_AGREEMENT.md) for your
+When submitting a pull request for the first time, you will be prompted to sign the [CLA](https://cla-assistant.io/conan-io/conan-center-index) for your
code contributions. You can view your signed CLA's by going to and signing in.
## Inactivity and user removal
diff --git a/docs/adding_packages/conanfile_attributes.md b/docs/adding_packages/conanfile_attributes.md
index 0044d960505ba4..dba2fb82308f0b 100644
--- a/docs/adding_packages/conanfile_attributes.md
+++ b/docs/adding_packages/conanfile_attributes.md
@@ -49,14 +49,13 @@ In order to create reproducible builds, we also "commit-lock" to the latest comm
### License Attribute
-The mandatory license attribute of each recipe **should** be a [SPDX license](https://spdx.org/licenses/) [short Identifiers](https://spdx.dev/ids/) when applicable.
-
-Where the SPDX guidelines do not apply, packages should do the following:
-
-* Packages without a license or closed source cannot be accepted in ConanCenter, even if the code is publicly available in Github or other platforms.
-* When some package is under the ["public domain"](https://fairuse.stanford.edu/overview/public-domain/welcome/) - these are not a license by itself. The author original intent and files should be respected, and the relevant files defining the "public domain" status should be the ones packaged in the "licenses" folder, for example the source repository README. The ``license`` field should be as close as the original one as possible, like ``license = "Public-domain"``.
-* When a custom (e.g. project specific) license is given, the value should be set to `LicenseRef-` as a prefix, followed by the name of the file which contains the custom license. See [this example](https://github.com/conan-io/conan-center-index/blob/e604534bbe0ef56bdb1f8513b83404eff02aebc8/recipes/fft/all/conanfile.py#L8). For more details, [read this conversation](https://github.com/conan-io/conan-center-index/pull/4928/files#r596216206).
+The license attribute is a mandatory field which provides the legal information that summarizes the contents saved in the package. These follow the
+[SPDX license](https://spdx.org/licenses/) as a standard. This is for consummers, in particular in the enterprise sector, that do rely on SDPX compliant identifiers so that they can flag this as a custom license text.
+* If the library has a license that has a SPDX identifier, use the [short Identifiers](https://spdx.dev/ids/).
+* If the library has a license text that does not match a SPDX identifier, including custom wording disclaiming copyright or dedicating the words to the ["public domain"](https://fairuse.stanford.edu/overview/public-domain/welcome/), use the [SPDX License Expressions](https://spdx.github.io/spdx-spec/v2-draft/SPDX-license-expressions/), this can follow:
+ * `LicenseRef-` as a prefix, followed by the name of the library. For example:`LicenseRef-libfoo-public-domain`
+* If the library makes no mention of a license and the terms of use - it **shall not be accepted in ConanCenter** , even if the code is publicly available in GitHub or any other platforms.
## Order of methods and attributes
diff --git a/docs/adding_packages/dependencies.md b/docs/adding_packages/dependencies.md
index a45c6c0f3c31c6..a69f895483ed0a 100644
--- a/docs/adding_packages/dependencies.md
+++ b/docs/adding_packages/dependencies.md
@@ -174,15 +174,21 @@ for consumer, we do impose some limits on Conan features to provide a smoother f
* [`python_requires`](https://docs.conan.io/1/reference/conanfile/other.html#python-requires) are not allowed.
### Version Ranges
-
+
Version ranges are a useful Conan feature, [documentation here](https://docs.conan.io/2/tutorial/versioning/version_ranges.html).
With the introduction of Conan 2.0, we are currently working to allow the use of version ranges and are allowing this for a handful of dependencies.
Currently, these are:
* OpenSSL: `[>=1.1 <4]` for libraries known to be compatible with OpenSSL 1.x and 3.x
-* CMake: `[>3.XX <4]`, where `3.XX` is the minimum version of CMake required by the relevant build scripts.
+* CMake: `[>3.XX <4]`, where `3.XX` is the minimum version of CMake required by the relevant build scripts
+* Libcurl: `[>=X.YY <9]`, where `X.YY` is the minimum version of Libcurl required, starting from `7.78`
+
+> **Note**: You might also see Zlib ranges in some PR by CCI maintainers.
+> We're adding them little by little to avoid missing binaries and conflict errors.
+> Please do not open PRs moving Zlib to ranges for now, we'll update this page when PRs are free to add new ranges.
+
-> **Warning**: With Conan 1.x, [version ranges](https://docs.conan.io/1/versioning/version_ranges.html) adhere to a much more strict sematic version spec,
+> **Warning**: With Conan 1.x, [version ranges](https://docs.conan.io/1/versioning/version_ranges.html) adhere to a much more strict sematic version spec,
> OpenSSL 1.1.x does not follow this so the client will not resolve to that range and will pick a 3.x version. In order to select a lower version you
> can user the defunct `--require-override openssl/1.1.1t@` from the command line, or override from the recipe with `self.requires(openssl/1.1.1t, override=True)`
> to ensure a lower version is picked.
diff --git a/docs/adding_packages/folders_and_files.md b/docs/adding_packages/folders_and_files.md
index 0136f36792b5b2..b5a51c8d603097 100644
--- a/docs/adding_packages/folders_and_files.md
+++ b/docs/adding_packages/folders_and_files.md
@@ -140,7 +140,7 @@ When a package needs other packages those can be include with the `requirements(
```python
def requirements(self):
- self.require("fmt/9.0.0")
+ self.requires("fmt/9.0.0")
```
For more information see the [Dependencies](dependencies.md) documentation.
diff --git a/docs/adding_packages/sources_and_patches.md b/docs/adding_packages/sources_and_patches.md
index 66f10a12327268..56ff5130c26e4c 100644
--- a/docs/adding_packages/sources_and_patches.md
+++ b/docs/adding_packages/sources_and_patches.md
@@ -16,8 +16,7 @@ These are a very important aspects and it helps us to establish the quality of t
* [Format and Conventions](#format-and-conventions)
* [Exporting Patches](#exporting-patches)
* [Applying Patches](#applying-patches)
- * [Rules](#rules)
- * [Exceptions](#exceptions)
+ * [Policy on patches](#policy-on-patches)
## Picking the Sources
@@ -138,62 +137,13 @@ def _patch_sources(self):
replace_in_file(self, os.path.join(self.source_folder, "CMakeLists.txt"), "${CMAKE_SOURCE_DIR}", "${CMAKE_CURRENT_SOURCE_DIR}")
```
-### Rules
-
-These are the rules that apply to regular versions of Conan packages:
-
-**Build system patches.** In order to add libraries into ConanCenter sometimes
-it is NEEDED to apply patches so they can consume existing packages
-for requirements and binaries can be generated. These patches are totally
-needed for the purpose of ConanCenter and Conan keeps adding features trying
-to minimize these changes.
-
-**Source patches.** ConanCenter DOES NOT accept patches **backporting bugfixes or
-features** from upcoming releases, they break the principle of minimum surprise,
-they change the behavior of the library and it will no longer match the
-documentation or the changelog originally delivered by the authors.
-
-However, ConanCenter DOES accept **working software patches**, these patches
-are needed to generate the binaries for architectures not considered by
-library maintainers, or to use some compilers or configurations. These patches
-make it possible to generate binaries that cannot be generated otherwise, or
-they can turn a crashing binary into a working software one (bugs, errors, or
-faults are considered working software as long as they produce deterministic
-results).
-
-Patches to sources to add support to newer versions of dependencies are
-considered feature patches and they are not allowed either. They can
-introduce new behaviors or bugs not considered when delivering the
-library by maintainers. If a requirement is known not to work, the recipe
-should raise a `ConanInvalidConfiguration` from the `validate()` method.
-
-**Vulnerability patches.** Patches published to CVE databases or declared as
-vulnerabilities by the authors in non-mainstream libraries WILL be applied
-to packages generated in Conan Center.
-
-**Official release patches.** If the library documents that a patch should be
-applied to sources when building a tag/release from sources, ConanCenter WILL
-apply that patch too. This is needed to match the documented behavior or the
-binaries of that library offered by other means.
-[Example here](https://www.boost.org/users/history/version_1_73_0.html).
-
-### Exceptions
-
-Exceptionally, we might find libraries that aren't actively developed and consumers
-might benefit from having some bugfixes applied to previous versions while
-waiting for the next release, or because the library is no longer maintained. These
-are the rules for this exceptional scenario:
-
-* **new release**, based on some official release and clearly identifiable will
- be created to apply these patches to: <>.
-* **only patches backporting bugfixes** will be accepted after they have
- been submitted to the upstream and there is a consensus that it's a bug and the patch is the solution.
-
-ConanCenter will build this patched release and serve its binaries like it does with
-any other Conan reference.
-
-Notice that these <> releases are unique to ConanCenter
-and they can get new patches or discard existing ones according to upstream
-considerations. It means that these releases will modify their behavior without previous
-notice, the documentation or changelog for these specific releases won't exist. Use
-them carefully in your projects.
+### Policy on patches
+
+Conan Center is a package repository, and the aim of the service is to provide the recipes to build libraries from the sources as provided by the library authors, and to provide binaries for Conan Center’s supported platforms and configurations.
+
+In general, patches to source code should be avoided and only done as a last resort. In situations where it is strictly necessary, the aim should be that the patches could be eventually merged upstream so that in the future they are no longer necessary.
+
+Pull Requests that introduce patches will be carefully reviewed by the Conan Team. We recognize that in some instances, patches are necessary in the build system/build scripts.
+Patches that affect C and C++ code are strongly discouraged and will only be accepted at the discretion of the Conan Team, after a strict validation process. Patches are more likely to be accepted if they are first reported and acknowledged by the library authors.
+
+For scenarios that require patching source code, we greatly encourage raising a new issue explaining the need and motivation, reproducible steps and complete logs, behind the patch. Please note that for issues that strictly affect C and C++ source code, it is very unlikely that a patch will be accepted if an issue is not first raised with the original library authors, or if the patches are not addressing a known security advisory.
diff --git a/docs/changelog.md b/docs/changelog.md
index 1f0425119cede9..1511b584ab7db2 100644
--- a/docs/changelog.md
+++ b/docs/changelog.md
@@ -1,5 +1,41 @@
# Changelog
+### 01-Sep-2023 - 19:58 CEST
+
+- [fix] Use Unix separators for Windows folder path when creating CI workspace.
+
+### 31-August-2023 - 12:57 CEST
+
+- [feature] Support specific PR number for Automatic Merge.
+- [feature] Use temporary folder for build workspace.
+- [fix] Rename BuildSingleReference folder to bsr to overcome Windows long path.
+- [fix] Remove graph info from logs to avoid long loading.
+- [fix] Remove deprecated search index for Conan Center.
+
+### 17-August-2023 - 11:42 CEST
+
+- [fix] Fix type error when catching generic exceptions in Jenkins
+- [fix] Bump dependencies no longer allow version range
+- [feature] Show recipe revision on the pull-request summary table
+
+### 04-August-2023 - 10:26 CEST
+
+- [feature] Enable Conan 2.0.8
+- [feature] Enable Conan 1.60.2
+- [feature] Update Jenkins server version
+- [hotfix] Better error management when having CI build timeout
+
+### 19-July-2023 - 09:45 CEST
+
+- [fix] Fix message processing if no message is passed.
+- [fix] Fix automatic merge priority to follow the correct PR order.
+- [fix] Waiting for Conan 2.x result after building Conan 1.x.
+- [fix] Bump version should not be tagged when removing old versions.
+- [feature] Improve internal logs to get more information about epochs.
+- [feature] Add an option to disable some jobs.
+- [feature] Disable branch indexing job runs on cci multibranch job.
+- [feature] Enable Conan 2.0.8
+
### 04-May-2023 - 16:05 CEST
- [bugfix] Fix cppstd issues when selecting the value to use in profiles.
diff --git a/docs/developing_recipes_locally.md b/docs/developing_recipes_locally.md
index e34902537f2b67..f80ba1e6286cb5 100644
--- a/docs/developing_recipes_locally.md
+++ b/docs/developing_recipes_locally.md
@@ -22,6 +22,7 @@ This file is intended to provide all the commands you need to run in order to be
* [Yamlschema](#yamlschema)
* [Testing the different `test__package`](#testing-the-different-test__package)
* [Testing more environments](#testing-more-environments)
+ * [Docker build images used by ConanCenterIndex](#docker-build-images-used-by-conancenterindex)
* [Using Conan 2.0](#using-conan-20)
* [Installing Conan 2.0 beta](#installing-conan-20-beta)
* [Trying it out](#trying-it-out)
@@ -221,6 +222,29 @@ If you are working with packages that have system dependencies that are managed
docker run -e CONAN_SYSREQUIRES_MODE=enabled conanio/gcc11-ubuntu16.04 conan install fmt/9.0.0@ -if build --build missing -c tools.system.package_manager:mode=install -c tools.system.package_manager:sudo=yes
```
+#### Docker build images used by ConanCenterIndex
+
+The Conan Center Index uses [Conan Docker Tools](https://github.com/conan-io/conan-docker-tools/) to build packages in a variety of environments. All images are hosted in [Docker Hub](https://hub.docker.com/u/conanio). The relation of the images with the build configurations is available according to the Conan configuration, as `node_labels.Linux`, for instance:
+
+
+```yaml
+node_labels:
+ Linux:
+ x86_64:
+ "gcc":
+ default: "linux_gcc_${compiler.version}"
+ "11": "linux_gcc_${compiler.version}_ubuntu16.04"
+ "clang":
+ default: "linux_clang_${compiler.version}_ubuntu16.04"
+ "11": "linux_clang_${compiler.version}"
+```
+
+The configuration files are located in the folder [../.c3i](../.c3i). Currently are the files [config_v1.yml](../.c3i/config_v1.yml) and [config_v2.yml](../.c3i/config_v2.yml). The configuration file `config_v1.yml` is used by the Conan 1.0 client, while `config_v2.yml` is used by the Conan 2.0 client.
+
+The label `linux` refers to any Docker image, while `gcc_${compiler.version}` refers to GCC + a compiler version. For example, `linux_gcc_10` refers to the image `conanio/gcc10`.
+The suffix `_ubuntu16.04` refers to the base image used by the Docker image, in this case, `ubuntu16.04`. So, `"11": "linux_gcc_${compiler.version}_ubuntu16.04"` means that the image `conanio/gcc11-ubuntu16.04`. Thus, all GCC versions use `conanio/gcc`, except for the GCC 11, which uses `conanio/gcc11-ubuntu16.04`. The same applies to Clang.
+
+
## Using Conan 2.0
Everything you need to know about the methods, commands line, outputs can be found in the
diff --git a/docs/faqs.md b/docs/faqs.md
index b84d6e6a091023..8fc8cb331f1212 100644
--- a/docs/faqs.md
+++ b/docs/faqs.md
@@ -10,7 +10,6 @@ This section gathers the most common questions from the community related to pac
* [What is the policy on creating packages from pre-compiled binaries?](#what-is-the-policy-on-creating-packages-from-pre-compiled-binaries)
* [Should reference names use `-` or `_`?](#should-reference-names-use---or-_)
* [Why are CMake find/config files and pkg-config files not packaged?](#why-are-cmake-findconfig-files-and-pkg-config-files-not-packaged)
- * [Should recipes export a recipe's license?](#should-recipes-export-a-recipes-license)
* [Why recipes that use build tools (like CMake) that have packages in Conan Center do not use it as a build require by default?](#why-recipes-that-use-build-tools-like-cmake-that-have-packages-in-conan-center-do-not-use-it-as-a-build-require-by-default)
* [How are rare build systems without generators packaged?](#how-are-rare-build-systems-without-generators-packaged)
* [Are python requires allowed in the `conan-center-index`?](#are-python-requires-allowed-in-the-conan-center-index)
@@ -24,6 +23,7 @@ This section gathers the most common questions from the community related to pac
* [Doesn't this make debug builds useless?](#doesnt-this-make-debug-builds-useless)
* [Can I remove an option from a recipe?](#can-i-remove-an-option-from-a-recipe)
* [Can I split a project into an installer and library package?](#can-i-split-a-project-into-an-installer-and-library-package)
+ * [Should recipes export a recipe's license?](#should-recipes-export-a-recipes-license)
* [What license should I use for Public Domain?](#what-license-should-i-use-for-public-domain)
* [What license should I use for a custom project specific license?](#what-license-should-i-use-for-a-custom-project-specific-license)
* [How do I flag a problem to a recipe consumer?](#how-do-i-flag-a-problem-to-a-recipe-consumer)
@@ -103,10 +103,6 @@ If you really think this is an issue and there is something missing to cover the
\* Take a look at the integrations section to learn more: https://docs.conan.io/1/integrations/build_system/cmake/cmake_find_package_generator.html
-## Should recipes export a recipe's license?
-
-No, recipes do not need to export a recipe license. Recipes and all files contributed to this repository are licensed under the license in the root of the repository. Using any recipe from this repository or directly from conan-center implies the same licensing.
-
## Why recipes that use build tools (like CMake) that have packages in Conan Center do not use it as a build require by default?
We generally consider tools like CMake as a standard tool to have installed in your system. Having the `cmake` package as a build require in **all** the recipes that use it will be an overkill, as every build requirement is installed like a requirement and takes time to download. However, `cmake` could still be useful to use in your profile:
@@ -209,6 +205,10 @@ After one month, we will welcome a PR removing the option that was deprecated.
No. Some projects provide more than a simple library, but also applications. For those projects, both libraries and executables should be kept together under the same Conan package. In the past, we tried to separate popular projects, like Protobuf, and it proved to be a complex and hard task to be maintained, requiring custom patches to disable parts of the building. Also, with the [context](https://docs.conan.io/1/systems_cross_building/cross_building.html#conan-v1-24-and-newer) feature, we can use the same package as build requirement, for the same build platform, and as a regular requirement, for the host platform, when cross-building. It's recommended using 2 profiles in that case, one for build platform (where the compilation tools are being executed) and one for host platform (where the generated binaries will run).
+## Should recipes export a recipe's license?
+
+No, recipes do not need to export a recipe license. Recipes and all files contributed to this repository are licensed under the license in the root of the repository. Using any recipe from this repository or directly from conan-center implies the same licensing.
+
## What license should I use for Public Domain?
See [License Attribute](adding_packages/conanfile_attributes.md#license-attribute) for details.
diff --git a/docs/review_process.md b/docs/review_process.md
index 55eadf1bd07381..cf9d98f130d9b9 100644
--- a/docs/review_process.md
+++ b/docs/review_process.md
@@ -101,7 +101,7 @@ The bot runs Automatic Merges every 20 minutes. Currently, it can only merge a s
PR is selected for the merge only if:
- Author is already [approved](https://github.com/conan-io/conan-center-index/issues/4).
-- Author has signed the [CLA](CONTRIBUTOR_LICENSE_AGREEMENT.md).
+- Author has signed the [CLA](https://cla-assistant.io/conan-io/conan-center-index).
- PR is not a Draft.
- PR has a green status (successful build).
- PR doesn't have merge conflicts with `master` branch.
diff --git a/recipes/aaf/all/conanfile.py b/recipes/aaf/all/conanfile.py
index 080c644424a04b..ee7906ff059366 100644
--- a/recipes/aaf/all/conanfile.py
+++ b/recipes/aaf/all/conanfile.py
@@ -38,7 +38,7 @@ def requirements(self):
self.requires("expat/2.5.0")
self.requires("libjpeg/9e")
if self.settings.os in ("FreeBSD", "Linux"):
- self.requires("libuuid/1.0.3")
+ self.requires("util-linux-libuuid/2.39")
def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)
diff --git a/recipes/ada/all/conandata.yml b/recipes/ada/all/conandata.yml
index 377c8fab6dad4f..0d566dbc80ea82 100644
--- a/recipes/ada/all/conandata.yml
+++ b/recipes/ada/all/conandata.yml
@@ -1,4 +1,16 @@
sources:
+ "2.6.7":
+ url: "https://github.com/ada-url/ada/archive/v2.6.7.tar.gz"
+ sha256: "882a0aa6e19174b60b2fa00ee75d35a31ecd5158fb97d0e4e719ba21bb07acb9"
+ "2.6.4":
+ url: "https://github.com/ada-url/ada/archive/v2.6.4.tar.gz"
+ sha256: "5b488e9a7a700de5d40a749c96c4339bcc9c425e5f5406a0887b13e70bd90907"
+ "2.6.2":
+ url: "https://github.com/ada-url/ada/archive/v2.6.2.tar.gz"
+ sha256: "425b8696a28a22d19ee7aa4516c26fc8ae3ab574870a9a74ef58ba8a345b822e"
+ "2.6.0":
+ url: "https://github.com/ada-url/ada/archive/v2.6.0.tar.gz"
+ sha256: "09551bfbd92853e59d731e5f44a88a690425fd2906977ad03a6a1059615a02a5"
"2.5.1":
url: "https://github.com/ada-url/ada/archive/v2.5.1.tar.gz"
sha256: "a7591d771822c3f16e6665311b0c6b4de7dd7615333183f35d89c7573be7f7fa"
@@ -8,21 +20,3 @@ sources:
"2.4.2":
url: "https://github.com/ada-url/ada/archive/v2.4.2.tar.gz"
sha256: "d865ab8828c14fc1e2217ca9f5d7918d50775175b2873faf2fbda0085e0623d2"
- "2.4.1":
- url: "https://github.com/ada-url/ada/archive/refs/tags/v2.4.1.tar.gz"
- sha256: "e9359937e7aeb8e5889515c0a9e22cd5da50e9b053038eb092135a0e64888fe7"
- "2.4.0":
- url: "https://github.com/ada-url/ada/archive/refs/tags/v2.4.0.tar.gz"
- sha256: "14624f1dfd966fee85272688064714172ff70e6e304a1e1850f352a07e4c6dc7"
- "2.3.1":
- url: "https://github.com/ada-url/ada/archive/refs/tags/v2.3.1.tar.gz"
- sha256: "298992ec0958979090566c7835ea60c14f5330d6372ee092ef6eee1d2e6ac079"
- "2.3.0":
- url: "https://github.com/ada-url/ada/archive/refs/tags/v2.3.0.tar.gz"
- sha256: "932a93f6a745775343ebdbaafca295e07b9513f6aaeb738f9e85dcb397925e33"
- "2.2.0":
- url: "https://github.com/ada-url/ada/archive/refs/tags/v2.2.0.tar.gz"
- sha256: "40a6b3fe0d5c62936c081e8403790ec05d5afe3d0909eece894efcfef7e678ee"
- "2.0.0":
- url: "https://github.com/ada-url/ada/archive/refs/tags/v2.0.0.tar.gz"
- sha256: "a18272e1c5d6580f62a333df88149e3810ffedcb61b3fb06c480a5b52e458b5e"
diff --git a/recipes/ada/all/conanfile.py b/recipes/ada/all/conanfile.py
index dcb06ed03de1ae..4954905b8f7dee 100644
--- a/recipes/ada/all/conanfile.py
+++ b/recipes/ada/all/conanfile.py
@@ -1,6 +1,6 @@
from conan import ConanFile
from conan.errors import ConanInvalidConfiguration
-from conan.tools.files import get, copy, rmdir
+from conan.tools.files import get, copy, rmdir, replace_in_file
from conan.tools.build import check_min_cppstd
from conan.tools.scm import Version
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
@@ -45,9 +45,6 @@ def config_options(self):
del self.options.fPIC
def configure(self):
- if Version(self.version) <= "2.0.0":
- self.options.rm_safe("shared")
- self.package_type = "static-library"
if self.options.get_safe("shared"):
self.options.rm_safe("fPIC")
@@ -55,7 +52,7 @@ def layout(self):
cmake_layout(self, src_folder="src")
def validate(self):
- if self.settings.compiler.cppstd:
+ if self.settings.compiler.get_safe("cppstd"):
check_min_cppstd(self, self._min_cppstd)
minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False)
if minimum_version and Version(self.settings.compiler.version) < minimum_version:
@@ -69,8 +66,7 @@ def validate(self):
)
def build_requirements(self):
- if Version(self.version) >= "0.6.0":
- self.tool_requires("cmake/[>=3.16 <4]")
+ self.tool_requires("cmake/[>=3.16 <4]")
def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)
@@ -78,12 +74,18 @@ def source(self):
def generate(self):
tc = CMakeToolchain(self)
tc.variables["BUILD_TESTING"] = False
+ tc.variables["ADA_TOOLS"] = False
tc.generate()
deps = CMakeDeps(self)
deps.generate()
+ def _patch_sources(self):
+ # solve APPLE RELOCATABLE SHARED LIBS (KB-H077)
+ replace_in_file(self, os.path.join(self.source_folder, "cmake", "ada-flags.cmake"), "set(CMAKE_MACOSX_RPATH OFF)", "")
+
def build(self):
+ self._patch_sources()
cmake = CMake(self)
cmake.configure()
cmake.build()
@@ -97,3 +99,5 @@ def package(self):
def package_info(self):
self.cpp_info.libs = ["ada"]
+ if self.settings.os in ["Linux", "FreeBSD"]:
+ self.cpp_info.system_libs.append("m")
diff --git a/recipes/ada/config.yml b/recipes/ada/config.yml
index 7612786acc48cd..2c76fe7baba056 100644
--- a/recipes/ada/config.yml
+++ b/recipes/ada/config.yml
@@ -1,19 +1,15 @@
versions:
- "2.5.1":
- folder: all
- "2.5.0":
- folder: all
- "2.4.2":
+ "2.6.7":
folder: all
- "2.4.1":
+ "2.6.4":
folder: all
- "2.4.0":
+ "2.6.2":
folder: all
- "2.3.1":
+ "2.6.0":
folder: all
- "2.3.0":
+ "2.5.1":
folder: all
- "2.2.0":
+ "2.5.0":
folder: all
- "2.0.0":
+ "2.4.2":
folder: all
diff --git a/recipes/ade/all/conandata.yml b/recipes/ade/all/conandata.yml
index 954c10dfe2c1d4..668f4325384370 100644
--- a/recipes/ade/all/conandata.yml
+++ b/recipes/ade/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.1.2c":
+ url: "https://github.com/opencv/ade/archive/refs/tags/v0.1.2c.tar.gz"
+ sha256: "1387891c707c6e5c76448ea09e2df2e8bce1645c11f262c10b3f3ebec88749c2"
"0.1.2a":
url: "https://github.com/opencv/ade/archive/refs/tags/v0.1.2a.tar.gz"
sha256: "c022a688b0554017e46e1cbdeb0105e625ca090fc3755c15df8c4451a304e084"
diff --git a/recipes/ade/config.yml b/recipes/ade/config.yml
index cbf2f373fb6306..373f3e14c45ff1 100644
--- a/recipes/ade/config.yml
+++ b/recipes/ade/config.yml
@@ -1,4 +1,6 @@
versions:
+ "0.1.2c":
+ folder: "all"
"0.1.2a":
folder: "all"
"0.1.1f":
diff --git a/recipes/aeron/all/conandata.yml b/recipes/aeron/all/conandata.yml
index a888d0c7211200..c3ee6521cf6a55 100644
--- a/recipes/aeron/all/conandata.yml
+++ b/recipes/aeron/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.41.4":
+ url: "https://github.com/real-logic/aeron/archive/1.41.4.tar.gz"
+ sha256: "681e2a045ca04672612b6edeb7a09c0d574e12c6875cfe26f677b12772d71ad5"
"1.35.1":
url: "https://github.com/real-logic/aeron/archive/1.35.1.tar.gz"
sha256: "19b0f27c2cbc27b422e26a533e4a04a60592217e1c70fdbdd48a92a7b932cccb"
diff --git a/recipes/aeron/all/conanfile.py b/recipes/aeron/all/conanfile.py
index aef0519cfd69ad..4bf9894df2c4c4 100644
--- a/recipes/aeron/all/conanfile.py
+++ b/recipes/aeron/all/conanfile.py
@@ -20,6 +20,7 @@ class AeronConan(ConanFile):
homepage = "https://github.com/real-logic/aeron/wiki"
license = "Apache-2.0"
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
@@ -47,7 +48,7 @@ def _compilers_minimum_version(self):
}
def config_options(self):
- if self.settings.os == 'Windows':
+ if self.settings.os == "Windows":
del self.options.fPIC
def configure(self):
diff --git a/recipes/aeron/all/test_v1_package/CMakeLists.txt b/recipes/aeron/all/test_v1_package/CMakeLists.txt
index 0d20897301b68b..91630d79f4abb3 100644
--- a/recipes/aeron/all/test_v1_package/CMakeLists.txt
+++ b/recipes/aeron/all/test_v1_package/CMakeLists.txt
@@ -1,8 +1,8 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(test_package)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)
-add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package
- ${CMAKE_CURRENT_BINARY_DIR}/test_package)
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/aeron/config.yml b/recipes/aeron/config.yml
index 0c20e51036f8b7..9f6aea7a8f54b5 100644
--- a/recipes/aeron/config.yml
+++ b/recipes/aeron/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.41.4":
+ folder: all
"1.35.1":
folder: all
"1.34.0":
diff --git a/recipes/aggeom-agg/all/conandata.yml b/recipes/aggeom-agg/all/conandata.yml
index 8b26697b0ef0d8..9203b7fc5e4241 100644
--- a/recipes/aggeom-agg/all/conandata.yml
+++ b/recipes/aggeom-agg/all/conandata.yml
@@ -2,3 +2,6 @@ sources:
"2.6.1":
url: "https://github.com/aggeom/agg-2.6/archive/refs/tags/agg-2.6.1.tar.gz"
sha256: 685966f880f1c2aae19479b60525fafba8cbd88e4c62d1947767780df8f6a3d0
+ "2.7.1":
+ url: "https://github.com/aggeom/agg-2.6/archive/refs/tags/agg-2.7.1.tar.gz"
+ sha256: 2174e55d7169502293e86f728d8698b5198dc7e42fbbda39e4d34c1411d1ac7a
diff --git a/recipes/aggeom-agg/all/conanfile.py b/recipes/aggeom-agg/all/conanfile.py
index 55a67e88a5f75c..991d2d1af6b1e3 100644
--- a/recipes/aggeom-agg/all/conanfile.py
+++ b/recipes/aggeom-agg/all/conanfile.py
@@ -1,49 +1,43 @@
+import os
+
from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
from conan.tools.files import copy, get, rmdir
-from conan.errors import ConanInvalidConfiguration
-
-import os
required_conan_version = ">=1.53.0"
class AggConan(ConanFile):
- name = 'aggeom-agg'
- description = 'AGG Anti-Grain Geometry Library'
- topics = ('graphics')
+ name = "aggeom-agg"
+ description = "AGG Anti-Grain Geometry Library"
+ license = "BSD-3-Clause"
url = "https://github.com/conan-io/conan-center-index"
- homepage = 'https://github.com/aggeom'
- license = 'BSD-3-Clause'
+ homepage = "https://github.com/aggeom"
+ topics = ("graphics",)
- settings = 'os', 'arch', 'compiler', 'build_type'
+ package_type = "library"
+ settings = "os", "arch", "compiler", "build_type"
options = {
- 'shared': [True, False],
- 'fPIC': [True, False],
- 'with_gpc': [True, False],
- 'with_freetype': [True, False],
- 'with_agg2d': [True, False],
- 'with_agg2d_freetype': [True, False],
- 'with_platform': [True, False],
- 'with_controls': [True, False],
+ "shared": [True, False],
+ "fPIC": [True, False],
+ "with_gpc": [True, False],
+ "with_freetype": [True, False],
+ "with_agg2d": [True, False],
+ "with_agg2d_freetype": [True, False],
+ "with_platform": [True, False],
+ "with_controls": [True, False],
}
-
default_options = {
- 'shared': False,
- 'fPIC': True,
- 'with_gpc': True,
- 'with_freetype': True,
- 'with_agg2d': True,
- 'with_agg2d_freetype': True,
- 'with_platform': True,
- 'with_controls': True,
+ "shared": False,
+ "fPIC": True,
+ "with_gpc": True,
+ "with_freetype": True,
+ "with_agg2d": True,
+ "with_agg2d_freetype": True,
+ "with_platform": True,
+ "with_controls": True,
}
- def validate(self):
- if self.settings.os not in ("Windows", "Linux"):
- raise ConanInvalidConfiguration("OS is not supported")
- if self.options.shared:
- raise ConanInvalidConfiguration("Invalid configuration")
-
def config_options(self):
if self.settings.os == "Windows":
del self.options.fPIC
@@ -51,31 +45,37 @@ def config_options(self):
def configure(self):
self.options.rm_safe("fPIC")
- def source(self):
- get(self, **self.conan_data["sources"][self.version], strip_root=True)
-
def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
if self.options.with_freetype:
- self.requires('freetype/2.13.0')
+ self.requires("freetype/2.13.0")
if self.options.with_platform and self.settings.os in ["Linux"]:
self.requires("xorg/system")
+ def validate(self):
+ if self.settings.os not in ("Windows", "Linux"):
+ raise ConanInvalidConfiguration("OS is not supported")
+ if self.options.shared:
+ raise ConanInvalidConfiguration("Invalid configuration")
+
+ def source(self):
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
def generate(self):
tc = CMakeToolchain(self)
- tc.variables['agg_USE_EXPAT'] = False
- tc.variables['agg_USE_SDL_PLATFORM'] = False
- tc.variables['agg_BUILD_DEMO'] = False
- tc.variables['agg_BUILD_EXAMPLES'] = False
-
- tc.variables['agg_USE_GPC'] = self.options.with_gpc
- tc.variables['agg_USE_FREETYPE'] = self.options.with_freetype
- tc.variables['agg_USE_AGG2D'] = self.options.with_agg2d
- tc.variables['agg_USE_AGG2D_FREETYPE'] = self.options.with_agg2d_freetype
- tc.variables['agg_BUILD_PLATFORM'] = self.options.with_platform
- tc.variables['agg_BUILD_CONTROLS'] = self.options.with_controls
+ tc.variables["agg_USE_EXPAT"] = False
+ tc.variables["agg_USE_SDL_PLATFORM"] = False
+ tc.variables["agg_BUILD_DEMO"] = False
+ tc.variables["agg_BUILD_EXAMPLES"] = False
+
+ tc.variables["agg_USE_GPC"] = self.options.with_gpc
+ tc.variables["agg_USE_FREETYPE"] = self.options.with_freetype
+ tc.variables["agg_USE_AGG2D"] = self.options.with_agg2d
+ tc.variables["agg_USE_AGG2D_FREETYPE"] = self.options.with_agg2d_freetype
+ tc.variables["agg_BUILD_PLATFORM"] = self.options.with_platform
+ tc.variables["agg_BUILD_CONTROLS"] = self.options.with_controls
tc.generate()
@@ -95,12 +95,11 @@ def package(self):
rmdir(self, os.path.join(self.package_folder, "lib", "cmake"))
def package_info(self):
-
self.cpp_info.set_property("cmake_file_name", "agg")
- self.cpp_info.filenames["cmake_find_package"]="agg"
- self.cpp_info.filenames["cmake_find_package_multi"]="agg"
- self.cpp_info.names["cmake_find_package"]="agg"
- self.cpp_info.names["cmake_find_package_multi"]="agg"
+ self.cpp_info.filenames["cmake_find_package"] = "agg"
+ self.cpp_info.filenames["cmake_find_package_multi"] = "agg"
+ self.cpp_info.names["cmake_find_package"] = "agg"
+ self.cpp_info.names["cmake_find_package_multi"] = "agg"
self.cpp_info.components["agg"].set_property("cmake_target_name", "agg::agg")
self.cpp_info.components["agg"].libs = ["agg"]
@@ -109,33 +108,31 @@ def package_info(self):
if self.options.with_freetype:
self.cpp_info.components["fontfreetype"].set_property("cmake_target_name", "agg::fontfreetype")
self.cpp_info.components["fontfreetype"].libs = ["aggfontfreetype"]
- self.cpp_info.components["fontfreetype"].includedirs = [os.path.join("include", "agg","fontfreetype")]
+ self.cpp_info.components["fontfreetype"].includedirs = [os.path.join("include", "agg", "fontfreetype")]
self.cpp_info.components["fontfreetype"].requires = ["agg", "freetype::freetype"]
-
+
if self.options.with_gpc:
self.cpp_info.components["gpc"].set_property("cmake_target_name", "agg::gpc")
- self.cpp_info.components["gpc"].libs = [ "agggpc"]
- self.cpp_info.components["gpc"].includedirs = [os.path.join("include", "agg","gpc")]
-
+ self.cpp_info.components["gpc"].libs = ["agggpc"]
+ self.cpp_info.components["gpc"].includedirs = [os.path.join("include", "agg", "gpc")]
if self.options.with_agg2d:
self.cpp_info.components["2d"].set_property("cmake_target_name", "agg::2d")
self.cpp_info.components["2d"].libs = ["agg2d"]
- self.cpp_info.components["2d"].includedirs = [os.path.join("include", "agg","2d")]
+ self.cpp_info.components["2d"].includedirs = [os.path.join("include", "agg", "2d")]
self.cpp_info.components["2d"].requires = ["agg"]
if self.options.with_agg2d_freetype:
self.cpp_info.components["2d"].requires = ["agg", "fontfreetype"]
if self.options.with_platform:
-
self.cpp_info.components["platform"].set_property("cmake_target_name", "agg::platform")
self.cpp_info.components["platform"].libs = ["aggplatform"]
- self.cpp_info.components["platform"].includedirs = [os.path.join("include", "agg","platform")]
+ self.cpp_info.components["platform"].includedirs = [os.path.join("include", "agg", "platform")]
if self.settings.os in ["Linux"]:
self.cpp_info.components["platform"].requires = ["xorg::xorg", "agg"]
if self.options.with_controls:
self.cpp_info.components["controls"].set_property("cmake_target_name", "agg::controls")
self.cpp_info.components["controls"].libs = ["aggctrl"]
- self.cpp_info.components["controls"].includedirs = [os.path.join("include", "agg","ctrl")]
+ self.cpp_info.components["controls"].includedirs = [os.path.join("include", "agg", "ctrl")]
self.cpp_info.components["controls"].requires = ["agg"]
diff --git a/recipes/aggeom-agg/all/test_v1_package/CMakeLists.txt b/recipes/aggeom-agg/all/test_v1_package/CMakeLists.txt
index 0d20897301b68b..91630d79f4abb3 100644
--- a/recipes/aggeom-agg/all/test_v1_package/CMakeLists.txt
+++ b/recipes/aggeom-agg/all/test_v1_package/CMakeLists.txt
@@ -1,8 +1,8 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(test_package)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)
-add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package
- ${CMAKE_CURRENT_BINARY_DIR}/test_package)
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/aggeom-agg/config.yml b/recipes/aggeom-agg/config.yml
index cfb13334b8b03d..54947af157488b 100644
--- a/recipes/aggeom-agg/config.yml
+++ b/recipes/aggeom-agg/config.yml
@@ -1,3 +1,5 @@
versions:
"2.6.1":
folder: "all"
+ "2.7.1":
+ folder: "all"
diff --git a/recipes/alembic/all/conandata.yml b/recipes/alembic/all/conandata.yml
index bf7fb209af8bcf..c09b44adc0b83b 100644
--- a/recipes/alembic/all/conandata.yml
+++ b/recipes/alembic/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.8.5":
+ url: "https://github.com/alembic/alembic/archive/1.8.5.tar.gz"
+ sha256: "180a12f08d391cd89f021f279dbe3b5423b1db751a9898540c8059a45825c2e9"
"1.8.3":
url: "https://github.com/alembic/alembic/archive/1.8.3.tar.gz"
sha256: "b0bc74833bff118a869e81e6acb810a58797e77ef63143954b2f8e817c7f65cb"
@@ -6,6 +9,10 @@ sources:
url: "https://github.com/alembic/alembic/archive/refs/tags/1.8.2.tar.gz"
sha256: "3f1c466ee1600578689b32b1f2587066d3259704ec7ed1fcf80c324d01274f48"
patches:
+ "1.8.5":
+ - patch_file: "patches/1.8.5-0001-fix-cmake.patch"
+ patch_description: "Disable a line in a CMakeLists.txt to build with shared=True"
+ patch_type: "portability"
"1.8.3":
- patch_file: "patches/1.8.2-0001-fix-cmake.patch"
"1.8.2":
diff --git a/recipes/alembic/all/conanfile.py b/recipes/alembic/all/conanfile.py
index 73264829b63a37..96e5f773727fd8 100644
--- a/recipes/alembic/all/conanfile.py
+++ b/recipes/alembic/all/conanfile.py
@@ -15,6 +15,7 @@ class AlembicConan(ConanFile):
description = "Open framework for storing and sharing scene data."
topics = ("3d", "scene", "geometry", "graphics")
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
@@ -42,9 +43,9 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("imath/3.1.6")
+ self.requires("imath/3.1.9", transitive_headers=True)
if self.options.with_hdf5:
- self.requires("hdf5/1.14.0")
+ self.requires("hdf5/1.14.1")
def validate(self):
if self.settings.compiler.get_safe("cppstd"):
diff --git a/recipes/alembic/all/patches/1.8.5-0001-fix-cmake.patch b/recipes/alembic/all/patches/1.8.5-0001-fix-cmake.patch
new file mode 100644
index 00000000000000..3ebad2885a6413
--- /dev/null
+++ b/recipes/alembic/all/patches/1.8.5-0001-fix-cmake.patch
@@ -0,0 +1,26 @@
+--- a/lib/Alembic/CMakeLists.txt
++++ b/lib/Alembic/CMakeLists.txt
+@@ -68,7 +68,6 @@ IF (ALEMBIC_SHARED_LIBS)
+
+ if (ALEMBIC_USING_IMATH_3)
+ if (APPLE OR UNIX)
+- set_target_properties(Alembic PROPERTIES INSTALL_RPATH "$")
+ endif ()
+ endif ()
+ ENDIF()
+@@ -87,9 +87,9 @@ TARGET_LINK_LIBRARIES(Alembic
+ SET( ALEMBIC_LIB_INSTALL_DIR lib CACHE STRING "Where to install the Alembic libs")
+ INSTALL(TARGETS Alembic
+ EXPORT AlembicTargets
+- LIBRARY DESTINATION ${ALEMBIC_LIB_INSTALL_DIR}
+- ARCHIVE DESTINATION ${ALEMBIC_LIB_INSTALL_DIR}
+- RUNTIME DESTINATION ${ALEMBIC_LIB_INSTALL_DIR})
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+ #-******************************************************************************
+ # PACKAGE EXPORTS
+--
+2.41.0
+
diff --git a/recipes/alembic/all/test_v1_package/CMakeLists.txt b/recipes/alembic/all/test_v1_package/CMakeLists.txt
index 0d20897301b68b..b21cc49efde95c 100644
--- a/recipes/alembic/all/test_v1_package/CMakeLists.txt
+++ b/recipes/alembic/all/test_v1_package/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(test_package)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
diff --git a/recipes/alembic/config.yml b/recipes/alembic/config.yml
index 68197c279a4ee3..d20dd33414a44f 100644
--- a/recipes/alembic/config.yml
+++ b/recipes/alembic/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.8.5":
+ folder: all
"1.8.3":
folder: all
"1.8.2":
diff --git a/recipes/angelscript/all/conandata.yml b/recipes/angelscript/all/conandata.yml
index 1dec7ac1d3e717..edfe7e005b8552 100644
--- a/recipes/angelscript/all/conandata.yml
+++ b/recipes/angelscript/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "2.36.1":
+ url: "https://www.angelcode.com/angelscript/sdk/files/angelscript_2.36.1.zip"
+ sha256: "58bb749af9c7e386304705f4e6e627ae41dfe03e0b6a73c3d0d2e017c4fc948f"
"2.36.0":
url: "https://www.angelcode.com/angelscript/sdk/files/angelscript_2.36.0.zip"
sha256: "33f95f7597bc0d88b097d35e7b1320d15419ffc5779851d9d2a6cccec57811b3"
diff --git a/recipes/angelscript/config.yml b/recipes/angelscript/config.yml
index 22190418b16a22..f3cbb4fedf4543 100644
--- a/recipes/angelscript/config.yml
+++ b/recipes/angelscript/config.yml
@@ -1,4 +1,6 @@
versions:
+ "2.36.1":
+ folder: all
"2.36.0":
folder: all
"2.35.1":
diff --git a/recipes/aravis/all/conanfile.py b/recipes/aravis/all/conanfile.py
index aaa8cad5fb1b43..6ccff17b4bf8ee 100644
--- a/recipes/aravis/all/conanfile.py
+++ b/recipes/aravis/all/conanfile.py
@@ -1,6 +1,6 @@
from conan import ConanFile
from conan.errors import ConanInvalidConfiguration
-from conan.tools.apple import fix_apple_shared_install_name
+from conan.tools.apple import fix_apple_shared_install_name, is_apple_os
from conan.tools.build import cross_building
from conan.tools.env import VirtualBuildEnv, VirtualRunEnv
from conan.tools.files import apply_conandata_patches, chdir, copy, export_conandata_patches, get, rename, rm, rmdir
@@ -12,16 +12,18 @@
import os
import glob
-required_conan_version = ">=1.53.0"
+required_conan_version = ">=1.56.0 <2 || >=2.0.6"
class AravisConan(ConanFile):
name = "aravis"
+ description = "A vision library for genicam based cameras."
license = "LGPL-2.1-or-later"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/AravisProject/aravis"
- description = "A vision library for genicam based cameras."
topics = ("usb", "camera")
+
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
@@ -48,7 +50,7 @@ def export_sources(self):
def config_options(self):
if self.settings.os == "Windows":
del self.options.fPIC
- if self.settings.os != "Linux":
+ if self.settings.os not in ["Linux", "FreeBSD"]:
del self.options.packet_socket
def configure(self):
@@ -63,13 +65,14 @@ def layout(self):
basic_layout(self, src_folder="src")
def requirements(self):
- self.requires("glib/2.75.2")
- self.requires("libxml2/2.10.3")
+ # glib-object.h and gio/gio.h are used in several public headers
+ self.requires("glib/2.77.2", transitive_headers=True)
+ self.requires("libxml2/2.11.4")
self.requires("zlib/1.2.13")
if self.options.usb:
self.requires("libusb/1.0.26")
if self.options.gst_plugin:
- self.requires("gstreamer/1.19.2")
+ self.requires("gstreamer/1.22.3")
self.requires("gst-plugins-base/1.19.2")
def validate(self):
@@ -77,18 +80,17 @@ def validate(self):
raise ConanInvalidConfiguration("Static runtime is not supported on Windows due to GLib issues")
if self.options.shared and not self.dependencies["glib"].options.shared:
raise ConanInvalidConfiguration("Shared Aravis cannot link to static GLib")
- if self.settings.os == "Macos" and self.dependencies["glib"].options.shared:
+ if is_apple_os(self) and self.dependencies["glib"].options.shared:
raise ConanInvalidConfiguration(
"macOS builds are disabled when glib is shared until "
"conan-io/conan#7324 gets merged to fix macOS SIP issue #8443"
)
def build_requirements(self):
- self.tool_requires("meson/1.0.0")
- if hasattr(self, "settings_build") and cross_building(self):
- self.tool_requires("glib/2.75.2")
+ self.tool_requires("meson/1.2.1")
+ self.tool_requires("glib/")
if not self.conf.get("tools.gnu:pkg_config", check_type=str):
- self.tool_requires("pkgconf/1.9.3")
+ self.tool_requires("pkgconf/1.9.5")
if self.options.introspection:
self.tool_requires("gobject-introspection/1.72.0")
diff --git a/recipes/aravis/all/test_package/CMakeLists.txt b/recipes/aravis/all/test_package/CMakeLists.txt
index 8a5d8c220194f0..f8a36c47767ce3 100644
--- a/recipes/aravis/all/test_package/CMakeLists.txt
+++ b/recipes/aravis/all/test_package/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(test_package LANGUAGES C)
find_package(aravis REQUIRED CONFIG)
diff --git a/recipes/aravis/all/test_package/test_package.c b/recipes/aravis/all/test_package/test_package.c
index 9a63b9ea3a8648..762afa0db71a78 100644
--- a/recipes/aravis/all/test_package/test_package.c
+++ b/recipes/aravis/all/test_package/test_package.c
@@ -1,9 +1,8 @@
#include
-#include
#include
+#include
-int main(int argc, char **argv)
-{
+int main() {
printf("Enumerating Aravis interfaces:\n");
unsigned int if_count = arv_get_n_interfaces();
for (unsigned int if_index = 0; if_index < if_count; if_index++) {
diff --git a/recipes/aravis/all/test_v1_package/CMakeLists.txt b/recipes/aravis/all/test_v1_package/CMakeLists.txt
index 0d20897301b68b..91630d79f4abb3 100644
--- a/recipes/aravis/all/test_v1_package/CMakeLists.txt
+++ b/recipes/aravis/all/test_v1_package/CMakeLists.txt
@@ -1,8 +1,8 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(test_package)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)
-add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package
- ${CMAKE_CURRENT_BINARY_DIR}/test_package)
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/archicad-apidevkit/all/conanfile.py b/recipes/archicad-apidevkit/all/conanfile.py
index 55e0ec99e9a6b8..2cdfa85c589273 100644
--- a/recipes/archicad-apidevkit/all/conanfile.py
+++ b/recipes/archicad-apidevkit/all/conanfile.py
@@ -1,7 +1,7 @@
from conan import ConanFile
from conan.tools.files import copy, get
+from conan.tools.layout import basic_layout
from conan.tools.microsoft import check_min_vs, is_msvc
-from conan.tools.scm import Version
from conan.errors import ConanInvalidConfiguration
import os
@@ -14,11 +14,20 @@ class ArchicadApidevkitConan(ConanFile):
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://archicadapi.graphisoft.com/"
license = "LicenseRef-LICENSE"
- settings = "os", "compiler", "arch", "build_type"
+ topics = ("api", "archicad", "development", "pre-built")
+
+ package_type = "application"
+ settings = "os", "arch", "compiler", "build_type"
no_copy_source = True
- topics = "api", "archicad", "development"
short_paths = True
+ def layout(self):
+ basic_layout(self, src_folder="src")
+
+ def package_id(self):
+ del self.info.settings.compiler
+ del self.info.settings.build_type
+
def validate(self):
if self.settings.build_type == "Debug":
raise ConanInvalidConfiguration("Debug configuration is not supported")
@@ -31,9 +40,6 @@ def validate(self):
if not str(self.settings.arch) in ("x86_64"):
raise ConanInvalidConfiguration(
f"{self.ref} is not supported yet.")
- if self.settings.compiler == "Visual Studio" and Version(self.settings.compiler.version) < "16":
- raise ConanInvalidConfiguration(
- "This recipe does not support this compiler version")
def build(self):
devkit, licenses = self.conan_data["sources"][self.version][str(self.settings.os)][str(self.settings.arch)]
diff --git a/recipes/args-parser/all/conandata.yml b/recipes/args-parser/all/conandata.yml
index 787c510a62b539..427c4c05d81dda 100644
--- a/recipes/args-parser/all/conandata.yml
+++ b/recipes/args-parser/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "6.3.3":
+ url: "https://github.com/igormironchik/args-parser/archive/refs/tags/6.3.3.tar.gz"
+ sha256: "67867d7ab624a8c2f391230c54c37830e6127f7f5c716ff634165f674d876b64"
"6.3.2":
url: "https://github.com/igormironchik/args-parser/archive/refs/tags/6.3.2.tar.gz"
sha256: "cd89549a9f5b5cfd16db2f8b9c93fd164cea334147c58890d5322365789e05e5"
diff --git a/recipes/args-parser/config.yml b/recipes/args-parser/config.yml
index 08a70490fa0abe..b67bad0e21e0f9 100644
--- a/recipes/args-parser/config.yml
+++ b/recipes/args-parser/config.yml
@@ -1,4 +1,6 @@
versions:
+ "6.3.3":
+ folder: all
"6.3.2":
folder: all
"6.3.1":
diff --git a/recipes/arrow/all/conandata.yml b/recipes/arrow/all/conandata.yml
index 772cdfef9c3c2d..5dcac7a820434e 100644
--- a/recipes/arrow/all/conandata.yml
+++ b/recipes/arrow/all/conandata.yml
@@ -1,4 +1,10 @@
sources:
+ "13.0.0":
+ url: "https://www.apache.org/dyn/closer.lua/arrow/arrow-13.0.0/apache-arrow-13.0.0.tar.gz?action=download"
+ sha256: "35dfda191262a756be934eef8afee8d09762cad25021daa626eb249e251ac9e6"
+ "12.0.1":
+ url: "https://www.apache.org/dyn/closer.lua/arrow/arrow-12.0.1/apache-arrow-12.0.1.tar.gz?action=download"
+ sha256: "3481c411393aa15c75e88d93cf8315faf7f43e180fe0790128d3840d417de858"
"12.0.0":
url: "https://www.apache.org/dyn/closer.lua/arrow/arrow-12.0.0/apache-arrow-12.0.0.tar.gz?action=download"
sha256: "ddd8347882775e53af7d0965a1902b7d8fcd0a030fd14f783d4f85e821352d52"
diff --git a/recipes/arrow/all/conanfile.py b/recipes/arrow/all/conanfile.py
index 50780c591a6e71..a7f22fcf6eceef 100644
--- a/recipes/arrow/all/conanfile.py
+++ b/recipes/arrow/all/conanfile.py
@@ -49,8 +49,9 @@ class ArrowConan(ConanFile):
"with_glog": ["auto", True, False],
"with_grpc": ["auto", True, False],
"with_jemalloc": ["auto", True, False],
- "with_mimalloc": ["auto", True, False],
+ "with_mimalloc": [True, False],
"with_json": [True, False],
+ "with_thrift": ["auto", True, False],
"with_llvm": ["auto", True, False],
"with_openssl": ["auto", True, False],
"with_opentelemetry": [True, False],
@@ -99,6 +100,7 @@ class ArrowConan(ConanFile):
"with_glog": "auto",
"with_grpc": "auto",
"with_json": False,
+ "with_thrift": "auto",
"with_llvm": "auto",
"with_openssl": "auto",
"with_opentelemetry": False,
@@ -155,6 +157,22 @@ def config_options(self):
if Version(self.version) < "8.0.0":
del self.options.substrait
+ self.options.parquet = self._parquet()
+ self.options.compute = self._compute()
+ self.options.dataset_modules = self._dataset_modules()
+ self.options.with_boost = self._with_boost()
+ self.options.with_flight_rpc = self._with_flight_rpc()
+ self.options.with_gflags = self._with_gflags()
+ self.options.with_glog = self._with_glog()
+ self.options.with_grpc = self._with_grpc()
+ self.options.with_jemalloc = self._with_jemalloc()
+ self.options.with_thrift = self._with_thrift()
+ self.options.with_llvm = self._with_llvm()
+ self.options.with_openssl = self._with_openssl()
+ self.options.with_protobuf = self._with_protobuf()
+ self.options.with_re2 = self._with_re2()
+ self.options.with_utf8proc = self._with_utf8proc()
+
def configure(self):
if self.options.shared:
self.options.rm_safe("fPIC")
@@ -162,32 +180,32 @@ def configure(self):
def layout(self):
cmake_layout(self, src_folder="src")
- def _compute(self, required=False):
- if required or self.options.compute == "auto":
+ def _compute(self):
+ if self.options.compute == "auto":
return bool(self._parquet() or self._dataset_modules()) or bool(self.options.get_safe("substrait", False))
else:
return bool(self.options.compute)
- def _parquet(self, required=False):
- if required or self.options.parquet == "auto":
+ def _parquet(self):
+ if self.options.parquet == "auto":
return bool(self.options.get_safe("substrait", False))
else:
return bool(self.options.parquet)
- def _dataset_modules(self, required=False):
- if required or self.options.dataset_modules == "auto":
+ def _dataset_modules(self):
+ if self.options.dataset_modules == "auto":
return bool(self.options.get_safe("substrait", False))
else:
return bool(self.options.dataset_modules)
- def _with_jemalloc(self, required=False):
- if required or self.options.with_jemalloc == "auto":
+ def _with_jemalloc(self):
+ if self.options.with_jemalloc == "auto":
return bool("BSD" in str(self.settings.os))
else:
return bool(self.options.with_jemalloc)
- def _with_re2(self, required=False):
- if required or self.options.with_re2 == "auto":
+ def _with_re2(self):
+ if self.options.with_re2 == "auto":
if self.options.gandiva or self.options.parquet:
return True
if Version(self) >= "7.0.0" and (self._compute() or self._dataset_modules()):
@@ -196,38 +214,38 @@ def _with_re2(self, required=False):
else:
return bool(self.options.with_re2)
- def _with_protobuf(self, required=False):
- if required or self.options.with_protobuf == "auto":
+ def _with_protobuf(self):
+ if self.options.with_protobuf == "auto":
return bool(self.options.gandiva or self._with_flight_rpc() or self.options.with_orc or self.options.get_safe("substrait", False))
else:
return bool(self.options.with_protobuf)
- def _with_flight_rpc(self, required=False):
- if required or self.options.with_flight_rpc == "auto":
+ def _with_flight_rpc(self):
+ if self.options.with_flight_rpc == "auto":
return bool(self.options.get_safe("with_flight_sql", False))
else:
return bool(self.options.with_flight_rpc)
- def _with_gflags(self, required=False):
- if required or self.options.with_gflags == "auto":
+ def _with_gflags(self):
+ if self.options.with_gflags == "auto":
return bool(self._with_glog() or self._with_grpc())
else:
return bool(self.options.with_gflags)
- def _with_glog(self, required=False):
- if required or self.options.with_glog == "auto":
+ def _with_glog(self):
+ if self.options.with_glog == "auto":
return False
else:
return bool(self.options.with_glog)
- def _with_grpc(self, required=False):
- if required or self.options.with_grpc == "auto":
+ def _with_grpc(self):
+ if self.options.with_grpc == "auto":
return self._with_flight_rpc()
else:
return bool(self.options.with_grpc)
- def _with_boost(self, required=False):
- if required or self.options.with_boost == "auto":
+ def _with_boost(self):
+ if self.options.with_boost == "auto":
if self.options.gandiva:
return True
version = Version(self.version)
@@ -241,29 +259,31 @@ def _with_boost(self, required=False):
else:
return bool(self.options.with_boost)
- def _with_thrift(self, required=False):
- # No self.options.with_thift exists
- return bool(required or self._parquet())
+ def _with_thrift(self):
+ if self.options.with_thrift == "auto":
+ return bool(self._parquet())
+ else:
+ return bool(self.options.with_thrift)
- def _with_utf8proc(self, required=False):
- if required or self.options.with_utf8proc == "auto":
+ def _with_utf8proc(self):
+ if self.options.with_utf8proc == "auto":
return bool(self._compute() or self.options.gandiva)
else:
return bool(self.options.with_utf8proc)
- def _with_llvm(self, required=False):
- if required or self.options.with_llvm == "auto":
+ def _with_llvm(self):
+ if self.options.with_llvm == "auto":
return bool(self.options.gandiva)
else:
return bool(self.options.with_llvm)
- def _with_openssl(self, required=False):
- if required or self.options.with_openssl == "auto":
+ def _with_openssl(self):
+ if self.options.with_openssl == "auto":
return bool(self.options.encryption or self._with_flight_rpc() or self.options.with_s3)
else:
return bool(self.options.with_openssl)
- def _with_rapidjson(self):
+ def _requires_rapidjson(self):
if self.options.with_json:
return True
if Version(self.version) >= "7.0.0" and self.options.encryption:
@@ -271,29 +291,29 @@ def _with_rapidjson(self):
return False
def requirements(self):
- if self._with_thrift():
+ if self.options.with_thrift:
self.requires("thrift/0.17.0")
- if self._with_protobuf():
+ if self.options.with_protobuf:
self.requires("protobuf/3.21.9")
- if self._with_jemalloc():
+ if self.options.with_jemalloc:
self.requires("jemalloc/5.3.0")
if self.options.with_mimalloc:
self.requires("mimalloc/1.7.6")
- if self._with_boost():
- self.requires("boost/1.81.0")
- if self._with_gflags():
+ if self.options.with_boost:
+ self.requires("boost/1.82.0")
+ if self.options.with_gflags:
self.requires("gflags/2.2.2")
- if self._with_glog():
+ if self.options.with_glog:
self.requires("glog/0.6.0")
if self.options.get_safe("with_gcs"):
self.requires("google-cloud-cpp/1.40.1")
- if self._with_grpc():
+ if self.options.with_grpc:
self.requires("grpc/1.50.0")
- if self._with_rapidjson():
+ if self._requires_rapidjson():
self.requires("rapidjson/1.1.0")
- if self._with_llvm():
+ if self.options.with_llvm:
self.requires("llvm-core/13.0.0")
- if self._with_openssl():
+ if self.options.with_openssl:
# aws-sdk-cpp requires openssl/1.1.1. it uses deprecated functions in openssl/3.0.0
if self.options.with_s3:
self.requires("openssl/1.1.1t")
@@ -319,24 +339,20 @@ def requirements(self):
self.requires("zlib/1.2.13")
if self.options.with_zstd:
self.requires("zstd/1.5.2")
- if self._with_re2():
+ if self.options.with_re2:
self.requires("re2/20220601")
- if self._with_utf8proc():
+ if self.options.with_utf8proc:
self.requires("utf8proc/2.8.0")
if self.options.with_backtrace:
self.requires("libbacktrace/cci.20210118")
- def package_id(self):
- self.info.options.with_gflags = self._with_gflags()
- self.info.options.with_protobuf = self._with_protobuf()
- self.info.options.with_re2 = self._with_re2()
- self.info.options.with_jemalloc = self._with_jemalloc()
- self.info.options.with_openssl = self._with_openssl()
- self.info.options.with_boost = self._with_boost()
- self.info.options.with_glog = self._with_glog()
- self.info.options.with_grpc = self._with_grpc()
-
def validate(self):
+ # validate options with 'auto' as default value
+ auto_options = ["parquet", "compute", "dataset_modules", "with_boost", "with_flight_rpc", "with_gflags", "with_glog",
+ "with_grpc", "with_jemalloc", "with_thrift", "with_llvm", "with_openssl", "with_protobuf", "with_re2", "with_utf8proc"]
+ for option in auto_options:
+ assert "auto" not in str(self.options.get_safe(option)), f"Option '{option}' contains 'auto' value, wich is not allowed. Generally the final value should be True/False"
+
if self.settings.compiler.get_safe("cppstd"):
check_min_cppstd(self, self._min_cppstd)
@@ -346,32 +362,8 @@ def validate(self):
f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support."
)
- if self.options.compute == False and not self._compute(True):
- raise ConanInvalidConfiguration("compute options is required (or choose auto)")
- if self.options.parquet == False and self._parquet(True):
- raise ConanInvalidConfiguration("parquet options is required (or choose auto)")
- if self.options.dataset_modules == False and self._dataset_modules(True):
- raise ConanInvalidConfiguration("dataset_modules options is required (or choose auto)")
if self.options.get_safe("skyhook", False):
raise ConanInvalidConfiguration("CCI has no librados recipe (yet)")
- if self.options.with_jemalloc == False and self._with_jemalloc(True):
- raise ConanInvalidConfiguration("with_jemalloc option is required (or choose auto)")
- if self.options.with_re2 == False and self._with_re2(True):
- raise ConanInvalidConfiguration("with_re2 option is required (or choose auto)")
- if self.options.with_protobuf == False and self._with_protobuf(True):
- raise ConanInvalidConfiguration("with_protobuf option is required (or choose auto)")
- if self.options.with_gflags == False and self._with_gflags(True):
- raise ConanInvalidConfiguration("with_gflags options is required (or choose auto)")
- if self.options.with_flight_rpc == False and self._with_flight_rpc(True):
- raise ConanInvalidConfiguration("with_flight_rpc options is required (or choose auto)")
- if self.options.with_grpc == False and self._with_grpc(True):
- raise ConanInvalidConfiguration("with_grpc options is required (or choose auto)")
- if self.options.with_boost == False and self._with_boost(True):
- raise ConanInvalidConfiguration("with_boost options is required (or choose auto)")
- if self.options.with_openssl == False and self._with_openssl(True):
- raise ConanInvalidConfiguration("with_openssl options is required (or choose auto)")
- if self.options.with_llvm == False and self._with_llvm(True):
- raise ConanInvalidConfiguration("with_llvm options is required (or choose auto)")
if self.options.with_cuda:
raise ConanInvalidConfiguration("CCI has no cuda recipe (yet)")
if self.options.with_orc:
@@ -379,7 +371,7 @@ def validate(self):
if self.options.with_s3 and not self.dependencies["aws-sdk-cpp"].options.config:
raise ConanInvalidConfiguration("arrow:with_s3 requires aws-sdk-cpp:config is True.")
- if self.options.shared and self._with_jemalloc():
+ if self.options.shared and self.options.with_jemalloc:
if self.dependencies["jemalloc"].options.enable_cxx:
raise ConanInvalidConfiguration("jemmalloc.enable_cxx of a static jemalloc must be disabled")
@@ -404,10 +396,10 @@ def generate(self):
tc.variables["ARROW_DEPENDENCY_SOURCE"] = "SYSTEM"
tc.variables["ARROW_PACKAGE_KIND"] = "conan" # See https://github.com/conan-io/conan-center-index/pull/14903/files#r1057938314 for details
tc.variables["ARROW_GANDIVA"] = bool(self.options.gandiva)
- tc.variables["ARROW_PARQUET"] = self._parquet()
+ tc.variables["ARROW_PARQUET"] = self.options.parquet
tc.variables["ARROW_SUBSTRAIT"] = bool(self.options.get_safe("substrait", False))
tc.variables["ARROW_ACERO"] = bool(self.options.acero)
- tc.variables["ARROW_DATASET"] = self._dataset_modules()
+ tc.variables["ARROW_DATASET"] = self.options.dataset_modules
tc.variables["ARROW_FILESYSTEM"] = bool(self.options.filesystem_layer)
tc.variables["PARQUET_REQUIRE_ENCRYPTION"] = bool(self.options.encryption)
tc.variables["ARROW_HDFS"] = bool(self.options.hdfs_bridgs)
@@ -415,12 +407,12 @@ def generate(self):
tc.variables["ARROW_BUILD_SHARED"] = bool(self.options.shared)
tc.variables["ARROW_BUILD_STATIC"] = not bool(self.options.shared)
tc.variables["ARROW_NO_DEPRECATED_API"] = not bool(self.options.deprecated)
- tc.variables["ARROW_FLIGHT"] = self._with_flight_rpc()
+ tc.variables["ARROW_FLIGHT"] = self.options.with_flight_rpc
tc.variables["ARROW_FLIGHT_SQL"] = bool(self.options.get_safe("with_flight_sql", False))
- tc.variables["ARROW_COMPUTE"] = self._compute()
+ tc.variables["ARROW_COMPUTE"] = self.options.compute
tc.variables["ARROW_CSV"] = bool(self.options.with_csv)
tc.variables["ARROW_CUDA"] = bool(self.options.with_cuda)
- tc.variables["ARROW_JEMALLOC"] = self._with_jemalloc()
+ tc.variables["ARROW_JEMALLOC"] = self.options.with_jemalloc
tc.variables["jemalloc_SOURCE"] = "SYSTEM"
tc.variables["ARROW_MIMALLOC"] = bool(self.options.with_mimalloc)
tc.variables["ARROW_JSON"] = bool(self.options.with_json)
@@ -428,13 +420,13 @@ def generate(self):
tc.variables["ARROW_GCS"] = bool(self.options.get_safe("with_gcs", False))
tc.variables["BOOST_SOURCE"] = "SYSTEM"
tc.variables["Protobuf_SOURCE"] = "SYSTEM"
- if self._with_protobuf():
+ if self.options.with_protobuf:
tc.variables["ARROW_PROTOBUF_USE_SHARED"] = bool(self.dependencies["protobuf"].options.shared)
tc.variables["gRPC_SOURCE"] = "SYSTEM"
- if self._with_grpc():
+ if self.options.with_grpc:
tc.variables["ARROW_GRPC_USE_SHARED"] = bool(self.dependencies["grpc"].options.shared)
- tc.variables["ARROW_USE_GLOG"] = self._with_glog()
+ tc.variables["ARROW_USE_GLOG"] = self.options.with_glog
tc.variables["GLOG_SOURCE"] = "SYSTEM"
tc.variables["ARROW_WITH_BACKTRACE"] = bool(self.options.with_backtrace)
tc.variables["ARROW_WITH_BROTLI"] = bool(self.options.with_brotli)
@@ -442,7 +434,7 @@ def generate(self):
if self.options.with_brotli:
tc.variables["ARROW_BROTLI_USE_SHARED"] = bool(self.dependencies["brotli"].options.shared)
tc.variables["gflags_SOURCE"] = "SYSTEM"
- if self._with_gflags():
+ if self.options.with_gflags:
tc.variables["ARROW_GFLAGS_USE_SHARED"] = bool(self.dependencies["gflags"].options.shared)
tc.variables["ARROW_WITH_BZ2"] = bool(self.options.with_bz2)
tc.variables["BZip2_SOURCE"] = "SYSTEM"
@@ -471,16 +463,16 @@ def generate(self):
if self.options.with_zstd:
tc.variables["ARROW_ZSTD_USE_SHARED"] = bool(self.dependencies["zstd"].options.shared)
tc.variables["ORC_SOURCE"] = "SYSTEM"
- tc.variables["ARROW_WITH_THRIFT"] = self._with_thrift()
+ tc.variables["ARROW_WITH_THRIFT"] = bool(self.options.with_thrift)
tc.variables["Thrift_SOURCE"] = "SYSTEM"
- if self._with_thrift():
+ if self.options.with_thrift:
tc.variables["THRIFT_VERSION"] = bool(self.dependencies["thrift"].ref.version) # a recent thrift does not require boost
tc.variables["ARROW_THRIFT_USE_SHARED"] = bool(self.dependencies["thrift"].options.shared)
- tc.variables["ARROW_USE_OPENSSL"] = self._with_openssl()
- if self._with_openssl():
+ tc.variables["ARROW_USE_OPENSSL"] = self.options.with_openssl
+ if self.options.with_openssl:
tc.variables["OPENSSL_ROOT_DIR"] = self.dependencies["openssl"].package_folder.replace("\\", "/")
tc.variables["ARROW_OPENSSL_USE_SHARED"] = bool(self.dependencies["openssl"].options.shared)
- if self._with_boost():
+ if self.options.with_boost:
tc.variables["ARROW_USE_BOOST"] = True
tc.variables["ARROW_BOOST_USE_SHARED"] = bool(self.dependencies["boost"].options.shared)
tc.variables["ARROW_S3"] = bool(self.options.with_s3)
@@ -493,15 +485,15 @@ def generate(self):
tc.variables["ARROW_ENABLE_TIMING_TESTS"] = False
tc.variables["ARROW_BUILD_BENCHMARKS"] = False
tc.variables["LLVM_SOURCE"] = "SYSTEM"
- tc.variables["ARROW_WITH_UTF8PROC"] = self._with_utf8proc()
- tc.variables["ARROW_BOOST_REQUIRED"] = self._with_boost()
+ tc.variables["ARROW_WITH_UTF8PROC"] = self.options.with_utf8proc
+ tc.variables["ARROW_BOOST_REQUIRED"] = self.options.with_boost
tc.variables["utf8proc_SOURCE"] = "SYSTEM"
- if self._with_utf8proc():
+ if self.options.with_utf8proc:
tc.variables["ARROW_UTF8PROC_USE_SHARED"] = bool(self.dependencies["utf8proc"].options.shared)
tc.variables["BUILD_WARNING_LEVEL"] = "PRODUCTION"
if is_msvc(self):
tc.variables["ARROW_USE_STATIC_CRT"] = is_msvc_static_runtime(self)
- if self._with_llvm():
+ if self.options.with_llvm:
tc.variables["LLVM_DIR"] = self.dependencies["llvm-core"].package_folder.replace("\\", "/")
tc.generate()
@@ -535,6 +527,9 @@ def build(self):
cmake.configure(build_script_folder=os.path.join(self.source_folder, "cpp"))
cmake.build()
+ def build_requirements(self):
+ self.tool_requires("cmake/[>=3.16 <4]")
+
def package(self):
copy(self, pattern="LICENSE.txt", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
copy(self, pattern="NOTICE.txt", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
@@ -559,7 +554,7 @@ def package_info(self):
if self.settings.os in ["Linux", "FreeBSD"]:
self.cpp_info.components["libarrow"].system_libs = ["pthread", "m", "dl", "rt"]
- if self._parquet():
+ if self.options.parquet:
self.cpp_info.components["libparquet"].set_property("pkg_config_name", "parquet")
self.cpp_info.components["libparquet"].libs = [f"parquet{suffix}"]
self.cpp_info.components["libparquet"].requires = ["libarrow"]
@@ -588,7 +583,7 @@ def package_info(self):
if not self.options.shared:
self.cpp_info.components["libgandiva"].defines = ["GANDIVA_STATIC"]
- if self._with_flight_rpc():
+ if self.options.with_flight_rpc:
self.cpp_info.components["libarrow_flight"].set_property("pkg_config_name", "flight_rpc")
self.cpp_info.components["libarrow_flight"].libs = [f"arrow_flight{suffix}"]
self.cpp_info.components["libarrow_flight"].requires = ["libarrow"]
@@ -598,54 +593,54 @@ def package_info(self):
self.cpp_info.components["libarrow_flight_sql"].libs = [f"arrow_flight_sql{suffix}"]
self.cpp_info.components["libarrow_flight_sql"].requires = ["libarrow", "libarrow_flight"]
- if self._dataset_modules():
+ if self.options.dataset_modules:
self.cpp_info.components["dataset"].libs = ["arrow_dataset"]
- if self._parquet():
+ if self.options.parquet:
self.cpp_info.components["dataset"].requires = ["libparquet"]
- if self.options.cli and (self.options.with_cuda or self._with_flight_rpc() or self._parquet()):
+ if self.options.cli and (self.options.with_cuda or self.options.with_flight_rpc or self.options.parquet):
binpath = os.path.join(self.package_folder, "bin")
self.output.info(f"Appending PATH env var: {binpath}")
self.env_info.PATH.append(binpath)
- if self._with_boost():
+ if self.options.with_boost:
if self.options.gandiva:
# FIXME: only filesystem component is used
self.cpp_info.components["libgandiva"].requires.append("boost::boost")
- if self._parquet() and self.settings.compiler == "gcc" and self.settings.compiler.version < Version("4.9"):
+ if self.options.parquet and self.settings.compiler == "gcc" and self.settings.compiler.version < Version("4.9"):
self.cpp_info.components["libparquet"].requires.append("boost::boost")
if Version(self.version) >= "2.0":
# FIXME: only headers components is used
self.cpp_info.components["libarrow"].requires.append("boost::boost")
- if self._with_openssl():
+ if self.options.with_openssl:
self.cpp_info.components["libarrow"].requires.append("openssl::openssl")
- if self._with_gflags():
+ if self.options.with_gflags:
self.cpp_info.components["libarrow"].requires.append("gflags::gflags")
- if self._with_glog():
+ if self.options.with_glog:
self.cpp_info.components["libarrow"].requires.append("glog::glog")
- if self._with_jemalloc():
+ if self.options.with_jemalloc:
self.cpp_info.components["libarrow"].requires.append("jemalloc::jemalloc")
if self.options.with_mimalloc:
self.cpp_info.components["libarrow"].requires.append("mimalloc::mimalloc")
- if self._with_re2():
+ if self.options.with_re2:
if self.options.gandiva:
self.cpp_info.components["libgandiva"].requires.append("re2::re2")
- if self._parquet():
+ if self.options.parquet:
self.cpp_info.components["libparquet"].requires.append("re2::re2")
self.cpp_info.components["libarrow"].requires.append("re2::re2")
- if self._with_llvm():
+ if self.options.with_llvm:
self.cpp_info.components["libgandiva"].requires.append("llvm-core::llvm-core")
- if self._with_protobuf():
+ if self.options.with_protobuf:
self.cpp_info.components["libarrow"].requires.append("protobuf::protobuf")
- if self._with_utf8proc():
+ if self.options.with_utf8proc:
self.cpp_info.components["libarrow"].requires.append("utf8proc::utf8proc")
- if self._with_thrift():
+ if self.options.with_thrift:
self.cpp_info.components["libarrow"].requires.append("thrift::thrift")
if self.options.with_backtrace:
self.cpp_info.components["libarrow"].requires.append("libbacktrace::libbacktrace")
if self.options.with_cuda:
self.cpp_info.components["libarrow"].requires.append("cuda::cuda")
- if self._with_rapidjson():
+ if self._requires_rapidjson():
self.cpp_info.components["libarrow"].requires.append("rapidjson::rapidjson")
if self.options.with_s3:
self.cpp_info.components["libarrow"].requires.append("aws-sdk-cpp::s3")
@@ -669,11 +664,11 @@ def package_info(self):
self.cpp_info.components["libarrow"].requires.append("zlib::zlib")
if self.options.with_zstd:
self.cpp_info.components["libarrow"].requires.append("zstd::zstd")
- if self._with_boost():
+ if self.options.with_boost:
self.cpp_info.components["libarrow"].requires.append("boost::boost")
- if self._with_grpc():
+ if self.options.with_grpc:
self.cpp_info.components["libarrow"].requires.append("grpc::grpc")
- if self._with_flight_rpc():
+ if self.options.with_flight_rpc:
self.cpp_info.components["libarrow_flight"].requires.append("protobuf::protobuf")
# TODO: to remove in conan v2
@@ -681,7 +676,7 @@ def package_info(self):
self.cpp_info.filenames["cmake_find_package_multi"] = "Arrow"
self.cpp_info.components["libarrow"].names["cmake_find_package"] = "arrow"
self.cpp_info.components["libarrow"].names["cmake_find_package_multi"] = "arrow"
- if self._parquet():
+ if self.options.parquet:
self.cpp_info.components["libparquet"].names["cmake_find_package"] = "parquet"
self.cpp_info.components["libparquet"].names["cmake_find_package_multi"] = "parquet"
if self.options.get_safe("substrait"):
@@ -690,11 +685,11 @@ def package_info(self):
if self.options.gandiva:
self.cpp_info.components["libgandiva"].names["cmake_find_package"] = "gandiva"
self.cpp_info.components["libgandiva"].names["cmake_find_package_multi"] = "gandiva"
- if self._with_flight_rpc():
+ if self.options.with_flight_rpc:
self.cpp_info.components["libarrow_flight"].names["cmake_find_package"] = "flight_rpc"
self.cpp_info.components["libarrow_flight"].names["cmake_find_package_multi"] = "flight_rpc"
if self.options.get_safe("with_flight_sql"):
self.cpp_info.components["libarrow_flight_sql"].names["cmake_find_package"] = "flight_sql"
self.cpp_info.components["libarrow_flight_sql"].names["cmake_find_package_multi"] = "flight_sql"
- if self.options.cli and (self.options.with_cuda or self._with_flight_rpc() or self._parquet()):
+ if self.options.cli and (self.options.with_cuda or self.options.with_flight_rpc or self.options.parquet):
self.env_info.PATH.append(os.path.join(self.package_folder, "bin"))
diff --git a/recipes/arrow/config.yml b/recipes/arrow/config.yml
index 06c575d489c3c2..7a1c1ea27e611c 100644
--- a/recipes/arrow/config.yml
+++ b/recipes/arrow/config.yml
@@ -1,4 +1,8 @@
versions:
+ "13.0.0":
+ folder: all
+ "12.0.1":
+ folder: all
"12.0.0":
folder: all
"11.0.0":
diff --git a/recipes/arsenalgear/all/conanfile.py b/recipes/arsenalgear/all/conanfile.py
index 94953657bcd46c..3c60d7e171cb39 100644
--- a/recipes/arsenalgear/all/conanfile.py
+++ b/recipes/arsenalgear/all/conanfile.py
@@ -57,7 +57,7 @@ def layout(self):
def requirements(self):
if Version(self.version) < "2.0.0":
- self.requires("boost/1.81.0")
+ self.requires("boost/1.83.0")
if self.settings.os in ["Linux", "Macos"]:
# exprtk is used in public header of arsenalgear
# https://github.com/JustWhit3/arsenalgear-cpp/blob/v1.2.2/include/math.hpp
diff --git a/recipes/asio-grpc/all/conandata.yml b/recipes/asio-grpc/all/conandata.yml
index 67c8b715cb2d32..93b16454d2a6d4 100644
--- a/recipes/asio-grpc/all/conandata.yml
+++ b/recipes/asio-grpc/all/conandata.yml
@@ -1,4 +1,10 @@
sources:
+ "2.6.0":
+ url: "https://github.com/Tradias/asio-grpc/archive/refs/tags/v2.6.0.tar.gz"
+ sha256: "9f17f1dfe390667c71d8e0645937afa36f1a0e146f60f6036c7b4e12b09ed14e"
+ "2.5.1":
+ url: "https://github.com/Tradias/asio-grpc/archive/refs/tags/v2.5.1.tar.gz"
+ sha256: "571779a25be6eed77a345088e3ded2cccf880c16800ee0075ece57116f14fc35"
"2.4.0":
url: "https://github.com/Tradias/asio-grpc/archive/refs/tags/v2.4.0.tar.gz"
sha256: "d71de4f8de91dc0ad44d6a161fc628496b80622a6f9030dcd4c53b516629b8b7"
diff --git a/recipes/asio-grpc/all/conanfile.py b/recipes/asio-grpc/all/conanfile.py
index 41ebfbae5f918b..cccd69684782dd 100644
--- a/recipes/asio-grpc/all/conanfile.py
+++ b/recipes/asio-grpc/all/conanfile.py
@@ -38,6 +38,7 @@ def _compilers_minimum_version(self):
return {
"gcc": "7",
"Visual Studio": "15.7",
+ "msvc": "191",
"clang": "6",
"apple-clang": "11",
}
@@ -57,9 +58,9 @@ def configure(self):
def requirements(self):
self.requires("grpc/1.50.1")
if self._local_allocator_option == "boost_container" or self.options.backend == "boost":
- self.requires("boost/1.81.0")
+ self.requires("boost/1.83.0")
if self.options.backend == "asio":
- self.requires("asio/1.24.0")
+ self.requires("asio/1.28.1")
if self.options.backend == "unifex":
self.requires("libunifex/cci.20220430")
diff --git a/recipes/asio-grpc/config.yml b/recipes/asio-grpc/config.yml
index 25e51279385fd9..5c9bbc56f454e4 100644
--- a/recipes/asio-grpc/config.yml
+++ b/recipes/asio-grpc/config.yml
@@ -1,4 +1,8 @@
versions:
+ "2.6.0":
+ folder: all
+ "2.5.1":
+ folder: all
"2.4.0":
folder: all
"2.3.0":
diff --git a/recipes/asio/all/conandata.yml b/recipes/asio/all/conandata.yml
index 46bc4f8f41b43e..d8865c47b5bf0d 100644
--- a/recipes/asio/all/conandata.yml
+++ b/recipes/asio/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.28.1":
+ url: "https://github.com/chriskohlhoff/asio/archive/asio-1-28-1.tar.gz"
+ sha256: "5ff6111ec8cbe73a168d997c547f562713aa7bd004c5c02326f0e9d579a5f2ce"
"1.28.0":
url: "https://github.com/chriskohlhoff/asio/archive/asio-1-28-0.tar.gz"
sha256: "226438b0798099ad2a202563a83571ce06dd13b570d8fded4840dbc1f97fa328"
diff --git a/recipes/asio/config.yml b/recipes/asio/config.yml
index 06fbadd587b1ab..33c8893e89fa5b 100644
--- a/recipes/asio/config.yml
+++ b/recipes/asio/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.28.1":
+ folder: all
"1.28.0":
folder: all
"1.27.0":
diff --git a/recipes/assimp/5.x/conanfile.py b/recipes/assimp/5.x/conanfile.py
index 6f021e008adb44..e821ffefdeea3e 100644
--- a/recipes/assimp/5.x/conanfile.py
+++ b/recipes/assimp/5.x/conanfile.py
@@ -181,7 +181,7 @@ def requirements(self):
if self._depends_on_zlib:
self.requires("zlib/1.2.13")
if self._depends_on_draco:
- self.requires("draco/1.5.5")
+ self.requires("draco/1.5.6")
if self._depends_on_clipper:
self.requires("clipper/4.10.0") # Only 4.x supported
if self._depends_on_stb:
diff --git a/recipes/astro-informatics-so3/all/CMakeLists.txt b/recipes/astro-informatics-so3/all/CMakeLists.txt
deleted file mode 100644
index 0496b298385496..00000000000000
--- a/recipes/astro-informatics-so3/all/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-cmake_minimum_required(VERSION 3.0)
-project(cmake_wrapper)
-
-include(conanbuildinfo.cmake)
-conan_basic_setup()
-
-add_subdirectory(source_subfolder)
diff --git a/recipes/astro-informatics-so3/all/conanfile.py b/recipes/astro-informatics-so3/all/conanfile.py
index 24be830f3db99a..e7486ed5b8c5a4 100644
--- a/recipes/astro-informatics-so3/all/conanfile.py
+++ b/recipes/astro-informatics-so3/all/conanfile.py
@@ -1,69 +1,78 @@
-from conans import CMake, ConanFile, tools
-from conans.errors import ConanInvalidConfiguration
+import os
-required_conan_version = ">=1.33.0"
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
+from conan.tools.files import copy, get
+from conan.tools.microsoft import is_msvc
+
+required_conan_version = ">=1.53.0"
class AstroInformaticsSO3(ConanFile):
name = "astro-informatics-so3"
+ description = "Fast and accurate Wigner transforms"
license = "GPL-3.0-or-later"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/astro-informatics/so3"
- description = "Fast and accurate Wigner transforms"
- settings = "os", "arch", "compiler", "build_type"
topics = ("physics", "astrophysics", "radio interferometry")
- options = {"fPIC": [True, False]}
- default_options = {"fPIC": True}
-
- generators = "cmake", "cmake_find_package"
- exports_sources = ["CMakeLists.txt"]
-
- @property
- def _source_subfolder(self):
- return "source_subfolder"
-
- @property
- def _build_subfolder(self):
- return "build_subfolder"
+ package_type = "library"
+ settings = "os", "arch", "compiler", "build_type"
+ options = {
+ "shared": [True, False],
+ "fPIC": [True, False],
+ }
+ default_options = {
+ "shared": False,
+ "fPIC": True,
+ }
def config_options(self):
if self.settings.os == "Windows":
del self.options.fPIC
def configure(self):
- del self.settings.compiler.cppstd
- del self.settings.compiler.libcxx
+ self.settings.rm_safe("compiler.cppstd")
+ self.settings.rm_safe("compiler.libcxx")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
def requirements(self):
+ self.requires("ssht/1.4.0", transitive_headers=True)
self.requires("fftw/3.3.9")
- self.requires("ssht/1.3.7")
def validate(self):
- if self.settings.compiler == "Visual Studio":
+ if is_msvc(self):
raise ConanInvalidConfiguration(
"Visual Studio not supported, since SO3 requires C99 support for complex numbers"
)
def source(self):
- tools.get(**self.conan_data["sources"][self.version],
- destination=self._source_subfolder, strip_root=True)
-
- @property
- def cmake(self):
- if not hasattr(self, "_cmake"):
- self._cmake = CMake(self)
- self._cmake.definitions["conan_deps"] = False
- self._cmake.definitions["BUILD_TESTING"] = False
- self._cmake.configure(build_folder=self._build_subfolder)
- return self._cmake
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["conan_deps"] = False
+ tc.variables["CONAN_EXPORTED"] = True
+ tc.variables["BUILD_TESTING"] = False
+ tc.generate()
+ deps = CMakeDeps(self)
+ deps.set_property("fftw", "cmake_target_name", "FFTW3::FFTW3")
+ deps.generate()
def build(self):
- self.cmake.build()
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
def package(self):
- self.copy("LICENSE", dst="licenses", src=self._source_subfolder)
- self.cmake.install()
+ copy(self, "LICENSE",
+ dst=os.path.join(self.package_folder, "licenses"),
+ src=self.source_folder)
+ cmake = CMake(self)
+ cmake.install()
def package_info(self):
self.cpp_info.libs = ["astro-informatics-so3"]
diff --git a/recipes/astro-informatics-so3/all/test_package/CMakeLists.txt b/recipes/astro-informatics-so3/all/test_package/CMakeLists.txt
index aecca63b59f686..6e7e3d57dba81f 100644
--- a/recipes/astro-informatics-so3/all/test_package/CMakeLists.txt
+++ b/recipes/astro-informatics-so3/all/test_package/CMakeLists.txt
@@ -1,10 +1,7 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(test_package C)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup()
-
-find_package(astro-informatics-so3 REQUIRED NO_MODULE)
+find_package(astro-informatics-so3 REQUIRED CONFIG)
add_executable(${PROJECT_NAME} example.c)
target_compile_features(${PROJECT_NAME} PUBLIC c_std_99)
diff --git a/recipes/astro-informatics-so3/all/test_package/conanfile.py b/recipes/astro-informatics-so3/all/test_package/conanfile.py
index abcaeed3f89b67..ef5d7042163ecc 100644
--- a/recipes/astro-informatics-so3/all/test_package/conanfile.py
+++ b/recipes/astro-informatics-so3/all/test_package/conanfile.py
@@ -1,10 +1,19 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
-from conans import ConanFile, CMake, tools
class TestPackageConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake", "cmake_find_package_multi"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -12,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self.settings):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/astro-informatics-so3/all/test_v1_package/CMakeLists.txt b/recipes/astro-informatics-so3/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/astro-informatics-so3/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/astro-informatics-so3/all/test_v1_package/conanfile.py b/recipes/astro-informatics-so3/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..abcaeed3f89b67
--- /dev/null
+++ b/recipes/astro-informatics-so3/all/test_v1_package/conanfile.py
@@ -0,0 +1,17 @@
+import os
+from conans import ConanFile, CMake, tools
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self.settings):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/asyncly/all/conanfile.py b/recipes/asyncly/all/conanfile.py
index 1f48e267d577a4..bed73f009ac53d 100644
--- a/recipes/asyncly/all/conanfile.py
+++ b/recipes/asyncly/all/conanfile.py
@@ -52,8 +52,8 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("boost/1.81.0", transitive_headers=True)
- self.requires("function2/4.2.2", transitive_headers=True)
+ self.requires("boost/1.83.0", transitive_headers=True)
+ self.requires("function2/4.2.3", transitive_headers=True)
self.requires("prometheus-cpp/1.1.0", transitive_headers=True)
def validate(self):
diff --git a/recipes/at-spi2-core/new/conanfile.py b/recipes/at-spi2-core/new/conanfile.py
index 85d759b7547fc0..041ae5da456f18 100644
--- a/recipes/at-spi2-core/new/conanfile.py
+++ b/recipes/at-spi2-core/new/conanfile.py
@@ -9,7 +9,8 @@
import os
-required_conan_version = ">=1.53.0"
+required_conan_version = ">=1.60.0 <2.0 || >=2.0.5"
+
class AtSpi2CoreConan(ConanFile):
name = "at-spi2-core"
description = "It provides a Service Provider Interface for the Assistive Technologies available on the GNOME platform and a library against which applications can be linked"
@@ -20,17 +21,18 @@ class AtSpi2CoreConan(ConanFile):
provides = "at-spi2-atk", "atk"
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
"fPIC": [True, False],
"with_x11": [True, False],
- }
+ }
default_options = {
"shared": False,
"fPIC": True,
"with_x11": False,
- }
+ }
def export_sources(self):
export_conandata_patches(self)
@@ -40,22 +42,21 @@ def configure(self):
self.options.rm_safe("fPIC")
self.settings.rm_safe("compiler.libcxx")
self.settings.rm_safe("compiler.cppstd")
- if self.options.shared:
- self.options["glib"].shared = True
def build_requirements(self):
- self.tool_requires("meson/1.1.1")
+ self.tool_requires("meson/1.2.0")
if not self.conf.get("tools.gnu:pkg_config", default=False, check_type=str):
- self.tool_requires("pkgconf/1.9.3")
+ self.tool_requires("pkgconf/1.9.5")
+ self.tool_requires("glib/")
def requirements(self):
- self.requires("glib/2.76.3")
+ self.requires("glib/2.77.0")
if self.options.with_x11:
self.requires("xorg/system")
self.requires("dbus/1.15.6")
def validate(self):
- if self.options.shared and not self.options["glib"].shared:
+ if self.options.shared and not self.dependencies["glib"].options.shared:
raise ConanInvalidConfiguration(
"Linking a shared library against static glib can cause unexpected behaviour."
)
@@ -123,6 +124,3 @@ def package_info(self):
self.cpp_info.components["atk-bridge"].includedirs = [os.path.join('include', 'at-spi2-atk', '2.0')]
self.cpp_info.components["atk-bridge"].requires = ["dbus::dbus", "atk", "glib::glib", "atspi"]
self.cpp_info.components["atk-bridge"].set_property("pkg_config_name", 'atk-bridge-2.0')
-
- def package_id(self):
- self.info.requires["glib"].full_package_mode()
diff --git a/recipes/at-spi2-core/new/test_package/CMakeLists.txt b/recipes/at-spi2-core/new/test_package/CMakeLists.txt
deleted file mode 100644
index afa24763570742..00000000000000
--- a/recipes/at-spi2-core/new/test_package/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package)
-
-
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup()
-
-add_executable(${PROJECT_NAME} test_package.c)
-target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
diff --git a/recipes/at-spi2-core/new/test_package/conanfile.py b/recipes/at-spi2-core/new/test_package/conanfile.py
index d4128b04507778..74125d16c3d5f5 100644
--- a/recipes/at-spi2-core/new/test_package/conanfile.py
+++ b/recipes/at-spi2-core/new/test_package/conanfile.py
@@ -1,17 +1,32 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.layout import basic_layout
+from conan.tools.meson import Meson
import os
class TestPackageConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "PkgConfigDeps", "MesonToolchain", "VirtualRunEnv", "VirtualBuildEnv"
+ test_type = "explicit"
+
+ def layout(self):
+ basic_layout(self)
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def build_requirements(self):
+ self.tool_requires("meson/1.2.0")
+ if not self.conf.get("tools.gnu:pkg_config", default=False, check_type=str):
+ self.tool_requires("pkgconf/1.9.5")
def build(self):
- cmake = CMake(self)
- cmake.configure()
- cmake.build()
+ meson = Meson(self)
+ meson.configure()
+ meson.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/at-spi2-core/new/test_package/meson.build b/recipes/at-spi2-core/new/test_package/meson.build
new file mode 100644
index 00000000000000..a6950ebe6d4ab2
--- /dev/null
+++ b/recipes/at-spi2-core/new/test_package/meson.build
@@ -0,0 +1,5 @@
+project('test_package', 'c')
+package_dep = dependency('atspi-2')
+executable('test_package',
+ sources : ['test_package.c'],
+ dependencies : [package_dep])
diff --git a/recipes/audiofile/all/conandata.yml b/recipes/audiofile/all/conandata.yml
index 042cc12d06dd13..288d8a5ec4d8c9 100644
--- a/recipes/audiofile/all/conandata.yml
+++ b/recipes/audiofile/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.1.1":
+ url: "https://github.com/adamstark/AudioFile/archive/1.1.1.tar.gz"
+ sha256: "664f9d5fbbf1ff6c603ae054a35224f12e9856a1d8680be567909015ccaac328"
"1.1.0":
url: "https://github.com/adamstark/AudioFile/archive/1.1.0.tar.gz"
sha256: "7546e39ca17ac09c653f46bfecce4a9936fae3784209ad53094915c78792a327"
diff --git a/recipes/audiofile/all/conanfile.py b/recipes/audiofile/all/conanfile.py
index 0d083108cea086..c9bd8f69c8aa34 100644
--- a/recipes/audiofile/all/conanfile.py
+++ b/recipes/audiofile/all/conanfile.py
@@ -1,4 +1,5 @@
from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
from conan.tools.build import check_min_cppstd
from conan.tools.files import copy, get
from conan.tools.layout import basic_layout
@@ -11,34 +12,60 @@
class AudiofileConan(ConanFile):
name = "audiofile"
description = "A simple C++11 library for reading and writing audio files."
- topics = ("audiofile", "audio", "file-format", "wav", "aif")
license = "MIT"
- homepage = "https://github.com/adamstark/AudioFile"
url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://github.com/adamstark/AudioFile"
+ topics = ("audio", "file-format", "wav", "aif", "header-only")
+
+ package_type = "header-library"
settings = "os", "arch", "compiler", "build_type"
no_copy_source = True
+ @property
+ def _min_cppstd(self):
+ # v1.1.1 uses is_signed_v
+ return 11 if Version(self.version) < "1.1.1" else 17
+
+ @property
+ def _compilers_minimum_version(self):
+ return {
+ "Visual Studio": "16",
+ "msvc": "192",
+ "gcc": "7",
+ "clang": "6",
+ "apple-clang": "10",
+ }
+
def configure(self):
if Version(self.version) < "1.1.0":
self.license = "GPL-3.0-or-later"
+ def layout(self):
+ basic_layout(self, src_folder="src")
+
def package_id(self):
self.info.clear()
def validate(self):
if self.settings.compiler.get_safe("cppstd"):
- check_min_cppstd(self, 11)
-
- def layout(self):
- basic_layout(self, src_folder="src")
+ check_min_cppstd(self, self._min_cppstd)
+ if self._min_cppstd > 11:
+ minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False)
+ if minimum_version and Version(self.settings.compiler.version) < minimum_version:
+ raise ConanInvalidConfiguration(
+ f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support."
+ )
def source(self):
- get(self, **self.conan_data["sources"][self.version],
- destination=self.source_folder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def package(self):
- copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
- copy(self, "AudioFile.h", src=self.source_folder, dst=os.path.join(self.package_folder, "include"))
+ copy(self, "LICENSE",
+ dst=os.path.join(self.package_folder, "licenses"),
+ src=self.source_folder)
+ copy(self, "AudioFile.h",
+ dst=os.path.join(self.package_folder, "include"),
+ src=self.source_folder)
def package_info(self):
self.cpp_info.bindirs = []
diff --git a/recipes/audiofile/all/test_package/CMakeLists.txt b/recipes/audiofile/all/test_package/CMakeLists.txt
index 6f7178f4a89271..fab8ac8a0b20c3 100644
--- a/recipes/audiofile/all/test_package/CMakeLists.txt
+++ b/recipes/audiofile/all/test_package/CMakeLists.txt
@@ -5,4 +5,9 @@ find_package(audiofile REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
target_link_libraries(${PROJECT_NAME} PRIVATE audiofile::audiofile)
-target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
+
+if (audiofile_VERSION VERSION_GREATER_EQUAL "1.1.1")
+ target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
+else()
+ target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
+endif()
diff --git a/recipes/audiofile/all/test_package/test_package.cpp b/recipes/audiofile/all/test_package/test_package.cpp
index 6943fcec35d572..d95bc64031cdab 100644
--- a/recipes/audiofile/all/test_package/test_package.cpp
+++ b/recipes/audiofile/all/test_package/test_package.cpp
@@ -1,3 +1,6 @@
+// workaround for a missing include in v1.0.9 and earlier
+#include
+
#include
#include
diff --git a/recipes/audiofile/all/test_v1_package/CMakeLists.txt b/recipes/audiofile/all/test_v1_package/CMakeLists.txt
index 60fb00c9f3f14b..91630d79f4abb3 100644
--- a/recipes/audiofile/all/test_v1_package/CMakeLists.txt
+++ b/recipes/audiofile/all/test_v1_package/CMakeLists.txt
@@ -1,11 +1,8 @@
-cmake_minimum_required(VERSION 3.8)
-project(test_package LANGUAGES CXX)
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)
-find_package(audiofile REQUIRED CONFIG)
-
-add_executable(${PROJECT_NAME} ../test_package/test_package.cpp)
-target_link_libraries(${PROJECT_NAME} PRIVATE audiofile::audiofile)
-target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/audiofile/config.yml b/recipes/audiofile/config.yml
index 5fc24e2e9c1883..1b65530cbacc9d 100644
--- a/recipes/audiofile/config.yml
+++ b/recipes/audiofile/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.1.1":
+ folder: all
"1.1.0":
folder: all
"1.0.9":
diff --git a/recipes/autoconf/all/conanfile.py b/recipes/autoconf/all/conanfile.py
index e8f1925de206c2..6030c1664be5b7 100644
--- a/recipes/autoconf/all/conanfile.py
+++ b/recipes/autoconf/all/conanfile.py
@@ -108,29 +108,14 @@ def package_info(self):
# TODO: These variables can be removed since the scripts now locate the resources
# relative to themselves.
dataroot_path = os.path.join(self.package_folder, "res", "autoconf")
- self.output.info(f"Defining AC_MACRODIR environment variable: {dataroot_path}")
self.buildenv_info.define_path("AC_MACRODIR", dataroot_path)
-
- self.output.info(f"Defining autom4te_perllibdir environment variable: {dataroot_path}")
self.buildenv_info.define_path("autom4te_perllibdir", dataroot_path)
bin_path = os.path.join(self.package_folder, "bin")
-
- autoconf_bin = os.path.join(bin_path, "autoconf")
- self.output.info(f"Defining AUTOCONF environment variable: {autoconf_bin}")
- self.buildenv_info.define_path("AUTOCONF", autoconf_bin)
-
- autoreconf_bin = os.path.join(bin_path, "autoreconf")
- self.output.info(f"Defining AUTORECONF environment variable: {autoreconf_bin}")
- self.buildenv_info.define_path("AUTORECONF", autoreconf_bin)
-
- autoheader_bin = os.path.join(bin_path, "autoheader")
- self.output.info(f"Defining AUTOHEADER environment variable: {autoheader_bin}")
- self.buildenv_info.define_path("AUTOHEADER", autoheader_bin)
-
- autom4te_bin = os.path.join(bin_path, "autom4te")
- self.output.info(f"Defining AUTOM4TE environment variable: {autom4te_bin}")
- self.buildenv_info.define_path("AUTOM4TE", autom4te_bin)
+ self.buildenv_info.define_path("AUTOCONF", os.path.join(bin_path, "autoconf"))
+ self.buildenv_info.define_path("AUTORECONF", os.path.join(bin_path, "autoreconf"))
+ self.buildenv_info.define_path("AUTOHEADER", os.path.join(bin_path, "autoheader"))
+ self.buildenv_info.define_path("AUTOM4TE", os.path.join(bin_path, "autom4te"))
# TODO: to remove in conan v2
self.env_info.PATH.append(bin_path)
diff --git a/recipes/autoconf/all/test_package/conanfile.py b/recipes/autoconf/all/test_package/conanfile.py
index bb22349ed9696c..540a389d38f89b 100644
--- a/recipes/autoconf/all/test_package/conanfile.py
+++ b/recipes/autoconf/all/test_package/conanfile.py
@@ -29,6 +29,9 @@ def generate(self):
env = VirtualBuildEnv(self)
env.generate()
tc = AutotoolsToolchain(self)
+ if is_msvc(self):
+ tc.extra_cflags.append("-FS")
+ tc.extra_cxxflags.append("-FS")
tc.generate()
if is_msvc(self):
env = Environment()
diff --git a/recipes/autoconf/all/test_v1_package/conanfile.py b/recipes/autoconf/all/test_v1_package/conanfile.py
index 422d5f44c10cf5..7098a4c30759bf 100644
--- a/recipes/autoconf/all/test_v1_package/conanfile.py
+++ b/recipes/autoconf/all/test_v1_package/conanfile.py
@@ -34,6 +34,8 @@ def build(self):
self.run("{} --help".format(os.path.join(self.build_folder, "configure").replace("\\", "/")),
win_bash=tools.os_info.is_windows)
autotools = AutoToolsBuildEnvironment(self, win_bash=tools.os_info.is_windows)
+ if is_msvc(self):
+ autotools.flags.append("-FS")
with self._build_context():
autotools.configure()
autotools.make()
diff --git a/recipes/avahi/all/conanfile.py b/recipes/avahi/all/conanfile.py
index 828f628b5ac414..a5da3d9b034e37 100644
--- a/recipes/avahi/all/conanfile.py
+++ b/recipes/avahi/all/conanfile.py
@@ -1,7 +1,8 @@
import os
from conan import ConanFile
-from conan.tools.env import Environment, VirtualBuildEnv
+from conan.tools.build import can_run
+from conan.tools.env import Environment, VirtualBuildEnv, VirtualRunEnv
from conan.tools.files import copy, get, rmdir, rm
from conan.tools.gnu import Autotools, AutotoolsDeps, AutotoolsToolchain, PkgConfigDeps
from conan.tools.layout import basic_layout
@@ -19,42 +20,43 @@ class AvahiConan(ConanFile):
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/lathiat/avahi"
license = "LGPL-2.1-only"
- settings = "os", "arch", "compiler", "build_type"
+ package_type = "library"
+ settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
- "fPIC": [True, False]
+ "fPIC": [True, False],
}
default_options = {
"shared": False,
- "fPIC": True
+ "fPIC": True,
}
+ def configure(self):
+ if self.options.shared:
+ self.options.rm_safe("fPIC")
+ self.settings.rm_safe("compiler.cppstd")
+ self.settings.rm_safe("compiler.libcxx")
+
def layout(self):
basic_layout(self, src_folder="src")
def requirements(self):
- self.requires("glib/2.75.2")
+ self.requires("glib/2.77.1")
self.requires("expat/2.5.0")
self.requires("libdaemon/0.14")
- self.requires("dbus/1.15.2")
- self.requires("gdbm/1.19")
+ self.requires("dbus/1.15.6")
+ self.requires("gdbm/1.23")
self.requires("libevent/2.1.12")
- def build_requirements(self):
- self.tool_requires("glib/2.75.2")
- if not self.conf.get("tools.gnu:pkg_config", default=False, check_type=str):
- self.tool_requires("pkgconf/1.9.3")
-
def validate(self):
- if self.settings.os != "Linux":
+ if self.settings.os not in ["Linux", "FreeBSD"]:
raise ConanInvalidConfiguration(f"{self.ref} only supports Linux.")
- def configure(self):
- if self.options.shared:
- self.options.rm_safe("fPIC")
- self.settings.rm_safe("compiler.cppstd")
- self.settings.rm_safe("compiler.libcxx")
+ def build_requirements(self):
+ self.tool_requires("glib/")
+ if not self.conf.get("tools.gnu:pkg_config", default=False, check_type=str):
+ self.tool_requires("pkgconf/1.9.5")
def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)
@@ -62,6 +64,8 @@ def source(self):
def generate(self):
virtual_build_env = VirtualBuildEnv(self)
virtual_build_env.generate()
+ if can_run(self):
+ VirtualRunEnv(self).generate(scope="build")
tc = AutotoolsToolchain(self)
tc.configure_args.append("--enable-compat-libdns_sd")
tc.configure_args.append("--disable-gtk3")
@@ -70,7 +74,7 @@ def generate(self):
tc.configure_args.append("--disable-python")
tc.configure_args.append("--disable-qt5")
tc.configure_args.append("--with-systemdsystemunitdir=/lib/systemd/system")
- if self.settings.os == "Linux":
+ if self.settings.os in ["Linux", "FreeBSD"]:
tc.configure_args.append("ac_cv_func_setproctitle=no")
tc.generate()
AutotoolsDeps(self).generate()
@@ -98,9 +102,9 @@ def package(self):
def package_info(self):
for lib in ("client", "common", "core", "glib", "gobject", "libevent", "compat-libdns_sd"):
avahi_lib = f"avahi-{lib}"
+ self.cpp_info.components[lib].set_property("pkg_config_name", avahi_lib)
self.cpp_info.components[lib].names["cmake_find_package"] = lib
self.cpp_info.components[lib].names["cmake_find_package_multi"] = lib
- self.cpp_info.components[lib].names["pkg_config"] = avahi_lib
self.cpp_info.components[lib].libs = [avahi_lib]
self.cpp_info.components[lib].includedirs = [os.path.join("include", avahi_lib)]
self.cpp_info.components["compat-libdns_sd"].libs = ["dns_sd"]
@@ -115,9 +119,9 @@ def package_info(self):
for app in ("autoipd", "browse", "daemon", "dnsconfd", "publish", "resolve", "set-host-name"):
avahi_app = f"avahi-{app}"
+ self.cpp_info.components[app].set_property("pkg_config_name", avahi_app)
self.cpp_info.components[app].names["cmake_find_package"] = app
self.cpp_info.components[app].names["cmake_find_package_multi"] = app
- self.cpp_info.components[app].names["pkg_config"] = avahi_app
self.cpp_info.components["autoipd"].requires = ["libdaemon::libdaemon"]
self.cpp_info.components["browse"].requires = ["client", "gdbm::gdbm"]
diff --git a/recipes/avahi/all/test_package/CMakeLists.txt b/recipes/avahi/all/test_package/CMakeLists.txt
index fce015c3405a96..a844c8e02eaa3a 100644
--- a/recipes/avahi/all/test_package/CMakeLists.txt
+++ b/recipes/avahi/all/test_package/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(test_package LANGUAGES C)
find_package(Avahi CONFIG REQUIRED)
diff --git a/recipes/avahi/all/test_v1_package/CMakeLists.txt b/recipes/avahi/all/test_v1_package/CMakeLists.txt
index 925ecbe19e448d..91630d79f4abb3 100644
--- a/recipes/avahi/all/test_v1_package/CMakeLists.txt
+++ b/recipes/avahi/all/test_v1_package/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(test_package)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
diff --git a/recipes/aws-c-cal/all/conandata.yml b/recipes/aws-c-cal/all/conandata.yml
index e1b848e4dfa2d2..c1c97333e92883 100644
--- a/recipes/aws-c-cal/all/conandata.yml
+++ b/recipes/aws-c-cal/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.6.1":
+ url: "https://github.com/awslabs/aws-c-cal/archive/v0.6.1.tar.gz"
+ sha256: "52df95150a8548ac35a0e4b6f59fbdebff27e4124c0b7e5eaa969ed3ba62fc82"
"0.5.20":
url: "https://github.com/awslabs/aws-c-cal/archive/v0.5.20.tar.gz"
sha256: "acc352359bd06f8597415c366cf4ec4f00d0b0da92d637039a73323dd55b6cd0"
@@ -18,6 +21,11 @@ sources:
url: "https://github.com/awslabs/aws-c-cal/archive/v0.5.11.tar.gz"
sha256: "ef46e121b2231a0b19afce8af4b32d77501df4d470e926990918456636cd83c0"
patches:
+ "0.6.1":
+ - patch_file: "patches/0002-apple-corefoundation-0.6.1.patch"
+ patch_description: "Link to CoreFoundation on Apple"
+ patch_type: "backport"
+ patch_source: "https://github.com/awslabs/aws-c-cal/pull/126"
"0.5.20":
- patch_file: "patches/0002-apple-corefoundation-0.5.13.patch"
patch_description: "Link to CoreFoundation on Apple"
diff --git a/recipes/aws-c-cal/all/conanfile.py b/recipes/aws-c-cal/all/conanfile.py
index bb8fb82e75aabe..e6dc85b56045fb 100644
--- a/recipes/aws-c-cal/all/conanfile.py
+++ b/recipes/aws-c-cal/all/conanfile.py
@@ -53,8 +53,10 @@ def requirements(self):
# without it for conan v2 (we would have to required aws-c-common in test package, but we can't know
# which version to require in test package)
self.requires("aws-c-common/0.6.11", transitive_headers=True, transitive_libs=True)
- else:
+ elif Version(self.version) <= "0.5.20":
self.requires("aws-c-common/0.8.2", transitive_headers=True, transitive_libs=True)
+ else:
+ self.requires("aws-c-common/0.9.0", transitive_headers=True, transitive_libs=True)
if self._needs_openssl:
self.requires("openssl/[>=1.1 <4]")
diff --git a/recipes/aws-c-cal/all/patches/0002-apple-corefoundation-0.6.1.patch b/recipes/aws-c-cal/all/patches/0002-apple-corefoundation-0.6.1.patch
new file mode 100644
index 00000000000000..616d8257a2980a
--- /dev/null
+++ b/recipes/aws-c-cal/all/patches/0002-apple-corefoundation-0.6.1.patch
@@ -0,0 +1,26 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -84,7 +84,12 @@ elseif (APPLE)
+ message(FATAL_ERROR "Security Framework not found")
+ endif ()
+
+- list(APPEND PLATFORM_LIBS "-framework Security")
++ find_library(COREFOUNDATION_LIB CoreFoundation)
++ if(NOT COREFOUNDATION_LIB)
++ message(FATAL_ERROR "CoreFoundation Framework not found")
++ endif()
++
++ list(APPEND PLATFORM_LIBS "-framework Security -framework CoreFoundation")
+ endif()
+ else ()
+ if (NOT BYO_CRYPTO)
+--- a/source/darwin/securityframework_ecc.c
++++ b/source/darwin/securityframework_ecc.c
+@@ -7,6 +7,7 @@
+ #include
+ #include
+
++#include
+ #include
+ #include
+
diff --git a/recipes/aws-c-cal/config.yml b/recipes/aws-c-cal/config.yml
index f969df4acc5839..7fb368557bdced 100644
--- a/recipes/aws-c-cal/config.yml
+++ b/recipes/aws-c-cal/config.yml
@@ -1,4 +1,6 @@
versions:
+ "0.6.1":
+ folder: all
"0.5.20":
folder: all
"0.5.19":
diff --git a/recipes/aws-c-common/all/conandata.yml b/recipes/aws-c-common/all/conandata.yml
index 773702bbe2c98e..6929bedbf2e128 100644
--- a/recipes/aws-c-common/all/conandata.yml
+++ b/recipes/aws-c-common/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.9.0":
+ url: "https://github.com/awslabs/aws-c-common/archive/v0.9.0.tar.gz"
+ sha256: "9b62ab1dcece3107810ea4f4511fe8e1e010a83cb0cb502b6ec685ce752a7b0c"
"0.8.2":
url: "https://github.com/awslabs/aws-c-common/archive/v0.8.2.tar.gz"
sha256: "36edc6e486c43bbb34059dde227e872c0d41ab54f0b3609d38f188cfbbc6d1f8"
@@ -53,4 +56,8 @@ sources:
patches:
"0.4.25":
- patch_file: "patches/0001-disable-fPIC.patch"
+ patch_description: "Don't enable position independent code (will be handled by conan)"
+ patch_type: "conan"
- patch_file: "patches/0002-no-warnings-as-errors.patch"
+ patch_description: "Don't make all warnings into errors"
+ patch_type: "portability"
diff --git a/recipes/aws-c-common/config.yml b/recipes/aws-c-common/config.yml
index 5a8e794412c2ff..472e641908fd07 100644
--- a/recipes/aws-c-common/config.yml
+++ b/recipes/aws-c-common/config.yml
@@ -1,4 +1,6 @@
versions:
+ "0.9.0":
+ folder: all
"0.8.2":
folder: all
"0.7.5":
diff --git a/recipes/aws-c-compression/all/conandata.yml b/recipes/aws-c-compression/all/conandata.yml
index 1baf0be5b106a8..d936f5ef9af185 100644
--- a/recipes/aws-c-compression/all/conandata.yml
+++ b/recipes/aws-c-compression/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.2.17":
+ url: "https://github.com/awslabs/aws-c-compression/archive/v0.2.17.tar.gz"
+ sha256: "703d1671e395ea26f8b0b70d678ed471421685a89e127f8aa125e2b2ecedb0e0"
"0.2.15":
url: "https://github.com/awslabs/aws-c-compression/archive/v0.2.15.tar.gz"
sha256: "11d58a229e2961b2b36493155a981dea2c8a0bc0d113b0073deb8c3189cfa04e"
diff --git a/recipes/aws-c-compression/all/conanfile.py b/recipes/aws-c-compression/all/conanfile.py
index 828f55f6431895..2c6e25346108a2 100644
--- a/recipes/aws-c-compression/all/conanfile.py
+++ b/recipes/aws-c-compression/all/conanfile.py
@@ -1,6 +1,7 @@
from conan import ConanFile
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
from conan.tools.files import copy, get, rmdir, save
+from conan.tools.scm import Version
import os
import textwrap
@@ -13,7 +14,7 @@ class AwsCCompression(ConanFile):
topics = ("aws", "amazon", "cloud", "compression", "huffman", )
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/awslabs/aws-c-compression"
- license = "Apache-2.0",
+ license = "Apache-2.0"
package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
@@ -39,7 +40,10 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("aws-c-common/0.8.2", transitive_headers=True, transitive_libs=True)
+ if Version(self.version) <= "0.2.15":
+ self.requires("aws-c-common/0.8.2", transitive_headers=True, transitive_libs=True)
+ else:
+ self.requires("aws-c-common/0.9.0", transitive_headers=True, transitive_libs=True)
def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)
diff --git a/recipes/aws-c-compression/config.yml b/recipes/aws-c-compression/config.yml
index 5a381bb0e66743..aae181600c27e2 100644
--- a/recipes/aws-c-compression/config.yml
+++ b/recipes/aws-c-compression/config.yml
@@ -1,4 +1,6 @@
versions:
+ "0.2.17":
+ folder: all
"0.2.15":
folder: all
"0.2.14":
diff --git a/recipes/aws-c-event-stream/all/conandata.yml b/recipes/aws-c-event-stream/all/conandata.yml
index 61428e916296b3..4c8f01cd490cba 100644
--- a/recipes/aws-c-event-stream/all/conandata.yml
+++ b/recipes/aws-c-event-stream/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.3.1":
+ url: "https://github.com/awslabs/aws-c-event-stream/archive/v0.3.1.tar.gz"
+ sha256: "bdbc420efc2572689fb167ac288e982a01224876eb79d80e2411fad4c43e9dc0"
"0.2.15":
url: "https://github.com/awslabs/aws-c-event-stream/archive/v0.2.15.tar.gz"
sha256: "4ff2ada07ede3c6afa4b8e6e20de541e717038307f29b38c27efa7c4d875ee26"
diff --git a/recipes/aws-c-event-stream/all/conanfile.py b/recipes/aws-c-event-stream/all/conanfile.py
index 2d51b3c4c313f0..d88a017a7e6baa 100644
--- a/recipes/aws-c-event-stream/all/conanfile.py
+++ b/recipes/aws-c-event-stream/all/conanfile.py
@@ -43,13 +43,19 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("aws-c-common/0.8.2", transitive_headers=True, transitive_libs=True)
- self.requires("aws-checksums/0.1.13")
+ if Version(self.version) < "0.3.1":
+ self.requires("aws-c-common/0.8.2", transitive_headers=True, transitive_libs=True)
+ self.requires("aws-checksums/0.1.13")
+ else:
+ self.requires("aws-c-common/0.9.0", transitive_headers=True, transitive_libs=True)
+ self.requires("aws-checksums/0.1.17")
if Version(self.version) >= "0.2":
if Version(self.version) < "0.2.11":
self.requires("aws-c-io/0.10.20")
- else:
+ elif Version(self.version) < "0.3.1":
self.requires("aws-c-io/0.13.4")
+ else:
+ self.requires("aws-c-io/0.13.32")
def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)
diff --git a/recipes/aws-c-event-stream/config.yml b/recipes/aws-c-event-stream/config.yml
index 96ac653286f12a..4a2530c32b47bd 100644
--- a/recipes/aws-c-event-stream/config.yml
+++ b/recipes/aws-c-event-stream/config.yml
@@ -1,4 +1,6 @@
versions:
+ "0.3.1":
+ folder: all
"0.2.15":
folder: all
"0.2.12":
diff --git a/recipes/aws-c-io/all/conandata.yml b/recipes/aws-c-io/all/conandata.yml
index 4a9102a6ede26e..0d0d5af78f68c7 100644
--- a/recipes/aws-c-io/all/conandata.yml
+++ b/recipes/aws-c-io/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.13.32":
+ url: "https://github.com/awslabs/aws-c-io/archive/v0.13.32.tar.gz"
+ sha256: "2a6b18c544d014ca4f55cb96002dbbc1e52a2120541c809fa974cb0838ea72cc"
"0.13.4":
url: "https://github.com/awslabs/aws-c-io/archive/v0.13.4.tar.gz"
sha256: "133bd0aa46caa2041962cd4f6d076209686ce2934af82f86d1a258df4cbdce8b"
diff --git a/recipes/aws-c-io/all/conanfile.py b/recipes/aws-c-io/all/conanfile.py
index 20a04052e80c52..73f6dfc98f678e 100644
--- a/recipes/aws-c-io/all/conanfile.py
+++ b/recipes/aws-c-io/all/conanfile.py
@@ -45,12 +45,15 @@ def requirements(self):
if Version(self.version) <= "0.10.9":
self.requires("aws-c-common/0.6.11", transitive_headers=True, transitive_libs=True)
self.requires("aws-c-cal/0.5.11")
- else:
+ elif Version(self.version) <= "0.13.4":
self.requires("aws-c-common/0.8.2", transitive_headers=True, transitive_libs=True)
self.requires("aws-c-cal/0.5.13")
+ else:
+ self.requires("aws-c-common/0.9.0", transitive_headers=True, transitive_libs=True)
+ self.requires("aws-c-cal/0.6.1", transitive_headers=True)
if self.settings.os in ["Linux", "FreeBSD", "Android"]:
- self.requires("s2n/1.3.31")
+ self.requires("s2n/1.3.50")
def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)
diff --git a/recipes/aws-c-io/config.yml b/recipes/aws-c-io/config.yml
index 6dca88e3f05544..febe94b14a0b39 100644
--- a/recipes/aws-c-io/config.yml
+++ b/recipes/aws-c-io/config.yml
@@ -1,4 +1,6 @@
versions:
+ "0.13.32":
+ folder: all
"0.13.4":
folder: all
"0.11.2":
diff --git a/recipes/aws-c-s3/all/conandata.yml b/recipes/aws-c-s3/all/conandata.yml
index af6e82a742aa67..776d2c58fad6ac 100644
--- a/recipes/aws-c-s3/all/conandata.yml
+++ b/recipes/aws-c-s3/all/conandata.yml
@@ -11,6 +11,3 @@ sources:
"0.1.27":
url: "https://github.com/awslabs/aws-c-s3/archive/v0.1.27.tar.gz"
sha256: "8fccbf967c3b29f0feaa1ba3de158b7ead805c3b4302c45b7cad3429f045920c"
- "0.1.19":
- url: "https://github.com/awslabs/aws-c-s3/archive/v0.1.19.tar.gz"
- sha256: "30e17e31eed18e8d621cd3d3978b2e6eeeee5557bfc3a9d701d0d3e1c4a8a74d"
diff --git a/recipes/aws-c-s3/all/conanfile.py b/recipes/aws-c-s3/all/conanfile.py
index 131627214ba790..4854a0ec7c6d5e 100644
--- a/recipes/aws-c-s3/all/conanfile.py
+++ b/recipes/aws-c-s3/all/conanfile.py
@@ -1,18 +1,21 @@
from conan import ConanFile
-from conan.tools.files import get, copy, rmdir
-from conan.tools.scm import Version
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
+from conan.tools.files import get, copy, rmdir, save
+from conan.tools.scm import Version
import os
+import textwrap
+
+required_conan_version = ">=1.53.0"
-required_conan_version = ">=1.47.0"
class AwsCS3(ConanFile):
name = "aws-c-s3"
description = "C99 implementation of the S3 client"
- license = "Apache-2.0",
+ license = "Apache-2.0"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/awslabs/aws-c-s3"
topics = ("aws", "amazon", "cloud", "s3")
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
@@ -29,37 +32,29 @@ def config_options(self):
def configure(self):
if self.options.shared:
- try:
- del self.options.fPIC
- except Exception:
- pass
- try:
- del self.settings.compiler.libcxx
- except Exception:
- pass
- try:
- del self.settings.compiler.cppstd
- except Exception:
- pass
+ self.options.rm_safe("fPIC")
+ self.settings.rm_safe("compiler.cppstd")
+ self.settings.rm_safe("compiler.libcxx")
def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("aws-c-common/0.8.2")
+ self.requires("aws-c-common/0.8.2", transitive_headers=True, transitive_libs=True)
+ self.requires("aws-c-cal/0.5.13")
if Version(self.version) < "0.1.49":
- self.requires("aws-c-io/0.10.20")
+ self.requires("aws-c-auth/0.6.11", transitive_headers=True)
self.requires("aws-c-http/0.6.13")
- self.requires("aws-c-auth/0.6.11")
+ self.requires("aws-c-io/0.10.20", transitive_headers=True)
else:
- self.requires("aws-c-io/0.13.4")
+ self.requires("aws-c-auth/0.6.17", transitive_headers=True)
self.requires("aws-c-http/0.6.22")
- self.requires("aws-c-auth/0.6.17")
+ self.requires("aws-c-io/0.13.4", transitive_headers=True)
if Version(self.version) >= "0.1.36":
self.requires("aws-checksums/0.1.13")
def source(self):
- get(self, **self.conan_data["sources"][self.version], destination=self.source_folder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def generate(self):
tc = CMakeToolchain(self)
@@ -80,24 +75,34 @@ def package(self):
cmake.install()
rmdir(self, os.path.join(self.package_folder, "lib", "aws-c-s3"))
+ # TODO: to remove in conan v2 once legacy generators removed
+ self._create_cmake_module_alias_targets(
+ os.path.join(self.package_folder, self._module_file_rel_path),
+ {"AWS::aws-c-s3": "aws-c-s3::aws-c-s3"}
+ )
+
+ def _create_cmake_module_alias_targets(self, module_file, targets):
+ content = ""
+ for alias, aliased in targets.items():
+ content += textwrap.dedent(f"""\
+ if(TARGET {aliased} AND NOT TARGET {alias})
+ add_library({alias} INTERFACE IMPORTED)
+ set_property(TARGET {alias} PROPERTY INTERFACE_LINK_LIBRARIES {aliased})
+ endif()
+ """)
+ save(self, module_file, content)
+
+ @property
+ def _module_file_rel_path(self):
+ return os.path.join("lib", "cmake", f"conan-official-{self.name}-targets.cmake")
+
def package_info(self):
self.cpp_info.set_property("cmake_file_name", "aws-c-s3")
self.cpp_info.set_property("cmake_target_name", "AWS::aws-c-s3")
+ self.cpp_info.libs = ["aws-c-s3"]
+ if self.options.shared:
+ self.cpp_info.defines.append("AWS_S3_USE_IMPORT_EXPORT")
- self.cpp_info.filenames["cmake_find_package"] = "aws-c-s3"
- self.cpp_info.filenames["cmake_find_package_multi"] = "aws-c-s3"
- self.cpp_info.names["cmake_find_package"] = "AWS"
- self.cpp_info.names["cmake_find_package_multi"] = "AWS"
- self.cpp_info.components["aws-c-s3-lib"].names["cmake_find_package"] = "aws-c-s3"
- self.cpp_info.components["aws-c-s3-lib"].names["cmake_find_package_multi"] = "aws-c-s3"
- self.cpp_info.components["aws-c-s3-lib"].set_property("cmake_target_name", "AWS::aws-c-s3")
-
- self.cpp_info.components["aws-c-s3-lib"].libs = ["aws-c-s3"]
- self.cpp_info.components["aws-c-s3-lib"].requires = [
- "aws-c-common::aws-c-common-lib",
- "aws-c-io::aws-c-io-lib",
- "aws-c-http::aws-c-http-lib",
- "aws-c-auth::aws-c-auth-lib"
- ]
- if Version(self.version) >= "0.1.36":
- self.cpp_info.components["aws-c-s3-lib"].requires.append("aws-checksums::aws-checksums-lib")
+ # TODO: to remove in conan v2 once cmake_find_package* generators removed
+ self.cpp_info.build_modules["cmake_find_package"] = [self._module_file_rel_path]
+ self.cpp_info.build_modules["cmake_find_package_multi"] = [self._module_file_rel_path]
diff --git a/recipes/aws-c-s3/all/test_v1_package/CMakeLists.txt b/recipes/aws-c-s3/all/test_v1_package/CMakeLists.txt
index 0778b2e2c7246d..0d20897301b68b 100644
--- a/recipes/aws-c-s3/all/test_v1_package/CMakeLists.txt
+++ b/recipes/aws-c-s3/all/test_v1_package/CMakeLists.txt
@@ -1,10 +1,8 @@
cmake_minimum_required(VERSION 3.1)
-project(test_package LANGUAGES C)
+project(test_package)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)
-find_package(aws-c-s3 REQUIRED CONFIG)
-
-add_executable(${PROJECT_NAME} ../test_package/test_package.c)
-target_link_libraries(${PROJECT_NAME} PRIVATE AWS::aws-c-s3)
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package)
diff --git a/recipes/aws-c-s3/config.yml b/recipes/aws-c-s3/config.yml
index 182095498622bf..9a2f6a3845f5c9 100644
--- a/recipes/aws-c-s3/config.yml
+++ b/recipes/aws-c-s3/config.yml
@@ -7,5 +7,3 @@ versions:
folder: all
"0.1.27":
folder: all
- "0.1.19":
- folder: all
diff --git a/recipes/aws-c-sdkutils/all/conandata.yml b/recipes/aws-c-sdkutils/all/conandata.yml
index 7ec4906cf9a7f3..4f2cc09884562a 100644
--- a/recipes/aws-c-sdkutils/all/conandata.yml
+++ b/recipes/aws-c-sdkutils/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.1.12":
+ url: "https://github.com/awslabs/aws-c-sdkutils/archive/v0.1.12.tar.gz"
+ sha256: "c876c3ce2918f1181c24829f599c8f06e29733f0bd6556d4c4fb523390561316"
"0.1.3":
url: "https://github.com/awslabs/aws-c-sdkutils/archive/v0.1.3.tar.gz"
sha256: "13d99c0877424a8fad40f312762968012dd54ec60a4438fb601ee65ff8b2484b"
diff --git a/recipes/aws-c-sdkutils/all/conanfile.py b/recipes/aws-c-sdkutils/all/conanfile.py
index f2158c8d10fa89..2312d025b2cb00 100644
--- a/recipes/aws-c-sdkutils/all/conanfile.py
+++ b/recipes/aws-c-sdkutils/all/conanfile.py
@@ -1,6 +1,7 @@
from conan import ConanFile
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
from conan.tools.files import get, copy, rmdir, save
+from conan.tools.scm import Version
import os
import textwrap
@@ -39,7 +40,10 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("aws-c-common/0.8.2", transitive_headers=True, transitive_libs=True)
+ if Version(self.version) <= "0.1.3":
+ self.requires("aws-c-common/0.8.2", transitive_headers=True, transitive_libs=True)
+ else:
+ self.requires("aws-c-common/0.9.0", transitive_headers=True, transitive_libs=True)
def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)
diff --git a/recipes/aws-c-sdkutils/config.yml b/recipes/aws-c-sdkutils/config.yml
index b2ced6f0d7ab75..c2aa05a42982f7 100644
--- a/recipes/aws-c-sdkutils/config.yml
+++ b/recipes/aws-c-sdkutils/config.yml
@@ -1,4 +1,6 @@
versions:
+ "0.1.12":
+ folder: all
"0.1.3":
folder: all
"0.1.2":
diff --git a/recipes/aws-checksums/all/conandata.yml b/recipes/aws-checksums/all/conandata.yml
index ddf66e3fcf5ae4..989708680b889a 100644
--- a/recipes/aws-checksums/all/conandata.yml
+++ b/recipes/aws-checksums/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.1.17":
+ url: "https://github.com/awslabs/aws-checksums/archive/v0.1.17.tar.gz"
+ sha256: "83c1fbae826631361a529e9565e64a942c412baaec6b705ae5da3f056b97b958"
"0.1.13":
url: "https://github.com/awslabs/aws-checksums/archive/v0.1.13.tar.gz"
sha256: "0f897686f1963253c5069a0e495b85c31635ba146cd3ac38cc2ea31eaf54694d"
@@ -14,5 +17,11 @@ sources:
patches:
"0.1.5":
- patch_file: "patches/0001-use-PROJECT_SOURCE_DIR.patch"
+ patch_description: "use PROJECT_NAME instead of CMAKE_PROJECT_NAME"
+ patch_type: "conan"
- patch_file: "patches/0002-disable-overriding-fPIC.patch"
+ patch_description: "disable overriding -fPIC"
+ patch_type: "conan"
- patch_file: "patches/0003-disable-building-tests.patch"
+ patch_description: "build no tests"
+ patch_type: "conan"
diff --git a/recipes/aws-checksums/all/conanfile.py b/recipes/aws-checksums/all/conanfile.py
index 80a0c88a8c55b4..401b1b679aa040 100644
--- a/recipes/aws-checksums/all/conanfile.py
+++ b/recipes/aws-checksums/all/conanfile.py
@@ -1,6 +1,7 @@
from conan import ConanFile
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
from conan.tools.files import apply_conandata_patches, export_conandata_patches, copy, get, rmdir, save
+from conan.tools.scm import Version
import os
import textwrap
@@ -45,7 +46,10 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("aws-c-common/0.8.2")
+ if Version(self.version) < "0.1.17":
+ self.requires("aws-c-common/0.8.2")
+ else:
+ self.requires("aws-c-common/0.9.0", transitive_headers=True)
def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)
diff --git a/recipes/aws-checksums/config.yml b/recipes/aws-checksums/config.yml
index 55fedf4c307f5e..efe23bdebe7e1b 100644
--- a/recipes/aws-checksums/config.yml
+++ b/recipes/aws-checksums/config.yml
@@ -1,4 +1,6 @@
versions:
+ "0.1.17":
+ folder: all
"0.1.13":
folder: all
"0.1.12":
diff --git a/recipes/aws-crt-cpp/all/conanfile.py b/recipes/aws-crt-cpp/all/conanfile.py
index 0b0f3153a28632..97c0f616bb653c 100644
--- a/recipes/aws-crt-cpp/all/conanfile.py
+++ b/recipes/aws-crt-cpp/all/conanfile.py
@@ -1,10 +1,11 @@
from conan import ConanFile
-from conan.tools.files import apply_conandata_patches, export_conandata_patches, get, copy, rmdir
+from conan.tools.files import apply_conandata_patches, export_conandata_patches, get, copy, rmdir, save
from conan.tools.build import check_min_cppstd
from conan.tools.scm import Version
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
import os
+import textwrap
required_conan_version = ">=1.53.0"
@@ -46,22 +47,23 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("aws-c-common/0.8.2")
+ self.requires("aws-c-cal/0.5.13", transitive_headers=True)
+ self.requires("aws-c-common/0.8.2", transitive_headers=True)
self.requires("aws-checksums/0.1.13")
if Version(self.version) < "0.17.29":
- self.requires("aws-c-io/0.10.20")
- self.requires("aws-c-http/0.6.13")
- self.requires("aws-c-auth/0.6.11")
- self.requires("aws-c-s3/0.1.37")
- self.requires("aws-c-mqtt/0.7.10")
+ self.requires("aws-c-auth/0.6.11", transitive_headers=True)
self.requires("aws-c-event-stream/0.2.7")
+ self.requires("aws-c-http/0.6.13", transitive_headers=True)
+ self.requires("aws-c-io/0.10.20", transitive_headers=True)
+ self.requires("aws-c-mqtt/0.7.10", transitive_headers=True)
+ self.requires("aws-c-s3/0.1.37")
else:
- self.requires("aws-c-io/0.13.4")
- self.requires("aws-c-http/0.6.22")
- self.requires("aws-c-auth/0.6.17")
- self.requires("aws-c-s3/0.1.49")
- self.requires("aws-c-mqtt/0.7.12")
+ self.requires("aws-c-auth/0.6.17", transitive_headers=True)
self.requires("aws-c-event-stream/0.2.15")
+ self.requires("aws-c-http/0.6.22", transitive_headers=True)
+ self.requires("aws-c-io/0.13.4", transitive_headers=True)
+ self.requires("aws-c-mqtt/0.7.12", transitive_headers=True)
+ self.requires("aws-c-s3/0.1.49")
def validate(self):
if self.settings.compiler.get_safe("cppstd"):
@@ -91,26 +93,34 @@ def package(self):
cmake.install()
rmdir(self, os.path.join(self.package_folder, "lib", "aws-crt-cpp"))
+ # TODO: to remove in conan v2 once legacy generators removed
+ self._create_cmake_module_alias_targets(
+ os.path.join(self.package_folder, self._module_file_rel_path),
+ {"AWS::aws-crt-cpp": "aws-crt-cpp::aws-crt-cpp"}
+ )
+
+ def _create_cmake_module_alias_targets(self, module_file, targets):
+ content = ""
+ for alias, aliased in targets.items():
+ content += textwrap.dedent(f"""\
+ if(TARGET {aliased} AND NOT TARGET {alias})
+ add_library({alias} INTERFACE IMPORTED)
+ set_property(TARGET {alias} PROPERTY INTERFACE_LINK_LIBRARIES {aliased})
+ endif()
+ """)
+ save(self, module_file, content)
+
+ @property
+ def _module_file_rel_path(self):
+ return os.path.join("lib", "cmake", f"conan-official-{self.name}-targets.cmake")
+
def package_info(self):
self.cpp_info.set_property("cmake_file_name", "aws-crt-cpp")
self.cpp_info.set_property("cmake_target_name", "AWS::aws-crt-cpp")
-
- self.cpp_info.components["aws-crt-cpp-lib"].names["cmake_find_package"] = "aws-crt-cpp"
- self.cpp_info.components["aws-crt-cpp-lib"].names["cmake_find_package_multi"] = "aws-crt-cpp"
- self.cpp_info.components["aws-crt-cpp-lib"].libs = ["aws-crt-cpp"]
- self.cpp_info.components["aws-crt-cpp-lib"].requires = [
- "aws-c-event-stream::aws-c-event-stream-lib",
- "aws-c-common::aws-c-common-lib",
- "aws-c-io::aws-c-io-lib",
- "aws-c-http::aws-c-http-lib",
- "aws-c-auth::aws-c-auth-lib",
- "aws-c-mqtt::aws-c-mqtt-lib",
- "aws-c-s3::aws-c-s3-lib",
- "aws-checksums::aws-checksums-lib"
- ]
+ self.cpp_info.libs = ["aws-crt-cpp"]
+ if self.options.shared:
+ self.cpp_info.defines.append("AWS_CRT_CPP_USE_IMPORT_EXPORT")
# TODO: to remove in conan v2 once cmake_find_package_* generators removed
- self.cpp_info.filenames["cmake_find_package"] = "aws-crt-cpp"
- self.cpp_info.filenames["cmake_find_package_multi"] = "aws-crt-cpp"
- self.cpp_info.names["cmake_find_package"] = "AWS"
- self.cpp_info.names["cmake_find_package_multi"] = "AWS"
+ self.cpp_info.build_modules["cmake_find_package"] = [self._module_file_rel_path]
+ self.cpp_info.build_modules["cmake_find_package_multi"] = [self._module_file_rel_path]
diff --git a/recipes/aws-kvs-pic/all/CMakeLists.txt b/recipes/aws-kvs-pic/all/CMakeLists.txt
deleted file mode 100644
index 6abb33ac667b00..00000000000000
--- a/recipes/aws-kvs-pic/all/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-cmake_minimum_required(VERSION 3.1)
-project(cmake_wrapper LANGUAGES C)
-
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup()
-
-add_subdirectory("source_subfolder")
diff --git a/recipes/aws-kvs-pic/all/conandata.yml b/recipes/aws-kvs-pic/all/conandata.yml
index 3e715c54770317..9d7d13929fbbc4 100644
--- a/recipes/aws-kvs-pic/all/conandata.yml
+++ b/recipes/aws-kvs-pic/all/conandata.yml
@@ -4,5 +4,4 @@ sources:
sha256: "5a6d8da62af766ec86423ead2a45d9ff00cd80ddea679ce228ff9696a490fae5"
patches:
"cci.20210812":
- - base_path: "source_subfolder"
- patch_file: "patches/0001-do-not-enforce-fpic.patch"
+ - patch_file: "patches/0001-do-not-enforce-fpic.patch"
diff --git a/recipes/aws-kvs-pic/all/conanfile.py b/recipes/aws-kvs-pic/all/conanfile.py
index 3cdebbedda8639..f9858a924f3048 100644
--- a/recipes/aws-kvs-pic/all/conanfile.py
+++ b/recipes/aws-kvs-pic/all/conanfile.py
@@ -1,37 +1,34 @@
import os
-from conans import ConanFile, tools, CMake
-from conans.errors import ConanInvalidConfiguration
-required_conan_version = ">=1.33.0"
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
+from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rmdir
+
+required_conan_version = ">=1.53.0"
+
class awskvspicConan(ConanFile):
name = "aws-kvs-pic"
+ description = "Platform Independent Code for Amazon Kinesis Video Streams"
license = "Apache-2.0"
- homepage = "https://github.com/awslabs/amazon-kinesis-video-streams-pic"
url = "https://github.com/conan-io/conan-center-index"
- description = ("Platform Independent Code for Amazon Kinesis Video Streams")
- settings = "os", "arch", "compiler", "build_type"
- options = {"shared": [True, False], "fPIC": [True, False]}
- default_options = {'shared': False, "fPIC": True}
- generators = "cmake"
+ homepage = "https://github.com/awslabs/amazon-kinesis-video-streams-pic"
topics = ("aws", "kvs", "kinesis", "video", "stream")
- exports_sources = ["CMakeLists.txt", "patches/*"]
- _cmake = None
- @property
- def _source_subfolder(self):
- return "source_subfolder"
+ package_type = "library"
+ settings = "os", "arch", "compiler", "build_type"
+ options = {
+ "shared": [True, False],
+ "fPIC": [True, False],
+ }
+ default_options = {
+ "shared": False,
+ "fPIC": True,
+ }
- def _configure_cmake(self):
- if not self._cmake:
- self._cmake = CMake(self)
- self._cmake.definitions["BUILD_DEPENDENCIES"] = False
- self._cmake.configure()
- return self._cmake
-
- def validate(self):
- if (self.settings.os != "Linux" and self.options.shared):
- raise ConanInvalidConfiguration("This library can only be built shared on Linux")
+ def export_sources(self):
+ export_conandata_patches(self)
def config_options(self):
if self.settings.os == "Windows":
@@ -39,38 +36,50 @@ def config_options(self):
def configure(self):
if self.options.shared:
- del self.options.fPIC
- del self.settings.compiler.cppstd
- del self.settings.compiler.libcxx
+ self.options.rm_safe("fPIC")
+ self.settings.rm_safe("compiler.cppstd")
+ self.settings.rm_safe("compiler.libcxx")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
+
+ def validate(self):
+ if self.settings.os not in ["Linux", "FreeBSD"] and self.options.shared:
+ raise ConanInvalidConfiguration("This library can only be built shared on Linux")
def source(self):
- tools.get(**self.conan_data["sources"][self.version], destination=self._source_subfolder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["BUILD_DEPENDENCIES"] = False
+ tc.generate()
def build(self):
- for patch in self.conan_data.get("patches", {}).get(self.version, []):
- tools.patch(**patch)
- cmake = self._configure_cmake()
+ apply_conandata_patches(self)
+ cmake = CMake(self)
+ cmake.configure()
cmake.build()
def package(self):
- self.copy("LICENSE", src=self._source_subfolder, dst="licenses")
- cmake = self._configure_cmake()
+ copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
+ cmake = CMake(self)
cmake.install()
- tools.rmdir(os.path.join(self.package_folder, "lib", "pkgconfig"))
+ rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
def package_info(self):
self.cpp_info.components["kvspic"].libs = ["kvspic"]
- self.cpp_info.components["kvspic"].names["pkg_config"] = "libkvspic"
+ self.cpp_info.components["kvspic"].set_property("pkg_config_name", "libkvspic")
if self.settings.os in ["Linux", "FreeBSD"]:
self.cpp_info.components["kvspic"].system_libs = ["dl", "rt", "pthread"]
self.cpp_info.components["kvspicClient"].libs = ["kvspicClient"]
- self.cpp_info.components["kvspicClient"].names["pkg_config"] = "libkvspicClient"
+ self.cpp_info.components["kvspicClient"].set_property("pkg_config_name", "libkvspicClient")
self.cpp_info.components["kvspicState"].libs = ["kvspicState"]
- self.cpp_info.components["kvspicState"].names["pkg_config"] = "libkvspicState"
+ self.cpp_info.components["kvspicState"].set_property("pkg_config_name", "libkvspicState")
self.cpp_info.components["kvspicUtils"].libs = ["kvspicUtils"]
- self.cpp_info.components["kvspicUtils"].names["pkg_config"] = "libkvspicUtils"
+ self.cpp_info.components["kvspicUtils"].set_property("pkg_config_name", "libkvspicUtils")
if self.settings.os in ["Linux", "FreeBSD"]:
self.cpp_info.components["kvspicUtils"].system_libs = ["dl", "rt", "pthread"]
diff --git a/recipes/aws-kvs-pic/all/test_package/CMakeLists.txt b/recipes/aws-kvs-pic/all/test_package/CMakeLists.txt
index dbfb3fd9c78618..33561c82ed591a 100644
--- a/recipes/aws-kvs-pic/all/test_package/CMakeLists.txt
+++ b/recipes/aws-kvs-pic/all/test_package/CMakeLists.txt
@@ -1,9 +1,6 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(test_package LANGUAGES C)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
-
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBKVSPIC REQUIRED IMPORTED_TARGET libkvspic)
diff --git a/recipes/aws-kvs-pic/all/test_package/conanfile.py b/recipes/aws-kvs-pic/all/test_package/conanfile.py
index 6fdab74d20c228..062f65da30ce60 100644
--- a/recipes/aws-kvs-pic/all/test_package/conanfile.py
+++ b/recipes/aws-kvs-pic/all/test_package/conanfile.py
@@ -1,12 +1,23 @@
import os
-from conans import ConanFile, CMake, tools
-class TestConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake", "pkg_config"
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "PkgConfigDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
def build_requirements(self):
- self.build_requires("pkgconf/1.7.4")
+ self.tool_requires("pkgconf/1.9.3")
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -14,6 +25,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/aws-kvs-pic/all/test_package/test_package.c b/recipes/aws-kvs-pic/all/test_package/test_package.c
index fe898105977799..08c9a0b45013e4 100644
--- a/recipes/aws-kvs-pic/all/test_package/test_package.c
+++ b/recipes/aws-kvs-pic/all/test_package/test_package.c
@@ -1,6 +1,7 @@
-#include
#include "com/amazonaws/kinesis/video/client/Include.h"
+#include
+
int main(int argc, char *argv[])
{
diff --git a/recipes/aws-kvs-pic/all/test_v1_package/CMakeLists.txt b/recipes/aws-kvs-pic/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/aws-kvs-pic/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/aws-kvs-pic/all/test_v1_package/conanfile.py b/recipes/aws-kvs-pic/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..c890c831be1237
--- /dev/null
+++ b/recipes/aws-kvs-pic/all/test_v1_package/conanfile.py
@@ -0,0 +1,19 @@
+import os
+from conans import ConanFile, CMake, tools
+
+class TestConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "pkg_config"
+
+ def build_requirements(self):
+ self.build_requires("pkgconf/1.9.3")
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/aws-libfabric/all/conanfile.py b/recipes/aws-libfabric/all/conanfile.py
index 134b19e72fb917..cdf0ee0dd31985 100644
--- a/recipes/aws-libfabric/all/conanfile.py
+++ b/recipes/aws-libfabric/all/conanfile.py
@@ -1,33 +1,44 @@
-from conans import ConanFile, AutoToolsBuildEnvironment, tools
-from conans.errors import ConanInvalidConfiguration
import os
-required_conan_version = ">=1.35.0"
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.apple import fix_apple_shared_install_name
+from conan.tools.build import cross_building
+from conan.tools.env import VirtualBuildEnv, VirtualRunEnv
+from conan.tools.files import chdir, collect_libs, copy, get, rm, rmdir
+from conan.tools.gnu import Autotools, AutotoolsDeps, AutotoolsToolchain
+from conan.tools.layout import basic_layout
+from conan.tools.microsoft import unix_path
+
+required_conan_version = ">=1.53.0"
+
class LibfabricConan(ConanFile):
name = "aws-libfabric"
description = "AWS Libfabric"
- topics = ("fabric", "communication", "framework", "service")
+ license = ("BSD-2-Clause", "GPL-2.0-or-later")
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/aws/libfabric"
- license = "BSD-2-Clause", "GPL-2.0-or-later"
+ topics = ("fabric", "communication", "framework", "service")
+
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
_providers = ["gni", "psm", "psm2", "sockets", "rxm", "tcp", "udp", "usnic", "verbs", "bgq", "shm", "efa", "rxd", "mrail", "rstream", "perf", "hook_debug"]
options = {
+ "shared": [True, False],
+ "fPIC": [True, False],
**{ p: [True, False, "shared"] for p in _providers },
**{
- "shared": [True, False],
- "fPIC": [True, False],
"with_libnl": [True, False],
"bgq_progress": ["auto", "manual"],
"bgq_mr": ["basic", "scalable"]
}
}
default_options = {
+ "shared": False,
+ "fPIC": True,
**{ p: False for p in _providers },
**{
- "shared": False,
- "fPIC": True,
"tcp": True,
"with_libnl": False,
"bgq_progress": "manual",
@@ -35,15 +46,6 @@ class LibfabricConan(ConanFile):
}
}
- @property
- def _source_subfolder(self):
- return "source_subfolder"
-
- _autotools = None
-
- def build_requirements(self):
- self.build_requires("libtool/2.4.6")
-
def config_options(self):
if self.settings.os == "Windows":
del self.options.fPIC
@@ -52,9 +54,12 @@ def config_options(self):
def configure(self):
if self.options.shared:
- del self.options.fPIC
- del self.settings.compiler.libcxx
- del self.settings.compiler.cppstd
+ self.options.rm_safe("fPIC")
+ self.settings.rm_safe("compiler.libcxx")
+ self.settings.rm_safe("compiler.cppstd")
+
+ def layout(self):
+ basic_layout(self, src_folder="src")
def requirements(self):
if self.options.with_libnl:
@@ -64,52 +69,56 @@ def validate(self):
if self.settings.os == "Windows":
raise ConanInvalidConfiguration("The libfabric package cannot be built on Windows.")
- def source(self):
- tools.get(**self.conan_data["sources"][self.version],
- destination=self._source_subfolder, strip_root=True)
-
- def _configure_autotools(self):
- if self._autotools:
- return self._autotools
- self._autotools = AutoToolsBuildEnvironment(self, win_bash=tools.os_info.is_windows)
- with tools.chdir(self._source_subfolder):
- self.run("{} -fiv".format(tools.get_env("AUTORECONF")), win_bash=tools.os_info.is_windows)
+ def build_requirements(self):
+ self.tool_requires("libtool/2.4.7")
+ def source(self):
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+ def generate(self):
+ env = VirtualBuildEnv(self)
+ env.generate()
+ if not cross_building(self):
+ env = VirtualRunEnv(self)
+ env.generate(scope="build")
yes_no_dl = lambda v: {"True": "yes", "False": "no", "shared": "dl"}[str(v)]
- yes_no = lambda v: "yes" if v else "no"
- args = [
- "--enable-shared={}".format(yes_no(self.options.shared)),
- "--enable-static={}".format(yes_no(not self.options.shared)),
+ tc = AutotoolsToolchain(self)
+ tc.configure_args += [
"--with-bgq-progress={}".format(self.options.bgq_progress),
"--with-bgq-mr={}".format(self.options.bgq_mr),
]
for p in self._providers:
- args.append("--enable-{}={}".format(p, yes_no_dl(getattr(self.options, p))))
+ tc.configure_args.append("--enable-{}={}".format(p, yes_no_dl(getattr(self.options, p))))
if self.options.with_libnl:
- args.append("--with-libnl={}".format(tools.unix_path(self.deps_cpp_info["libnl"].rootpath))),
+ tc.configure_args.append("--with-libnl={}".format(unix_path(self, self.dependencies["libnl"].package_folder)))
else:
- args.append("--with-libnl=no")
+ tc.configure_args.append("--with-libnl=no")
if self.settings.build_type == "Debug":
- args.append("--enable-debug")
- self._autotools.configure(args=args, configure_dir=self._source_subfolder)
- return self._autotools
+ tc.configure_args.append("--enable-debug")
+ tc.generate()
+ tc = AutotoolsDeps(self)
+ tc.generate()
def build(self):
- autotools = self._configure_autotools()
- autotools.make()
+ with chdir(self, self.source_folder):
+ autotools = Autotools(self)
+ autotools.autoreconf()
+ autotools.configure()
+ autotools.make()
def package(self):
- self.copy(pattern="COPYING", dst="licenses", src=self._source_subfolder)
- autotools = self._configure_autotools()
- autotools.install()
-
- tools.rmdir(os.path.join(self.package_folder, "share"))
- tools.rmdir(os.path.join(self.package_folder, "lib", "pkgconfig"))
- tools.remove_files_by_mask(os.path.join(self.package_folder, "lib"), "*.la")
+ copy(self, pattern="COPYING", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ with chdir(self, self.source_folder):
+ autotools = Autotools(self)
+ autotools.install()
+ rmdir(self, os.path.join(self.package_folder, "share"))
+ rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
+ rm(self, "*.la", self.package_folder, recursive=True)
+ fix_apple_shared_install_name(self)
def package_info(self):
- self.cpp_info.names["pkg_config"] = "libfabric"
- self.cpp_info.libs = self.collect_libs()
+ self.cpp_info.set_property("pkg_config_name", "libfabric")
+ self.cpp_info.libs = collect_libs(self)
if self.settings.os in ("FreeBSD", "Linux"):
self.cpp_info.system_libs = ["pthread", "m"]
if not self.options.shared:
diff --git a/recipes/aws-libfabric/all/test_package/CMakeLists.txt b/recipes/aws-libfabric/all/test_package/CMakeLists.txt
index 34af13462f44f8..1af9ab7c6f511e 100644
--- a/recipes/aws-libfabric/all/test_package/CMakeLists.txt
+++ b/recipes/aws-libfabric/all/test_package/CMakeLists.txt
@@ -1,8 +1,7 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package)
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES C)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup()
+find_package(aws-libfabric REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.c)
-target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
+target_link_libraries(${PROJECT_NAME} PRIVATE aws-libfabric::aws-libfabric)
diff --git a/recipes/aws-libfabric/all/test_package/conanfile.py b/recipes/aws-libfabric/all/test_package/conanfile.py
index d4128b04507778..ef5d7042163ecc 100644
--- a/recipes/aws-libfabric/all/test_package/conanfile.py
+++ b/recipes/aws-libfabric/all/test_package/conanfile.py
@@ -1,10 +1,19 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
class TestPackageConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -12,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/aws-libfabric/all/test_v1_package/CMakeLists.txt b/recipes/aws-libfabric/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/aws-libfabric/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/lyra/all/test_v1_package/conanfile.py b/recipes/aws-libfabric/all/test_v1_package/conanfile.py
similarity index 100%
rename from recipes/lyra/all/test_v1_package/conanfile.py
rename to recipes/aws-libfabric/all/test_v1_package/conanfile.py
diff --git a/recipes/aws-sdk-cpp/all/CMakeLists.txt b/recipes/aws-sdk-cpp/all/CMakeLists.txt
deleted file mode 100644
index d19ff91050d959..00000000000000
--- a/recipes/aws-sdk-cpp/all/CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-cmake_minimum_required(VERSION 3.5)
-project(cmake_wrapper)
-
-include(conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
-
-if(MSVC)
- add_definitions(-D_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING)
-endif()
-
-add_subdirectory(source_subfolder)
diff --git a/recipes/aws-sdk-cpp/all/conandata.yml b/recipes/aws-sdk-cpp/all/conandata.yml
index 8abd96ad2e0be1..5818aef791db03 100644
--- a/recipes/aws-sdk-cpp/all/conandata.yml
+++ b/recipes/aws-sdk-cpp/all/conandata.yml
@@ -10,29 +10,19 @@ sources:
sha256: "5dd09baa28d3f6f4fb03fbba1a4269724d79bcca3d47752cd3e15caf97276bda"
patches:
"1.9.234":
- - base_path: source_subfolder
- patch_file: patches/1.9.234-0001-issue-1816.patch
- - base_path: source_subfolder
- patch_file: patches/1.9.234-0002-disable-sort-links.patch
- - base_path: source_subfolder
- patch_file: patches/1.9.100-0002-aws-plugin-conf.patch
+ - patch_file: patches/1.9.234-0001-issue-1816.patch
+ - patch_file: patches/1.9.234-0002-disable-sort-links.patch
+ - patch_file: patches/1.9.100-0002-aws-plugin-conf.patch
+ - patch_file: patches/1.8.130-0004-improve-pulseaudio-detection.patch
"1.9.100":
- - base_path: source_subfolder
- patch_file: patches/1.9.100-0001-disable-sort-links.patch
- - base_path: source_subfolder
- patch_file: patches/1.9.100-0002-aws-plugin-conf.patch
- - base_path: source_subfolder
- patch_file: patches/1.9.100-0003-issue-1816.patch
+ - patch_file: patches/1.9.100-0001-disable-sort-links.patch
+ - patch_file: patches/1.9.100-0002-aws-plugin-conf.patch
+ - patch_file: patches/1.9.100-0003-issue-1816.patch
+ - patch_file: patches/1.8.130-0004-improve-pulseaudio-detection.patch
"1.8.130":
- - base_path: source_subfolder
- patch_file: patches/1.8.130-0001-disable-sort-links.patch
- - base_path: source_subfolder
- patch_file: patches/1.8.130-0002-force-archive-directory-to-library-directory.patch
- - base_path: source_subfolder
- patch_file: patches/1.8.130-0003-disable-cmake-install-rpath-use-link-path.patch
- - base_path: source_subfolder
- patch_file: patches/1.8.130-0004-improve-pulseaudio-detection.patch
- - base_path: source_subfolder
- patch_file: patches/1.8.130-0005-aws-plugin-conf.patch
- - base_path: source_subfolder
- patch_file: patches/1.8.130-0006-issue-1816.patch
+ - patch_file: patches/1.8.130-0001-disable-sort-links.patch
+ - patch_file: patches/1.8.130-0002-force-archive-directory-to-library-directory.patch
+ - patch_file: patches/1.8.130-0003-disable-cmake-install-rpath-use-link-path.patch
+ - patch_file: patches/1.8.130-0004-improve-pulseaudio-detection.patch
+ - patch_file: patches/1.8.130-0005-aws-plugin-conf.patch
+ - patch_file: patches/1.8.130-0006-issue-1816.patch
diff --git a/recipes/aws-sdk-cpp/all/conanfile.py b/recipes/aws-sdk-cpp/all/conanfile.py
index 91c2066868882a..678d3e32eb8c95 100644
--- a/recipes/aws-sdk-cpp/all/conanfile.py
+++ b/recipes/aws-sdk-cpp/all/conanfile.py
@@ -1,11 +1,14 @@
import os
-from conan.tools.files import rename
-from conan.tools.microsoft import msvc_runtime_flag
-from conans import CMake, ConanFile, tools
-from conans.errors import ConanInvalidConfiguration
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import cross_building, stdcpp_library
+from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
+from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rename, replace_in_file, rm, rmdir
+from conan.tools.microsoft import is_msvc, is_msvc_static_runtime
+from conan.tools.scm import Version
-required_conan_version = ">=1.43.0"
+required_conan_version = ">=1.54.0"
class AwsSdkCppConan(ConanFile):
@@ -15,7 +18,7 @@ class AwsSdkCppConan(ConanFile):
homepage = "https://github.com/aws/aws-sdk-cpp"
description = "AWS SDK for C++"
topics = ("aws", "cpp", "cross-platform", "amazon", "cloud")
-
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
_sdks = (
"access-management",
@@ -304,17 +307,7 @@ class AwsSdkCppConan(ConanFile):
default_options["transfer"] = True
default_options["text-to-speech"] = True
- generators = "cmake", "cmake_find_package"
short_paths = True
- _cmake = None
-
- @property
- def _source_subfolder(self):
- return "source_subfolder"
-
- @property
- def _is_msvc(self):
- return str(self.settings.compiler) in ["Visual Studio", "msvc"]
@property
def _internal_requirements(self):
@@ -329,35 +322,36 @@ def _internal_requirements(self):
@property
def _use_aws_crt_cpp(self):
- return tools.Version(self.version) >= "1.9"
+ return Version(self.version) >= "1.9"
def export_sources(self):
- self.copy("CMakeLists.txt")
- for patch in self.conan_data.get("patches", {}).get(self.version, []):
- self.copy(patch["patch_file"])
+ export_conandata_patches(self)
def config_options(self):
if self.settings.os == "Windows":
del self.options.fPIC
- if tools.Version(self.version) < "1.9":
- delattr(self.options, "s3-crt")
+ if Version(self.version) < "1.9":
+ self.options.rm_safe("s3-crt")
def configure(self):
if self.options.shared:
- del self.options.fPIC
+ self.options.rm_safe("fPIC")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("aws-c-common/0.6.19")
+ self.requires("aws-c-common/0.8.2")
+ self.requires("aws-c-event-stream/0.2.7")
+ self.requires("aws-checksums/0.1.13")
if self._use_aws_crt_cpp:
self.requires("aws-c-cal/0.5.13")
self.requires("aws-c-http/0.6.13")
self.requires("aws-c-io/0.10.20")
- self.requires("aws-crt-cpp/0.17.23")
- else:
- self.requires("aws-c-event-stream/0.2.7")
+ self.requires("aws-crt-cpp/0.17.23", transitive_headers=True)
if self.settings.os != "Windows":
- self.requires("openssl/1.1.1n")
- self.requires("libcurl/7.80.0")
+ self.requires("openssl/[>=1.1 <4]")
+ self.requires("libcurl/[>=7.78.0 <9]")
if self.settings.os in ["Linux", "FreeBSD"]:
if self.options.get_safe("text-to-speech"):
self.requires("pulseaudio/14.2")
@@ -365,21 +359,21 @@ def requirements(self):
def validate(self):
if (self.options.shared
and self.settings.compiler == "gcc"
- and tools.Version(self.settings.compiler.version) < "6.0"):
+ and Version(self.settings.compiler.version) < "6.0"):
raise ConanInvalidConfiguration(
"Doesn't support gcc5 / shared. "
"See https://github.com/conan-io/conan-center-index/pull/4401#issuecomment-802631744"
)
- if (tools.Version(self.version) < "1.9.234"
+ if (Version(self.version) < "1.9.234"
and self.settings.compiler == "gcc"
- and tools.Version(self.settings.compiler.version) >= "11.0"
+ and Version(self.settings.compiler.version) >= "11.0"
and self.settings.build_type == "Release"):
raise ConanInvalidConfiguration(
"Versions prior to 1.9.234 don't support release builds on >= gcc 11 "
"See https://github.com/aws/aws-sdk-cpp/issues/1505"
)
if self._use_aws_crt_cpp:
- if self._is_msvc and "MT" in msvc_runtime_flag(self):
+ if is_msvc(self) and is_msvc_static_runtime(self):
raise ConanInvalidConfiguration("Static runtime is not working for more recent releases")
else:
if self.settings.os == "Macos" and self.settings.arch == "armv8":
@@ -390,48 +384,60 @@ def validate(self):
def package_id(self):
for hl_comp in self._internal_requirements.keys():
- if getattr(self.options, hl_comp):
+ if getattr(self.info.options, hl_comp):
for internal_requirement in self._internal_requirements[hl_comp]:
setattr(self.info.options, internal_requirement, True)
def source(self):
- tools.get(**self.conan_data["sources"][self.version],
- destination=self._source_subfolder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
- def _configure_cmake(self):
- if self._cmake:
- return self._cmake
- self._cmake = CMake(self)
+ def generate(self):
+ tc = CMakeToolchain(self)
+ # All option() are defined before project() in upstream CMakeLists,
+ # therefore we must use cache_variables
build_only = ["core"]
for sdk in self._sdks:
if self.options.get_safe(sdk):
build_only.append(sdk)
- self._cmake.definitions["BUILD_ONLY"] = ";".join(build_only)
+ tc.cache_variables["BUILD_ONLY"] = ";".join(build_only)
- self._cmake.definitions["ENABLE_UNITY_BUILD"] = True
- self._cmake.definitions["ENABLE_TESTING"] = False
- self._cmake.definitions["AUTORUN_UNIT_TESTS"] = False
- self._cmake.definitions["BUILD_DEPS"] = False
+ tc.cache_variables["ENABLE_UNITY_BUILD"] = True
+ tc.cache_variables["ENABLE_TESTING"] = False
+ tc.cache_variables["AUTORUN_UNIT_TESTS"] = False
+ tc.cache_variables["BUILD_DEPS"] = False
if self.settings.os != "Windows":
- self._cmake.definitions["ENABLE_OPENSSL_ENCRYPTION"] = True
-
- self._cmake.definitions["MINIMIZE_SIZE"] = self.options.min_size
- if self._is_msvc and not self._use_aws_crt_cpp:
- self._cmake.definitions["FORCE_SHARED_CRT"] = "MD" in msvc_runtime_flag(self)
-
- if tools.cross_building(self):
- self._cmake.definitions["CURL_HAS_H2_EXITCODE"] = "0"
- self._cmake.definitions["CURL_HAS_H2_EXITCODE__TRYRUN_OUTPUT"] = ""
- self._cmake.definitions["CURL_HAS_TLS_PROXY_EXITCODE"] = "0"
- self._cmake.definitions["CURL_HAS_TLS_PROXY_EXITCODE__TRYRUN_OUTPUT"] = ""
- self._cmake.configure()
- return self._cmake
+ tc.cache_variables["ENABLE_OPENSSL_ENCRYPTION"] = True
+
+ tc.cache_variables["MINIMIZE_SIZE"] = self.options.min_size
+ if is_msvc(self) and not self._use_aws_crt_cpp:
+ tc.cache_variables["FORCE_SHARED_CRT"] = not is_msvc_static_runtime(self)
+
+ if cross_building(self):
+ tc.cache_variables["CURL_HAS_H2_EXITCODE"] = "0"
+ tc.cache_variables["CURL_HAS_H2_EXITCODE__TRYRUN_OUTPUT"] = ""
+ tc.cache_variables["CURL_HAS_TLS_PROXY_EXITCODE"] = "0"
+ tc.cache_variables["CURL_HAS_TLS_PROXY_EXITCODE__TRYRUN_OUTPUT"] = ""
+ if is_msvc(self):
+ tc.preprocessor_definitions["_SILENCE_CXX17_OLD_ALLOCATOR_MEMBERS_DEPRECATION_WARNING"] = "1"
+ tc.cache_variables["BUILD_SHARED_LIBS"] = self.options.shared
+ tc.generate()
+
+ deps = CMakeDeps(self)
+ deps.generate()
+
+ def _patch_sources(self):
+ apply_conandata_patches(self)
+ # Disable warnings as errors
+ replace_in_file(
+ self, os.path.join(self.source_folder, "cmake", "compiler_settings.cmake"),
+ 'list(APPEND AWS_COMPILER_WARNINGS "-Wall" "-Werror" "-pedantic" "-Wextra")', "",
+ )
def build(self):
- for patch in self.conan_data.get("patches", {}).get(self.version, []):
- tools.patch(**patch)
- cmake = self._configure_cmake()
+ self._patch_sources()
+ cmake = CMake(self)
+ cmake.configure()
cmake.build()
@property
@@ -449,44 +455,56 @@ def _create_project_cmake_module(self):
"toolchains/pkg-config.pc.in",
"aws-cpp-sdk-core/include/aws/core/VersionConfig.h"
]:
- self.copy(file, src=self._source_subfolder, dst=self._res_folder)
- tools.replace_in_file(os.path.join(self.package_folder, self._res_folder, file), "CMAKE_CURRENT_SOURCE_DIR", "AWS_NATIVE_SDK_ROOT", strict=False)
+ copy(self, file, src=self.source_folder, dst=os.path.join(self.package_folder, self._res_folder))
+ replace_in_file(
+ self, os.path.join(self.package_folder, self._res_folder, file),
+ "CMAKE_CURRENT_SOURCE_DIR", "AWS_NATIVE_SDK_ROOT",
+ strict=False,
+ )
# avoid getting error from hook
- with tools.chdir(os.path.join(self.package_folder, self._res_folder)):
- rename(self, os.path.join("toolchains", "cmakeProjectConfig.cmake"), os.path.join("toolchains", "cmakeProjectConf.cmake"))
- tools.replace_in_file(os.path.join("cmake", "utilities.cmake"), "cmakeProjectConfig.cmake", "cmakeProjectConf.cmake")
+ rename(self, os.path.join(self.package_folder, self._res_folder, "toolchains", "cmakeProjectConfig.cmake"),
+ os.path.join(self.package_folder, self._res_folder, "toolchains", "cmakeProjectConf.cmake"))
+ replace_in_file(
+ self, os.path.join(self.package_folder, self._res_folder, "cmake", "utilities.cmake"),
+ "cmakeProjectConfig.cmake", "cmakeProjectConf.cmake",
+ )
def package(self):
- self.copy("LICENSE", dst="licenses", src=self._source_subfolder)
- cmake = self._configure_cmake()
+ copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
+ cmake = CMake(self)
cmake.install()
- if self._is_msvc:
- self.copy(pattern="*.lib", dst="lib", keep_path=False)
- tools.remove_files_by_mask(os.path.join(self.package_folder, "bin"), "*.lib")
+ if is_msvc(self):
+ copy(self, "*.lib", src=self.build_folder, dst=os.path.join(self.package_folder, "lib"), keep_path=False)
+ rm(self, "*.lib", os.path.join(self.package_folder, "bin"))
- tools.rmdir(os.path.join(self.package_folder, "lib", "cmake"))
- tools.rmdir(os.path.join(self.package_folder, "lib", "pkgconfig"))
+ rmdir(self, os.path.join(self.package_folder, "lib", "cmake"))
+ rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
self._create_project_cmake_module()
def package_info(self):
self.cpp_info.set_property("cmake_file_name", "AWSSDK")
+ sdk_plugin_conf = os.path.join(self._res_folder, "cmake", "sdk_plugin_conf.cmake")
+ self.cpp_info.set_property("cmake_build_modules", [sdk_plugin_conf])
+
# core component
self.cpp_info.components["core"].set_property("cmake_target_name", "AWS::aws-sdk-cpp-core")
self.cpp_info.components["core"].set_property("pkg_config_name", "aws-sdk-cpp-core")
self.cpp_info.components["core"].libs = ["aws-cpp-sdk-core"]
- self.cpp_info.components["core"].requires = ["aws-c-common::aws-c-common-lib"]
+ self.cpp_info.components["core"].requires = [
+ "aws-c-common::aws-c-common",
+ "aws-c-event-stream::aws-c-event-stream",
+ "aws-checksums::aws-checksums",
+ ]
if self._use_aws_crt_cpp:
self.cpp_info.components["core"].requires.extend([
- "aws-c-cal::aws-c-cal-lib",
- "aws-c-http::aws-c-http-lib",
- "aws-c-io::aws-c-io-lib",
- "aws-crt-cpp::aws-crt-cpp-lib",
+ "aws-c-cal::aws-c-cal",
+ "aws-c-http::aws-c-http",
+ "aws-c-io::aws-c-io",
+ "aws-crt-cpp::aws-crt-cpp",
])
- else:
- self.cpp_info.components["core"].requires.append("aws-c-event-stream::aws-c-event-stream-lib")
# other components
enabled_sdks = [sdk for sdk in self._sdks if self.options.get_safe(sdk)]
@@ -500,8 +518,8 @@ def package_info(self):
# TODO: there is no way to properly emulate COMPONENTS names for
# find_package(AWSSDK COMPONENTS ) in set_property()
# right now: see https://github.com/conan-io/conan/issues/10258
- self.cpp_info.components[sdk].set_property("cmake_target_name", "AWS::aws-sdk-cpp-{}".format(sdk))
- self.cpp_info.components[sdk].set_property("pkg_config_name", "aws-sdk-cpp-{}".format(sdk))
+ self.cpp_info.components[sdk].set_property("cmake_target_name", f"AWS::aws-sdk-cpp-{sdk}")
+ self.cpp_info.components[sdk].set_property("pkg_config_name", f"aws-sdk-cpp-{sdk}")
self.cpp_info.components[sdk].requires = ["core"]
if sdk in self._internal_requirements:
self.cpp_info.components[sdk].requires.extend(self._internal_requirements[sdk])
@@ -510,7 +528,7 @@ def package_info(self):
# TODO: to remove in conan v2 once cmake_find_package_* generators removed
self.cpp_info.components[sdk].names["cmake_find_package"] = "aws-sdk-cpp-" + sdk
self.cpp_info.components[sdk].names["cmake_find_package_multi"] = "aws-sdk-cpp-" + sdk
- component_alias = "aws-sdk-cpp-{}_alias".format(sdk) # to emulate COMPONENTS names for find_package()
+ component_alias = f"aws-sdk-cpp-{sdk}_alias" # to emulate COMPONENTS names for find_package()
self.cpp_info.components[component_alias].names["cmake_find_package"] = sdk
self.cpp_info.components[component_alias].names["cmake_find_package_multi"] = sdk
self.cpp_info.components[component_alias].requires = [sdk]
@@ -534,9 +552,14 @@ def package_info(self):
if self.options.get_safe("text-to-speech"):
self.cpp_info.components["text-to-speech"].frameworks.append("CoreAudio")
- lib_stdcpp = tools.stdcpp_library(self)
- if lib_stdcpp:
- self.cpp_info.components["core"].system_libs.append(lib_stdcpp)
+ libcxx = stdcpp_library(self)
+ if libcxx:
+ self.cpp_info.components["core"].system_libs.append(libcxx)
+
+ self.cpp_info.components["plugin_scripts"].requires = ["core"]
+ self.cpp_info.components["plugin_scripts"].builddirs.extend([
+ os.path.join(self._res_folder, "cmake"),
+ os.path.join(self._res_folder, "toolchains")])
# TODO: to remove in conan v2 once cmake_find_package_* generators removed
self.cpp_info.filenames["cmake_find_package"] = "AWSSDK"
@@ -545,9 +568,5 @@ def package_info(self):
self.cpp_info.names["cmake_find_package_multi"] = "AWS"
self.cpp_info.components["core"].names["cmake_find_package"] = "aws-sdk-cpp-core"
self.cpp_info.components["core"].names["cmake_find_package_multi"] = "aws-sdk-cpp-core"
-
- self.cpp_info.components["plugin_scripts"].requires = ["core"]
- self.cpp_info.components["plugin_scripts"].builddirs.extend([
- os.path.join(self._res_folder, "cmake"),
- os.path.join(self._res_folder, "toolchains")])
- self.cpp_info.components["plugin_scripts"].build_modules.append(os.path.join(self._res_folder, "cmake", "sdk_plugin_conf.cmake"))
+ self.cpp_info.components["plugin_scripts"].build_modules["cmake_find_package"] = [sdk_plugin_conf]
+ self.cpp_info.components["plugin_scripts"].build_modules["cmake_find_package_multi"] = [sdk_plugin_conf]
diff --git a/recipes/aws-sdk-cpp/all/patches/1.8.130-0004-improve-pulseaudio-detection.patch b/recipes/aws-sdk-cpp/all/patches/1.8.130-0004-improve-pulseaudio-detection.patch
index 5a47717a4552ae..9930b981211f60 100644
--- a/recipes/aws-sdk-cpp/all/patches/1.8.130-0004-improve-pulseaudio-detection.patch
+++ b/recipes/aws-sdk-cpp/all/patches/1.8.130-0004-improve-pulseaudio-detection.patch
@@ -24,7 +24,7 @@ index b1054515d5..d1a34ddfc5 100644
message(STATUS "Pulse audio header files have been detected, included pulse audio as a possible sound driver implementation.")
add_definitions("-DPULSE")
- set(PLATFORM_LIBS ${PLATFORM_LIBS} pulse pulse-simple)
-+ set(PLATFORM_LIBS ${PLATFORM_LIBS} "CONAN_PKG::pulseaudio")
++ set(PLATFORM_LIBS ${PLATFORM_LIBS} "pulseaudio::pulseaudio")
else()
message(WARNING "We've detected that you are building on linux, but the header files for pulseaudio are not available.\
If you are providing your own audio implementation or you will not be using the text-to-speech library, this is fine.\
diff --git a/recipes/aws-sdk-cpp/all/test_package/CMakeLists.txt b/recipes/aws-sdk-cpp/all/test_package/CMakeLists.txt
index efb9a3d957583e..dda85fd047b73f 100644
--- a/recipes/aws-sdk-cpp/all/test_package/CMakeLists.txt
+++ b/recipes/aws-sdk-cpp/all/test_package/CMakeLists.txt
@@ -1,13 +1,10 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package CXX)
-
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
+cmake_minimum_required(VERSION 3.8)
+project(test_package LANGUAGES CXX)
find_package(AWSSDK REQUIRED CONFIG)
add_subdirectory(aws-sdk-cpp-plugin)
add_executable(${PROJECT_NAME} test_package.cpp)
-target_link_libraries(${PROJECT_NAME} aws-sdk-cpp-plugin)
-set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 11)
+target_link_libraries(${PROJECT_NAME} PRIVATE aws-sdk-cpp-plugin)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
diff --git a/recipes/aws-sdk-cpp/all/test_package/aws-sdk-cpp-plugin/CMakeLists.txt b/recipes/aws-sdk-cpp/all/test_package/aws-sdk-cpp-plugin/CMakeLists.txt
index dddf745d2e4081..37d0edc6941d9d 100644
--- a/recipes/aws-sdk-cpp/all/test_package/aws-sdk-cpp-plugin/CMakeLists.txt
+++ b/recipes/aws-sdk-cpp/all/test_package/aws-sdk-cpp-plugin/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.8)
add_project(aws-sdk-cpp-plugin "C++ AWS SDK plugin" AWS::aws-sdk-cpp-s3)
@@ -8,7 +8,7 @@ include(GenerateExportHeader)
generate_export_header(${PROJECT_NAME} BASE_NAME aws_sdk_cpp_plugin)
target_include_directories(${PROJECT_NAME} PUBLIC $ $)
target_link_libraries(${PROJECT_NAME} PUBLIC ${PROJECT_LIBS})
-set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 11)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
setup_install()
diff --git a/recipes/aws-sdk-cpp/all/test_package/conanfile.py b/recipes/aws-sdk-cpp/all/test_package/conanfile.py
index 38f4483872d47f..e845ae751a3017 100644
--- a/recipes/aws-sdk-cpp/all/test_package/conanfile.py
+++ b/recipes/aws-sdk-cpp/all/test_package/conanfile.py
@@ -1,10 +1,19 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
class TestPackageConan(ConanFile):
settings = "os", "arch", "compiler", "build_type"
- generators = "cmake", "cmake_find_package_multi"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def layout(self):
+ cmake_layout(self)
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
def build(self):
cmake = CMake(self)
@@ -12,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/aws-c-common/all/test_v1_package/CMakeLists.txt b/recipes/aws-sdk-cpp/all/test_v1_package/CMakeLists.txt
similarity index 100%
rename from recipes/aws-c-common/all/test_v1_package/CMakeLists.txt
rename to recipes/aws-sdk-cpp/all/test_v1_package/CMakeLists.txt
diff --git a/recipes/aws-c-common/all/test_v1_package/conanfile.py b/recipes/aws-sdk-cpp/all/test_v1_package/conanfile.py
similarity index 100%
rename from recipes/aws-c-common/all/test_v1_package/conanfile.py
rename to recipes/aws-sdk-cpp/all/test_v1_package/conanfile.py
diff --git a/recipes/azure-storage-cpp/all/conanfile.py b/recipes/azure-storage-cpp/all/conanfile.py
index 692bc2ab703fed..92f05a255ac83f 100644
--- a/recipes/azure-storage-cpp/all/conanfile.py
+++ b/recipes/azure-storage-cpp/all/conanfile.py
@@ -51,7 +51,7 @@ def requirements(self):
if self.settings.os != "Windows":
self.requires("boost/1.76.0")
self.requires("libxml2/2.9.10")
- self.requires("libuuid/1.0.3")
+ self.requires("util-linux-libuuid/2.39")
if self.settings.os == "Macos":
self.requires("libgettext/0.20.1")
diff --git a/recipes/b2/portable/conanfile.py b/recipes/b2/portable/conanfile.py
index dad95965dea312..829c74015b1efe 100644
--- a/recipes/b2/portable/conanfile.py
+++ b/recipes/b2/portable/conanfile.py
@@ -1,6 +1,7 @@
from conan import ConanFile
from conan.errors import ConanInvalidConfiguration
from conan.tools.build import cross_building
+from conan.tools.env import VirtualBuildEnv
from conan.tools.files import chdir, copy, get
from conan.tools.layout import basic_layout
@@ -107,6 +108,12 @@ def _bootstrap_env(self):
os.environ.clear()
os.environ.update(saved_env)
+ def _write_project_config(self, cxx):
+ with open(os.path.join(self.source_folder, "project-config.jam"), "w") as f:
+ f.write(
+ f"using {self.options.toolset} : : {cxx} ;\n"
+ )
+
def build(self):
# The order of the with:with: below is important. The first one changes
# the current dir. While the second does env changes that guarantees
@@ -139,10 +146,14 @@ def build(self):
command += "build" if use_windows_commands else "./build.sh"
if self.options.use_cxx_env:
- cxx = os.environ.get("CXX")
+ envvars = VirtualBuildEnv(self).vars()
+
+ cxx = envvars.get("CXX")
if cxx:
command += f" --cxx={cxx}"
- cxxflags = os.environ.get("CXXFLAGS")
+ self._write_project_config(cxx)
+
+ cxxflags = envvars.get("CXXFLAGS")
if cxxflags:
command += f" --cxxflags={cxxflags}"
diff --git a/recipes/bandit/all/conanfile.py b/recipes/bandit/all/conanfile.py
index 31fd2c6978fa44..5bc2e2513915d3 100644
--- a/recipes/bandit/all/conanfile.py
+++ b/recipes/bandit/all/conanfile.py
@@ -1,39 +1,41 @@
from conan import ConanFile
-from conan.tools.files import apply_conandata_patches, copy, get
+from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get
from conan.tools.layout import basic_layout
import os
-required_conan_version = ">=1.51.3"
+required_conan_version = ">=1.52.0"
class BanditConan(ConanFile):
name = "bandit"
description = "Human-friendly unit testing for C++11"
- topics = ("testing", "header-only")
+ license = "MIT"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/banditcpp/bandit"
- license = "MIT"
+ topics = ("testing", "header-only")
+ package_type = "header-library"
def export_sources(self):
- for p in self.conan_data.get("patches", {}).get(self.version, []):
- copy(self, p["patch_file"], self.recipe_folder, self.export_sources_folder)
+ export_conandata_patches(self)
def requirements(self):
- self.requires("snowhouse/5.0.0")
+ self.requires("snowhouse/5.0.0", transitive_headers=True)
def source(self):
- get(self, **self.conan_data["sources"][self.version],
- destination=self.source_folder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def layout(self):
- basic_layout(self)
+ basic_layout(self, src_folder="src")
def build(self):
apply_conandata_patches(self)
def package(self):
copy(self, "LICENSE.txt", src=os.path.join(self.source_folder, "docs"), dst=os.path.join(self.package_folder, "licenses"))
- copy(self, pattern="*", dst=os.path.join(self.package_folder, "include", "bandit"), src=os.path.join(self.source_folder, "bandit"))
+ copy(self,
+ pattern="*.h",
+ dst=os.path.join(self.package_folder, "include", "bandit"),
+ src=os.path.join(self.source_folder, "bandit"))
def package_id(self):
self.info.clear()
@@ -43,4 +45,3 @@ def package_info(self):
self.cpp_info.frameworkdirs = []
self.cpp_info.libdirs = []
self.cpp_info.resdirs = []
-
diff --git a/recipes/benchmark/all/conandata.yml b/recipes/benchmark/all/conandata.yml
index 91541bdc04e27f..8a3c24a77b927d 100644
--- a/recipes/benchmark/all/conandata.yml
+++ b/recipes/benchmark/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.8.3":
+ url: "https://github.com/google/benchmark/archive/refs/tags/v1.8.3.tar.gz"
+ sha256: "6bc180a57d23d4d9515519f92b0c83d61b05b5bab188961f36ac7b06b0d9e9ce"
"1.8.2":
url: "https://github.com/google/benchmark/archive/refs/tags/v1.8.2.tar.gz"
sha256: "2aab2980d0376137f969d92848fbb68216abb07633034534fc8c65cc4e7a0e93"
diff --git a/recipes/benchmark/config.yml b/recipes/benchmark/config.yml
index b76259067bc586..f3ed1f1e957435 100644
--- a/recipes/benchmark/config.yml
+++ b/recipes/benchmark/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.8.3":
+ folder: all
"1.8.2":
folder: all
"1.8.1":
diff --git a/recipes/bgfx/all/conandata.yml b/recipes/bgfx/all/conandata.yml
new file mode 100644
index 00000000000000..47606f9539fe5a
--- /dev/null
+++ b/recipes/bgfx/all/conandata.yml
@@ -0,0 +1,4 @@
+sources:
+ "cci.20230216":
+ url: "https://github.com/bkaradzic/bgfx/archive/9d5b980f5c060e54cc30dec18500a5b54db00405.tar.gz"
+ sha256: "291739720E369C5C2422273D887AEC590084B29E5C9DC5C9441F5A68869B6736"
diff --git a/recipes/bgfx/all/conanfile.py b/recipes/bgfx/all/conanfile.py
new file mode 100644
index 00000000000000..9de812b7f94ea5
--- /dev/null
+++ b/recipes/bgfx/all/conanfile.py
@@ -0,0 +1,321 @@
+from conan import ConanFile
+from conan.tools.files import copy, get, rename
+from conan.tools.build import check_min_cppstd
+from conan.tools.layout import basic_layout
+from conan.tools.microsoft import is_msvc, check_min_vs, is_msvc_static_runtime
+from conan.tools.apple import fix_apple_shared_install_name, is_apple_os
+from conan.tools.scm import Version
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.microsoft import MSBuild, VCVars
+from conan.tools.gnu import Autotools, AutotoolsToolchain
+from conan.tools.env import VirtualBuildEnv
+from pathlib import Path
+import os
+
+required_conan_version = ">=1.50.0"
+
+class bgfxConan(ConanFile):
+ name = "bgfx"
+ license = "BSD-2-Clause"
+ homepage = "https://github.com/bkaradzic/bgfx"
+ url = "https://github.com/conan-io/conan-center-index"
+ description = "Cross-platform, graphics API agnostic, \"Bring Your Own Engine/Framework\" style rendering library."
+ topics = ("rendering", "graphics")
+ settings = "os", "compiler", "arch", "build_type"
+ options = {"shared": [True, False], "tools": [True, False]}
+ default_options = {"shared": False, "tools": False}
+
+ @property
+ def _bx_folder(self):
+ return "bx"
+
+ @property
+ def _bimg_folder(self):
+ return "bimg"
+
+ @property
+ def _bgfx_folder(self):
+ return "bgfx"
+
+ @property
+ def _bgfx_path(self):
+ return os.path.join(self.source_folder, self._bgfx_folder)
+
+ @property
+ def _genie_extra(self):
+ genie_extra = ""
+ if is_msvc(self) and not is_msvc_static_runtime(self):
+ genie_extra += " --with-dynamic-runtime"
+ if self.options.shared:
+ genie_extra += " --with-shared-lib"
+ if self.options.tools:
+ genie_extra += " --with-tools"
+ return genie_extra
+
+ @property
+ def _lib_target_prefix(self):
+ if self.settings.os == "Windows":
+ return "libs\\"
+ else:
+ return ""
+
+ @property
+ def _tool_target_prefix(self):
+ if self.settings.os == "Windows":
+ return "tools\\"
+ else:
+ return ""
+
+ @property
+ def _shaderc_target_prefix(self):
+ if self.settings.os == "Windows":
+ return "shaderc\\"
+ else:
+ return ""
+
+ @property
+ def _projs(self):
+ if self.options.shared:
+ projs = [f"{self._lib_target_prefix}bgfx-shared-lib"]
+ else:
+ projs = [f"{self._lib_target_prefix}bgfx"]
+ if self.options.tools:
+ projs.extend([f"{self._tool_target_prefix}{self._shaderc_target_prefix}shaderc",
+ f"{self._tool_target_prefix}texturev",
+ f"{self._tool_target_prefix}geometryc",
+ f"{self._tool_target_prefix}geometryv"])
+ return projs
+
+ @property
+ def _compiler_required(self):
+ return {
+ "gcc": "8",
+ "clang": "3.3",
+ "apple-clang": "12", #to keep CCI compiling on osx 11.0 or higher, for now
+ "msvc": "191",
+ "Visual Studio": "15" #TODO remove with conan 2.0
+ }
+
+ @property
+ def _bx_version(self): #mapping of bgfx version to required/used bx version
+ return {"cci.20230216": "cci.20221116"}
+
+ @property
+ def _bimg_version(self): #mapping of bgfx version to required/used bimg version
+ return {"cci.20230216": "cci.20230114"}
+
+ @property
+ def _settings_build(self):
+ return getattr(self, "settings_build", self.settings)
+
+ def layout(self):
+ basic_layout(self, src_folder="src")
+
+ def requirements(self):
+ # bgfx's C99 API absolutely requires a header from bx so we need those to be transitive
+ self.requires(f"bx/{self._bx_version[self.version]}", transitive_headers=True)
+ self.requires(f"bimg/{self._bimg_version[self.version]}")
+ self.requires("opengl/system")
+
+ def validate(self):
+ if self.settings.compiler.get_safe("cppstd"):
+ check_min_cppstd(self, 14)
+ check_min_vs(self, 191)
+ if not is_msvc(self):
+ try:
+ minimum_required_compiler_version = self._compiler_required[str(self.settings.compiler)]
+ if Version(self.settings.compiler.version) < minimum_required_compiler_version:
+ raise ConanInvalidConfiguration("This package requires C++14 support. The current compiler does not support it.")
+ except KeyError:
+ self.output.warn("This recipe has no checking for the current compiler. Please consider adding it.")
+
+ def build_requirements(self):
+ self.tool_requires("genie/1170")
+ if not is_msvc(self) and self._settings_build.os == "Windows":
+ self.win_bash = True
+ if not self.conf.get("tools.microsoft.bash:path", check_type=str):
+ self.tool_requires("msys2/cci.latest")
+
+ def source(self):
+ get(self, **self.conan_data["sources"][self.version], strip_root=True,
+ destination=os.path.join(self.source_folder, self._bgfx_folder))
+ # bgfx's genie project, and the projects generated by it, expect bx and bimg source to be present on the same relative root as bimg's in order to build
+ # usins a pre-built bx and bimg instead would require significant changes to the genie project but may be worth looking into in the future
+ get(self, **self.dependencies["bx"].conan_data["sources"][self._bx_version[self.version]], strip_root=True,
+ destination=os.path.join(self.source_folder, self._bx_folder))
+ get(self, **self.dependencies["bimg"].conan_data["sources"][self._bimg_version[self.version]], strip_root=True,
+ destination=os.path.join(self.source_folder, self._bimg_folder))
+
+ def generate(self):
+ vbe = VirtualBuildEnv(self)
+ vbe.generate()
+ if is_msvc(self):
+ tc = VCVars(self)
+ tc.generate()
+ else:
+ tc = AutotoolsToolchain(self)
+ tc.generate()
+
+ def build(self):
+ if is_msvc(self):
+ # Conan to Genie translation maps
+ vs_ver_to_genie = {"17": "2022", "16": "2019", "15": "2017",
+ "193": "2022", "192": "2019", "191": "2017"}
+
+ # Use genie directly, then msbuild on specific projects based on requirements
+ genie_VS = f"vs{vs_ver_to_genie[str(self.settings.compiler.version)]}"
+ genie_gen = f"{self._genie_extra} {genie_VS}"
+ self.run(f"genie {genie_gen}", cwd=self._bgfx_path)
+
+ msbuild = MSBuild(self)
+ # customize to Release when RelWithDebInfo
+ msbuild.build_type = "Debug" if self.settings.build_type == "Debug" else "Release"
+ # use Win32 instead of the default value when building x86
+ msbuild.platform = "Win32" if self.settings.arch == "x86" else msbuild.platform
+ msbuild.build(os.path.join(self._bgfx_path, ".build", "projects", genie_VS, "bgfx.sln"), targets=self._projs)
+ else:
+ # Not sure if XCode can be spefically handled by conan for building through, so assume everything not VS is make
+ # gcc-multilib and g++-multilib required for 32bit cross-compilation, should see if we can check and install through conan
+
+ # Conan to Genie translation maps
+ compiler_str = str(self.settings.compiler)
+ compiler_and_os_to_genie = {"Windows": f"--gcc=mingw-{compiler_str}", "Linux": f"--gcc=linux-{compiler_str}",
+ "FreeBSD": "--gcc=freebsd", "Macos": "--gcc=osx",
+ "Android": "--gcc=android", "iOS": "--gcc=ios"}
+ gmake_os_to_proj = {"Windows": "mingw", "Linux": "linux", "FreeBSD": "freebsd", "Macos": "osx", "Android": "android", "iOS": "ios"}
+ gmake_arch_to_genie_suffix = {"x86": "-x86", "x86_64": "-x64", "armv8": "-arm64", "armv7": "-arm"}
+ os_to_use_arch_config_suffix = {"Windows": False, "Linux": False, "FreeBSD": False, "Macos": True, "Android": True, "iOS": True}
+
+ build_type_to_make_config = {"Debug": "config=debug", "Release": "config=release"}
+ arch_to_make_config_suffix = {"x86": "32", "x86_64": "64"}
+ os_to_use_make_config_suffix = {"Windows": True, "Linux": True, "FreeBSD": True, "Macos": False, "Android": False, "iOS": False}
+
+ # Generate projects through genie
+ genieGen = f"{self._genie_extra} {compiler_and_os_to_genie[str(self.settings.os)]}"
+ if os_to_use_arch_config_suffix[str(self.settings.os)]:
+ genieGen += f"{gmake_arch_to_genie_suffix[str(self.settings.arch)]}"
+ genieGen += " gmake"
+ self.run(f"genie {genieGen}", cwd=self._bgfx_path)
+
+ # Build project folder and path from given settings
+ projFolder = f"gmake-{gmake_os_to_proj[str(self.settings.os)]}"
+ if self.settings.os == "Windows" or compiler_str not in ["gcc", "apple-clang"]:
+ projFolder += f"-{compiler_str}" #mingw-gcc or mingw-clang for windows; -clang for linux (where gcc on linux has no extra)
+ if os_to_use_arch_config_suffix[str(self.settings.os)]:
+ projFolder += gmake_arch_to_genie_suffix[str(self.settings.arch)]
+ proj_path = os.path.sep.join([self._bgfx_path, ".build", "projects", projFolder])
+
+ # Build make args from settings
+ conf = build_type_to_make_config[str(self.settings.build_type)]
+ if os_to_use_make_config_suffix[str(self.settings.os)]:
+ conf += arch_to_make_config_suffix[str(self.settings.arch)]
+ if self.settings.os == "Windows":
+ mingw = "MINGW=$MINGW_PREFIX"
+ proj_path = proj_path.replace("\\", "/") # Fix path for msys...
+ else:
+ mingw = ""
+ autotools = Autotools(self)
+ # Build with make
+ for proj in self._projs:
+ autotools.make(target=proj, args=["-R", f"-C {proj_path}", mingw, conf])
+
+ def package(self):
+ # Set platform suffixes and prefixes
+ if self.settings.os == "Windows":
+ if self.options.shared:
+ lib_pat = "*bgfx-shared-lib*.lib"
+ else:
+ lib_pat = "*bgfx*.lib"
+ package_lib_prefix = ""
+ elif self.settings.os in ["Linux", "FreeBSD"]:
+ if self.options.shared:
+ lib_pat = "*bgfx*.so"
+ else:
+ lib_pat = "*bgfx*.a"
+ package_lib_prefix = "lib"
+ elif self.settings.os in ["Macos", "iOS"]:
+ if self.options.shared:
+ lib_pat = "*bgfx*.dylib"
+ else:
+ lib_pat = "*bgfx*.a"
+ package_lib_prefix = "lib"
+
+ # Get build bin folder
+ for bimg_out_dir in os.listdir(os.path.join(self._bgfx_path, ".build")):
+ if not bimg_out_dir=="projects":
+ build_bin = os.path.join(self._bgfx_path, ".build", bimg_out_dir, "bin")
+ break
+
+ # Copy license
+ copy(self, pattern="LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self._bgfx_path)
+ # Copy includes
+ copy(self, pattern="*.h", dst=os.path.join(self.package_folder, "include"), src=os.path.join(self._bgfx_path, "include"))
+ # Copy libs
+ copy(self, pattern=lib_pat, dst=os.path.join(self.package_folder, "lib"), src=build_bin, keep_path=False)
+ if self.options.shared:
+ copy(self, pattern="*.dll", dst=os.path.join(self.package_folder, "bin"), src=build_bin, keep_path=False)
+
+ # Copy tools
+ if self.options.tools:
+ copy(self, pattern="shaderc*", dst=os.path.join(self.package_folder, "bin"), src=build_bin, keep_path=False)
+ copy(self, pattern="texturev*", dst=os.path.join(self.package_folder, "bin"), src=build_bin, keep_path=False)
+ copy(self, pattern="geometryc*", dst=os.path.join(self.package_folder, "bin"), src=build_bin, keep_path=False)
+ copy(self, pattern="geometryv*", dst=os.path.join(self.package_folder, "bin"), src=build_bin, keep_path=False)
+
+ # Rename for consistency across platforms and configs
+ if not (is_apple_os(self) and self.options.shared): #Apparently apple dylibs break if renamed
+ for bgfx_file in Path(os.path.join(self.package_folder, "lib")).glob("*bgfx*"):
+ rename(self, os.path.join(self.package_folder, "lib", bgfx_file.name),
+ os.path.join(self.package_folder, "lib", f"{package_lib_prefix}bgfx{bgfx_file.suffix}"))
+ if self.options.tools:
+ for bgfx_file in Path(os.path.join(self.package_folder, "bin")).glob("*shaderc*"):
+ rename(self, os.path.join(self.package_folder, "bin", bgfx_file.name),
+ os.path.join(self.package_folder, "bin", f"shaderc{bgfx_file.suffix}"))
+ for bgfx_file in Path(os.path.join(self.package_folder, "bin")).glob("*texturev*"):
+ rename(self, os.path.join(self.package_folder, "bin", bgfx_file.name),
+ os.path.join(self.package_folder, "bin", f"texturev{bgfx_file.suffix}"))
+ for bgfx_file in Path(os.path.join(self.package_folder, "bin")).glob("*geometryc*"):
+ rename(self, os.path.join(self.package_folder, "bin", bgfx_file.name),
+ os.path.join(self.package_folder, "bin", f"geometryc{bgfx_file.suffix}"))
+ for bgfx_file in Path(os.path.join(self.package_folder, "bin")).glob("*geometryv*"):
+ rename(self, os.path.join(self.package_folder, "bin", bgfx_file.name),
+ os.path.join(self.package_folder, "bin", f"geometryv{bgfx_file.suffix}"))
+
+ # Maybe this helps
+ if is_apple_os(self):
+ fix_apple_shared_install_name(self)
+
+ def package_info(self):
+ self.cpp_info.includedirs = ["include"]
+ if self.options.shared and self.settings.os in ["Macos", "iOS"]:
+ self.cpp_info.libs = [f"bgfx-shared-lib{self.settings.build_type}"]
+ else:
+ self.cpp_info.libs = ["bgfx"]
+
+ if self.options.shared:
+ self.cpp_info.defines.extend(["BGFX_SHARED_LIB_USE=1"])
+
+ if self.settings.os == "Windows":
+ self.cpp_info.system_libs.extend(["gdi32"])
+ if not is_msvc(self):
+ self.cpp_info.system_libs.extend(["comdlg32"])
+ elif self.settings.os in ["Linux", "FreeBSD"]:
+ self.cpp_info.system_libs.extend(["X11", "GL"])
+ elif self.settings.os in ["Macos", "iOS"]:
+ self.cpp_info.frameworks.extend(["CoreFoundation", "AppKit", "IOKit", "QuartzCore", "Metal"])
+ if self.settings.os in ["Macos"]:
+ self.cpp_info.frameworks.extend(["OpenGL"])
+ else:
+ self.cpp_info.frameworks.extend(["OpenGLES", "UIKit"])
+ elif self.settings.os in ["Android"]:
+ self.cpp_info.system_libs.extend(["EGL", "GLESv2"])
+
+ self.cpp_info.set_property("cmake_file_name", "bgfx")
+ self.cpp_info.set_property("cmake_target_name", "bgfx::bgfx")
+ self.cpp_info.set_property("pkg_config_name", "bgfx")
+
+ # TODO: to remove in conan v2 once cmake_find_package_* generators removed
+ self.cpp_info.filenames["cmake_find_package"] = "bgfx"
+ self.cpp_info.filenames["cmake_find_package_multi"] = "bgfx"
+ self.cpp_info.names["cmake_find_package"] = "bgfx"
+ self.cpp_info.names["cmake_find_package_multi"] = "bgfx"
diff --git a/recipes/bgfx/all/test_package/CMakeLists.txt b/recipes/bgfx/all/test_package/CMakeLists.txt
new file mode 100644
index 00000000000000..2c968e2dda7184
--- /dev/null
+++ b/recipes/bgfx/all/test_package/CMakeLists.txt
@@ -0,0 +1,9 @@
+cmake_minimum_required(VERSION 3.8)
+
+project(test_package LANGUAGES CXX)
+
+find_package(bgfx REQUIRED CONFIG)
+
+add_executable(${PROJECT_NAME} test_package.cpp)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_14)
+target_link_libraries(${PROJECT_NAME} bgfx::bgfx)
diff --git a/recipes/bgfx/all/test_package/conanfile.py b/recipes/bgfx/all/test_package/conanfile.py
new file mode 100644
index 00000000000000..4e578144a798ad
--- /dev/null
+++ b/recipes/bgfx/all/test_package/conanfile.py
@@ -0,0 +1,25 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import CMake, cmake_layout
+import os
+
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def layout(self):
+ cmake_layout(self)
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/bgfx/all/test_package/test_package.cpp b/recipes/bgfx/all/test_package/test_package.cpp
new file mode 100644
index 00000000000000..630c14bc99ec9a
--- /dev/null
+++ b/recipes/bgfx/all/test_package/test_package.cpp
@@ -0,0 +1,36 @@
+//Important: bgfx shared on windows only works with the C99 API, the C++ API is not exported
+#include
+
+#if BGFX_SHARED_LIB_USE && (BX_PLATFORM_WINDOWS || BX_PLATFORM_WINRT)
+#include
+#else
+#include
+#endif
+
+int main() {
+#if BGFX_SHARED_LIB_USE && (BX_PLATFORM_WINDOWS || BX_PLATFORM_WINRT)
+ bgfx_init_t init;
+ bgfx_init_ctor(&init);
+ init.type = bgfx_renderer_type::BGFX_RENDERER_TYPE_NOOP;
+ init.vendorId = BGFX_PCI_ID_NONE;
+ init.platformData.nwh = nullptr;
+ init.platformData.ndt = nullptr;
+ init.resolution.width = 0;
+ init.resolution.height = 0;
+ init.resolution.reset = BGFX_RESET_NONE;
+ bgfx_init(&init);
+ bgfx_shutdown();
+ return 0;
+#else
+ bgfx::Init init;
+ init.type = bgfx::RendererType::Noop;
+ init.vendorId = BGFX_PCI_ID_NONE;
+ init.platformData.nwh = nullptr;
+ init.platformData.ndt = nullptr;
+ init.resolution.width = 0;
+ init.resolution.height = 0;
+ init.resolution.reset = BGFX_RESET_NONE;
+ bgfx::init(init);
+ bgfx::shutdown();
+#endif
+}
diff --git a/recipes/bgfx/all/test_v1_package/CMakeLists.txt b/recipes/bgfx/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..667976629550a3
--- /dev/null
+++ b/recipes/bgfx/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,9 @@
+cmake_minimum_required(VERSION 3.8)
+
+project(test_package LANGUAGES CXX)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/bgfx/all/test_v1_package/conanfile.py b/recipes/bgfx/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..056e75eddb91cb
--- /dev/null
+++ b/recipes/bgfx/all/test_v1_package/conanfile.py
@@ -0,0 +1,17 @@
+from conans import ConanFile, CMake, tools
+import os
+
+
+class BimgTestPackageConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/bgfx/config.yml b/recipes/bgfx/config.yml
new file mode 100644
index 00000000000000..0fa69d015c8447
--- /dev/null
+++ b/recipes/bgfx/config.yml
@@ -0,0 +1,3 @@
+versions:
+ "cci.20230216":
+ folder: all
diff --git a/recipes/bimg/all/test_package/conanfile.py b/recipes/bimg/all/test_package/conanfile.py
index 4100c3ff4959c1..17cae798801223 100644
--- a/recipes/bimg/all/test_package/conanfile.py
+++ b/recipes/bimg/all/test_package/conanfile.py
@@ -1,10 +1,8 @@
from conan import ConanFile
from conan.tools.build import can_run
-from conan.tools.layout import cmake_layout
-from conan.tools.cmake import CMake
+from conan.tools.cmake import CMake, cmake_layout
import os
-required_conan_version = ">=1.50.0"
class TestPackageConan(ConanFile):
settings = "os", "arch", "compiler", "build_type"
diff --git a/recipes/binutils/all/conandata.yml b/recipes/binutils/all/conandata.yml
index 24c6d4be967982..92a40425b25909 100644
--- a/recipes/binutils/all/conandata.yml
+++ b/recipes/binutils/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "2.41":
+ url: "https://ftp.gnu.org/gnu/binutils/binutils-2.41.tar.gz"
+ sha256: "48d00a8dc73aa7d2394a7dc069b96191d95e8de8f0da6dc91da5cce655c20e45"
"2.40":
url: "https://ftp.gnu.org/gnu/binutils/binutils-2.40.tar.gz"
sha256: "d7f82c4047decf43a6f769ac32456a92ddb6932409a585c633cdd4e9df23d956"
@@ -9,6 +12,10 @@ sources:
url: "https://ftp.gnu.org/gnu/binutils/binutils-2.37.tar.gz"
sha256: "c44968b97cd86499efbc4b4ab7d98471f673e5414c554ef54afa930062dbbfcb"
patches:
+ "2.41":
+ - patch_file: "patches/2.41-0001-no-texinfo.patch"
+ patch_type: conan
+ patch_description: "disable texinfo"
"2.40":
- patch_file: "patches/2.40-0001-no-texinfo.patch"
patch_type: conan
diff --git a/recipes/binutils/all/patches/2.41-0001-no-texinfo.patch b/recipes/binutils/all/patches/2.41-0001-no-texinfo.patch
new file mode 100644
index 00000000000000..f6d719e75f24ea
--- /dev/null
+++ b/recipes/binutils/all/patches/2.41-0001-no-texinfo.patch
@@ -0,0 +1,57 @@
+diff --git a/bfd/Makefile.in b/bfd/Makefile.in
+index 4edfedee..47c7de53 100644
+--- a/bfd/Makefile.in
++++ b/bfd/Makefile.in
+@@ -253,7 +253,7 @@ am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@)
+ am__v_texidevnull_0 = > /dev/null
+ am__v_texidevnull_1 =
+ am__dirstamp = $(am__leading_dot)dirstamp
+-INFO_DEPS = doc/bfd.info
++INFO_DEPS =
+ am__TEXINFO_TEX_DIR = $(srcdir)
+ DVIS = doc/bfd.dvi
+ PDFS = doc/bfd.pdf
+@@ -2022,7 +2022,7 @@ distclean-tags:
+ check-am: all-am
+ check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-recursive
+-all-am: Makefile $(INFO_DEPS) $(LTLIBRARIES) $(HEADERS) config.h
++all-am: Makefile $(LTLIBRARIES) $(HEADERS) config.h
+ installdirs: installdirs-recursive
+ installdirs-am:
+ for dir in "$(DESTDIR)$(bfdlibdir)" "$(DESTDIR)$(infodir)" "$(DESTDIR)$(bfdincludedir)"; do \
+@@ -2089,8 +2089,7 @@ info: info-recursive
+
+ info-am: $(INFO_DEPS)
+
+-install-data-am: install-bfdincludeHEADERS install-bfdlibLTLIBRARIES \
+- install-info-am
++install-data-am: install-bfdincludeHEADERS install-bfdlibLTLIBRARIES
+
+ install-dvi: install-dvi-recursive
+
+diff --git a/gas/Makefile.in b/gas/Makefile.in
+index 427f42df..535ad3f3 100644
+--- a/gas/Makefile.in
++++ b/gas/Makefile.in
+@@ -1793,7 +1793,7 @@ distclean-DEJAGNU:
+ check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
+ check: check-recursive
+-all-am: Makefile $(INFO_DEPS) $(PROGRAMS) $(SCRIPTS) $(MANS) config.h
++all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) config.h
+ installdirs: installdirs-recursive
+ installdirs-am:
+ for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \
+@@ -1869,7 +1869,7 @@ info: info-recursive
+
+ info-am: $(INFO_DEPS) info-local
+
+-install-data-am: install-info-am install-man
++install-data-am: install-man
+
+ install-dvi: install-dvi-recursive
+
+--
+2.34.1
+
diff --git a/recipes/binutils/config.yml b/recipes/binutils/config.yml
index 8d19abd9678f78..97d0d2ecab157c 100644
--- a/recipes/binutils/config.yml
+++ b/recipes/binutils/config.yml
@@ -1,4 +1,6 @@
versions:
+ "2.41":
+ folder: all
"2.40":
folder: all
"2.38":
diff --git a/recipes/blend2d/all/conandata.yml b/recipes/blend2d/all/conandata.yml
index a8918f809e2b06..70d8d5d6571cbc 100644
--- a/recipes/blend2d/all/conandata.yml
+++ b/recipes/blend2d/all/conandata.yml
@@ -1,4 +1,13 @@
sources:
+ "0.10.5":
+ url: "https://blend2d.com/download/blend2d-0.10.5.tar.xz"
+ sha256: "fff5a7b1a6b16c986f3d02052a9a030f138fbae3a9c16bf07915416515d6b9cd"
+ "0.10.4":
+ url: "https://blend2d.com/download/blend2d-0.10.4.tar.xz"
+ sha256: "6363e5c13c1c9e4709f949585a6af772ee13a16f75b0084f91b3918dece2fff3"
+ "0.10":
+ url: "https://blend2d.com/download/blend2d-0.10.tar.xz"
+ sha256: "eaed6cc5f1fc33061a99d70cf166836994d952f75762bfacb397ee388e13ccc9"
"0.9":
url: "https://blend2d.com/download/blend2d-0.9.tar.xz"
sha256: "a70a2a57c67017afa1067a11807fef9808788c69b4012ba4d56a5c47a5ba87c3"
@@ -12,6 +21,18 @@ sources:
url: "https://blend2d.com/download/blend2d-beta17.zip"
sha256: "06ee8fb0bea281d09291e498900093139426501a1a7f09dba0ec801dd340635e"
patches:
+ "0.10.5":
+ - patch_file: "patches/0.10-0001-disable-embed-asmjit.patch"
+ patch_description: "use asmjit cci package"
+ patch_type: "conan"
+ "0.10.4":
+ - patch_file: "patches/0.10-0001-disable-embed-asmjit.patch"
+ patch_description: "use asmjit cci package"
+ patch_type: "conan"
+ "0.10":
+ - patch_file: "patches/0.10-0001-disable-embed-asmjit.patch"
+ patch_description: "use asmjit cci package"
+ patch_type: "conan"
"0.9":
- patch_file: "patches/0.9-0001-disable-embed-asmjit.patch"
patch_description: "use asmjit cci package"
diff --git a/recipes/blend2d/all/patches/0.10-0001-disable-embed-asmjit.patch b/recipes/blend2d/all/patches/0.10-0001-disable-embed-asmjit.patch
new file mode 100644
index 00000000000000..29e6457e6c6f5a
--- /dev/null
+++ b/recipes/blend2d/all/patches/0.10-0001-disable-embed-asmjit.patch
@@ -0,0 +1,27 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 02507bc..8fa7dcf 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -392,7 +392,7 @@ endif()
+
+ # Find asmjit dependency if building with JIT support.
+ if (NOT BLEND2D_NO_JIT)
+- if (NOT DEFINED ASMJIT_DIR)
++ if (0)
+ foreach(dir "${BLEND2D_DIR}/3rdparty/asmjit"
+ "${CMAKE_CURRENT_LIST_DIR}/../asmjit")
+ if (EXISTS ${dir}/CMakeLists.txt)
+@@ -410,10 +410,9 @@ if (NOT BLEND2D_NO_JIT)
+ endif()
+
+ set(ASMJIT_NO_FOREIGN TRUE)
+- include("${ASMJIT_DIR}/CMakeLists.txt")
+- list(APPEND BLEND2D_DEPS ${ASMJIT_LIBS})
+- list(APPEND BLEND2D_PRIVATE_CFLAGS ${ASMJIT_CFLAGS})
+- list(APPEND BLEND2D_PRIVATE_CFLAGS -DASMJIT_NO_STDCXX)
++ find_package(asmjit CONFIG REQUIRED)
++ list(APPEND BLEND2D_DEPS asmjit::asmjit)
++ list(APPEND BLEND2D_PRIVATE_CFLAGS ${asmjit_DEFINITIONS_DEBUG}${asmjit_DEFINITIONS_RELEASE})
+
+ # A possibility to reduce the resulting binary size by disabling asmjit logging.
+ if (BLEND2D_NO_JIT_LOGGING)
diff --git a/recipes/blend2d/config.yml b/recipes/blend2d/config.yml
index bf1e95c0dd1d18..741838b7d47520 100644
--- a/recipes/blend2d/config.yml
+++ b/recipes/blend2d/config.yml
@@ -1,4 +1,10 @@
versions:
+ "0.10.5":
+ folder: all
+ "0.10.4":
+ folder: all
+ "0.10":
+ folder: all
"0.9":
folder: all
"0.8":
diff --git a/recipes/boost-leaf/all/conandata.yml b/recipes/boost-leaf/all/conandata.yml
index 7ea0efeaa464d5..593e982ab983b3 100644
--- a/recipes/boost-leaf/all/conandata.yml
+++ b/recipes/boost-leaf/all/conandata.yml
@@ -5,3 +5,6 @@ sources:
"1.82.0":
url: "https://github.com/boostorg/leaf/archive/refs/tags/boost-1.82.0.tar.gz"
sha256: "0917b22b60a2980bf5e33a393a8545dc6a4a7006c8ca8b78280d1cdb965d75f3"
+ "1.83.0":
+ url: "https://github.com/boostorg/leaf/archive/refs/tags/boost-1.83.0.tar.gz"
+ sha256: "559b16ac2cd287885104f6d2b93cc777f136d98e89e3b9915013561d893f5128"
diff --git a/recipes/boost-leaf/config.yml b/recipes/boost-leaf/config.yml
index e86af291ae99fb..7468e5b2998336 100644
--- a/recipes/boost-leaf/config.yml
+++ b/recipes/boost-leaf/config.yml
@@ -3,3 +3,5 @@ versions:
folder: "all"
"1.82.0":
folder: "all"
+ "1.83.0":
+ folder: "all"
diff --git a/recipes/boost/all/conandata.yml b/recipes/boost/all/conandata.yml
index b2ef58c60ab75a..ee7228b61bc726 100644
--- a/recipes/boost/all/conandata.yml
+++ b/recipes/boost/all/conandata.yml
@@ -1,9 +1,14 @@
sources:
+ "1.83.0":
+ url:
+ - "https://boostorg.jfrog.io/artifactory/main/release/1.83.0/source/boost_1_83_0.tar.bz2"
+ - "https://sourceforge.net/projects/boost/files/boost/1.83.0/boost_1_83_0.tar.bz2"
+ sha256: "6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e"
"1.82.0":
url:
- "https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_0.tar.bz2"
- "https://sourceforge.net/projects/boost/files/boost/1.82.0/boost_1_82_0.tar.bz2"
- sha256: a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6
+ sha256: "a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6"
"1.81.0":
url:
- "https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.bz2"
@@ -58,6 +63,10 @@ sources:
url: "https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/boost_1_71_0.tar.bz2"
sha256: "d73a8da01e8bf8c7eda40b4c84915071a8c8a0df4a6734537ddde4a8580524ee"
patches:
+ "1.83.0":
+ - patch_file: "patches/1.82.0-locale-iconv-library-option.patch"
+ patch_description: "Optional flag to specify iconv from either libc of libiconv"
+ patch_type: "conan"
"1.82.0":
- patch_file: "patches/1.82.0-locale-iconv-library-option.patch"
patch_description: "Optional flag to specify iconv from either libc of libiconv"
diff --git a/recipes/boost/all/conanfile.py b/recipes/boost/all/conanfile.py
index d845fca4e54daf..d24854dcb4b47c 100644
--- a/recipes/boost/all/conanfile.py
+++ b/recipes/boost/all/conanfile.py
@@ -1444,6 +1444,7 @@ def package_info(self):
# - Use '_libboost' component to attach extra system_libs, ...
self.cpp_info.components["headers"].libs = []
+ self.cpp_info.components["headers"].libdirs = []
self.cpp_info.components["headers"].set_property("cmake_target_name", "Boost::headers")
self.cpp_info.components["headers"].names["cmake_find_package"] = "headers"
self.cpp_info.components["headers"].names["cmake_find_package_multi"] = "headers"
@@ -1490,6 +1491,8 @@ def package_info(self):
self.cpp_info.components["_boost_cmake"].set_property("cmake_target_name", "Boost::boost")
self.cpp_info.components["_boost_cmake"].names["cmake_find_package"] = "boost"
self.cpp_info.components["_boost_cmake"].names["cmake_find_package_multi"] = "boost"
+ if self.options.header_only:
+ self.cpp_info.components["_boost_cmake"].libdirs = []
if not self.options.header_only:
self.cpp_info.components["_libboost"].requires = ["headers"]
diff --git a/recipes/boost/all/dependencies/dependencies-1.83.0.yml b/recipes/boost/all/dependencies/dependencies-1.83.0.yml
new file mode 100644
index 00000000000000..e6b009423a409b
--- /dev/null
+++ b/recipes/boost/all/dependencies/dependencies-1.83.0.yml
@@ -0,0 +1,280 @@
+configure_options:
+- atomic
+- chrono
+- container
+- context
+- contract
+- coroutine
+- date_time
+- exception
+- fiber
+- filesystem
+- graph
+- graph_parallel
+- iostreams
+- json
+- locale
+- log
+- math
+- mpi
+- nowide
+- program_options
+- python
+- random
+- regex
+- serialization
+- stacktrace
+- system
+- test
+- thread
+- timer
+- type_erasure
+- url
+- wave
+dependencies:
+ atomic: []
+ chrono:
+ - system
+ container: []
+ context: []
+ contract:
+ - exception
+ - thread
+ coroutine:
+ - context
+ - exception
+ - system
+ date_time: []
+ exception: []
+ fiber:
+ - context
+ - filesystem
+ fiber_numa:
+ - fiber
+ filesystem:
+ - atomic
+ - system
+ graph:
+ - math
+ - random
+ - regex
+ - serialization
+ graph_parallel:
+ - filesystem
+ - graph
+ - mpi
+ - random
+ - serialization
+ iostreams:
+ - random
+ - regex
+ json:
+ - container
+ - system
+ locale:
+ - thread
+ log:
+ - atomic
+ - container
+ - date_time
+ - exception
+ - filesystem
+ - random
+ - regex
+ - system
+ - thread
+ log_setup:
+ - log
+ math: []
+ math_c99:
+ - math
+ math_c99f:
+ - math
+ math_c99l:
+ - math
+ math_tr1:
+ - math
+ math_tr1f:
+ - math
+ math_tr1l:
+ - math
+ mpi:
+ - graph
+ - serialization
+ mpi_python:
+ - mpi
+ - python
+ nowide:
+ - filesystem
+ numpy:
+ - python
+ prg_exec_monitor:
+ - test
+ program_options: []
+ python: []
+ random:
+ - system
+ regex: []
+ serialization: []
+ stacktrace: []
+ stacktrace_addr2line:
+ - stacktrace
+ stacktrace_backtrace:
+ - stacktrace
+ stacktrace_basic:
+ - stacktrace
+ stacktrace_noop:
+ - stacktrace
+ stacktrace_windbg:
+ - stacktrace
+ stacktrace_windbg_cached:
+ - stacktrace
+ system: []
+ test:
+ - exception
+ test_exec_monitor:
+ - test
+ thread:
+ - atomic
+ - chrono
+ - container
+ - date_time
+ - exception
+ - system
+ timer:
+ - chrono
+ - system
+ type_erasure:
+ - thread
+ unit_test_framework:
+ - prg_exec_monitor
+ - test
+ - test_exec_monitor
+ url:
+ - system
+ wave:
+ - filesystem
+ - serialization
+ wserialization:
+ - serialization
+libs:
+ atomic:
+ - boost_atomic
+ chrono:
+ - boost_chrono
+ container:
+ - boost_container
+ context:
+ - boost_context
+ contract:
+ - boost_contract
+ coroutine:
+ - boost_coroutine
+ date_time:
+ - boost_date_time
+ exception:
+ - boost_exception
+ fiber:
+ - boost_fiber
+ fiber_numa:
+ - boost_fiber_numa
+ filesystem:
+ - boost_filesystem
+ graph:
+ - boost_graph
+ graph_parallel:
+ - boost_graph_parallel
+ iostreams:
+ - boost_iostreams
+ json:
+ - boost_json
+ locale:
+ - boost_locale
+ log:
+ - boost_log
+ log_setup:
+ - boost_log_setup
+ math: []
+ math_c99:
+ - boost_math_c99
+ math_c99f:
+ - boost_math_c99f
+ math_c99l:
+ - boost_math_c99l
+ math_tr1:
+ - boost_math_tr1
+ math_tr1f:
+ - boost_math_tr1f
+ math_tr1l:
+ - boost_math_tr1l
+ mpi:
+ - boost_mpi
+ mpi_python:
+ - boost_mpi_python
+ nowide:
+ - boost_nowide
+ numpy:
+ - boost_numpy{py_major}{py_minor}
+ prg_exec_monitor:
+ - boost_prg_exec_monitor
+ program_options:
+ - boost_program_options
+ python:
+ - boost_python{py_major}{py_minor}
+ random:
+ - boost_random
+ regex:
+ - boost_regex
+ serialization:
+ - boost_serialization
+ stacktrace: []
+ stacktrace_addr2line:
+ - boost_stacktrace_addr2line
+ stacktrace_backtrace:
+ - boost_stacktrace_backtrace
+ stacktrace_basic:
+ - boost_stacktrace_basic
+ stacktrace_noop:
+ - boost_stacktrace_noop
+ stacktrace_windbg:
+ - boost_stacktrace_windbg
+ stacktrace_windbg_cached:
+ - boost_stacktrace_windbg_cached
+ system:
+ - boost_system
+ test: []
+ test_exec_monitor:
+ - boost_test_exec_monitor
+ thread:
+ - boost_thread
+ timer:
+ - boost_timer
+ type_erasure:
+ - boost_type_erasure
+ unit_test_framework:
+ - boost_unit_test_framework
+ url:
+ - boost_url
+ wave:
+ - boost_wave
+ wserialization:
+ - boost_wserialization
+requirements:
+ iostreams:
+ - bzip2
+ - lzma
+ - zlib
+ - zstd
+ locale:
+ - iconv
+ - icu
+ python:
+ - python
+ regex:
+ - icu
+ stacktrace:
+ - backtrace
+static_only:
+- boost_exception
+- boost_test_exec_monitor
+version: 1.83.0
diff --git a/recipes/boost/config.yml b/recipes/boost/config.yml
index 38ecaf5c73d635..f81f4b5e8e72b0 100644
--- a/recipes/boost/config.yml
+++ b/recipes/boost/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.83.0":
+ folder: all
"1.82.0":
folder: all
"1.81.0":
diff --git a/recipes/boostdep/all/CMakeLists.txt b/recipes/boostdep/all/CMakeLists.txt
deleted file mode 100644
index 5e53cb70bdf381..00000000000000
--- a/recipes/boostdep/all/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-project(cmake_wrapper)
-
-include(conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
-
-add_subdirectory(source_subfolder)
diff --git a/recipes/boostdep/all/conandata.yml b/recipes/boostdep/all/conandata.yml
index 3831a32bc89c95..943785c9b1d4a5 100644
--- a/recipes/boostdep/all/conandata.yml
+++ b/recipes/boostdep/all/conandata.yml
@@ -1,6 +1,11 @@
sources:
+ 1.82.0:
+ - url: "https://github.com/boostorg/boostdep/archive/refs/tags/boost-1.82.0.tar.gz"
+ sha256: "b3bffa292709ad74bf2fa50831890161ad7b9ef33f9f4ffa83d474da4482a452"
+ - url: "https://www.boost.org/LICENSE_1_0.txt"
+ sha256: "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566"
1.75.0:
- url: "https://github.com/boostorg/boostdep/archive/boost-1.75.0.tar.gz"
sha256: "7eecd835eb5b0fd602ff3615a6b663b45917689386d11073d961b86710f428af"
- - url: "http://www.boost.org/LICENSE_1_0.txt"
+ - url: "https://www.boost.org/LICENSE_1_0.txt"
sha256: "c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566"
diff --git a/recipes/boostdep/all/conanfile.py b/recipes/boostdep/all/conanfile.py
index 01a84ccc90d698..bd8dd57eb93dc9 100644
--- a/recipes/boostdep/all/conanfile.py
+++ b/recipes/boostdep/all/conanfile.py
@@ -1,58 +1,68 @@
-from conans import CMake, ConanFile, tools
import os
+from conan import ConanFile
+from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
+from conan.tools.files import copy, download, get
+
+required_conan_version = ">=1.52.0"
+
class BoostDepConan(ConanFile):
name = "boostdep"
- settings = "os", "arch", "compiler", "build_type"
description = "A tool to create Boost module dependency reports"
+ license = "BSL-1.0"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/boostorg/boostdep"
- license = "BSL-1.0"
- topics = ("conan", "boostdep", "dependency", "tree")
- exports_sources = "CMakeLists.txt"
- generators = "cmake", "cmake_find_package"
+ topics = ("dependency", "tree")
- _cmake = None
+ package_type = "application"
+ settings = "os", "arch", "compiler", "build_type"
- @property
- def _source_subfolder(self):
- return "source_subfolder"
+ def export_sources(self):
+ copy(self, "CMakeLists.txt", src=self.recipe_folder, dst=self.export_sources_folder)
- @property
- def _build_subfolder(self):
- return "build_subfolder"
+ def layout(self):
+ cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("boost/1.75.0")
+ self.requires(f"boost/{self.version}")
def package_id(self):
del self.info.settings.compiler
def source(self):
- tools.get(**self.conan_data["sources"][self.version][0])
- os.rename("boostdep-boost-{}".format(self.version), self._source_subfolder)
- license_info = self.conan_data["sources"][self.version][1]
- tools.download(filename=os.path.basename(license_info["url"]), **license_info)
-
- def _configure_cmake(self):
- if self._cmake:
- return self._cmake
- self._cmake = CMake(self)
- self._cmake.definitions["Boost_USE_STATIC_LIBS"] = not self.options["boost"].shared
- self._cmake.configure(build_folder=self._build_subfolder)
- return self._cmake
+ sources_info, license_info = self.conan_data["sources"][self.version]
+ get(self, **sources_info, strip_root=True)
+ download(self, **license_info, filename=os.path.basename(license_info["url"]))
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["Boost_USE_STATIC_LIBS"] = not self.dependencies["boost"].options.shared
+ tc.generate()
+ tc = CMakeDeps(self)
+ tc.generate()
def build(self):
- cmake = self._configure_cmake()
+ cmake = CMake(self)
+ cmake.configure()
cmake.build()
def package(self):
- self.copy("LICENSE*", dst="licenses")
- cmake = self._configure_cmake()
+ copy(
+ self,
+ "LICENSE*",
+ dst=os.path.join(self.package_folder, "licenses"),
+ src=self.source_folder,
+ )
+ cmake = CMake(self)
cmake.install()
def package_info(self):
- bin_path = os.path.join(self.package_folder, "bin")
- self.output.info("Appending PATH environment variable: {}".format(bin_path))
- self.deps_env_info.PATH.append(bin_path)
+ self.cpp_info.frameworkdirs = []
+ self.cpp_info.libdirs = []
+ self.cpp_info.resdirs = []
+ self.cpp_info.includedirs = []
+
+ # TODO: Legacy, to be removed on Conan 2.0
+ bin_folder = os.path.join(self.package_folder, "bin")
+ self.env_info.PATH.append(bin_folder)
diff --git a/recipes/boostdep/all/test_package/conanfile.py b/recipes/boostdep/all/test_package/conanfile.py
index 190cc18502e119..2b15ef763d620a 100644
--- a/recipes/boostdep/all/test_package/conanfile.py
+++ b/recipes/boostdep/all/test_package/conanfile.py
@@ -1,17 +1,20 @@
-from conans import ConanFile, tools
-import os
+from conan import ConanFile
+from conan.tools.env import Environment
+from conan.tools.files import mkdir, save
-class DefaultNameConan(ConanFile):
- settings = "os", "compiler", "arch", "build_type"
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "VirtualBuildEnv"
+ test_type = "explicit"
- def build(self):
- pass
+ def build_requirements(self):
+ self.tool_requires(self.tested_reference_str)
def test(self):
- if tools.cross_building(self.settings):
- return
- tools.mkdir("libs")
- tools.save("Jamroot", "")
- with tools.environment_append({"BOOST_ROOT": self.build_folder}):
- self.run("boostdep --list-modules", run_environment=True)
+ mkdir(self, "libs")
+ save(self, "Jamroot", "")
+ env = Environment()
+ env.define("BOOST_ROOT", self.build_folder)
+ with env.vars(self).apply():
+ self.run("boostdep --list-modules")
diff --git a/recipes/boostdep/all/test_v1_package/conanfile.py b/recipes/boostdep/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..190cc18502e119
--- /dev/null
+++ b/recipes/boostdep/all/test_v1_package/conanfile.py
@@ -0,0 +1,17 @@
+from conans import ConanFile, tools
+import os
+
+
+class DefaultNameConan(ConanFile):
+ settings = "os", "compiler", "arch", "build_type"
+
+ def build(self):
+ pass
+
+ def test(self):
+ if tools.cross_building(self.settings):
+ return
+ tools.mkdir("libs")
+ tools.save("Jamroot", "")
+ with tools.environment_append({"BOOST_ROOT": self.build_folder}):
+ self.run("boostdep --list-modules", run_environment=True)
diff --git a/recipes/boostdep/config.yml b/recipes/boostdep/config.yml
index 640761587c2aee..1cbe5a69a954fc 100644
--- a/recipes/boostdep/config.yml
+++ b/recipes/boostdep/config.yml
@@ -1,3 +1,5 @@
versions:
+ "1.82.0":
+ folder: "all"
"1.75.0":
folder: "all"
diff --git a/recipes/brotli/all/conandata.yml b/recipes/brotli/all/conandata.yml
index c664dae35678ec..35c9587456f430 100644
--- a/recipes/brotli/all/conandata.yml
+++ b/recipes/brotli/all/conandata.yml
@@ -1,12 +1,23 @@
sources:
+ "1.1.0":
+ url: "https://github.com/google/brotli/archive/v1.1.0.tar.gz"
+ sha256: "e720a6ca29428b803f4ad165371771f5398faba397edf6778837a18599ea13ff"
"1.0.9":
- url: https://github.com/google/brotli/archive/v1.0.9.tar.gz
- sha256: f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46
+ url: "https://github.com/google/brotli/archive/v1.0.9.tar.gz"
+ sha256: "f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46"
"1.0.7":
- url: https://github.com/google/brotli/archive/v1.0.7.tar.gz
- sha256: 4c61bfb0faca87219ea587326c467b95acb25555b53d1a421ffa3c8a9296ee2c
+ url: "https://github.com/google/brotli/archive/v1.0.7.tar.gz"
+ sha256: "4c61bfb0faca87219ea587326c467b95acb25555b53d1a421ffa3c8a9296ee2c"
patches:
+ "1.1.0":
+ - patch_file: "patches/1.1.0-target-props.patch"
+ patch_description: "add target properties, disable command build"
+ patch_type: "conan"
"1.0.9":
- - patch_file: "patches/0002-target-props.patch"
+ - patch_file: "patches/1.0.9-target-props.patch"
+ patch_description: "add target properties, disable command build, separate shared and static build"
+ patch_type: "conan"
"1.0.7":
- - patch_file: "patches/0001-target-props.patch"
+ - patch_file: "patches/1.0.7-target-props.patch"
+ patch_description: "add target properties, disable command build, separate shared and static build"
+ patch_type: "conan"
diff --git a/recipes/brotli/all/conanfile.py b/recipes/brotli/all/conanfile.py
index 5ba9ac6bd939f9..7e93d9903056df 100644
--- a/recipes/brotli/all/conanfile.py
+++ b/recipes/brotli/all/conanfile.py
@@ -1,6 +1,7 @@
from conan import ConanFile
from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rmdir
+from conan.tools.scm import Version
import os
required_conan_version = ">=1.53.0"
@@ -9,11 +10,10 @@
class BrotliConan(ConanFile):
name = "brotli"
description = "Brotli compression format"
- topics = ("brotli", "compression")
+ license = "MIT",
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/google/brotli"
- license = "MIT",
-
+ topics = ("brotli", "compression")
package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
@@ -125,6 +125,6 @@ def package_info(self):
def _get_decorated_lib(self, name):
libname = name
- if not self.options.shared:
+ if Version(self.version) < "1.1.0" and not self.options.shared:
libname += "-static"
return libname
diff --git a/recipes/brotli/all/patches/0001-target-props.patch b/recipes/brotli/all/patches/1.0.7-target-props.patch
similarity index 100%
rename from recipes/brotli/all/patches/0001-target-props.patch
rename to recipes/brotli/all/patches/1.0.7-target-props.patch
diff --git a/recipes/brotli/all/patches/0002-target-props.patch b/recipes/brotli/all/patches/1.0.9-target-props.patch
similarity index 100%
rename from recipes/brotli/all/patches/0002-target-props.patch
rename to recipes/brotli/all/patches/1.0.9-target-props.patch
diff --git a/recipes/brotli/all/patches/1.1.0-target-props.patch b/recipes/brotli/all/patches/1.1.0-target-props.patch
new file mode 100644
index 00000000000000..df1e483759f2e6
--- /dev/null
+++ b/recipes/brotli/all/patches/1.1.0-target-props.patch
@@ -0,0 +1,28 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 61378cd..4de317b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -112,7 +112,6 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
+ add_definitions(-DOS_FREEBSD)
+ elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ add_definitions(-DOS_MACOSX)
+- set(CMAKE_MACOS_RPATH TRUE)
+ set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
+ endif()
+
+@@ -171,14 +170,10 @@ endif()
+ # Build the brotli executable
+ add_executable(brotli c/tools/brotli.c)
+ target_link_libraries(brotli ${BROTLI_LIBRARIES})
++set_target_properties(brotli PROPERTIES EXCLUDE_FROM_ALL ON EXCLUDE_FROM_DEFAULT ON)
+
+ # Installation
+ if(NOT BROTLI_BUNDLED_MODE)
+- install(
+- TARGETS brotli
+- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+- )
+-
+ install(
+ TARGETS ${BROTLI_LIBRARIES_CORE}
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
diff --git a/recipes/brotli/all/test_package/CMakeLists.txt b/recipes/brotli/all/test_package/CMakeLists.txt
index 8339b11b6d1f4a..00f09fcd401222 100644
--- a/recipes/brotli/all/test_package/CMakeLists.txt
+++ b/recipes/brotli/all/test_package/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.1)
-project(test_package)
+project(test_package LANGUAGES CXX)
find_package(brotli REQUIRED CONFIG)
diff --git a/recipes/brotli/config.yml b/recipes/brotli/config.yml
index 39d54f0009ed08..f4b59633d9f839 100644
--- a/recipes/brotli/config.yml
+++ b/recipes/brotli/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.1.0":
+ folder: all
"1.0.9":
folder: all
"1.0.7":
diff --git a/recipes/bx/all/test_package/conanfile.py b/recipes/bx/all/test_package/conanfile.py
index 7914baa4343981..d3dd545ae68baf 100644
--- a/recipes/bx/all/test_package/conanfile.py
+++ b/recipes/bx/all/test_package/conanfile.py
@@ -1,10 +1,8 @@
from conan import ConanFile
from conan.tools.build import can_run
-from conan.tools.layout import cmake_layout
-from conan.tools.cmake import CMake
+from conan.tools.cmake import CMake, cmake_layout
import os
-required_conan_version = ">=1.50.0"
class TestPackageConan(ConanFile):
settings = "os", "arch", "compiler", "build_type"
diff --git a/recipes/bzip3/all/conandata.yml b/recipes/bzip3/all/conandata.yml
index 0de00365a28f1a..e5219a4ddad454 100644
--- a/recipes/bzip3/all/conandata.yml
+++ b/recipes/bzip3/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.3.2":
+ url: "https://github.com/kspalaiologos/bzip3/releases/download/1.3.2/bzip3-1.3.2.tar.xz"
+ sha256: "b1d04b8b1b89a3c490cf2b89ea8cee1281584b07f25276fcfd8d40ec2c488e94"
"1.3.1":
url: "https://github.com/kspalaiologos/bzip3/releases/download/1.3.1/bzip3-1.3.1.tar.xz"
sha256: "b023c261307ff4e0e64935ea32bba0216377fd8fc2fd19ba86509a32cbb8a35a"
@@ -20,30 +23,3 @@ sources:
"1.1.8":
url: "https://github.com/kspalaiologos/bzip3/releases/download/1.1.8/bzip3-1.1.8.tar.bz2"
sha256: "bc15d0e4599aad18d9ed71ee0f7e859af89051bf5105b0751e8ca3a26117567d"
- "1.1.7":
- url: "https://github.com/kspalaiologos/bzip3/releases/download/1.1.7/bzip3-1.1.7.tar.bz2"
- sha256: "1f74768dd1a76c45417f84779cc04d8d8b1f595ac564a2ea2aeb0248defca803"
- "1.1.6":
- url: "https://github.com/kspalaiologos/bzip3/releases/download/1.1.6/bzip3-1.1.6.tar.bz2"
- sha256: "2bfd35dd57ab80b35b25e3ad628e0ff8f1f5e6dea02a8d472914823ea2e07e96"
- "1.1.5":
- url: "https://github.com/kspalaiologos/bzip3/releases/download/1.1.5/bzip3-1.1.5.tar.bz2"
- sha256: "2f5012b0004b6c23d5f606deed9191fdce44849234edbcf26e0316bf7856d114"
- "1.1.4":
- url: "https://github.com/kspalaiologos/bzip3/releases/download/1.1.4/bzip3-1.1.4.tar.bz2"
- sha256: "e23a06ae17fc36192e79d0151950b3bbd4e26381af50ba4b4fd7a2d9797e498f"
-patches:
- "1.1.5":
- - patch_file: "patches/1.1.5-0002-export-symbols.patch"
- patch_description: "fix hidden public symbols on shard build"
- patch_type: "portability"
- patch_source: "https://github.com/kspalaiologos/bzip3/issues/46"
- "1.1.4":
- - patch_file: "patches/1.1.4-0001-make-restrict-alias.patch"
- patch_description: "make restrict alias"
- patch_type: "portability"
- patch_source: "https://github.com/kspalaiologos/bzip3/commit/c5bba99d1a655a177eef9aeb71207326929c66d9"
- - patch_file: "patches/1.1.4-0002-export-symbols.patch"
- patch_description: "fix hidden public symbols on shard build"
- patch_type: "portability"
- patch_source: "https://github.com/kspalaiologos/bzip3/issues/46"
diff --git a/recipes/bzip3/all/conanfile.py b/recipes/bzip3/all/conanfile.py
index 484c139e122f38..2102c952e4cf1c 100644
--- a/recipes/bzip3/all/conanfile.py
+++ b/recipes/bzip3/all/conanfile.py
@@ -1,6 +1,6 @@
from conan import ConanFile
from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
-from conan.tools.files import export_conandata_patches, apply_conandata_patches, copy, get
+from conan.tools.files import copy, get
import os
required_conan_version = ">=1.53.0"
@@ -30,7 +30,6 @@ class BZip3Conan(ConanFile):
def export_sources(self):
copy(self, "CMakeLists.txt", self.recipe_folder, self.export_sources_folder)
- export_conandata_patches(self)
def config_options(self):
if self.settings.os == "Windows":
@@ -62,7 +61,6 @@ def generate(self):
tc.generate()
def build(self):
- apply_conandata_patches(self)
cmake = CMake(self)
cmake.configure(build_script_folder=os.path.join(self.source_folder, os.pardir))
cmake.build()
diff --git a/recipes/bzip3/config.yml b/recipes/bzip3/config.yml
index 014fd9d9039685..b6e0a161eb7bfe 100644
--- a/recipes/bzip3/config.yml
+++ b/recipes/bzip3/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.3.2":
+ folder: all
"1.3.1":
folder: all
"1.3.0":
@@ -13,11 +15,3 @@ versions:
folder: all
"1.1.8":
folder: all
- "1.1.7":
- folder: all
- "1.1.6":
- folder: all
- "1.1.5":
- folder: all
- "1.1.4":
- folder: all
diff --git a/recipes/c-blosc/all/conandata.yml b/recipes/c-blosc/all/conandata.yml
index d2e82d3ed6ffbf..a47eb694abb4af 100644
--- a/recipes/c-blosc/all/conandata.yml
+++ b/recipes/c-blosc/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.21.5":
+ url: "https://github.com/Blosc/c-blosc/archive/v1.21.5.tar.gz"
+ sha256: "32e61961bbf81ffea6ff30e9d70fca36c86178afd3e3cfa13376adec8c687509"
"1.21.4":
url: "https://github.com/Blosc/c-blosc/archive/v1.21.4.tar.gz"
sha256: "e72bd03827b8564bbb3dc3ea0d0e689b4863871ce3861d946f2efd7a186ecf3e"
@@ -27,6 +30,10 @@ sources:
url: "https://github.com/Blosc/c-blosc/archive/v1.17.1.tar.gz"
sha256: "19a6948b579c27e8ac440b4f077f99fc90e7292b1d9cb896bec0fd781d68fba2"
patches:
+ "1.21.5":
+ - patch_file: "patches/cmake-dependencies-1.21.4+.patch"
+ patch_description: "use cci package"
+ patch_type: "conan"
"1.21.4":
- patch_file: "patches/cmake-dependencies-1.21.4+.patch"
patch_description: "use cci package"
diff --git a/recipes/c-blosc/config.yml b/recipes/c-blosc/config.yml
index 0bea6e6e853db9..cd2301b24b5b42 100644
--- a/recipes/c-blosc/config.yml
+++ b/recipes/c-blosc/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.21.5":
+ folder: all
"1.21.4":
folder: all
"1.21.3":
diff --git a/recipes/c-blosc2/all/conandata.yml b/recipes/c-blosc2/all/conandata.yml
index 09b337eb1d3e7a..974c48eeac6987 100644
--- a/recipes/c-blosc2/all/conandata.yml
+++ b/recipes/c-blosc2/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "2.10.2":
+ url: "https://github.com/Blosc/c-blosc2/archive/v2.10.2.tar.gz"
+ sha256: "069785bc14c006c7dab40ea0c620bdf3eb8752663fd55c706d145bceabc2a31d"
"2.10.0":
url: "https://github.com/Blosc/c-blosc2/archive/v2.10.0.tar.gz"
sha256: "cb7f7c0c62af78982140ecff21a2f3ca9ce6a0a1c02e314fcdce1a98da0fe231"
@@ -24,6 +27,10 @@ sources:
url: "https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.2.0.tar.gz"
sha256: "66f9977de26d6bc9ea1c0e623d873c3225e4fff709aa09b3335fd09d41d57c0e"
patches:
+ "2.10.2":
+ - patch_file: "patches/2.10.2-0001-fix-cmake.patch"
+ patch_description: "use cci package"
+ patch_type: "conan"
"2.10.0":
- patch_file: "patches/2.10.0-0001-fix-cmake.patch"
patch_description: "use cci package"
diff --git a/recipes/c-blosc2/all/conanfile.py b/recipes/c-blosc2/all/conanfile.py
index 3d06cc9c0ee524..9cfb0264ed537a 100644
--- a/recipes/c-blosc2/all/conanfile.py
+++ b/recipes/c-blosc2/all/conanfile.py
@@ -67,7 +67,7 @@ def requirements(self):
if self.options.with_lz4:
self.requires("lz4/1.9.4")
if self.options.with_zlib in ["zlib-ng", "zlib-ng-compat"]:
- self.requires("zlib-ng/2.1.2")
+ self.requires("zlib-ng/2.1.3")
elif self.options.with_zlib == "zlib":
self.requires("zlib/1.2.13")
if self.options.with_zstd:
@@ -132,6 +132,8 @@ def package(self):
cmake = CMake(self)
cmake.install()
rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
+ rmdir(self, os.path.join(self.package_folder, "lib", "cmake"))
+ rmdir(self, os.path.join(self.package_folder, "cmake"))
# Remove MS runtime files
for dll_pattern_to_remove in ["concrt*.dll", "msvcp*.dll", "vcruntime*.dll"]:
diff --git a/recipes/c-blosc2/all/patches/2.10.2-0001-fix-cmake.patch b/recipes/c-blosc2/all/patches/2.10.2-0001-fix-cmake.patch
new file mode 100644
index 00000000000000..b530262f17fda2
--- /dev/null
+++ b/recipes/c-blosc2/all/patches/2.10.2-0001-fix-cmake.patch
@@ -0,0 +1,139 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4b4fc6a..79d61da 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -152,26 +152,26 @@ if(BUILD_LITE)
+ endif()
+
+ if(PREFER_EXTERNAL_LZ4)
+- find_package(LZ4)
++ find_package(lz4)
+ else()
+ message(STATUS "Using LZ4 internal sources.")
+ endif()
+
+ if(NOT DEACTIVATE_ZLIB)
+ if(PREFER_EXTERNAL_ZLIB)
+- find_package(ZLIB_NG)
+- if(ZLIB_NG_FOUND)
++ find_package(zlib_ng)
++ if(zlib_ng_FOUND)
+ set(HAVE_ZLIB_NG TRUE)
+ else()
+ find_package(ZLIB)
+ endif()
+
+- if(NOT (ZLIB_NG_FOUND OR ZLIB_FOUND))
++ if(NOT (zlib_ng_FOUND OR ZLIB_FOUND))
+ message(STATUS "No ZLIB found. Using ZLIB-NG internal sources.")
+ endif()
+ endif()
+
+- if(NOT (ZLIB_NG_FOUND OR ZLIB_FOUND))
++ if(0)
+ message(STATUS "Using ZLIB-NG internal sources for ZLIB support.")
+ set(HAVE_ZLIB_NG TRUE)
+ add_definitions(-DZLIB_COMPAT)
+@@ -192,8 +192,8 @@ endif()
+
+ if(NOT DEACTIVATE_ZSTD)
+ if(PREFER_EXTERNAL_ZSTD)
+- find_package(ZSTD)
+- if(NOT ZSTD_FOUND)
++ find_package(zstd)
++ if(NOT zstd_FOUND)
+ message(STATUS "No ZSTD library found. Using internal sources.")
+ endif()
+ else()
+diff --git a/blosc/CMakeLists.txt b/blosc/CMakeLists.txt
+index b44b710..681705e 100644
+--- a/blosc/CMakeLists.txt
++++ b/blosc/CMakeLists.txt
+@@ -79,15 +79,15 @@ set(INTERNAL_LIBS ${PROJECT_SOURCE_DIR}/internal-complibs)
+ # link dependencies
+ # "link" dependent targets via target_link_libraries (preferred) and
+ # manually add includes / libs for others
+-if(LZ4_FOUND)
++if(lz4_FOUND)
+ if(BUILD_SHARED)
+- target_include_directories(blosc2_shared PUBLIC ${LZ4_INCLUDE_DIR})
++ target_include_directories(blosc2_shared PUBLIC ${lz4_INCLUDE_DIR})
+ endif()
+ if(BUILD_STATIC)
+- target_include_directories(blosc2_static PUBLIC ${LZ4_INCLUDE_DIR})
++ target_include_directories(blosc2_static PUBLIC ${lz4_INCLUDE_DIR})
+ endif()
+ if(BUILD_TESTS)
+- target_include_directories(blosc_testing PUBLIC ${LZ4_INCLUDE_DIR})
++ target_include_directories(blosc_testing PUBLIC ${lz4_INCLUDE_DIR})
+ endif()
+ else()
+ set(LZ4_LOCAL_DIR ${INTERNAL_LIBS}/lz4-1.9.4)
+@@ -138,18 +138,18 @@ if(NOT DEACTIVATE_ZLIB)
+ endif()
+
+ if(NOT DEACTIVATE_ZSTD)
+- if(ZSTD_FOUND)
++ if(zstd_FOUND)
+ if(BUILD_SHARED)
+- target_include_directories(blosc2_shared PUBLIC ${ZSTD_INCLUDE_DIR})
+- target_link_libraries(blosc2_shared PUBLIC ${ZSTD_LIBRARY})
++ target_include_directories(blosc2_shared PUBLIC ${zstd_INCLUDE_DIR})
++ target_link_libraries(blosc2_shared PUBLIC ${zstd_LIBRARY})
+ endif()
+ if(BUILD_STATIC)
+- target_include_directories(blosc2_static PUBLIC ${ZSTD_INCLUDE_DIR})
+- target_link_libraries(blosc2_static PUBLIC ${ZSTD_LIBRARY})
++ target_include_directories(blosc2_static PUBLIC ${zstd_INCLUDE_DIR})
++ target_link_libraries(blosc2_static PUBLIC ${zstd_LIBRARY})
+ endif()
+ if(BUILD_TESTS)
+- target_include_directories(blosc_testing PUBLIC ${ZSTD_INCLUDE_DIR})
+- target_link_libraries(blosc_testing PUBLIC ${ZSTD_LIBRARY})
++ target_include_directories(blosc_testing PUBLIC ${zstd_INCLUDE_DIR})
++ target_link_libraries(blosc_testing PUBLIC ${zstd_LIBRARY})
+ endif()
+ else()
+ set(ZSTD_LOCAL_DIR ${INTERNAL_LIBS}/zstd-1.5.5)
+@@ -190,8 +190,8 @@ else()
+ set(LIBS ${LIBS} ${CMAKE_DL_LIBS})
+ endif()
+
+-if(LZ4_FOUND)
+- set(LIBS ${LIBS} ${LZ4_LIBRARY})
++if(lz4_FOUND)
++ set(LIBS ${LIBS} ${lz4_LIBRARIES})
+ else()
+ file(GLOB LZ4_FILES ${LZ4_LOCAL_DIR}/*.c)
+ list(APPEND SOURCES ${LZ4_FILES})
+@@ -199,8 +199,8 @@ else()
+ endif()
+
+ if(NOT DEACTIVATE_ZLIB)
+- if(ZLIB_NG_FOUND)
+- set(LIBS ${LIBS} ${ZLIB_NG_LIBRARY})
++ if(zlib_ng_FOUND)
++ set(LIBS ${LIBS} ${zlib_ng_LIBRARIES})
+ elseif(ZLIB_FOUND)
+ set(LIBS ${LIBS} ${ZLIB_LIBRARIES})
+ else()
+@@ -212,8 +212,8 @@ if(NOT DEACTIVATE_ZLIB)
+ endif()
+
+ if(NOT DEACTIVATE_ZSTD)
+- if(ZSTD_FOUND)
+- set(LIBS ${LIBS} ${ZSTD_LIBRARY})
++ if(zstd_FOUND)
++ set(LIBS ${LIBS} ${zstd_LIBRARIES})
+ else()
+ # Enable assembly code only when not using MSVC *and* x86 is there
+ if((NOT MSVC) AND COMPILER_SUPPORT_SSE2) # if SSE2 is here, this is an x86 platform
+@@ -268,7 +268,7 @@ list(APPEND SOURCES
+ blosc/directories.c
+ blosc/blosc2-stdio.c
+ blosc/b2nd.c
+- blosc/b2nd_utils.c
++ blosc/b2nd_utils.c
+ )
+ if(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL arm64)
+ if(COMPILER_SUPPORT_SSE2)
diff --git a/recipes/c-blosc2/config.yml b/recipes/c-blosc2/config.yml
index 94edc65e4565ad..42ffc68cfe344c 100644
--- a/recipes/c-blosc2/config.yml
+++ b/recipes/c-blosc2/config.yml
@@ -1,4 +1,6 @@
versions:
+ "2.10.2":
+ folder: all
"2.10.0":
folder: all
"2.8.0":
diff --git a/recipes/caf/all/conandata.yml b/recipes/caf/all/conandata.yml
index 71354ad6bae80a..260be0caef66de 100644
--- a/recipes/caf/all/conandata.yml
+++ b/recipes/caf/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.19.2":
+ url: "https://github.com/actor-framework/actor-framework/archive/0.19.2.tar.gz"
+ sha256: "aa3fcc494424e0e20b177125458a6a6ed39c751a3d3d5193054e88bdf8a146d2"
"0.18.6":
url: "https://github.com/actor-framework/actor-framework/archive/0.18.6.tar.gz"
sha256: "c2ead63a0322d992fea8813a7f7d15b4d16cbb8bbe026722f2616a79109b91cc"
@@ -11,3 +14,24 @@ sources:
"0.18.0":
url: "https://github.com/actor-framework/actor-framework/archive/0.18.0.tar.gz"
sha256: "df765fa78861e67d44e2587c0ac0c1c662d8c93fe5ffc8757f552fc7ac15941f"
+patches:
+ "0.18.6":
+ - patch_file: "patches/0001-fix-gcc-13-include.patch"
+ patch_description: "add missing include to support gcc 13"
+ patch_type: "bugfix"
+ patch_source: "https://github.com/actor-framework/actor-framework/commit/c2ee99c"
+ "0.18.5":
+ - patch_file: "patches/0001-fix-gcc-13-include.patch"
+ patch_description: "add missing include to support gcc 13"
+ patch_type: "bugfix"
+ patch_source: "https://github.com/actor-framework/actor-framework/commit/c2ee99c"
+ "0.18.2":
+ - patch_file: "patches/0001-fix-gcc-13-include.patch"
+ patch_description: "add missing include to support gcc 13"
+ patch_type: "bugfix"
+ patch_source: "https://github.com/actor-framework/actor-framework/commit/c2ee99c"
+ "0.18.0":
+ - patch_file: "patches/0001-fix-gcc-13-include.patch"
+ patch_description: "add missing include to support gcc 13"
+ patch_type: "bugfix"
+ patch_source: "https://github.com/actor-framework/actor-framework/commit/c2ee99c"
diff --git a/recipes/caf/all/conanfile.py b/recipes/caf/all/conanfile.py
index 7a5cb98c5ded6f..08713d4f8b3b0f 100644
--- a/recipes/caf/all/conanfile.py
+++ b/recipes/caf/all/conanfile.py
@@ -2,7 +2,7 @@
from conan.errors import ConanInvalidConfiguration
from conan.tools.build import check_min_cppstd, valid_min_cppstd
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
-from conan.tools.files import copy, get, rmdir
+from conan.tools.files import apply_conandata_patches, export_conandata_patches, copy, get, rmdir
from conan.tools.scm import Version
import os
@@ -47,6 +47,9 @@ def _minimum_compilers_version(self):
"apple-clang": "10",
}
+ def export_sources(self):
+ export_conandata_patches(self)
+
def config_options(self):
if self.settings.os == "Windows":
del self.options.fPIC
@@ -97,6 +100,7 @@ def generate(self):
deps.generate()
def build(self):
+ apply_conandata_patches(self)
cmake = CMake(self)
cmake.configure()
cmake.build()
diff --git a/recipes/caf/all/patches/0001-fix-gcc-13-include.patch b/recipes/caf/all/patches/0001-fix-gcc-13-include.patch
new file mode 100644
index 00000000000000..3ad9d6d3ba42fa
--- /dev/null
+++ b/recipes/caf/all/patches/0001-fix-gcc-13-include.patch
@@ -0,0 +1,21 @@
+--- a/libcaf_core/caf/detail/ripemd_160.hpp
++++ b/libcaf_core/caf/detail/ripemd_160.hpp
+@@ -42,6 +42,7 @@
+
+ #include
+ #include
++#include
+
+ #include "caf/detail/core_export.hpp"
+
+--- a/libcaf_core/caf/telemetry/metric_type.hpp
++++ b/libcaf_core/caf/telemetry/metric_type.hpp
+@@ -4,6 +4,8 @@
+
+ #pragma once
+
++#include
++
+ namespace caf::telemetry {
+
+ enum class metric_type : uint8_t {
diff --git a/recipes/caf/config.yml b/recipes/caf/config.yml
index 1e73f6993a4549..9d2f0ee39c4640 100644
--- a/recipes/caf/config.yml
+++ b/recipes/caf/config.yml
@@ -1,4 +1,6 @@
versions:
+ "0.19.2":
+ folder: all
"0.18.6":
folder: all
"0.18.5":
diff --git a/recipes/cairo/all/conanfile.py b/recipes/cairo/all/conanfile.py
index e1166eb30e7ea1..1e8675e64a203b 100644
--- a/recipes/cairo/all/conanfile.py
+++ b/recipes/cairo/all/conanfile.py
@@ -91,10 +91,10 @@ def requirements(self):
if self.options.with_xlib or self.options.with_xlib_xrender or self.options.with_xcb:
self.requires("xorg/system")
if self.options.get_safe("with_glib", True):
- self.requires("glib/2.76.2")
+ self.requires("glib/2.76.3")
self.requires("zlib/1.2.13")
self.requires("pixman/0.40.0")
- self.requires("libpng/1.6.39")
+ self.requires("libpng/1.6.40")
def package_id(self):
if self.options.get_safe("with_glib") and not self.dependencies["glib"].options.shared:
diff --git a/recipes/cairo/meson/conanfile.py b/recipes/cairo/meson/conanfile.py
index 22c79e1b6951e7..f45ccd7290ad42 100644
--- a/recipes/cairo/meson/conanfile.py
+++ b/recipes/cairo/meson/conanfile.py
@@ -107,7 +107,7 @@ def requirements(self):
if self.options.with_png:
self.requires("libpng/1.6.40")
if self.options.with_glib:
- self.requires("glib/2.76.3")
+ self.requires("glib/2.77.0")
if self.settings.os == "Linux":
if self.options.with_xlib or self.options.with_xlib_xrender or self.options.with_xcb:
self.requires("xorg/system")
diff --git a/recipes/capnproto/all/conandata.yml b/recipes/capnproto/all/conandata.yml
index 8a6eeaab5a8d19..e635b41da8f05d 100644
--- a/recipes/capnproto/all/conandata.yml
+++ b/recipes/capnproto/all/conandata.yml
@@ -1,4 +1,13 @@
sources:
+ "1.0.1":
+ url: "https://github.com/capnproto/capnproto/archive/v1.0.1.tar.gz"
+ sha256: "5bdb16f6b389a9e29b04214b9bae1759e8b7fe2b45049d7e3f1f286ba050a200"
+ "1.0.0":
+ url: "https://github.com/capnproto/capnproto/archive/v1.0.0.tar.gz"
+ sha256: "bcd44dde78055313a7786cb6ab020cbef19b9045b53857f90cce101c9453f715"
+ "0.10.4":
+ url: "https://github.com/capnproto/capnproto/archive/v0.10.4.tar.gz"
+ sha256: "c6f25940688c87ddb24e0c4e475c3213d9b044aad2ba305439cc8c224f559da6"
"0.10.3":
url: "https://github.com/capnproto/capnproto/archive/v0.10.3.tar.gz"
sha256: "e07446f56043c983e009038e69d18ff86a2924909f0b518ccf47eccf5ac03919"
@@ -16,26 +25,75 @@ sources:
sha256: "6d8b43a7ec2a764b4dfe4139a7cdd070ad9057f106898050d9f4db3754b98820"
"0.7.0":
url: "https://github.com/capnproto/capnproto/archive/v0.7.0.tar.gz"
- sha256: 76c7114a3d142ad08b7208b3964a26e72a6320ee81331d3f0b87569fc9c47a28
+ sha256: "76c7114a3d142ad08b7208b3964a26e72a6320ee81331d3f0b87569fc9c47a28"
patches:
+ "1.0.1":
+ - patch_file: "patches/0015-disable-tests-for-1.0.0.patch"
+ patch_description: "disable test build"
+ patch_type: "conan"
+ "1.0.0":
+ - patch_file: "patches/0015-disable-tests-for-1.0.0.patch"
+ patch_description: "disable test build"
+ patch_type: "conan"
+ "0.10.4":
+ - patch_file: "patches/0014-disable-tests-for-0.10.1.patch"
+ patch_description: "disable test build"
+ patch_type: "conan"
"0.10.3":
- - patch_file: patches/0014-disable-tests-for-0.10.1.patch
+ - patch_file: "patches/0014-disable-tests-for-0.10.1.patch"
+ patch_description: "disable test build"
+ patch_type: "conan"
"0.10.1":
- - patch_file: patches/0014-disable-tests-for-0.10.1.patch
+ - patch_file: "patches/0014-disable-tests-for-0.10.1.patch"
+ patch_description: "disable test build"
+ patch_type: "conan"
"0.10.0":
- - patch_file: patches/0013-disable-tests-for-0.10.0.patch
+ - patch_file: "patches/0013-disable-tests-for-0.10.0.patch"
+ patch_description: "disable test build"
+ patch_type: "conan"
"0.9.1":
- - patch_file: patches/0010-disable-tests-for-0.9.1.patch
- - patch_file: patches/0011-msvc-cpp17-hassubstring-fix-0.9.1.patch
- - patch_file: patches/0012-msvc-nogdi-fix-0.9.1.patch
+ - patch_file: "patches/0010-disable-tests-for-0.9.1.patch"
+ patch_description: "disable test build"
+ patch_type: "conan"
+ - patch_file: "patches/0011-msvc-cpp17-hassubstring-fix-0.9.1.patch"
+ patch_description: "fix compilation errors on Windows Clang"
+ patch_type: "portability"
+ patch_source: "https://github.com/capnproto/capnproto/pull/1344"
+ - patch_file: "patches/0012-msvc-nogdi-fix-0.9.1.patch"
+ patch_description: "fix compilation error on Windows"
+ patch_type: "portability"
+ patch_source: "https://github.com/capnproto/capnproto/issues/1421"
"0.8.0":
- - patch_file: patches/0001-disable-tests.patch
- - patch_file: patches/0002-cmake-compat-header-install.patch
- - patch_file: patches/0003-kj-tls-windows.patch
- - patch_file: patches/0004-cmake-module-path.patch
- - patch_file: patches/0005-msvc-16.7-ice-workaround.patch
- - patch_file: patches/0009-windows-symlink-fix-0.8.0.patch
+ - patch_file: "patches/0001-disable-tests.patch"
+ patch_description: "disable test build"
+ patch_type: "conan"
+ - patch_file: "patches/0002-cmake-compat-header-install.patch"
+ patch_description: "fix compilation error for std::copy with list types"
+ patch_type: "portability"
+ patch_source: "https://github.com/capnproto/capnproto/pull/895"
+ - patch_file: "patches/0003-kj-tls-windows.patch"
+ patch_description: "add kj-tls target"
+ patch_type: "portability"
+ patch_source: "https://github.com/capnproto/capnproto/commit/7da6abf233fdf74a4ad4db56b6e98778b162dd7d"
+ - patch_file: "patches/0004-cmake-module-path.patch"
+ patch_description: "append cmake module path instead set"
+ patch_type: "conan"
+ - patch_file: "patches/0005-msvc-16.7-ice-workaround.patch"
+ patch_description: "Workaround for internal compiler error with msvc 16.7.x"
+ patch_type: "portability"
+ patch_source: "https://github.com/capnproto/capnproto/pull/1058"
+ - patch_file: "patches/0009-windows-symlink-fix-0.8.0.patch"
+ patch_description: "orkaround for install step on Windows where symlinks might be not supported."
+ patch_type: "portability"
+ patch_source: "https://github.com/capnproto/capnproto/pull/1240"
"0.7.0":
- - patch_file: patches/0006-symlink.patch
- - patch_file: patches/0007-cmake-module-path.patch
- - patch_file: patches/0008-disable-tests.patch
+ - patch_file: "patches/0006-symlink.patch"
+ patch_description: "Fix capnpc extension handling on Windows"
+ patch_type: "portability"
+ patch_source: "https://github.com/capnproto/capnproto/pull/804"
+ - patch_file: "patches/0007-cmake-module-path.patch"
+ patch_description: "append cmake module path instead set"
+ patch_type: "conan"
+ - patch_file: "patches/0008-disable-tests.patch"
+ patch_description: "disable test build"
+ patch_type: "conan"
diff --git a/recipes/capnproto/all/conanfile.py b/recipes/capnproto/all/conanfile.py
index f101073a53368f..72462e3198e714 100644
--- a/recipes/capnproto/all/conanfile.py
+++ b/recipes/capnproto/all/conanfile.py
@@ -47,7 +47,7 @@ def _minimum_compilers_version(self):
return {
"Visual Studio": "15",
"msvc": "191",
- "gcc": "5",
+ "gcc": "5" if Version(self.version) < "1.0.0" else "7",
"clang": "5",
"apple-clang": "5.1",
}
@@ -93,6 +93,10 @@ def validate(self):
raise ConanInvalidConfiguration(f"{self.ref} doesn't support shared libraries for Visual Studio")
if self.settings.os == "Windows" and Version(self.version) < "0.8.0" and self.options.with_openssl:
raise ConanInvalidConfiguration(f"{self.ref} doesn't support OpenSSL on Windows pre 0.8.0")
+ # MSVC Release build is not supported in 1.0.0
+ # https://github.com/capnproto/capnproto/issues/1740
+ if Version(self.version) == "1.0.0" and is_msvc(self) and self.settings.build_type == "Release":
+ raise ConanInvalidConfiguration(f"{self.ref} doesn't support MSVC Release build")
def build_requirements(self):
if self.settings.os != "Windows":
@@ -218,9 +222,9 @@ def package_info(self):
self._register_component(component)
if self.settings.os in ["Linux", "FreeBSD"]:
- self.cpp_info.components["capnpc"].system_libs = ["pthread"]
- self.cpp_info.components["kj"].system_libs = ["pthread"]
- self.cpp_info.components["kj-async"].system_libs = ["pthread"]
+ self.cpp_info.components["capnpc"].system_libs = ["pthread", "m"]
+ self.cpp_info.components["kj"].system_libs = ["pthread", "m"]
+ self.cpp_info.components["kj-async"].system_libs = ["pthread", "m"]
elif self.settings.os == "Windows":
self.cpp_info.components["kj-async"].system_libs = ["ws2_32"]
diff --git a/recipes/capnproto/all/patches/0015-disable-tests-for-1.0.0.patch b/recipes/capnproto/all/patches/0015-disable-tests-for-1.0.0.patch
new file mode 100644
index 00000000000000..38c9dd1ee414b4
--- /dev/null
+++ b/recipes/capnproto/all/patches/0015-disable-tests-for-1.0.0.patch
@@ -0,0 +1,176 @@
+diff --git a/c++/Makefile.am b/c++/Makefile.am
+index 1567491..95ebc4a 100644
+--- a/c++/Makefile.am
++++ b/c++/Makefile.am
+@@ -457,171 +457,4 @@ endif LITE_MODE
+ # src/capnp/benchmark/...
+ # src/capnp/compiler/...
+
+-# Tests ==============================================================
+-
+-test_capnpc_inputs = \
+- src/capnp/test.capnp \
+- src/capnp/test-import.capnp \
+- src/capnp/test-import2.capnp \
+- src/capnp/compat/json-test.capnp
+-
+-test_capnpc_outputs = \
+- src/capnp/test.capnp.c++ \
+- src/capnp/test.capnp.h \
+- src/capnp/test-import.capnp.c++ \
+- src/capnp/test-import.capnp.h \
+- src/capnp/test-import2.capnp.c++ \
+- src/capnp/test-import2.capnp.h \
+- src/capnp/compat/json-test.capnp.c++ \
+- src/capnp/compat/json-test.capnp.h
+-
+-if USE_EXTERNAL_CAPNP
+-
+-test_capnpc_middleman: $(test_capnpc_inputs)
+- @$(MKDIR_P) src
+- $(CAPNP) compile --src-prefix=$(srcdir)/src -o$(CAPNPC_CXX):src -I$(srcdir)/src $$(for FILE in $(test_capnpc_inputs); do echo $(srcdir)/$$FILE; done)
+- touch test_capnpc_middleman
+
+-else
+-
+-test_capnpc_middleman: capnp$(EXEEXT) capnpc-c++$(EXEEXT) $(test_capnpc_inputs)
+- @$(MKDIR_P) src
+- ./capnp$(EXEEXT) compile --src-prefix=$(srcdir)/src -o./capnpc-c++$(EXEEXT):src -I$(srcdir)/src $$(for FILE in $(test_capnpc_inputs); do echo $(srcdir)/$$FILE; done)
+- touch test_capnpc_middleman
+-
+-endif
+-
+-$(test_capnpc_outputs): test_capnpc_middleman
+-
+-BUILT_SOURCES = $(test_capnpc_outputs)
+-
+-check_LIBRARIES = libcapnp-test.a
+-libcapnp_test_a_SOURCES = \
+- src/capnp/test-util.c++ \
+- src/capnp/test-util.h
+-nodist_libcapnp_test_a_SOURCES = $(test_capnpc_outputs)
+-
+-if LITE_MODE
+-
+-check_PROGRAMS = capnp-test
+-compiler_tests =
+-capnp_test_LDADD = libcapnp-test.a libcapnp.la libkj-test.la libkj.la
+-
+-else !LITE_MODE
+-
+-check_PROGRAMS = capnp-test capnp-evolution-test capnp-afl-testcase
+-if HAS_FUZZING_ENGINE
+- check_PROGRAMS += capnp-llvm-fuzzer-testcase
+-endif
+-heavy_tests = \
+- src/kj/async-test.c++ \
+- src/kj/async-xthread-test.c++ \
+- src/kj/async-coroutine-test.c++ \
+- src/kj/async-unix-test.c++ \
+- src/kj/async-unix-xthread-test.c++ \
+- src/kj/async-win32-test.c++ \
+- src/kj/async-win32-xthread-test.c++ \
+- src/kj/async-io-test.c++ \
+- src/kj/async-queue-test.c++ \
+- src/kj/parse/common-test.c++ \
+- src/kj/parse/char-test.c++ \
+- src/kj/std/iostream-test.c++ \
+- src/kj/compat/url-test.c++ \
+- src/kj/compat/http-test.c++ \
+- $(MAYBE_KJ_GZIP_TESTS) \
+- $(MAYBE_KJ_TLS_TESTS) \
+- src/capnp/canonicalize-test.c++ \
+- src/capnp/capability-test.c++ \
+- src/capnp/membrane-test.c++ \
+- src/capnp/schema-test.c++ \
+- src/capnp/schema-loader-test.c++ \
+- src/capnp/schema-parser-test.c++ \
+- src/capnp/dynamic-test.c++ \
+- src/capnp/stringify-test.c++ \
+- src/capnp/serialize-async-test.c++ \
+- src/capnp/serialize-text-test.c++ \
+- src/capnp/rpc-test.c++ \
+- src/capnp/rpc-twoparty-test.c++ \
+- src/capnp/ez-rpc-test.c++ \
+- src/capnp/compat/json-test.c++ \
+- src/capnp/compat/websocket-rpc-test.c++ \
+- src/capnp/compiler/lexer-test.c++ \
+- src/capnp/compiler/type-id-test.c++
+-capnp_test_LDADD = \
+- libcapnp-test.a \
+- libcapnpc.la \
+- libcapnp-rpc.la \
+- libcapnp-websocket.la \
+- libcapnp-json.la \
+- libcapnp.la \
+- libkj-http.la \
+- $(MAYBE_KJ_GZIP_LA) \
+- $(MAYBE_KJ_TLS_LA) \
+- libkj-async.la \
+- libkj-test.la \
+- libkj.la \
+- $(ASYNC_LIBS) \
+- $(PTHREAD_LIBS)
+-
+-endif !LITE_MODE
+-
+-capnp_test_CPPFLAGS = -Wno-deprecated-declarations
+-capnp_test_SOURCES = \
+- src/kj/common-test.c++ \
+- src/kj/memory-test.c++ \
+- src/kj/refcount-test.c++ \
+- src/kj/array-test.c++ \
+- src/kj/list-test.c++ \
+- src/kj/string-test.c++ \
+- src/kj/string-tree-test.c++ \
+- src/kj/table-test.c++ \
+- src/kj/map-test.c++ \
+- src/kj/encoding-test.c++ \
+- src/kj/exception-test.c++ \
+- src/kj/debug-test.c++ \
+- src/kj/arena-test.c++ \
+- src/kj/units-test.c++ \
+- src/kj/tuple-test.c++ \
+- src/kj/one-of-test.c++ \
+- src/kj/function-test.c++ \
+- src/kj/io-test.c++ \
+- src/kj/mutex-test.c++ \
+- src/kj/time-test.c++ \
+- src/kj/threadlocal-test.c++ \
+- src/kj/filesystem-test.c++ \
+- src/kj/filesystem-disk-test.c++ \
+- src/kj/test-test.c++ \
+- src/capnp/common-test.c++ \
+- src/capnp/blob-test.c++ \
+- src/capnp/endian-test.c++ \
+- src/capnp/endian-fallback-test.c++ \
+- src/capnp/endian-reverse-test.c++ \
+- src/capnp/layout-test.c++ \
+- src/capnp/any-test.c++ \
+- src/capnp/message-test.c++ \
+- src/capnp/encoding-test.c++ \
+- src/capnp/orphan-test.c++ \
+- src/capnp/serialize-test.c++ \
+- src/capnp/serialize-packed-test.c++ \
+- src/capnp/fuzz-test.c++ \
+- $(heavy_tests)
+-
+-if !LITE_MODE
+-capnp_evolution_test_LDADD = libcapnpc.la libcapnp.la libkj.la
+-capnp_evolution_test_SOURCES = src/capnp/compiler/evolution-test.c++
+-
+-capnp_afl_testcase_LDADD = libcapnp-test.a libcapnp-rpc.la libcapnp.la libkj.la libkj-async.la
+-capnp_afl_testcase_SOURCES = src/capnp/afl-testcase.c++
+-
+-if HAS_FUZZING_ENGINE
+- capnp_llvm_fuzzer_testcase_LDADD = libcapnp-test.a libcapnp-rpc.la libcapnp.la libkj.la libkj-async.la
+- capnp_llvm_fuzzer_testcase_SOURCES = src/capnp/llvm-fuzzer-testcase.c++
+- capnp_llvm_fuzzer_testcase_LDFLAGS = $(LIB_FUZZING_ENGINE)
+-endif
+-endif !LITE_MODE
+-
+-if LITE_MODE
+-TESTS = capnp-test
+-else !LITE_MODE
+-TESTS = capnp-test capnp-evolution-test src/capnp/compiler/capnp-test.sh
+-endif !LITE_MODE
diff --git a/recipes/capnproto/config.yml b/recipes/capnproto/config.yml
index 89d97bce3d8502..887e41e533af81 100644
--- a/recipes/capnproto/config.yml
+++ b/recipes/capnproto/config.yml
@@ -1,4 +1,10 @@
versions:
+ "1.0.1":
+ folder: all
+ "1.0.0":
+ folder: all
+ "0.10.4":
+ folder: all
"0.10.3":
folder: all
"0.10.1":
diff --git a/recipes/cargs/all/CMakeLists.txt b/recipes/cargs/all/CMakeLists.txt
deleted file mode 100644
index 42d6e7408fb330..00000000000000
--- a/recipes/cargs/all/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-cmake_minimum_required(VERSION 3.9.2)
-project(cmake_wrapper)
-
-include(conanbuildinfo.cmake)
-conan_basic_setup()
-
-add_subdirectory("source_subfolder")
diff --git a/recipes/cargs/all/conanfile.py b/recipes/cargs/all/conanfile.py
index 6aeeae1d3b488d..6de6ac89acce0d 100644
--- a/recipes/cargs/all/conanfile.py
+++ b/recipes/cargs/all/conanfile.py
@@ -1,34 +1,37 @@
import os
-from conans import ConanFile, CMake, tools
-required_conan_version = ">=1.33.0"
+from conan import ConanFile
+from conan.tools.build import check_min_cppstd
+from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
+from conan.tools.files import copy, get
+
+required_conan_version = ">=1.53.0"
class CargsConan(ConanFile):
name = "cargs"
- description = "A lightweight getopt replacement that works on Linux, " \
- "Windows and macOS. Command line argument parser library" \
- " for C/C++. Can be used to parse argv and argc parameters."
- url = "https://github.com/conan-io/conan-center-index"
+ description = (
+ "A lightweight getopt replacement that works on Linux, "
+ "Windows and macOS. Command line argument parser library"
+ " for C/C++. Can be used to parse argv and argc parameters."
+ )
license = "MIT"
+ url = "https://github.com/conan-io/conan-center-index"
homepage = "https://likle.github.io/cargs/"
topics = ("cargs", "cross-platform", "windows", "macos", "osx", "linux",
"getopt", "getopt-long", "command-line-parser", "command-line",
"arguments", "argument-parser")
- exports_sources = ["CMakeLists.txt"]
- generators = "cmake"
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
- options = {"shared": [True, False], "fPIC": [True, False]}
- default_options = {'shared': False, 'fPIC': True}
-
- @property
- def _source_subfolder(self):
- return "source_subfolder"
-
- @property
- def _build_subfolder(self):
- return "build_subfolder"
+ options = {
+ "shared": [True, False],
+ "fPIC": [True, False],
+ }
+ default_options = {
+ "shared": False,
+ "fPIC": True,
+ }
def config_options(self):
if self.settings.os == "Windows":
@@ -36,33 +39,48 @@ def config_options(self):
def configure(self):
if self.options.shared:
- del self.options.fPIC
- del self.settings.compiler.libcxx
- del self.settings.compiler.cppstd
+ self.options.rm_safe("fPIC")
+ self.settings.rm_safe("compiler.libcxx")
+ self.settings.rm_safe("compiler.cppstd")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
+
+ def validate(self):
+ if self.settings.compiler.get_safe("cppstd"):
+ check_min_cppstd(self, 11)
def source(self):
- tools.get(**self.conan_data["sources"][self.version],
- destination=self._source_subfolder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS"] = self.options.shared
+ tc.generate()
+ tc = CMakeDeps(self)
+ tc.generate()
def build(self):
cmake = CMake(self)
- cmake.definitions["CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS"] = self.options.shared and self.settings.os == "Windows"
- cmake.configure(build_folder=self._build_subfolder)
+ cmake.configure()
cmake.build(target="cargs")
def package(self):
- include_dir = os.path.join(self._source_subfolder, 'include')
- lib_dir = os.path.join(self._build_subfolder, "lib")
- bin_dir = os.path.join(self._build_subfolder, "bin")
-
- self.copy("LICENSE.md", dst="licenses", src=self._source_subfolder)
- self.copy("cargs.h", dst="include", src=include_dir)
- self.copy(pattern="*.a", dst="lib", src=lib_dir, keep_path=False)
- self.copy(pattern="*.lib", dst="lib", src=lib_dir, keep_path=False)
- self.copy(pattern="*.dylib", dst="lib", src=lib_dir, keep_path=False)
- self.copy(pattern="*.so*", dst="lib", src=lib_dir, keep_path=False,
- symlinks=True)
- self.copy(pattern="*.dll", dst="bin", src=bin_dir, keep_path=False)
+ copy(self, "LICENSE.md",
+ dst=os.path.join(self.package_folder, "licenses"),
+ src=self.source_folder)
+ copy(self, "cargs.h",
+ dst=os.path.join(self.package_folder, "include"),
+ src=os.path.join(self.source_folder, "include"))
+ for pattern in ["*.a", "*.so*", "*.dylib", "*.lib"]:
+ copy(self, pattern,
+ dst=os.path.join(self.package_folder, "lib"),
+ src=self.build_folder,
+ keep_path=False)
+ copy(self, "*.dll",
+ dst=os.path.join(self.package_folder, "bin"),
+ src=self.build_folder,
+ keep_path=False)
def package_info(self):
- self.cpp_info.libs = tools.collect_libs(self)
+ self.cpp_info.libs = ["cargs"]
diff --git a/recipes/cargs/all/test_package/CMakeLists.txt b/recipes/cargs/all/test_package/CMakeLists.txt
index f6bb6f79f518f1..2d259c06a7d890 100644
--- a/recipes/cargs/all/test_package/CMakeLists.txt
+++ b/recipes/cargs/all/test_package/CMakeLists.txt
@@ -1,9 +1,8 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package)
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES C)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup()
+find_package(cargs REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.c)
-target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
+target_link_libraries(${PROJECT_NAME} PRIVATE cargs::cargs)
set_property(TARGET ${PROJECT_NAME} PROPERTY C_STANDARD 11)
diff --git a/recipes/cargs/all/test_package/conanfile.py b/recipes/cargs/all/test_package/conanfile.py
index 4903f1a7e8fa0f..ef5d7042163ecc 100644
--- a/recipes/cargs/all/test_package/conanfile.py
+++ b/recipes/cargs/all/test_package/conanfile.py
@@ -1,9 +1,19 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
+
class TestPackageConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -11,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self.settings):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/cargs/all/test_v1_package/CMakeLists.txt b/recipes/cargs/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/cargs/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/cargs/all/test_v1_package/conanfile.py b/recipes/cargs/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..6c9d5dba712c72
--- /dev/null
+++ b/recipes/cargs/all/test_v1_package/conanfile.py
@@ -0,0 +1,16 @@
+from conans import ConanFile, CMake, tools
+import os
+
+class TestPackageConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self.settings):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/cassandra-cpp-driver/all/CMakeLists.txt b/recipes/cassandra-cpp-driver/all/CMakeLists.txt
deleted file mode 100644
index 7f03984bd91495..00000000000000
--- a/recipes/cassandra-cpp-driver/all/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-cmake_minimum_required(VERSION 3.1)
-project(cassandra C CXX)
-
-include(conanbuildinfo.cmake)
-conan_basic_setup()
-
-add_subdirectory("source_subfolder")
diff --git a/recipes/cassandra-cpp-driver/all/conandata.yml b/recipes/cassandra-cpp-driver/all/conandata.yml
index 0ca8371b0b30f9..148e40f2a763f6 100644
--- a/recipes/cassandra-cpp-driver/all/conandata.yml
+++ b/recipes/cassandra-cpp-driver/all/conandata.yml
@@ -1,10 +1,53 @@
sources:
+ "2.17.0":
+ url: "https://github.com/datastax/cpp-driver/archive/2.17.0.tar.gz"
+ sha256: "075af6a6920b0a8b12e37b8e5aa335b0c7919334aa1b451642668e6e37c5372f"
+ "2.16.2":
+ url: "https://github.com/datastax/cpp-driver/archive/2.16.2.tar.gz"
+ sha256: "de60751bd575b5364c2c5a17a24a40f3058264ea2ee6fef19de126ae550febc9"
"2.15.3":
- url: "https://github.com/datastax/cpp-driver/archive/2.15.3.zip"
- sha256: "494b35418f1eaa86d80572a4254b7fae88a1341dcda83788ed038ce4f39117cb"
+ url: "https://github.com/datastax/cpp-driver/archive/2.15.3.tar.gz"
+ sha256: "eccb53c5151621c3b647fc83781a542cfb93e76687b4178ebce418fc4c817293"
patches:
+ "2.17.0":
+ - patch_file: "patches/2.16.2/fix-cmake.patch"
+ patch_description: "use cci package"
+ patch_type: "conan"
+ - patch_file: "patches/2.15.3/fix-rapidjson.patch"
+ patch_description: "fix include path for cci package"
+ patch_type: "conan"
+ - patch_file: "patches/2.15.3/fix-atomic.patch"
+ patch_description: "Adapt MemoryOrder definition for C++ 20"
+ patch_type: "portability"
+ patch_source: "https://github.com/datastax/cpp-driver/pull/533"
+ - patch_file: "patches/2.15.3/remove-attribute-for-msvc.patch"
+ patch_description: "remove attribute for msvc"
+ patch_type: "portability"
+ "2.16.2":
+ - patch_file: "patches/2.16.2/fix-cmake.patch"
+ patch_description: "use cci package"
+ patch_type: "conan"
+ - patch_file: "patches/2.15.3/fix-rapidjson.patch"
+ patch_description: "fix include path for cci package"
+ patch_type: "conan"
+ - patch_file: "patches/2.15.3/fix-atomic.patch"
+ patch_description: "Adapt MemoryOrder definition for C++ 20"
+ patch_type: "portability"
+ patch_source: "https://github.com/datastax/cpp-driver/pull/533"
+ - patch_file: "patches/2.15.3/remove-attribute-for-msvc.patch"
+ patch_description: "remove attribute for msvc"
+ patch_type: "portability"
"2.15.3":
- - base_path: "source_subfolder"
- patch_file: "patches/2.15.3/fix-cmake.patch"
- - base_path: "source_subfolder"
- patch_file: "patches/2.15.3/fix-rapidjson.patch"
+ - patch_file: "patches/2.15.3/fix-cmake.patch"
+ patch_description: "use cci package"
+ patch_type: "conan"
+ - patch_file: "patches/2.15.3/fix-rapidjson.patch"
+ patch_description: "fix include path for cci package"
+ patch_type: "conan"
+ - patch_file: "patches/2.15.3/fix-atomic.patch"
+ patch_description: "Adapt MemoryOrder definition for C++ 20"
+ patch_type: "portability"
+ patch_source: "https://github.com/datastax/cpp-driver/pull/533"
+ - patch_file: "patches/2.15.3/remove-attribute-for-msvc.patch"
+ patch_description: "remove attribute for msvc"
+ patch_type: "portability"
diff --git a/recipes/cassandra-cpp-driver/all/conanfile.py b/recipes/cassandra-cpp-driver/all/conanfile.py
index 76b1d99adf12b9..57fdb66f78e3f3 100644
--- a/recipes/cassandra-cpp-driver/all/conanfile.py
+++ b/recipes/cassandra-cpp-driver/all/conanfile.py
@@ -1,19 +1,20 @@
-from conans import ConanFile, CMake, tools
-from conans.errors import ConanInvalidConfiguration
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.files import apply_conandata_patches, export_conandata_patches, get, copy, replace_in_file, rm
+from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
+from conan.tools.build import check_min_cppstd
import os
-required_conan_version = ">=1.33.0"
-
+required_conan_version = ">=1.53.0"
class CassandraCppDriverConan(ConanFile):
name = "cassandra-cpp-driver"
+ description = "DataStax C/C++ Driver for Apache Cassandra and DataStax Products"
license = "Apache-2.0"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://docs.datastax.com/en/developer/cpp-driver/"
- description = "DataStax C/C++ Driver for Apache Cassandra and DataStax Products"
- topics = ("cassandra", "cpp-driver", "database", "conan-recipe")
-
- settings = "os", "compiler", "build_type", "arch"
+ topics = ("cassandra", "cpp-driver", "database",)
+ settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
"fPIC": [True, False],
@@ -34,19 +35,14 @@ class CassandraCppDriverConan(ConanFile):
"with_kerberos": False,
"use_timerfd": True,
}
-
short_paths = True
- generators = "cmake"
- exports_sources = [
- "CMakeLists.txt",
- "patches/*"
- ]
-
- _cmake = None
@property
- def _source_subfolder(self):
- return "source_subfolder"
+ def _min_cppstd(self):
+ return 11
+
+ def export_sources(self):
+ export_conandata_patches(self)
def config_options(self):
if self.settings.os == "Windows":
@@ -55,24 +51,30 @@ def config_options(self):
def configure(self):
if self.options.shared:
- del self.options.fPIC
+ self.options.rm_safe("fPIC")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("libuv/1.44.1")
+ self.requires("libuv/1.46.0")
self.requires("http_parser/2.9.4")
- self.requires("rapidjson/cci.20211112")
+ self.requires("rapidjson/cci.20220822")
if self.options.with_openssl:
- self.requires("openssl/1.1.1q")
+ self.requires("openssl/[>=1.1 <4]")
if self.options.with_zlib:
- self.requires("minizip/1.2.12")
- self.requires("zlib/1.2.12")
+ self.requires("minizip/1.2.13")
+ self.requires("zlib/1.2.13")
if self.options.use_atomic == "boost":
- self.requires("boost/1.79.0")
+ self.requires("boost/1.82.0")
def validate(self):
+ if self.info.settings.compiler.cppstd:
+ check_min_cppstd(self, self._min_cppstd)
+
if self.options.use_atomic == "boost":
# Compilation error on Linux
if self.settings.os == "Linux":
@@ -84,69 +86,69 @@ def validate(self):
"Kerberos is not supported at the moment")
def source(self):
- tools.get(**self.conan_data["sources"][self.version],
- destination=self._source_subfolder, strip_root=True)
-
- def _patch_sources(self):
- for patch in self.conan_data.get("patches", {}).get(self.version, []):
- tools.patch(**patch)
- tools.replace_in_file(os.path.join(self._source_subfolder, "CMakeLists.txt"),
- "\"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"Clang\"",
- "\"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"Clang\" OR \"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"AppleClang\"")
-
- def _configure_cmake(self):
- if self._cmake:
- return self._cmake
-
- self._cmake = CMake(self)
- self._cmake.definitions["VERSION"] = self.version
- self._cmake.definitions["CASS_BUILD_EXAMPLES"] = False
- self._cmake.definitions["CASS_BUILD_INTEGRATION_TESTS"] = False
- self._cmake.definitions["CASS_BUILD_SHARED"] = self.options.shared
- self._cmake.definitions["CASS_BUILD_STATIC"] = not self.options.shared
- self._cmake.definitions["CASS_BUILD_TESTS"] = False
- self._cmake.definitions["CASS_BUILD_UNIT_TESTS"] = False
- self._cmake.definitions["CASS_DEBUG_CUSTOM_ALLOC"] = False
- self._cmake.definitions["CASS_INSTALL_HEADER_IN_SUBDIR"] = self.options.install_header_in_subdir
- self._cmake.definitions["CASS_INSTALL_PKG_CONFIG"] = False
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["VERSION"] = self.version
+ tc.variables["CASS_BUILD_EXAMPLES"] = False
+ tc.variables["CASS_BUILD_INTEGRATION_TESTS"] = False
+ tc.variables["CASS_BUILD_SHARED"] = self.options.shared
+ tc.variables["CASS_BUILD_STATIC"] = not self.options.shared
+ tc.variables["CASS_BUILD_TESTS"] = False
+ tc.variables["CASS_BUILD_UNIT_TESTS"] = False
+ tc.variables["CASS_DEBUG_CUSTOM_ALLOC"] = False
+ tc.variables["CASS_INSTALL_HEADER_IN_SUBDIR"] = self.options.install_header_in_subdir
+ tc.variables["CASS_INSTALL_PKG_CONFIG"] = False
if self.options.use_atomic == "boost":
- self._cmake.definitions["CASS_USE_BOOST_ATOMIC"] = True
- self._cmake.definitions["CASS_USE_STD_ATOMIC"] = False
+ tc.variables["CASS_USE_BOOST_ATOMIC"] = True
+ tc.variables["CASS_USE_STD_ATOMIC"] = False
elif self.options.use_atomic == "std":
- self._cmake.definitions["CASS_USE_BOOST_ATOMIC"] = False
- self._cmake.definitions["CASS_USE_STD_ATOMIC"] = True
+ tc.variables["CASS_USE_BOOST_ATOMIC"] = False
+ tc.variables["CASS_USE_STD_ATOMIC"] = True
else:
- self._cmake.definitions["CASS_USE_BOOST_ATOMIC"] = False
- self._cmake.definitions["CASS_USE_STD_ATOMIC"] = False
+ tc.variables["CASS_USE_BOOST_ATOMIC"] = False
+ tc.variables["CASS_USE_STD_ATOMIC"] = False
- self._cmake.definitions["CASS_USE_OPENSSL"] = self.options.with_openssl
- self._cmake.definitions["CASS_USE_STATIC_LIBS"] = False
- self._cmake.definitions["CASS_USE_ZLIB"] = self.options.with_zlib
- self._cmake.definitions["CASS_USE_LIBSSH2"] = False
+ tc.variables["CASS_USE_OPENSSL"] = self.options.with_openssl
+ tc.variables["CASS_USE_STATIC_LIBS"] = False
+ tc.variables["CASS_USE_ZLIB"] = self.options.with_zlib
+ tc.variables["CASS_USE_LIBSSH2"] = False
# FIXME: To use kerberos, its conan package is needed. Uncomment this when kerberos conan package is ready.
- # self._cmake.definitions["CASS_USE_KERBEROS"] = self.options.with_kerberos
+ # tc.variables["CASS_USE_KERBEROS"] = self.options.with_kerberos
if self.settings.os == "Linux":
- self._cmake.definitions["CASS_USE_TIMERFD"] = self.options.use_timerfd
+ tc.variables["CASS_USE_TIMERFD"] = self.options.use_timerfd
+ tc.generate()
- self._cmake.configure()
- return self._cmake
+ deps = CMakeDeps(self)
+ deps.generate()
+
+ def _patch_sources(self):
+ apply_conandata_patches(self)
+ replace_in_file(self, os.path.join(self.source_folder, "CMakeLists.txt"),
+ "\"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"Clang\"",
+ "\"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"Clang\" OR \"${CMAKE_CXX_COMPILER_ID}\" STREQUAL \"AppleClang\"")
+ rm(self, "Findlibssh2.cmake", os.path.join(self.source_folder, "cmake"))
+ rm(self, "Findlibuv.cmake", os.path.join(self.source_folder, "cmake"))
+ rm(self, "FindOpenSSL.cmake", os.path.join(self.source_folder, "cmake"))
def build(self):
self._patch_sources()
- cmake = self._configure_cmake()
+ cmake = CMake(self)
+ cmake.configure()
cmake.build()
def package(self):
- self.copy(pattern="LICENSE.txt", dst="licenses", src=self._source_subfolder)
- cmake = self._configure_cmake()
+ copy(self, pattern="LICENSE.txt", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ cmake = CMake(self)
cmake.install()
def package_info(self):
- self.cpp_info.libs = tools.collect_libs(self)
+ self.cpp_info.libs = ["cassandra" if self.options.shared else "cassandra_static"]
if self.settings.os == "Windows":
self.cpp_info.system_libs.extend(["iphlpapi", "psapi", "wsock32",
diff --git a/recipes/cassandra-cpp-driver/all/patches/2.15.3/fix-atomic.patch b/recipes/cassandra-cpp-driver/all/patches/2.15.3/fix-atomic.patch
new file mode 100644
index 00000000000000..64a29de126f9f6
--- /dev/null
+++ b/recipes/cassandra-cpp-driver/all/patches/2.15.3/fix-atomic.patch
@@ -0,0 +1,28 @@
+diff --git a/src/atomic/atomic_std.hpp b/src/atomic/atomic_std.hpp
+index 2ad0103..08418a9 100644
+--- a/src/atomic/atomic_std.hpp
++++ b/src/atomic/atomic_std.hpp
+@@ -18,16 +18,17 @@
+ #define DATASTAX_INTERNAL_ATOMIC_STD_HPP
+
+ #include
++#include
+
+ namespace datastax { namespace internal {
+
+ enum MemoryOrder {
+- MEMORY_ORDER_RELAXED = std::memory_order_relaxed,
+- MEMORY_ORDER_CONSUME = std::memory_order_consume,
+- MEMORY_ORDER_ACQUIRE = std::memory_order_acquire,
+- MEMORY_ORDER_RELEASE = std::memory_order_release,
+- MEMORY_ORDER_ACQ_REL = std::memory_order_acq_rel,
+- MEMORY_ORDER_SEQ_CST = std::memory_order_seq_cst
++ MEMORY_ORDER_RELAXED = static_cast::type>(std::memory_order_relaxed),
++ MEMORY_ORDER_CONSUME = static_cast::type>(std::memory_order_consume),
++ MEMORY_ORDER_ACQUIRE = static_cast::type>(std::memory_order_acquire),
++ MEMORY_ORDER_RELEASE = static_cast::type>(std::memory_order_release),
++ MEMORY_ORDER_ACQ_REL = static_cast::type>(std::memory_order_acq_rel),
++ MEMORY_ORDER_SEQ_CST = static_cast::type>(std::memory_order_seq_cst)
+ };
+
+ template
diff --git a/recipes/cassandra-cpp-driver/all/patches/2.15.3/fix-cmake.patch b/recipes/cassandra-cpp-driver/all/patches/2.15.3/fix-cmake.patch
index 191d2eb7e8174a..9406ccc60d7aa9 100644
--- a/recipes/cassandra-cpp-driver/all/patches/2.15.3/fix-cmake.patch
+++ b/recipes/cassandra-cpp-driver/all/patches/2.15.3/fix-cmake.patch
@@ -1,43 +1,87 @@
- CMakeLists.txt | 4 ---
- src/CMakeLists.txt | 84 ++++++++++++++++++++++++++++++++++++------------------
- 2 files changed, 57 insertions(+), 31 deletions(-)
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c6150948b..669eb086e 100644
+index c615094..b10d9c9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -1,6 +1,3 @@
--cmake_minimum_required(VERSION 2.8.12)
--project(cassandra C CXX)
--
- set(CASS_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
- set(CASS_SRC_DIR "${CASS_ROOT_DIR}/src")
- set(CASS_INCLUDE_DIR "${CASS_ROOT_DIR}/include")
-@@ -81,7 +78,6 @@ endif()
- # Dependencies
- #------------------------
+@@ -164,7 +164,7 @@ endif()
+ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR
+ "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+ # Enable C++11 support to use std::atomic
+- if(CASS_USE_STD_ATOMIC)
++ if(1)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+ endif()
+
+diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
+index 9052472..3f65adb 100644
+--- a/cmake/Dependencies.cmake
++++ b/cmake/Dependencies.cmake
+@@ -21,28 +21,28 @@ if(NOT LIBUV_ROOT_DIR)
+ endif()
+
+ # Ensure libuv was found
+-find_package(Libuv "1.0.0")
+-if(WIN32 AND NOT LIBUV_FOUND)
++find_package(libuv "1.0.0")
++if(WIN32 AND NOT libuv_FOUND)
+ message(STATUS "Unable to Locate libuv: Third party build step will be performed")
+ include(ExternalProject-libuv)
+-elseif(NOT LIBUV_FOUND)
++elseif(NOT libuv_FOUND)
+ message(FATAL_ERROR "Unable to Locate libuv: libuv v1.0.0+ is required")
+ endif()
+
+-if(LIBUV_VERSION VERSION_LESS "1.0")
+- message(FATAL_ERROR "Libuv version ${LIBUV_VERSION} is not "
++if(libuv_VERSION VERSION_LESS "1.0")
++ message(FATAL_ERROR "libuv version ${libuv_VERSION} is not "
+ " supported. Please updgrade to libuv version 1.0 or greater in order to "
+ "utilize the driver.")
+ endif()
--include(Dependencies)
- include(ClangFormat)
+-if(LIBUV_VERSION VERSION_LESS "1.6")
+- message(WARNING "Libuv version ${LIBUV_VERSION} does not support custom "
++if(libuv_VERSION VERSION_LESS "1.6")
++ message(WARNING "libuv version ${libuv_VERSION} does not support custom "
+ "memory allocators (version 1.6 or greater required)")
+ endif()
+
+ # Assign libuv include and libraries
+-set(CASS_INCLUDES ${CASS_INCLUDES} ${LIBUV_INCLUDE_DIRS})
+-set(CASS_LIBS ${CASS_LIBS} ${LIBUV_LIBRARIES})
++set(CASS_INCLUDES ${CASS_INCLUDES} ${libuv_INCLUDE_DIRS})
++set(CASS_LIBS ${CASS_LIBS} ${libuv_LIBRARIES})
+
+ # libuv and gtests require thread library
+ if(NOT WIN32)
+@@ -192,3 +192,20 @@ if(CASS_USE_BOOST_ATOMIC)
+ endif()
+ endif()
- #------------------------
++#------------------------
++# RapidJSON
++#------------------------
++find_package(RapidJSON REQUIRED CONFIG)
++set(CASS_LIBS ${CASS_LIBS} rapidjson)
++
++#------------------------
++# http_parser
++#------------------------
++find_package(http_parser REQUIRED CONFIG)
++set(CASS_LIBS ${CASS_LIBS} http_parser::http_parser)
++
++#------------------------
++# minizip
++#------------------------
++find_package(minizip REQUIRED CONFIG)
++set(CASS_LIBS ${CASS_LIBS} minizip::minizip)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 06b84b759..7e81b2a06 100644
+index 06b84b7..41b23f2 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
-@@ -1,6 +1,50 @@
+@@ -1,6 +1,41 @@
include(CheckSymbolExists)
include(CheckCXXSourceCompiles)
-+#------------------------
-+# Windows libraries
-+#------------------------
-+
-+if(WIN32)
-+ # Assign additional library requirements for Windows
-+ set(CASS_LIBS iphlpapi psapi wsock32 crypt32 ws2_32 userenv version)
-+endif()
-+
+#------------------------
+# Libuv
+#------------------------
@@ -76,7 +120,7 @@ index 06b84b759..7e81b2a06 100644
file(GLOB SOURCES *.cpp *.hpp)
if(APPLE)
-@@ -38,18 +82,14 @@ endif()
+@@ -38,18 +73,14 @@ endif()
add_subdirectory(third_party/curl)
add_subdirectory(third_party/hdr_histogram)
@@ -90,16 +134,17 @@ index 06b84b759..7e81b2a06 100644
- third_party/http-parser
- third_party/minizip
- third_party/mt19937_64
+- third_party/rapidjson/rapidjson
+- third_party/sparsehash/src)
+ third_party/curl # FIXME: Use conan package
+ third_party/hdr_histogram # FIXME: Use conan package
+ third_party/mt19937_64 # FIXME: Use conan package
-+ third_party/sparsehash/src) # FIXME: Use conan package
- third_party/rapidjson/rapidjson
-- third_party/sparsehash/src)
++ third_party/sparsehash/src # FIXME: Use conan package
++)
list(APPEND INCLUDE_DIRS ${CASS_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
-@@ -69,12 +109,6 @@ if(WIN32)
+@@ -69,12 +100,6 @@ if(WIN32)
endif()
endif()
@@ -112,40 +157,27 @@ index 06b84b759..7e81b2a06 100644
#------------------------------
# Build configured header
#------------------------------
-@@ -130,11 +164,11 @@ if(CASS_BUILD_SHARED)
- add_library(cassandra SHARED
+@@ -131,8 +156,7 @@ if(CASS_BUILD_SHARED)
${SOURCES}
$
-- $
+ $
- $
- $)
-+ $)
++ )
target_link_libraries(cassandra ${CASS_LIBS})
-- target_include_directories(cassandra PRIVATE ${INCLUDE_DIRS} ${CASS_INCLUDES})
-+ target_include_directories(cassandra PRIVATE ${INCLUDE_DIRS})
-+
-+ conan_target_link_libraries(cassandra)
-
- set_target_properties(cassandra PROPERTIES OUTPUT_NAME cassandra)
- set_target_properties(cassandra PROPERTIES VERSION ${PROJECT_VERSION_STRING} SOVERSION ${PROJECT_VERSION_MAJOR})
-@@ -167,11 +201,12 @@ if(CASS_BUILD_STATIC)
- add_library(cassandra_static STATIC
+ target_include_directories(cassandra PRIVATE ${INCLUDE_DIRS} ${CASS_INCLUDES})
+
+@@ -168,8 +192,7 @@ if(CASS_BUILD_STATIC)
${SOURCES}
$
-- $
+ $
- $
- $)
-+ $)
-+
++ )
target_link_libraries(cassandra_static ${CASS_LIBS})
-- target_include_directories(cassandra_static PRIVATE ${INCLUDE_DIRS} ${CASS_INCLUDES})
-+ target_include_directories(cassandra_static PRIVATE ${INCLUDE_DIRS})
-+
-+ conan_target_link_libraries(cassandra_static)
-
- set_target_properties(cassandra_static PROPERTIES OUTPUT_NAME cassandra_static)
- set_target_properties(cassandra_static PROPERTIES VERSION ${PROJECT_VERSION_STRING} SOVERSION ${PROJECT_VERSION_MAJOR})
-@@ -274,11 +309,6 @@ if(CASS_BUILD_SHARED)
+ target_include_directories(cassandra_static PRIVATE ${INCLUDE_DIRS} ${CASS_INCLUDES})
+
+@@ -274,11 +297,6 @@ if(CASS_BUILD_SHARED)
endif()
endif()
endif()
diff --git a/recipes/cassandra-cpp-driver/all/patches/2.15.3/fix-rapidjson.patch b/recipes/cassandra-cpp-driver/all/patches/2.15.3/fix-rapidjson.patch
index 7c7b5d16994d78..91811710ffbe44 100644
--- a/recipes/cassandra-cpp-driver/all/patches/2.15.3/fix-rapidjson.patch
+++ b/recipes/cassandra-cpp-driver/all/patches/2.15.3/fix-rapidjson.patch
@@ -1,21 +1,5 @@
- src/CMakeLists.txt | 1 -
- src/json.hpp | 8 ++++----
- 2 files changed, 4 insertions(+), 5 deletions(-)
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 7e81b2a06..2f3229292 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -89,7 +89,6 @@ list(APPEND INCLUDE_DIRS
- third_party/hdr_histogram # FIXME: Use conan package
- third_party/mt19937_64 # FIXME: Use conan package
- third_party/sparsehash/src) # FIXME: Use conan package
-- third_party/rapidjson/rapidjson
-
- list(APPEND INCLUDE_DIRS ${CASS_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
-
diff --git a/src/json.hpp b/src/json.hpp
-index 620536e55..6003f2521 100644
+index 620536e..6003f25 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -48,13 +48,13 @@ static void delete_(T* ptr) {
diff --git a/recipes/cassandra-cpp-driver/all/patches/2.15.3/remove-attribute-for-msvc.patch b/recipes/cassandra-cpp-driver/all/patches/2.15.3/remove-attribute-for-msvc.patch
new file mode 100644
index 00000000000000..216ee8df654e9c
--- /dev/null
+++ b/recipes/cassandra-cpp-driver/all/patches/2.15.3/remove-attribute-for-msvc.patch
@@ -0,0 +1,18 @@
+diff --git a/src/third_party/sparsehash/src/sparsehash/internal/hashtable-common.h b/src/third_party/sparsehash/src/sparsehash/internal/hashtable-common.h
+index bac2b88..e802b5c 100644
+--- a/src/third_party/sparsehash/src/sparsehash/internal/hashtable-common.h
++++ b/src/third_party/sparsehash/src/sparsehash/internal/hashtable-common.h
+@@ -50,8 +50,13 @@
+ _START_GOOGLE_NAMESPACE_
+
+ template struct SparsehashCompileAssert { };
++#if defined(_MSC_VER)
++#define SPARSEHASH_COMPILE_ASSERT(expr, msg) \
++ typedef SparsehashCompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1]
++#else
+ #define SPARSEHASH_COMPILE_ASSERT(expr, msg) \
+ __attribute__((unused)) typedef SparsehashCompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1]
++#endif
+
+ namespace sparsehash_internal {
+
diff --git a/recipes/cassandra-cpp-driver/all/patches/2.16.2/fix-cmake.patch b/recipes/cassandra-cpp-driver/all/patches/2.16.2/fix-cmake.patch
new file mode 100644
index 00000000000000..5a69b0d7d12b14
--- /dev/null
+++ b/recipes/cassandra-cpp-driver/all/patches/2.16.2/fix-cmake.patch
@@ -0,0 +1,201 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c615094..b10d9c9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -164,7 +164,7 @@ endif()
+ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR
+ "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+ # Enable C++11 support to use std::atomic
+- if(CASS_USE_STD_ATOMIC)
++ if(1)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+ endif()
+
+diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
+index 9052472..4701133 100644
+--- a/cmake/Dependencies.cmake
++++ b/cmake/Dependencies.cmake
+@@ -21,28 +21,28 @@ if(NOT LIBUV_ROOT_DIR)
+ endif()
+
+ # Ensure libuv was found
+-find_package(Libuv "1.0.0")
+-if(WIN32 AND NOT LIBUV_FOUND)
++find_package(libuv "1.0.0")
++if(WIN32 AND NOT libuv_FOUND)
+ message(STATUS "Unable to Locate libuv: Third party build step will be performed")
+ include(ExternalProject-libuv)
+-elseif(NOT LIBUV_FOUND)
++elseif(NOT libuv_FOUND)
+ message(FATAL_ERROR "Unable to Locate libuv: libuv v1.0.0+ is required")
+ endif()
+
+-if(LIBUV_VERSION VERSION_LESS "1.0")
+- message(FATAL_ERROR "Libuv version ${LIBUV_VERSION} is not "
++if(libuv_VERSION VERSION_LESS "1.0")
++ message(FATAL_ERROR "Libuv version ${libuv_VERSION} is not "
+ " supported. Please updgrade to libuv version 1.0 or greater in order to "
+ "utilize the driver.")
+ endif()
+
+-if(LIBUV_VERSION VERSION_LESS "1.6")
+- message(WARNING "Libuv version ${LIBUV_VERSION} does not support custom "
++if(libuv_VERSION VERSION_LESS "1.6")
++ message(WARNING "Libuv version ${libuv_VERSION} does not support custom "
+ "memory allocators (version 1.6 or greater required)")
+ endif()
+
+ # Assign libuv include and libraries
+-set(CASS_INCLUDES ${CASS_INCLUDES} ${LIBUV_INCLUDE_DIRS})
+-set(CASS_LIBS ${CASS_LIBS} ${LIBUV_LIBRARIES})
++set(CASS_INCLUDES ${CASS_INCLUDES} ${libuv_INCLUDE_DIRS})
++set(CASS_LIBS ${CASS_LIBS} ${libuv_LIBRARIES})
+
+ # libuv and gtests require thread library
+ if(NOT WIN32)
+@@ -192,3 +192,20 @@ if(CASS_USE_BOOST_ATOMIC)
+ endif()
+ endif()
+
++#------------------------
++# RapidJSON
++#------------------------
++find_package(RapidJSON REQUIRED CONFIG)
++set(CASS_LIBS ${CASS_LIBS} rapidjson)
++
++#------------------------
++# http_parser
++#------------------------
++find_package(http_parser REQUIRED CONFIG)
++set(CASS_LIBS ${CASS_LIBS} http_parser::http_parser)
++
++#------------------------
++# minizip
++#------------------------
++find_package(minizip REQUIRED CONFIG)
++set(CASS_LIBS ${CASS_LIBS} minizip::minizip)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index d662718..088a153 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -1,6 +1,42 @@
+ include(CheckSymbolExists)
+ include(CheckCXXSourceCompiles)
+
++#------------------------
++# Libuv
++#------------------------
++
++if(NOT WIN32)
++ set(CMAKE_THREAD_PREFER_PTHREAD 1)
++ set(THREADS_PREFER_PTHREAD_FLAG 1)
++endif()
++
++find_package(Threads REQUIRED)
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_THREAD_LIBS_INIT}")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_THREAD_LIBS_INIT}")
++if(NOT WIN32 AND ${CMAKE_VERSION} VERSION_LESS "3.1.0")
++ # FindThreads in CMake versions < v3.1.0 do not have the THREADS_PREFER_PTHREAD_FLAG to prefer -pthread
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pthread")
++endif()
++
++#------------------------
++# Boost
++#------------------------
++
++if(CASS_USE_BOOST_ATOMIC)
++ # Ensure Boost auto linking is disabled (defaults to auto linking on Windows)
++ if(WIN32)
++ add_definitions(-DBOOST_ALL_NO_LIB)
++ endif()
++
++ # Determine if additional Boost definitions are required for driver/executables
++ if(NOT WIN32)
++ # Handle explicit initialization warning in atomic/details/casts
++ add_definitions(-Wno-missing-field-initializers)
++ endif()
++endif()
++
++
+ file(GLOB SOURCES *.cpp *.hpp)
+
+ if(APPLE)
+@@ -38,18 +74,14 @@ endif()
+
+ add_subdirectory(third_party/curl)
+ add_subdirectory(third_party/hdr_histogram)
+-add_subdirectory(third_party/http-parser)
+-add_subdirectory(third_party/minizip)
+ add_subdirectory(third_party/sparsehash)
+
+ list(APPEND INCLUDE_DIRS
+- third_party/curl
+- third_party/hdr_histogram
+- third_party/http-parser
+- third_party/minizip
+- third_party/mt19937_64
+- third_party/rapidjson/rapidjson
+- third_party/sparsehash/src)
++ third_party/curl # FIXME: Use conan package
++ third_party/hdr_histogram # FIXME: Use conan package
++ third_party/mt19937_64 # FIXME: Use conan package
++ third_party/sparsehash/src # FIXME: Use conan package
++)
+
+ list(APPEND INCLUDE_DIRS ${CASS_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
+
+@@ -69,13 +101,6 @@ if(WIN32)
+ endif()
+ endif()
+
+-if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wconversion -Wno-sign-conversion -Wno-shorten-64-to-32 -Wno-undefined-var-template -Werror")
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-implicit-int-float-conversion")
+-elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") # To many superfluous warnings generated with GCC when using -Wconversion (see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40752)
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
+-endif()
+-
+ #------------------------------
+ # Build configured header
+ #------------------------------
+@@ -122,7 +147,6 @@ configure_file(
+ ${CASS_ROOT_DIR}/driver_config.hpp.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/driver_config.hpp)
+
+-
+ #------------------------------
+ # Targets
+ #------------------------------
+@@ -132,8 +156,7 @@ if(CASS_BUILD_SHARED)
+ ${SOURCES}
+ $
+ $
+- $
+- $)
++ )
+ target_link_libraries(cassandra ${CASS_LIBS})
+ target_include_directories(cassandra PRIVATE ${INCLUDE_DIRS} ${CASS_INCLUDES})
+
+@@ -169,8 +192,7 @@ if(CASS_BUILD_STATIC)
+ ${SOURCES}
+ $
+ $
+- $
+- $)
++ )
+ target_link_libraries(cassandra_static ${CASS_LIBS})
+ target_include_directories(cassandra_static PRIVATE ${INCLUDE_DIRS} ${CASS_INCLUDES})
+
+@@ -275,11 +297,6 @@ if(CASS_BUILD_SHARED)
+ endif()
+ endif()
+ endif()
+- if(WIN32)
+- install(FILES $
+- DESTINATION "${INSTALL_DLL_EXE_DIR}"
+- OPTIONAL)
+- endif()
+ endif()
+
+ if(CASS_BUILD_STATIC)
diff --git a/recipes/cassandra-cpp-driver/all/test_package/CMakeLists.txt b/recipes/cassandra-cpp-driver/all/test_package/CMakeLists.txt
index 1a95218e3d7a51..4d590e1005c294 100644
--- a/recipes/cassandra-cpp-driver/all/test_package/CMakeLists.txt
+++ b/recipes/cassandra-cpp-driver/all/test_package/CMakeLists.txt
@@ -1,9 +1,8 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package CXX)
+cmake_minimum_required(VERSION 3.8)
+project(test_package LANGUAGES CXX)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup()
+find_package(cassandra-cpp-driver REQUIRED CONFIG)
-add_executable(${PROJECT_NAME} main.cpp)
-
-conan_target_link_libraries(${PROJECT_NAME})
+add_executable(${PROJECT_NAME} test_package.cpp)
+target_link_libraries(${PROJECT_NAME} PRIVATE cassandra-cpp-driver::cassandra-cpp-driver)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
diff --git a/recipes/cassandra-cpp-driver/all/test_package/conanfile.py b/recipes/cassandra-cpp-driver/all/test_package/conanfile.py
index 0399475aec9873..a9fb96656f2039 100644
--- a/recipes/cassandra-cpp-driver/all/test_package/conanfile.py
+++ b/recipes/cassandra-cpp-driver/all/test_package/conanfile.py
@@ -1,10 +1,19 @@
-import os.path
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
+import os
-class CassandraCppDriverTestConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake"
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -12,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self.settings):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/cassandra-cpp-driver/all/test_package/main.cpp b/recipes/cassandra-cpp-driver/all/test_package/test_package.cpp
similarity index 100%
rename from recipes/cassandra-cpp-driver/all/test_package/main.cpp
rename to recipes/cassandra-cpp-driver/all/test_package/test_package.cpp
diff --git a/recipes/highs/all/test_v1_package/CMakeLists.txt b/recipes/cassandra-cpp-driver/all/test_v1_package/CMakeLists.txt
similarity index 81%
rename from recipes/highs/all/test_v1_package/CMakeLists.txt
rename to recipes/cassandra-cpp-driver/all/test_v1_package/CMakeLists.txt
index 36b48f96d10783..925ecbe19e448d 100644
--- a/recipes/highs/all/test_v1_package/CMakeLists.txt
+++ b/recipes/cassandra-cpp-driver/all/test_v1_package/CMakeLists.txt
@@ -1,6 +1,5 @@
cmake_minimum_required(VERSION 3.1)
-project(test_package CXX)
-set(CMAKE_CXX_STANDARD 11)
+project(test_package)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)
diff --git a/recipes/highs/all/test_v1_package/conanfile.py b/recipes/cassandra-cpp-driver/all/test_v1_package/conanfile.py
similarity index 100%
rename from recipes/highs/all/test_v1_package/conanfile.py
rename to recipes/cassandra-cpp-driver/all/test_v1_package/conanfile.py
diff --git a/recipes/cassandra-cpp-driver/config.yml b/recipes/cassandra-cpp-driver/config.yml
index 9792bd17fcc93c..7062b1458afe22 100644
--- a/recipes/cassandra-cpp-driver/config.yml
+++ b/recipes/cassandra-cpp-driver/config.yml
@@ -1,3 +1,7 @@
versions:
+ "2.17.0":
+ folder: all
+ "2.16.2":
+ folder: all
"2.15.3":
folder: all
diff --git a/recipes/ccache/all/conandata.yml b/recipes/ccache/all/conandata.yml
index 1eab23f47e9eba..ca431f6e0685ba 100644
--- a/recipes/ccache/all/conandata.yml
+++ b/recipes/ccache/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "4.8.3":
+ url: "https://github.com/ccache/ccache/releases/download/v4.8.3/ccache-4.8.3.tar.xz"
+ sha256: "e47374c810b248cfca3665ee1d86c7c763ffd68d9944bc422d9c1872611f2b11"
"4.8.2":
url: "https://github.com/ccache/ccache/releases/download/v4.8.2/ccache-4.8.2.tar.xz"
sha256: "3d3fb3f888a5b16c4fa7ee5214cca76348afd6130e8443de5f6f2424f2076a49"
@@ -12,6 +15,10 @@ sources:
url: "https://github.com/ccache/ccache/releases/download/v4.7.4/ccache-4.7.4.tar.xz"
sha256: "df0c64d15d3efaf0b4f6837dd6b1467e40eeaaa807db25ce79c3a08a46a84e36"
patches:
+ "4.8.3":
+ - patch_file: "patches/4.8-cmake-msvc-runtime.patch"
+ patch_description: "fixup MSVC runtime"
+ patch_type: "conan"
"4.8.2":
- patch_file: "patches/4.8-cmake-msvc-runtime.patch"
patch_description: "fixup MSVC runtime"
diff --git a/recipes/ccache/config.yml b/recipes/ccache/config.yml
index a08cbff67b8116..98dd3df9a94deb 100644
--- a/recipes/ccache/config.yml
+++ b/recipes/ccache/config.yml
@@ -1,4 +1,6 @@
versions:
+ "4.8.3":
+ folder: all
"4.8.2":
folder: all
"4.8.1":
diff --git a/recipes/cgal/all/conandata.yml b/recipes/cgal/all/conandata.yml
index 243b9320511a51..eda02a9fb3ec44 100644
--- a/recipes/cgal/all/conandata.yml
+++ b/recipes/cgal/all/conandata.yml
@@ -11,6 +11,12 @@ sources:
"5.5.2":
sha256: b2b05d5616ecc69facdc24417cce0b04fb4321491d107db45103add520e3d8c3
url: https://github.com/CGAL/cgal/releases/download/v5.5.2/CGAL-5.5.2.tar.xz
+ "5.5.3":
+ sha256: 0a04f662693256328b05babfabb5e3a5b7db2f5a58d52e3c520df9d0828ddd73
+ url: https://github.com/CGAL/cgal/releases/download/v5.5.3/CGAL-5.5.3.tar.xz
+ "5.6":
+ sha256: dcab9b08a50a06a7cc2cc69a8a12200f8d8f391b9b8013ae476965c10b45161f
+ url: https://github.com/CGAL/cgal/releases/download/v5.6/CGAL-5.6.tar.xz
patches:
"5.3.2":
- patch_file: "patches/0001-fix-for-conan.patch"
@@ -32,3 +38,8 @@ patches:
patch_type: bugfix
patch_source: https://github.com/CGAL/cgal/pull/7502
patch_description: Fix Eigen3 support in CGAL
+ "5.5.3":
+ - patch_file: "patches/0001-fix-for-conan.patch"
+ patch_type: bugfix
+ patch_source: https://github.com/CGAL/cgal/pull/7502
+ patch_description: Fix Eigen3 support in CGAL
diff --git a/recipes/cgal/config.yml b/recipes/cgal/config.yml
index 48232844708f0d..3d807cdb944c78 100644
--- a/recipes/cgal/config.yml
+++ b/recipes/cgal/config.yml
@@ -7,3 +7,7 @@ versions:
folder: all
"5.5.2":
folder: all
+ "5.5.3":
+ folder: all
+ "5.6":
+ folder: all
diff --git a/recipes/cimg/all/conandata.yml b/recipes/cimg/all/conandata.yml
index c4ba41f9e21b54..7139132fb19a98 100644
--- a/recipes/cimg/all/conandata.yml
+++ b/recipes/cimg/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "3.2.6":
+ url: "https://cimg.eu/files/CImg_3.2.6.zip"
+ sha256: "8da3aa995027231bb18f97bb986e12788ef464b3ab8a34151650bf1217baeda7"
"3.2.5":
url: "https://cimg.eu/files/CImg_3.2.5.zip"
sha256: "3ab9f25cd7e5f7256dde67b4ea78ead05834bee0db9160c89668a388ba141cd9"
diff --git a/recipes/cimg/all/conanfile.py b/recipes/cimg/all/conanfile.py
index cbed93e0b8d513..01ef66f480f653 100644
--- a/recipes/cimg/all/conanfile.py
+++ b/recipes/cimg/all/conanfile.py
@@ -68,17 +68,11 @@ def requirements(self):
if self.options.enable_jpeg:
self.requires("libjpeg/9e")
if self.options.enable_openexr:
- if self.options.enable_opencv:
- self.requires("openexr/3.1.7")
- else:
- self.requires("openexr/3.1.7")
+ self.requires("openexr/3.1.9")
if self.options.enable_png:
self.requires("libpng/1.6.40")
if self.options.enable_tiff:
- if self.options.enable_opencv:
- self.requires("libtiff/4.5.1")
- else:
- self.requires("libtiff/4.5.1")
+ self.requires("libtiff/4.5.1")
if self.options.enable_ffmpeg:
if self.options.enable_opencv:
self.requires("ffmpeg/4.4")
diff --git a/recipes/cimg/config.yml b/recipes/cimg/config.yml
index b39649938fc2eb..a0c4dfee0ab1c7 100644
--- a/recipes/cimg/config.yml
+++ b/recipes/cimg/config.yml
@@ -1,4 +1,6 @@
versions:
+ "3.2.6":
+ folder: all
"3.2.5":
folder: all
"3.2.0":
diff --git a/recipes/clickhouse-cpp/all/conanfile.py b/recipes/clickhouse-cpp/all/conanfile.py
index 442d24123399e2..df83d233feb8a1 100644
--- a/recipes/clickhouse-cpp/all/conanfile.py
+++ b/recipes/clickhouse-cpp/all/conanfile.py
@@ -10,39 +10,24 @@
class ClickHouseCppConan(ConanFile):
name = "clickhouse-cpp"
- homepage = "https://github.com/ClickHouse/clickhouse-cpp"
- url = "https://github.com/conan-io/conan-center-index"
description = "ClickHouse C++ API"
license = "Apache-2.0"
+ url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://github.com/ClickHouse/clickhouse-cpp"
topics = ("database", "db", "clickhouse")
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
"fPIC": [True, False],
- "enable_benchmark": [True, False],
- "with_openssl": [True, False]
+ "with_openssl": [True, False],
}
default_options = {
"shared": False,
"fPIC": True,
- "enable_benchmark": False,
- "with_openssl": False
+ "with_openssl": False,
}
- def requirements(self):
-
- self.requires("lz4/1.9.4")
-
- self.requires("abseil/20230125.3", transitive_headers=True)
-
- self.requires("cityhash/cci.20130801")
- if self.options.with_openssl:
- self.requires("openssl/[>=1.1 <4]")
-
- def build_requirements(self):
- if self.options.enable_benchmark:
- self.requires("benchmark/1.8.0")
-
@property
def _min_cppstd(self):
return "17"
@@ -58,17 +43,9 @@ def _compilers_minimum_version(self):
@property
def _requires_compiler_rt(self):
- return self.settings.compiler == "clang" and (( self.settings.compiler.libcxx in ["libstdc++", "libstdc++11"] and not self.options.shared) or self.settings.compiler.libcxx == "libc++" )
-
- def validate(self):
- if self.settings.compiler.get_safe("cppstd"):
- check_min_cppstd(self, self._min_cppstd)
- minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False)
- if minimum_version and Version(self.settings.compiler.version) < minimum_version:
- raise ConanInvalidConfiguration(f"{self.ref} requires C++17, which your compiler does not support.")
- if self.settings.os == "Windows" and self.options.shared:
- raise ConanInvalidConfiguration("f{self.ref} does not support shared library on Windows.")
- # look at https://github.com/ClickHouse/clickhouse-cpp/pull/226
+ return self.settings.compiler == "clang" and \
+ ((self.settings.compiler.libcxx in ["libstdc++", "libstdc++11"] and not self.options.shared) or \
+ self.settings.compiler.libcxx == "libc++")
def config_options(self):
if self.settings.os == "Windows":
@@ -81,15 +58,30 @@ def configure(self):
def layout(self):
cmake_layout(self, src_folder="src")
+ def requirements(self):
+ self.requires("lz4/1.9.4")
+ self.requires("abseil/20230125.3", transitive_headers=True)
+ self.requires("cityhash/cci.20130801")
+ if self.options.with_openssl:
+ self.requires("openssl/[>=1.1 <4]")
+
+ def validate(self):
+ if self.settings.compiler.get_safe("cppstd"):
+ check_min_cppstd(self, self._min_cppstd)
+ minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False)
+ if minimum_version and Version(self.settings.compiler.version) < minimum_version:
+ raise ConanInvalidConfiguration(f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support.")
+ if self.settings.os == "Windows" and self.options.shared:
+ raise ConanInvalidConfiguration(f"{self.ref} does not support shared library on Windows.")
+ # look at https://github.com/ClickHouse/clickhouse-cpp/pull/226
+
def source(self):
- get(self, **self.conan_data["sources"][self.version],
- destination=self.source_folder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def generate(self):
tc = CMakeToolchain(self)
- tc.variables["BUILD_BENCHMARK"] = self.options.enable_benchmark
tc.cache_variables["BUILD_SHARED_LIBS"] = self.options.shared
- tc.variables["WITH_OPENSSL"] = self.options.with_openssl
+ tc.cache_variables["WITH_OPENSSL"] = self.options.with_openssl
tc.cache_variables["WITH_SYSTEM_ABSEIL"] = True
tc.cache_variables["WITH_SYSTEM_LZ4"] = True
tc.cache_variables["WITH_SYSTEM_CITYHASH"] = True
@@ -118,10 +110,11 @@ def package_info(self):
self.cpp_info.sharedlinkflags = ldflags
self.cpp_info.system_libs.append("gcc_s")
+ if self.settings.os == 'Windows':
+ self.cpp_info.system_libs = ['ws2_32', 'wsock32']
+
+ # TODO: to remove in conan v2 once cmake_find_package_* generators removed
self.cpp_info.filenames["cmake_find_package"] = "clickhouse-cpp"
self.cpp_info.filenames["cmake_find_package_multi"] = "clickhouse-cpp"
self.cpp_info.names["cmake_find_package"] = "clickhouse-cpp-lib"
self.cpp_info.names["cmake_find_package_multi"] = "clickhouse-cpp-lib"
-
- if self.settings.os == 'Windows':
- self.cpp_info.system_libs = ['ws2_32', 'wsock32']
diff --git a/recipes/clickhouse-cpp/all/test_package/CMakeLists.txt b/recipes/clickhouse-cpp/all/test_package/CMakeLists.txt
index b042c5663ae081..ede8071f6e7444 100644
--- a/recipes/clickhouse-cpp/all/test_package/CMakeLists.txt
+++ b/recipes/clickhouse-cpp/all/test_package/CMakeLists.txt
@@ -4,6 +4,5 @@ project(test_package LANGUAGES CXX)
find_package(clickhouse-cpp REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
-target_link_libraries(${PROJECT_NAME} PRIVATE clickhouse-cpp-lib::clickhouse-cpp-lib )
-
-set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 17)
+target_link_libraries(${PROJECT_NAME} PRIVATE clickhouse-cpp-lib::clickhouse-cpp-lib)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
diff --git a/recipes/clipper2/all/conandata.yml b/recipes/clipper2/all/conandata.yml
new file mode 100644
index 00000000000000..a80a428924ce35
--- /dev/null
+++ b/recipes/clipper2/all/conandata.yml
@@ -0,0 +1,9 @@
+sources:
+ "1.2.2":
+ url: "https://github.com/AngusJohnson/Clipper2/files/11071418/Clipper2_1.2.2.zip"
+ sha256: "ec28bc4e05a86cb0be81a872e8d90a4d575b63882ef3ac78f06662358e410f89"
+patches:
+ "1.2.2":
+ - patch_file: "patches/1.2.2-0001-fix-install.patch"
+ patch_description: "fix install for windows shared build"
+ patch_type: "portability"
diff --git a/recipes/clipper2/all/conanfile.py b/recipes/clipper2/all/conanfile.py
new file mode 100644
index 00000000000000..688144f7992cd0
--- /dev/null
+++ b/recipes/clipper2/all/conanfile.py
@@ -0,0 +1,107 @@
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.files import get, copy, rmdir, export_conandata_patches, apply_conandata_patches
+from conan.tools.build import check_min_cppstd
+from conan.tools.scm import Version
+from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
+import os
+
+required_conan_version = ">=1.53.0"
+
+class Clipper2Conan(ConanFile):
+ name = "clipper2"
+ description = " A Polygon Clipping and Offsetting library in C++"
+ license = "BSL-2.0"
+ url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://github.com/AngusJohnson/Clipper2"
+ topics = ("geometry", "polygon", "clipping")
+ package_type = "library"
+ settings = "os", "arch", "compiler", "build_type"
+ options = {
+ "shared": [True, False],
+ "fPIC": [True, False],
+ "usingz": ["ON", "OFF", "ONLY"],
+ }
+ default_options = {
+ "shared": False,
+ "fPIC": True,
+ "usingz": "ON",
+ }
+
+ @property
+ def _min_cppstd(self):
+ return 17
+
+ @property
+ def _compilers_minimum_version(self):
+ return {
+ "gcc": "8",
+ "clang": "7",
+ "apple-clang": "12",
+ "Visual Studio": "16",
+ "msvc": "192",
+ }
+
+ def export_sources(self):
+ export_conandata_patches(self)
+
+ def config_options(self):
+ if self.settings.os == "Windows":
+ del self.options.fPIC
+
+ def configure(self):
+ if self.options.shared:
+ self.options.rm_safe("fPIC")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
+
+ def validate(self):
+ if self.settings.compiler.cppstd:
+ check_min_cppstd(self, self._min_cppstd)
+ minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False)
+ if minimum_version and Version(self.settings.compiler.version) < minimum_version:
+ raise ConanInvalidConfiguration(
+ f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support."
+ )
+
+ def source(self):
+ get(self, **self.conan_data["sources"][self.version])
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS"] = True
+ tc.variables["CLIPPER2_UTILS"] = False
+ tc.variables["CLIPPER2_EXAMPLES"] = False
+ tc.variables["CLIPPER2_TESTS"] = False
+ tc.variables["CLIPPER2_USINGZ"] = self.options.usingz
+ tc.generate()
+
+ def build(self):
+ apply_conandata_patches(self)
+ cmake = CMake(self)
+ cmake.configure(build_script_folder=os.path.join(self.source_folder, "CPP"))
+ cmake.build()
+
+ def package(self):
+ copy(self, pattern="LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ cmake = CMake(self)
+ cmake.install()
+
+ rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
+
+ def package_info(self):
+ if self.options.usingz != "ONLY":
+ self.cpp_info.components["clipper2"].set_property("cmake_target_name", "Clipper2::clipper2")
+ self.cpp_info.components["clipper2"].set_property("pkg_config_name", "Clipper2")
+ self.cpp_info.components["clipper2"].libs = ["Clipper2"]
+ if self.settings.os in ["Linux", "FreeBSD"]:
+ self.cpp_info.components["clipper2"].system_libs.append("m")
+
+ if self.options.usingz != "OFF":
+ self.cpp_info.components["clipper2z"].set_property("cmake_target_name", "Clipper2::clipper2z")
+ self.cpp_info.components["clipper2z"].set_property("pkg_config_name", "Clipper2Z")
+ self.cpp_info.components["clipper2z"].libs = ["Clipper2Z"]
+ self.cpp_info.components["clipper2z"].defines.append("USINGZ")
+ if self.settings.os in ["Linux", "FreeBSD"]:
+ self.cpp_info.components["clipper2z"].system_libs.append("m")
diff --git a/recipes/clipper2/all/patches/1.2.2-0001-fix-install.patch b/recipes/clipper2/all/patches/1.2.2-0001-fix-install.patch
new file mode 100644
index 00000000000000..4f4848313e0763
--- /dev/null
+++ b/recipes/clipper2/all/patches/1.2.2-0001-fix-install.patch
@@ -0,0 +1,14 @@
+diff --git a/CPP/CMakeLists.txt b/CPP/CMakeLists.txt
+index 58b41c2..cd2f96b 100644
+--- a/CPP/CMakeLists.txt
++++ b/CPP/CMakeLists.txt
+@@ -245,6 +245,9 @@ endforeach()
+
+ install(TARGETS ${CLIPPER2_LIBS}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/clipper2
++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ )
+ install(FILES ${CLIPPER2_PCFILES} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+
diff --git a/recipes/clipper2/all/test_package/CMakeLists.txt b/recipes/clipper2/all/test_package/CMakeLists.txt
new file mode 100644
index 00000000000000..6b344661830838
--- /dev/null
+++ b/recipes/clipper2/all/test_package/CMakeLists.txt
@@ -0,0 +1,17 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES CXX)
+
+find_package(clipper2 REQUIRED CONFIG)
+
+if(TARGET Clipper2::clipper2)
+ add_executable(${PROJECT_NAME} test_package.cpp)
+ target_link_libraries(${PROJECT_NAME} PRIVATE Clipper2::clipper2)
+ target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
+endif()
+
+if(TARGET Clipper2::clipper2z)
+ add_executable(${PROJECT_NAME}_z test_package_z.cpp)
+ target_link_libraries(${PROJECT_NAME}_z PRIVATE Clipper2::clipper2z)
+ target_compile_features(${PROJECT_NAME}_z PRIVATE cxx_std_17)
+endif()
+
diff --git a/recipes/clipper2/all/test_package/conanfile.py b/recipes/clipper2/all/test_package/conanfile.py
new file mode 100644
index 00000000000000..87531c64cc6a25
--- /dev/null
+++ b/recipes/clipper2/all/test_package/conanfile.py
@@ -0,0 +1,35 @@
+from conan import ConanFile, conan_version
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
+import os
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if can_run(self):
+ if conan_version.major >= 2:
+ usingz = self.dependencies["clipper2"].options.usingz
+ else:
+ usingz = self.options["clipper2"].usingz
+
+ if usingz != "ONLY":
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
+ if usingz != "OFF":
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package_z")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/clipper2/all/test_package/test_package.cpp b/recipes/clipper2/all/test_package/test_package.cpp
new file mode 100644
index 00000000000000..f8b893dade24d6
--- /dev/null
+++ b/recipes/clipper2/all/test_package/test_package.cpp
@@ -0,0 +1,45 @@
+#include
+#include
+
+#include "clipper2/clipper.h"
+
+using namespace Clipper2Lib;
+
+void DoSimpleTest(bool show_solution_coords = false);
+Path64 MakeRandomPoly(int width, int height, unsigned vertCnt);
+
+int main()
+{
+ DoSimpleTest();
+}
+
+inline Path64 MakeStar(const Point64& center, int radius, int points)
+{
+ if (!(points % 2)) --points;
+ if (points < 5) points = 5;
+ Path64 tmp = Ellipse(center, radius, radius, points);
+ Path64 result;
+ result.reserve(points);
+ result.push_back(tmp[0]);
+ for (int i = points - 1, j = i / 2; j;)
+ {
+ result.push_back(tmp[j--]);
+ result.push_back(tmp[i--]);
+ }
+ return result;
+}
+
+void DoSimpleTest(bool show_solution_coords)
+{
+ Paths64 tmp, solution;
+ FillRule fr = FillRule::NonZero;
+
+ Paths64 subject, clip;
+ subject.push_back(MakeStar(Point64(225, 225), 220, 9));
+ clip.push_back(Ellipse(Point64(225,225), 150, 150));
+
+ //Intersect both shapes and then 'inflate' result -10 (ie deflate)
+ solution = Intersect(subject, clip, fr);
+ solution = InflatePaths(solution, -10, JoinType::Round, EndType::Polygon);
+}
+
diff --git a/recipes/clipper2/all/test_package/test_package_z.cpp b/recipes/clipper2/all/test_package/test_package_z.cpp
new file mode 100644
index 00000000000000..3713bf124619af
--- /dev/null
+++ b/recipes/clipper2/all/test_package/test_package_z.cpp
@@ -0,0 +1,46 @@
+#include
+#include "clipper2/clipper.h"
+
+using namespace std;
+using namespace Clipper2Lib;
+
+void TestingZ_Double();
+
+// use the Z callback to flag intersections by setting z = 1;
+
+class MyClass {
+public:
+
+ // Point64 callback - see TestingZ_Int64()
+ void myZCB(const Point64& e1bot, const Point64& e1top,
+ const Point64& e2bot, const Point64& e2top, Point64& pt)
+ {
+ pt.z = 1;
+ }
+
+ // PointD callback - see TestingZ_Double()
+ void myZCBD(const PointD& e1bot, const PointD& e1top,
+ const PointD& e2bot, const PointD& e2top, PointD& pt)
+ {
+ pt.z = 1;
+ }
+};
+
+int main(int argc, char* argv[])
+{
+ TestingZ_Double();
+}
+void TestingZ_Double()
+{
+ PathsD subject, solution;
+ MyClass mc;
+ ClipperD c;
+
+ subject.push_back(MakePathD({ 100, 50, 10, 79, 65, 2, 65, 98, 10, 21 }));
+ c.AddSubject(subject);
+ c.SetZCallback(
+ std::bind(&MyClass::myZCBD, mc, std::placeholders::_1,
+ std::placeholders::_2, std::placeholders::_3,
+ std::placeholders::_4, std::placeholders::_5));
+ c.Execute(ClipType::Union, FillRule::NonZero, solution);
+}
diff --git a/recipes/clipper2/config.yml b/recipes/clipper2/config.yml
new file mode 100644
index 00000000000000..af40d9653a3783
--- /dev/null
+++ b/recipes/clipper2/config.yml
@@ -0,0 +1,3 @@
+versions:
+ "1.2.2":
+ folder: all
diff --git a/recipes/cmake/binary/conandata.yml b/recipes/cmake/binary/conandata.yml
index b8c5dfe2bfbee8..afcf32ce814612 100644
--- a/recipes/cmake/binary/conandata.yml
+++ b/recipes/cmake/binary/conandata.yml
@@ -1,4 +1,61 @@
sources:
+ "3.27.4":
+ Linux:
+ armv8:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.4-linux-aarch64.tar.gz"
+ sha256: "45538d394bd4ef2a423fa78dff5cad16bcf437a4a6dc655e999177170632b039"
+ x86_64:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.4-linux-x86_64.tar.gz"
+ sha256: "186c53121cf6ef4e48b51e88690e6ef84f268611064a42e5a2e829c3d6b2efde"
+ Macos:
+ universal:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.4-macos10.10-universal.tar.gz"
+ sha256: "1fa092bad6daf9715c6d72ff766813fd3423427696042a74f2208a2b4704ac1c"
+ Windows:
+ armv8:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.4-windows-arm64.zip"
+ sha256: "6c1df7ad85ed902ad615cd0c05bca0d3c9c3f67b3980ca9dd2e39b0821d50937"
+ x86_64:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.4-windows-x86_64.zip"
+ sha256: "e5e060756444d0b2070328a8821c1ceb62bd6d267aae61bfff06f96c7ec943a6"
+ "3.27.1":
+ Linux:
+ armv8:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.1-linux-aarch64.tar.gz"
+ sha256: "812e32b569bcfb61f5ededdec244c4fddcd18d2c352a902ef88ed7d02005b2bd"
+ x86_64:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.1-linux-x86_64.tar.gz"
+ sha256: "9fef63e1cf87cab1153f9433045df2e43c336e462518b0f5e52d2cc91d762cff"
+ Macos:
+ universal:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.1-macos10.10-universal.tar.gz"
+ sha256: "3f9b1b6c29369d2b4e71991420966599a378b01f84e6420d5e881946a04debed"
+ Windows:
+ armv8:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.1-windows-arm64.zip"
+ sha256: "588576bd73f20a851de053571a3ccb9bfe28446b5952ea62918dd273da608183"
+ x86_64:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.1-windows-x86_64.zip"
+ sha256: "664fe1655999f0b693d1e64ddb430191c727ab0a03dc1da7278f291172e1e04e"
+ "3.27.0":
+ Linux:
+ armv8:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.0-linux-aarch64.tar.gz"
+ sha256: "97c2f8cf9e063a7acf9f15ed472d87c511bf5cb62d3e42b9c90524fb0c2e4748"
+ x86_64:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.0-linux-x86_64.tar.gz"
+ sha256: "89c7e74d29f442e4734954310e09dd12d13636991f2d90d0ed1bececb8bf9b9c"
+ Macos:
+ universal:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.0-macos10.10-universal.tar.gz"
+ sha256: "dd9a7a8d5bd7d20b694eda8ff9c31147a5e1faa3bca1099836cfa0f81f8d5809"
+ Windows:
+ armv8:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.0-windows-arm64.zip"
+ sha256: "9345cbbb25cb5e8f3c68db067151a013c628783edbfc6fcf622ae58900aa8ad3"
+ x86_64:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.0-windows-x86_64.zip"
+ sha256: "fc5f901ef4d438eafbe35b24c608d5de11e517f157b3b7ab8ebbaa7c3c0171d2"
"3.26.4":
Linux:
armv8:
diff --git a/recipes/cmake/config.yml b/recipes/cmake/config.yml
index 174b2ccab05518..94869f2ceea826 100644
--- a/recipes/cmake/config.yml
+++ b/recipes/cmake/config.yml
@@ -1,17 +1,23 @@
versions:
- "3.19.8":
+ "3.27.4":
folder: "binary"
- "3.20.6":
+ "3.27.1":
folder: "binary"
- "3.21.7":
+ "3.27.0":
folder: "binary"
- "3.22.6":
+ "3.26.4":
folder: "binary"
- "3.23.5":
+ "3.25.3":
folder: "binary"
"3.24.4":
folder: "binary"
- "3.25.3":
+ "3.23.5":
folder: "binary"
- "3.26.4":
+ "3.22.6":
+ folder: "binary"
+ "3.21.7":
+ folder: "binary"
+ "3.20.6":
+ folder: "binary"
+ "3.19.8":
folder: "binary"
diff --git a/recipes/cn-cbor/all/CMakeLists.txt b/recipes/cn-cbor/all/CMakeLists.txt
deleted file mode 100644
index 361b35d4c17d9a..00000000000000
--- a/recipes/cn-cbor/all/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-cmake_minimum_required(VERSION 2.8.11)
-project(cmake_wrapper)
-
-include(conanbuildinfo.cmake)
-conan_basic_setup()
-
-add_subdirectory(source_subfolder)
diff --git a/recipes/cn-cbor/all/conanfile.py b/recipes/cn-cbor/all/conanfile.py
index 74e90a06cc919f..91eccd3167699e 100644
--- a/recipes/cn-cbor/all/conanfile.py
+++ b/recipes/cn-cbor/all/conanfile.py
@@ -1,82 +1,79 @@
import os
-from conans import CMake, ConanFile, tools
-from conans.errors import ConanInvalidConfiguration
+
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import check_min_cppstd
+from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
+from conan.tools.files import copy, get, rmdir
+
+required_conan_version = ">=1.53.0"
class CnCborStackConan(ConanFile):
name = "cn-cbor"
+ description = "A constrained node implementation of CBOR in C"
license = "MIT"
- homepage = "https://github.com/jimsch/cn-cbor/"
url = "https://github.com/conan-io/conan-center-index"
- description = "A constrained node implementation of CBOR in C"
- topics = "cbor", "nodes", "messaging"
- exports_sources = ['CMakeLists.txt']
- settings = "os", "compiler", "build_type", "arch"
+ homepage = "https://github.com/jimsch/cn-cbor/"
+ topics = ("cbor", "nodes", "messaging")
+
+ package_type = "library"
+ settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
"fPIC": [True, False],
}
default_options = {
"shared": False,
- "fPIC": True
+ "fPIC": True,
}
- generators = "cmake", "cmake_find_package"
-
- _cmake = None
-
- @property
- def _source_subfolder(self):
- return "source_subfolder"
-
- @property
- def _build_subfolder(self):
- return "build_subfolder"
def config_options(self):
if self.settings.os == "Windows":
del self.options.fPIC
def configure(self):
- del self.settings.compiler.libcxx
- del self.settings.compiler.cppstd
if self.options.shared:
- del self.options.fPIC
+ self.options.rm_safe("fPIC")
+ self.settings.rm_safe("compiler.libcxx")
+ self.settings.rm_safe("compiler.cppstd")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
+ def validate(self):
+ if self.settings.compiler.get_safe("cppstd"):
+ check_min_cppstd(self, 11)
if self.settings.os == "Windows" and self.options.shared:
raise ConanInvalidConfiguration("Windows shared builds are not supported right now")
def source(self):
- tools.get(**self.conan_data["sources"][self.version])
- extracted_dir = self.name + "-" + self.version
- os.rename(extracted_dir, self._source_subfolder)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
- def _configure_cmake(self):
- if self._cmake:
- return self._cmake
- self._cmake = CMake(self)
- self._cmake.definitions["fatal_warnings"] = False
- self._cmake.definitions["coveralls"] = False
- self._cmake.definitions["build_tests"] = False
- self._cmake.definitions["build_docs"] = False
-
- self._cmake.configure(build_folder=self._build_subfolder)
- return self._cmake
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["fatal_warnings"] = False
+ tc.variables["coveralls"] = False
+ tc.variables["build_tests"] = False
+ tc.variables["build_docs"] = False
+ tc.generate()
def build(self):
- cmake = self._configure_cmake()
+ cmake = CMake(self)
+ cmake.configure()
cmake.build()
def package(self):
- self.copy("LICENSE", dst="licenses", src=self._source_subfolder)
- cmake = self._configure_cmake()
+ copy(self, "LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ cmake = CMake(self)
cmake.install()
os.remove(os.path.join(self.package_folder, "README.md"))
os.remove(os.path.join(self.package_folder, "LICENSE"))
- tools.rmdir(os.path.join(self.package_folder, "lib", "cmake"))
- tools.rmdir(os.path.join(self.package_folder, "lib", "pkgconfig"))
- tools.rmdir(os.path.join(self.package_folder, "lib", "cn-cbor", "cmake"))
+ rmdir(self, os.path.join(self.package_folder, "lib", "cmake"))
+ rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
+ rmdir(self, os.path.join(self.package_folder, "lib", "cn-cbor", "cmake"))
def package_info(self):
- self.cpp_info.libs = tools.collect_libs(self)
+ self.cpp_info.libs = ["cn-cbor"]
if self.settings.os == "Windows":
self.cpp_info.system_libs = ["ws2_32"]
diff --git a/recipes/cn-cbor/all/test_package/CMakeLists.txt b/recipes/cn-cbor/all/test_package/CMakeLists.txt
index 33ae887aa6aea3..50e6a7de0b4eaf 100644
--- a/recipes/cn-cbor/all/test_package/CMakeLists.txt
+++ b/recipes/cn-cbor/all/test_package/CMakeLists.txt
@@ -1,9 +1,8 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package)
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES CXX)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup()
+find_package(cn-cbor REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
-target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
+target_link_libraries(${PROJECT_NAME} PRIVATE cn-cbor::cn-cbor)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
diff --git a/recipes/cn-cbor/all/test_package/conanfile.py b/recipes/cn-cbor/all/test_package/conanfile.py
index 933dbf96533ae4..fae501d0afb9e4 100644
--- a/recipes/cn-cbor/all/test_package/conanfile.py
+++ b/recipes/cn-cbor/all/test_package/conanfile.py
@@ -1,11 +1,19 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
-from conans import ConanFile, CMake, tools
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain"
+ test_type = "explicit"
-class TestConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake"
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -13,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self.settings):
- bin_path = os.path.join("bin", "test_package")
- bin_path = self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/cn-cbor/all/test_v1_package/CMakeLists.txt b/recipes/cn-cbor/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/cn-cbor/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/cn-cbor/all/test_v1_package/conanfile.py b/recipes/cn-cbor/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..9de3689208f00b
--- /dev/null
+++ b/recipes/cn-cbor/all/test_v1_package/conanfile.py
@@ -0,0 +1,18 @@
+import os
+
+from conans import ConanFile, CMake, tools
+
+
+class TestConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self.settings):
+ bin_path = os.path.join("bin", "test_package")
+ bin_path = self.run(bin_path, run_environment=True)
diff --git a/recipes/corrade/all/CMakeLists.txt b/recipes/corrade/all/CMakeLists.txt
deleted file mode 100644
index 61f3d3b039e2bb..00000000000000
--- a/recipes/corrade/all/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-cmake_minimum_required(VERSION 3.1)
-project(cmake_wrapper)
-
-include(conanbuildinfo.cmake)
-conan_basic_setup(KEEP_RPATHS)
-
-add_subdirectory("source_subfolder")
diff --git a/recipes/corrade/all/conandata.yml b/recipes/corrade/all/conandata.yml
index 4b0cd1b7fd3fb8..82a5660e749504 100644
--- a/recipes/corrade/all/conandata.yml
+++ b/recipes/corrade/all/conandata.yml
@@ -7,8 +7,7 @@ sources:
url: https://github.com/mosra/corrade/archive/v2019.10.tar.gz
patches:
"2020.06":
- - base_path: "source_subfolder"
- patch_file: "patches/2020.06/0001-emscripten-toolchain.patch"
- # patch_type: "portability"
- # description: "Remove unnecessary dependency on UseEmscripten"
- # source: "https://github.com/mosra/corrade/issues/104"
+ - patch_file: "patches/2020.06/0001-emscripten-toolchain.patch"
+ patch_type: "portability"
+ patch_description: "Remove unnecessary dependency on UseEmscripten"
+ patch_source: "https://github.com/mosra/corrade/issues/104"
diff --git a/recipes/corrade/all/conanfile.py b/recipes/corrade/all/conanfile.py
index dcff18b711642d..347781614d5e33 100644
--- a/recipes/corrade/all/conanfile.py
+++ b/recipes/corrade/all/conanfile.py
@@ -1,21 +1,24 @@
-from conan.tools.microsoft import is_msvc
-from conan.tools.microsoft.visual import vs_ide_version
-from conans import ConanFile, CMake, tools
-from conans.errors import ConanInvalidConfiguration
-import functools
import os
-required_conan_version = ">=1.45.0"
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import cross_building
+from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
+from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rmdir
+from conan.tools.microsoft import is_msvc, check_min_vs
+
+required_conan_version = ">=1.52.0"
class CorradeConan(ConanFile):
name = "corrade"
description = "Corrade is a multiplatform utility library written in C++11/C++14."
- topics = ("corrade", "magnum", "filesystem", "console", "environment", "os")
+ license = "MIT"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://magnum.graphics/corrade"
- license = "MIT"
+ topics = ("magnum", "filesystem", "console", "environment", "os")
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
@@ -38,22 +41,9 @@ class CorradeConan(ConanFile):
"with_utility": True,
}
- generators = "cmake"
- short_paths = True
-
- @property
- def _source_subfolder(self):
- return "source_subfolder"
-
- @property
- def _build_subfolder(self):
- return "build_subfolder"
-
def export_sources(self):
- self.copy("CMakeLists.txt")
- self.copy("cmake/*")
- for patch in self.conan_data.get("patches", {}).get(self.version, []):
- self.copy(patch["patch_file"])
+ copy(self, "cmake/*", src=self.recipe_folder, dst=self.export_sources_folder)
+ export_conandata_patches(self)
def config_options(self):
if self.settings.os == "Windows":
@@ -61,79 +51,96 @@ def config_options(self):
def configure(self):
if self.options.shared:
- del self.options.fPIC
+ self.options.rm_safe("fPIC")
- def validate(self):
- if is_msvc(self) and tools.Version(vs_ide_version(self)) < 14:
- raise ConanInvalidConfiguration("Corrade requires Visual Studio version 14 or greater")
+ def layout(self):
+ cmake_layout(self, src_folder="src")
- if not self.options.with_utility and (self.options.with_testsuite or self.options.with_interconnect or self.options.with_pluginmanager):
- raise ConanInvalidConfiguration("Component 'utility' is required for 'test_suite', 'interconnect' and 'plugin_manager'")
+ def validate(self):
+ check_min_vs(self, 190)
+ if not self.options.with_utility and (
+ self.options.with_testsuite or self.options.with_interconnect or self.options.with_pluginmanager
+ ):
+ raise ConanInvalidConfiguration(
+ "Component 'utility' is required for 'test_suite', 'interconnect' and 'plugin_manager'"
+ )
def build_requirements(self):
- if hasattr(self, "settings_build") and tools.cross_building(self, skip_x64_x86=True):
- self.build_requires("corrade/{}".format(self.version))
+ if hasattr(self, "settings_build") and cross_building(self, skip_x64_x86=True):
+ self.tool_requires(f"corrade/{self.version}")
def source(self):
- tools.get(**self.conan_data["sources"][self.version],
- destination=self._source_subfolder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
- @functools.lru_cache(1)
- def _configure_cmake(self):
- cmake = CMake(self)
- cmake.definitions["BUILD_STATIC"] = not self.options.shared
- cmake.definitions["BUILD_STATIC_PIC"] = self.options.get_safe("fPIC", False)
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["BUILD_STATIC"] = not self.options.shared
+ tc.variables["BUILD_STATIC_PIC"] = self.options.get_safe("fPIC", False)
- cmake.definitions["BUILD_DEPRECATED"] = self.options.build_deprecated
- cmake.definitions["WITH_INTERCONNECT"] = self.options.with_interconnect
- cmake.definitions["WITH_MAIN"] = self.options.with_main
- cmake.definitions["WITH_PLUGINMANAGER"] = self.options.with_pluginmanager
- cmake.definitions["WITH_TESTSUITE"] = self.options.with_testsuite
- cmake.definitions["WITH_UTILITY"] = self.options.with_utility
- cmake.definitions["WITH_RC"] = self.options.with_utility
+ tc.variables["BUILD_DEPRECATED"] = self.options.build_deprecated
+ tc.variables["WITH_INTERCONNECT"] = self.options.with_interconnect
+ tc.variables["WITH_MAIN"] = self.options.with_main
+ tc.variables["WITH_PLUGINMANAGER"] = self.options.with_pluginmanager
+ tc.variables["WITH_TESTSUITE"] = self.options.with_testsuite
+ tc.variables["WITH_UTILITY"] = self.options.with_utility
+ tc.variables["WITH_RC"] = self.options.with_utility
# Corrade uses suffix on the resulting "lib"-folder when running cmake.install()
# Set it explicitly to empty, else Corrade might set it implicitly (eg. to "64")
- cmake.definitions["LIB_SUFFIX"] = ""
+ tc.variables["LIB_SUFFIX"] = ""
if is_msvc(self):
- cmake.definitions["MSVC2015_COMPATIBILITY"] = vs_ide_version(self) == "14"
- cmake.definitions["MSVC2017_COMPATIBILITY"] = vs_ide_version(self) == "15"
- cmake.definitions["MSVC2019_COMPATIBILITY"] = vs_ide_version(self) == "16"
+ if check_min_vs(self, 193, raise_invalid=False):
+ tc.variables["MSVC2019_COMPATIBILITY"] = True
+ elif check_min_vs(self, 192, raise_invalid=False):
+ tc.variables["MSVC2017_COMPATIBILITY"] = True
+ elif check_min_vs(self, 191, raise_invalid=False):
+ tc.variables["MSVC2015_COMPATIBILITY"] = True
- cmake.configure(build_folder=self._build_subfolder)
-
- return cmake
+ tc.generate()
+ tc = CMakeDeps(self)
+ tc.generate()
def build(self):
- for patch in self.conan_data.get("patches", {}).get(self.version, []):
- tools.patch(**patch)
-
- cmake = self._configure_cmake()
+ apply_conandata_patches(self)
+ cmake = CMake(self)
+ cmake.configure()
cmake.build()
def package(self):
- self.copy("COPYING", dst="licenses", src=self._source_subfolder)
- cmake = self._configure_cmake()
+ copy(self, "COPYING", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ cmake = CMake(self)
cmake.install()
-
share_cmake = os.path.join(self.package_folder, "share", "cmake", "Corrade")
- self.copy("UseCorrade.cmake", src=share_cmake, dst=os.path.join(self.package_folder, "lib", "cmake"))
- self.copy("CorradeLibSuffix.cmake", src=share_cmake, dst=os.path.join(self.package_folder, "lib", "cmake"))
- self.copy("*.cmake", src=os.path.join(self.source_folder, "cmake"), dst=os.path.join("lib", "cmake"))
- tools.rmdir(os.path.join(self.package_folder, "share"))
+ copy(self, "UseCorrade.cmake",
+ src=share_cmake,
+ dst=os.path.join(self.package_folder, "lib", "cmake"))
+ copy(self, "CorradeLibSuffix.cmake",
+ src=share_cmake,
+ dst=os.path.join(self.package_folder, "lib", "cmake"))
+ copy(self, "*.cmake",
+ src=os.path.join(self.export_sources_folder, "cmake"),
+ dst=os.path.join(self.package_folder, "lib", "cmake"))
+ rmdir(self, os.path.join(self.package_folder, "share"))
def package_info(self):
self.cpp_info.set_property("cmake_find_mode", "both")
self.cpp_info.set_property("cmake_file_name", "Corrade")
- self.cpp_info.names["cmake_find_package"] = "Corrade"
- self.cpp_info.names["cmake_find_package_multi"] = "Corrade"
+ self.cpp_info.set_property("cmake_target_name", "Corrade::Corrade")
suffix = "-d" if self.settings.build_type == "Debug" else ""
- # The FindCorrade.cmake file provided by the library populates some extra stuff
- self.cpp_info.set_property("cmake_build_modules", [os.path.join("lib", "cmake", "conan-corrade-vars.cmake")])
- self.cpp_info.components["_corrade"].build_modules.append(os.path.join("lib", "cmake", "conan-corrade-vars.cmake"))
+ cmake_modules = [
+ # Reproduces the variables and calls performed by the FindCorrade.cmake provided by the library
+ os.path.join("lib", "cmake", "conan-corrade-vars.cmake"),
+ # Autodetects LIB_SUFFIX (either "64" or "")
+ os.path.join("lib", "cmake", "CorradeLibSuffix.cmake"),
+ # Exports build flags and macros
+ os.path.join("lib", "cmake", "UseCorrade.cmake"),
+ ]
+ self.cpp_info.set_property("cmake_build_modules", cmake_modules)
+ self.cpp_info.components["_corrade"].build_modules["cmake_find_package"] = cmake_modules
+ self.cpp_info.components["_corrade"].build_modules["cmake_find_package_multi"] = cmake_modules
if self.options.with_main:
self.cpp_info.components["main"].set_property("cmake_target_name", "Corrade::Main")
@@ -153,10 +160,10 @@ def package_info(self):
self.cpp_info.components["utility"].requires = ["_corrade"]
# This one is statically linked into utility
- #self.cpp_info.components["containers"].set_property("cmake_target_name", "Corrade::Containers")
- #self.cpp_info.components["containers"].names["cmake_find_package"] = "Containers"
- #self.cpp_info.components["containers"].names["cmake_find_package_multi"] = "Containers"
- #self.cpp_info.components["containers"].libs = ["CorradeContainers" + suffix]
+ # self.cpp_info.components["containers"].set_property("cmake_target_name", "Corrade::Containers")
+ # self.cpp_info.components["containers"].names["cmake_find_package"] = "Containers"
+ # self.cpp_info.components["containers"].names["cmake_find_package_multi"] = "Containers"
+ # self.cpp_info.components["containers"].libs = ["CorradeContainers" + suffix]
if self.options.with_interconnect:
self.cpp_info.components["interconnect"].set_property("cmake_target_name", "Corrade::Interconnect")
@@ -181,9 +188,12 @@ def package_info(self):
if self.options.with_utility:
bindir = os.path.join(self.package_folder, "bin")
- self.output.info("Appending PATH environment variable: {}".format(bindir))
+ self.output.info(f"Appending PATH environment variable: {bindir}")
self.env_info.PATH.append(bindir)
# pkg_config: Add more explicit naming to generated files (avoid filesystem collision).
- for key, cmp in self.cpp_info.components.items():
- self.cpp_info.components[key].names["pkg_config"] = "{}_{}".format(self.name, key)
+ for key, component in self.cpp_info.components.items():
+ component.set_property("pkg_config_name", f"{self.name}_{key}")
+
+ self.cpp_info.names["cmake_find_package"] = "Corrade"
+ self.cpp_info.names["cmake_find_package_multi"] = "Corrade"
diff --git a/recipes/corrade/all/test_package/CMakeLists.txt b/recipes/corrade/all/test_package/CMakeLists.txt
index e4c1f34b721de4..94206f42ad33ea 100644
--- a/recipes/corrade/all/test_package/CMakeLists.txt
+++ b/recipes/corrade/all/test_package/CMakeLists.txt
@@ -1,14 +1,11 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package)
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES CXX)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
-
-find_package(Corrade REQUIRED)
+find_package(Corrade REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
target_link_libraries(${PROJECT_NAME} Corrade::Main)
-if(VERSION_2019_10)
+if(VERSION_2019_10)
target_compile_definitions(${PROJECT_NAME} PRIVATE VERSION_2019_10)
endif()
if(WITH_UTILITY)
diff --git a/recipes/corrade/all/test_package/conanfile.py b/recipes/corrade/all/test_package/conanfile.py
index be914f107e1214..9c0893a63e85bc 100644
--- a/recipes/corrade/all/test_package/conanfile.py
+++ b/recipes/corrade/all/test_package/conanfile.py
@@ -1,28 +1,37 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake, CMakeToolchain
import os
class TestPackageConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake", "cmake_find_package"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["WITH_UTILITY"] = self.dependencies["corrade"].options.with_utility
+ if self.dependencies["corrade"].ref.version == "2019.10":
+ tc.variables["VERSION_2019_10"] = True
+ tc.generate()
def build(self):
cmake = CMake(self)
- cmake.definitions["WITH_UTILITY"] = self.options["corrade"].with_utility
- if self.deps_cpp_info["corrade"].version == "2019.10":
- cmake.definitions["VERSION_2019_10"] = True
cmake.configure()
cmake.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
-
- if self.options["corrade"].with_utility:
- # Run corrade-rc
- self.run("corrade-rc --help", run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
if self.settings.os == "Emscripten":
- bin_path = os.path.join("bin", "test_package.js")
- self.run("node {}".format(bin_path), run_environment=True)
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package.js")
+ self.run(f"node {bin_path}", env="conanrun")
diff --git a/recipes/corrade/all/test_package/test_package.cpp b/recipes/corrade/all/test_package/test_package.cpp
index 8f5dc321a44de1..c0e1a6d7932b20 100644
--- a/recipes/corrade/all/test_package/test_package.cpp
+++ b/recipes/corrade/all/test_package/test_package.cpp
@@ -1,5 +1,4 @@
-#include
-#include // Here it is 'nothing'
+#include // Here it is 'nothing'
#ifndef VERSION_2019_10
#include
@@ -9,10 +8,11 @@
#include
#endif
+#include
int main() {
std::cout << "Test package for Corrade\n";
-
+
#ifndef VERSION_2019_10
std::cout << "Corrade " << CORRADE_VERSION_YEAR << "." << CORRADE_VERSION_MONTH << std::endl;
#endif
diff --git a/recipes/cotila/all/conanfile.py b/recipes/cotila/all/conanfile.py
index eb47a8c74e0c9c..cbc8f6be750649 100644
--- a/recipes/cotila/all/conanfile.py
+++ b/recipes/cotila/all/conanfile.py
@@ -1,66 +1,71 @@
-from conans import ConanFile, tools
-from conans.errors import ConanInvalidConfiguration
+import os
-required_conan_version = ">=1.33.0"
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import check_min_cppstd
+from conan.tools.files import copy, get
+from conan.tools.layout import basic_layout
+from conan.tools.microsoft import is_msvc
+from conan.tools.scm import Version
+
+required_conan_version = ">=1.52.0"
class CotilaConan(ConanFile):
name = "cotila"
description = "A compile time linear algebra system"
- homepage = "https://github.com/calebzulawski/cotila"
- topics = ("c++", "math", "linear algebra", "compile-time")
license = "Apache-2.0"
url = "https://github.com/conan-io/conan-center-index"
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake"
- no_copy_source = True
+ homepage = "https://github.com/calebzulawski/cotila"
+ topics = ("c++", "math", "linear algebra", "compile-time", "header-only")
- @property
- def _source_subfolder(self):
- return "source_subfolder"
+ package_type = "header-library"
+ settings = "os", "arch", "compiler", "build_type"
+ no_copy_source = True
@property
def _min_cppstd(self):
- return "17"
+ return 17
@property
def _compilers_minimum_version(self):
return {
"gcc": "7",
- "Visual Studio": "15.7",
"clang": "6.0",
"apple-clang": "10",
+ "Visual Studio": "15.7",
+ "msvc": "193",
}
- def validate(self):
- if self.settings.compiler.get_safe("cppstd"):
- tools.check_min_cppstd(self, "17")
+ def layout(self):
+ basic_layout(self, src_folder="src")
- def lazy_lt_semver(v1, v2):
- lv1 = [int(v) for v in v1.split(".")]
- lv2 = [int(v) for v in v2.split(".")]
- min_length = min(len(lv1), len(lv2))
- return lv1[:min_length] < lv2[:min_length]
+ def package_id(self):
+ self.info.clear()
+ def validate(self):
+ if is_msvc(self):
+ raise ConanInvalidConfiguration("cotila currently does not support MSVC. "
+ "See https://github.com/calebzulawski/cotila/issues/36.")
+ if self.settings.compiler.get_safe("cppstd"):
+ check_min_cppstd(self, self._min_cppstd)
minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False)
- if not minimum_version:
- self.output.warn("{} {} requires C++17. Your compiler is unknown. Assuming it supports C++17.".format(self.name, self.version))
- elif lazy_lt_semver(str(self.settings.compiler.version), minimum_version):
- raise ConanInvalidConfiguration("{} {} requires C++17, which your compiler does not support.".format(self.name, self.version))
-
-
- def package_id(self):
- self.info.header_only()
+ if minimum_version and Version(self.settings.compiler.version) < minimum_version:
+ raise ConanInvalidConfiguration(
+ f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support."
+ )
def source(self):
- tools.get(**self.conan_data["sources"][self.version], strip_root=True,
- destination=self._source_subfolder)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def package(self):
- self.copy(pattern="LICENSE", dst="licenses", src=self._source_subfolder)
- self.copy(pattern="include/*", src=self._source_subfolder)
+ copy(self, "LICENSE",
+ dst=os.path.join(self.package_folder, "licenses"),
+ src=self.source_folder)
+ copy(self, "*",
+ dst=os.path.join(self.package_folder, "include"),
+ src=os.path.join(self.source_folder, "include"))
def package_info(self):
- self.cpp_info.names["cmake_find_package"] = "cotila"
- self.cpp_info.names["cmake_find_package_multi"] = "cotila"
-
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
diff --git a/recipes/cotila/all/test_package/CMakeLists.txt b/recipes/cotila/all/test_package/CMakeLists.txt
index fb76dc36e1dc69..cf3db6db5cc451 100644
--- a/recipes/cotila/all/test_package/CMakeLists.txt
+++ b/recipes/cotila/all/test_package/CMakeLists.txt
@@ -1,10 +1,7 @@
-cmake_minimum_required(VERSION 3.8)
+cmake_minimum_required(VERSION 3.15)
project(test_package LANGUAGES CXX)
-include("${CMAKE_BINARY_DIR}/conanbuildinfo.cmake")
-conan_basic_setup(TARGETS)
-
-find_package(cotila CONFIG REQUIRED)
+find_package(cotila REQUIRED CONFIG)
add_executable(test_package test_package.cpp)
target_compile_features(test_package PRIVATE cxx_std_17)
diff --git a/recipes/cotila/all/test_package/conanfile.py b/recipes/cotila/all/test_package/conanfile.py
index e1ab7e3d234d6b..ef5d7042163ecc 100644
--- a/recipes/cotila/all/test_package/conanfile.py
+++ b/recipes/cotila/all/test_package/conanfile.py
@@ -1,10 +1,19 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
-class CotilaTestConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake", "cmake_find_package_multi"
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -12,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/cotila/all/test_v1_package/CMakeLists.txt b/recipes/cotila/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/cotila/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/cotila/all/test_v1_package/conanfile.py b/recipes/cotila/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..e1ab7e3d234d6b
--- /dev/null
+++ b/recipes/cotila/all/test_v1_package/conanfile.py
@@ -0,0 +1,17 @@
+from conans import ConanFile, CMake, tools
+import os
+
+
+class CotilaTestConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/cpp-httplib/all/conandata.yml b/recipes/cpp-httplib/all/conandata.yml
index dff9808ae31f26..cf312a0b54c1d0 100644
--- a/recipes/cpp-httplib/all/conandata.yml
+++ b/recipes/cpp-httplib/all/conandata.yml
@@ -1,4 +1,10 @@
sources:
+ "0.14.0":
+ url: "https://github.com/yhirose/cpp-httplib/archive/v0.14.0.tar.gz"
+ sha256: "3a92248ef8cf2c32ad07f910b8e3052ff2427022b2adb871cf326fb620d2438e"
+ "0.13.3":
+ url: "https://github.com/yhirose/cpp-httplib/archive/v0.13.3.tar.gz"
+ sha256: "2a4503f9f2015f6878baef54cd94b01849cc3ed19dfe95f2c9775655bea8b73f"
"0.13.1":
url: "https://github.com/yhirose/cpp-httplib/archive/v0.13.1.tar.gz"
sha256: "9b837d290b61e3f0c4239da0b23bbf14c382922e2bf2a9bac21c1e3feabe1ff9"
diff --git a/recipes/cpp-httplib/config.yml b/recipes/cpp-httplib/config.yml
index 7af780ed5d22db..3a4d3cd3226a9c 100644
--- a/recipes/cpp-httplib/config.yml
+++ b/recipes/cpp-httplib/config.yml
@@ -1,4 +1,8 @@
versions:
+ "0.14.0":
+ folder: all
+ "0.13.3":
+ folder: all
"0.13.1":
folder: all
"0.12.6":
diff --git a/recipes/cpp-ipc/all/CMakeLists.txt b/recipes/cpp-ipc/all/CMakeLists.txt
deleted file mode 100644
index e17d82eddcc5dd..00000000000000
--- a/recipes/cpp-ipc/all/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-cmake_minimum_required(VERSION 2.8.12)
-project(cmake_wrapper LANGUAGES CXX)
-
-include(conanbuildinfo.cmake)
-conan_basic_setup()
-
-add_subdirectory(source_subfolder)
diff --git a/recipes/cpp-ipc/all/conanfile.py b/recipes/cpp-ipc/all/conanfile.py
index b11041af3f5940..5baa058938b2bf 100644
--- a/recipes/cpp-ipc/all/conanfile.py
+++ b/recipes/cpp-ipc/all/conanfile.py
@@ -1,17 +1,26 @@
-from conans import ConanFile, CMake, tools
-from conans.errors import ConanInvalidConfiguration
+import os
+
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.apple import is_apple_os
+from conan.tools.build import check_min_cppstd
+from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
+from conan.tools.files import copy, get
+from conan.tools.scm import Version
+
+required_conan_version = ">=1.53.0"
-required_conan_version = ">=1.33.0"
class CppIPCConan(ConanFile):
name = "cpp-ipc"
description = "C++ IPC Library: A high-performance inter-process communication using shared memory on Linux/Windows."
- topics = ("ipc", "shared memory", )
+ license = ("MIT",)
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/mutouyun/cpp-ipc"
- license = "MIT",
+ topics = ("ipc", "shared memory")
+
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
- exports_sources = ["CMakeLists.txt"]
options = {
"shared": [True, False],
"fPIC": [True, False],
@@ -21,19 +30,18 @@ class CppIPCConan(ConanFile):
"fPIC": True,
}
- generators = "cmake"
-
- _compiler_required_cpp17 = {
- "Visual Studio": "17",
- "gcc": "8",
- "clang": "4",
- }
-
- _cmake = None
+ @property
+ def _min_cppstd(self):
+ return 17
@property
- def _source_subfolder(self):
- return "source_subfolder"
+ def _compilers_minimum_version(self):
+ return {
+ "gcc": "8",
+ "clang": "4",
+ "msvc": "193",
+ "Visual Studio": "17",
+ }
def config_options(self):
if self.settings.os == "Windows":
@@ -41,47 +49,51 @@ def config_options(self):
def configure(self):
if self.options.shared:
- del self.options.fPIC
+ self.options.rm_safe("fPIC")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
def validate(self):
- if tools.is_apple_os(self.settings.os):
- raise ConanInvalidConfiguration("{} does not support Apple platform".format(self.name))
+ if is_apple_os(self):
+ raise ConanInvalidConfiguration(f"{self.name} does not support Apple platform")
if self.settings.compiler.get_safe("cppstd"):
- tools.check_min_cppstd(self, 17)
+ check_min_cppstd(self, self._min_cppstd)
- minimum_version = self._compiler_required_cpp17.get(str(self.settings.compiler), False)
+ minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False)
if minimum_version:
- if tools.Version(self.settings.compiler.version) < minimum_version:
- raise ConanInvalidConfiguration("{} requires C++17, which your compiler does not support.".format(self.name))
+ if Version(self.settings.compiler.version) < minimum_version:
+ raise ConanInvalidConfiguration(f"{self.name} requires C++{self._min_cppstd}, "
+ "which your compiler does not support.")
else:
- self.output.warn("{0} requires C++17. Your compiler is unknown. Assuming it supports C++17.".format(self.name))
+ self.output.warning(f"{self.name} requires C++{self._min_cppstd}. Your compiler is unknown. "
+ f"Assuming it supports C++{self._min_cppstd}.")
if self.settings.compiler == "clang" and self.settings.compiler.get_safe("libcxx") == "libc++":
- raise ConanInvalidConfiguration("{} doesn't support clang with libc++".format(self.name))
+ raise ConanInvalidConfiguration(f"{self.name} doesn't support clang with libc++")
def source(self):
- tools.get(**self.conan_data["sources"][self.version],
- destination=self._source_subfolder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
- def _configure_cmake(self):
- if self._cmake:
- return self._cmake
- self._cmake = CMake(self)
- self._cmake.definitions["LIBIPC_BUILD_SHARED_LIBS"] = self.options.shared
- self._cmake.configure()
- return self._cmake
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["LIBIPC_BUILD_SHARED_LIBS"] = self.options.shared
+ tc.generate()
def build(self):
- cmake = self._configure_cmake()
+ cmake = CMake(self)
+ cmake.configure()
cmake.build()
def package(self):
- self.copy(pattern="LICENSE", dst="licenses", src=self._source_subfolder)
- cmake = self._configure_cmake()
+ copy(self, "LICENSE",
+ dst=os.path.join(self.package_folder, "licenses"),
+ src=self.source_folder)
+ cmake = CMake(self)
cmake.install()
def package_info(self):
self.cpp_info.libs = ["ipc"]
if self.settings.os in ["Linux", "FreeBSD"]:
- self.cpp_info.system_libs = ["rt", "pthread"]
+ self.cpp_info.system_libs = ["rt", "pthread", "m"]
diff --git a/recipes/cpp-ipc/all/test_package/CMakeLists.txt b/recipes/cpp-ipc/all/test_package/CMakeLists.txt
index c258338b9324e3..ad0594de35161f 100644
--- a/recipes/cpp-ipc/all/test_package/CMakeLists.txt
+++ b/recipes/cpp-ipc/all/test_package/CMakeLists.txt
@@ -1,9 +1,6 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(test_package LANGUAGES CXX)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
-
find_package(cpp-ipc REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
diff --git a/recipes/cpp-ipc/all/test_package/conanfile.py b/recipes/cpp-ipc/all/test_package/conanfile.py
index 49a3a66ea5bad4..fae501d0afb9e4 100644
--- a/recipes/cpp-ipc/all/test_package/conanfile.py
+++ b/recipes/cpp-ipc/all/test_package/conanfile.py
@@ -1,10 +1,19 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
class TestPackageConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake", "cmake_find_package_multi"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -12,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/cpp-ipc/all/test_v1_package/CMakeLists.txt b/recipes/cpp-ipc/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/cpp-ipc/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/cpp-ipc/all/test_v1_package/conanfile.py b/recipes/cpp-ipc/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..49a3a66ea5bad4
--- /dev/null
+++ b/recipes/cpp-ipc/all/test_v1_package/conanfile.py
@@ -0,0 +1,17 @@
+from conans import ConanFile, CMake, tools
+import os
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/cpp-sort/all/conandata.yml b/recipes/cpp-sort/all/conandata.yml
index 092fe59db4a196..48e52896326749 100644
--- a/recipes/cpp-sort/all/conandata.yml
+++ b/recipes/cpp-sort/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.15.0":
+ url: "https://github.com/Morwenn/cpp-sort/archive/1.15.0.tar.gz"
+ sha256: "886e813a4b87c6361e9b50c0a66c73b3b812f0ce0b7039ff3991eddce77e0dc7"
"1.14.0":
url: "https://github.com/Morwenn/cpp-sort/archive/1.14.0.tar.gz"
sha256: "3b85cd4580f54ae3f171777d0630b4f7c89c33cf96e9ae24a1dbebbf200c3195"
@@ -23,21 +26,3 @@ sources:
"1.10.0":
url: "https://github.com/Morwenn/cpp-sort/archive/1.10.0.tar.gz"
sha256: "48951cac0051d48fee286c3bc02804975f9d83269d80c10dfc5589e76a542765"
- "1.9.0":
- url: "https://github.com/Morwenn/cpp-sort/archive/1.9.0.tar.gz"
- sha256: "e83f3daad30bd91fed668bdb56ad379c4aeea39d7dc640484fdcc55149b6d0e4"
- "1.8.1":
- url: "https://github.com/Morwenn/cpp-sort/archive/1.8.1.tar.gz"
- sha256: "04d518dabb422614fcb4a2b4e258c515f31dd01d51c26e9eaaec76e77c4d3d40"
- "1.8.0":
- sha256: a3de426a66cffbe9f8865feb7518ff4f4d1b3aadf3725161b8e118dcbf6fe9b9
- url: https://github.com/Morwenn/cpp-sort/archive/1.8.0.tar.gz
- "1.7.0":
- sha256: 4a8230be2c63a92395e140cb7e6593171638a41c46f4cd14d6ffc354ba830e2b
- url: https://github.com/Morwenn/cpp-sort/archive/1.7.0.tar.gz
- "1.6.0":
- sha256: df048d15ff555030eb90d3c96f560a75bbec8baee256f2ced647f359c892c9c8
- url: https://github.com/Morwenn/cpp-sort/archive/1.6.0.tar.gz
- "1.5.1":
- sha256: 39925958dbd773f15d36d74d4ded48f075c05feef7fe604c7c5c4bfae2a4ec55
- url: https://github.com/Morwenn/cpp-sort/archive/1.5.1.tar.gz
diff --git a/recipes/cpp-sort/all/conanfile.py b/recipes/cpp-sort/all/conanfile.py
index cfda199bf6a781..e0e093c1fa1654 100644
--- a/recipes/cpp-sort/all/conanfile.py
+++ b/recipes/cpp-sort/all/conanfile.py
@@ -1,5 +1,3 @@
-import os.path
-
from conan import ConanFile
from conan.errors import ConanInvalidConfiguration
from conan.tools.build import check_min_cppstd
@@ -7,6 +5,7 @@
from conan.tools.files import copy, get, rmdir
from conan.tools.microsoft import is_msvc
from conan.tools.scm import Version
+import os
required_conan_version = ">=1.50.0"
@@ -17,12 +16,13 @@ class CppSortConan(ConanFile):
license = "MIT"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/Morwenn/cpp-sort"
- topics = "cpp-sort", "sorting", "algorithms"
+ topics = ("sorting", "algorithms", "header-only")
+ package_type = "header-library"
settings = "os", "arch", "compiler", "build_type"
no_copy_source = True
@property
- def _minimum_cpp_standard(self):
+ def _min_cppstd(self):
return 14
@property
@@ -43,7 +43,7 @@ def package_id(self):
def validate(self):
if self.settings.get_safe("compiler.cppstd"):
- check_min_cppstd(self, self._minimum_cpp_standard)
+ check_min_cppstd(self, self._min_cppstd)
if is_msvc(self) and Version(self.version) < "1.10.0":
raise ConanInvalidConfiguration(f"{self.ref} versions older than 1.10.0 do not support MSVC")
@@ -60,19 +60,19 @@ def loose_lt_semver(v1, v2):
minimum_version = self._compilers_minimum_version[str(compiler)]
if minimum_version and loose_lt_semver(version, minimum_version):
msg = (
- f"{self.ref} requires C++{self._minimum_cpp_standard} features "
+ f"{self.ref} requires C++{self._min_cppstd} features "
f"which are not supported by compiler {compiler} {version}."
)
raise ConanInvalidConfiguration(msg)
except KeyError:
msg = (
f"{self.ref} recipe lacks information about the {compiler} compiler, "
- f"support for the required C++{self._minimum_cpp_standard} features is assumed"
+ f"support for the required C++{self._min_cppstd} features is assumed"
)
self.output.warn(msg)
def source(self):
- get(self, **self.conan_data["sources"][self.version], destination=self.source_folder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def generate(self):
tc = CMakeToolchain(self)
diff --git a/recipes/cpp-sort/config.yml b/recipes/cpp-sort/config.yml
index c097db627e4151..acbaa54fefe9ca 100644
--- a/recipes/cpp-sort/config.yml
+++ b/recipes/cpp-sort/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.15.0":
+ folder: all
"1.14.0":
folder: all
"1.13.2":
@@ -15,15 +17,3 @@ versions:
folder: all
"1.10.0":
folder: all
- "1.9.0":
- folder: all
- "1.8.1":
- folder: all
- "1.8.0":
- folder: all
- "1.7.0":
- folder: all
- "1.6.0":
- folder: all
- "1.5.1":
- folder: all
diff --git a/recipes/cpp_project_framework/all/conanfile.py b/recipes/cpp_project_framework/all/conanfile.py
index 5a2a5fe5679e4b..00ce6a88bd9212 100644
--- a/recipes/cpp_project_framework/all/conanfile.py
+++ b/recipes/cpp_project_framework/all/conanfile.py
@@ -1,24 +1,26 @@
+import os
+
from conan import ConanFile
-from conan.tools.files import get
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import check_min_cppstd
+from conan.tools.files import copy, get
+from conan.tools.layout import basic_layout
from conan.tools.scm import Version
-from conans.errors import ConanInvalidConfiguration
-from conans.tools import check_min_cppstd
-import os
-required_conan_version = ">=1.33.0"
+required_conan_version = ">=1.52.0"
class CppProjectFrameworkConan(ConanFile):
name = "cpp_project_framework"
+ description = "C++ Project Framework is a framework for creating C++ projects."
license = "AGPL-3.0"
+ url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/sheepgrass/cpp_project_framework"
- url = "https://github.com/conan-io/conan-center-index" # Package recipe repository url here, for issues about the package
- description = "C++ Project Framework is a framework for creating C++ project."
- topics = ("cpp", "project", "framework")
- settings = "os", "compiler", "build_type", "arch"
+ topics = ("cpp", "project", "framework", "header-only")
- def package_id(self):
- self.info.header_only()
+ package_type = "header-library"
+ settings = "os", "arch", "compiler", "build_type"
+ no_copy_source = True
@property
def _minimum_cpp_standard(self):
@@ -28,38 +30,52 @@ def _minimum_cpp_standard(self):
def _minimum_compilers_version(self):
return {
"Visual Studio": "16",
+ "msvc": "192",
"gcc": "7",
"clang": "6",
"apple-clang": "10",
}
+ def layout(self):
+ basic_layout(self, src_folder="src")
+
+ def package_id(self):
+ self.info.clear()
+
def validate(self):
- if self.settings.os not in ('Linux', 'Windows'):
- raise ConanInvalidConfiguration(f"{self.name} is just supported for Linux and Windows")
+ if self.settings.os not in ("Linux", "FreeBSD", "Windows"):
+ raise ConanInvalidConfiguration(f"{self.name} is only supported on Linux and Windows")
compiler = self.settings.compiler
if compiler.get_safe("cppstd"):
check_min_cppstd(self, self._minimum_cpp_standard)
- if compiler in ('gcc', 'clang'):
- if compiler.get_safe("libcxx") != "libstdc++":
- raise ConanInvalidConfiguration(f"only supported {compiler} with libstdc++")
+ if compiler in ("gcc", "clang"):
+ if not compiler.get_safe("libcxx", "").startswith("libstdc++"):
+ raise ConanInvalidConfiguration(f"{self.name} is only supported {compiler} with libstdc++")
min_version = self._minimum_compilers_version.get(str(compiler))
if not min_version:
- self.output.warn(f"{self.name} recipe lacks information about the {compiler} compiler support.")
+ self.output.warning(f"{self.name} recipe lacks information about the {compiler} compiler support.")
else:
if Version(compiler.version) < min_version:
- raise ConanInvalidConfiguration(f"{self.name} requires C++{self._minimum_cpp_standard} support. The current compiler {compiler} {compiler.version} does not support it.")
-
- @property
- def _source_subfolder(self):
- return "source_subfolder"
+ raise ConanInvalidConfiguration(
+ f"{self.name} requires C++{self._minimum_cpp_standard} support. "
+ f"The current compiler {compiler} {compiler.version} does not support it."
+ )
def source(self):
- get(self, **self.conan_data["sources"][self.version], destination=self._source_subfolder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def package(self):
- self.copy("LICENSE", dst="licenses", src=self._source_subfolder)
- self.copy("*.h", dst=os.path.join("include", self.name), src=os.path.join(self._source_subfolder, self.name))
+ copy(self, "LICENSE",
+ dst=os.path.join(self.package_folder, "licenses"),
+ src=self.source_folder)
+ copy(self, "*.h",
+ dst=os.path.join(self.package_folder, "include", self.name),
+ src=os.path.join(self.source_folder, self.name))
+
+ def package_info(self):
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
diff --git a/recipes/cpp_project_framework/all/test_package/CMakeLists.txt b/recipes/cpp_project_framework/all/test_package/CMakeLists.txt
index d3c22a987a39d2..9edc8bb602af7d 100644
--- a/recipes/cpp_project_framework/all/test_package/CMakeLists.txt
+++ b/recipes/cpp_project_framework/all/test_package/CMakeLists.txt
@@ -1,18 +1,14 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(PackageTest CXX)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED True)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
-
-find_package(cpp_project_framework REQUIRED)
-find_package(GTest REQUIRED)
+find_package(cpp_project_framework REQUIRED CONFIG)
+find_package(GTest REQUIRED CONFIG)
add_executable(test_package test_package.cpp)
+target_link_libraries(test_package PRIVATE cpp_project_framework::cpp_project_framework GTest::gtest GTest::gtest_main)
if(UNIX)
- target_link_libraries(test_package cpp_project_framework::cpp_project_framework GTest::gtest GTest::gtest_main stdc++fs)
-else()
- target_link_libraries(test_package cpp_project_framework::cpp_project_framework GTest::gtest GTest::gtest_main)
+ target_link_libraries(test_package PRIVATE stdc++fs)
endif()
diff --git a/recipes/cpp_project_framework/all/test_package/conanfile.py b/recipes/cpp_project_framework/all/test_package/conanfile.py
index ed8a4e73713c64..c31dc0dd89d148 100644
--- a/recipes/cpp_project_framework/all/test_package/conanfile.py
+++ b/recipes/cpp_project_framework/all/test_package/conanfile.py
@@ -1,13 +1,20 @@
from conan import ConanFile
-from conan.tools.build import cross_building
-from conans import CMake
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
-class CppProjectFrameworkTestConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake", "cmake_find_package"
- requires = "gtest/1.10.0"
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+ self.requires("gtest/1.13.0")
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -15,6 +22,6 @@ def build(self):
cmake.build()
def test(self):
- if not cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/cpp_project_framework/all/test_v1_package/CMakeLists.txt b/recipes/cpp_project_framework/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/cpp_project_framework/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/cpp_project_framework/all/test_v1_package/conanfile.py b/recipes/cpp_project_framework/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..0761aa549fc918
--- /dev/null
+++ b/recipes/cpp_project_framework/all/test_v1_package/conanfile.py
@@ -0,0 +1,20 @@
+from conan import ConanFile
+from conan.tools.build import cross_building
+from conans import CMake
+import os
+
+
+class CppProjectFrameworkTestConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+ requires = "gtest/1.13.0"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not cross_building(self):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/cppcommon/all/conanfile.py b/recipes/cppcommon/all/conanfile.py
index c289f88e777b01..4997a9d1cf9fba 100644
--- a/recipes/cppcommon/all/conanfile.py
+++ b/recipes/cppcommon/all/conanfile.py
@@ -62,9 +62,9 @@ def requirements(self):
if Version(self.version) < "1.0.3" or self.version == "cci.20201104":
self.requires("fmt/8.1.1")
else:
- self.requires("fmt/10.0.0")
+ self.requires("fmt/10.1.0")
if self.settings.os == "Linux":
- self.requires("libuuid/1.0.3")
+ self.requires("util-linux-libuuid/2.39")
def validate(self):
if self.settings.compiler.cppstd:
diff --git a/recipes/cppitertools/all/conandata.yml b/recipes/cppitertools/all/conandata.yml
index b8a68ed038695c..03371485048710 100644
--- a/recipes/cppitertools/all/conandata.yml
+++ b/recipes/cppitertools/all/conandata.yml
@@ -1,4 +1,4 @@
sources:
"2.1":
- url: https://github.com/ryanhaining/cppitertools/archive/v2.1.tar.gz
- sha256: f7bcd4531e37083609bb92c3f0ae03b56e7197002d0dc9c695104dcef445f2ab
+ url: "https://github.com/ryanhaining/cppitertools/archive/v2.1.tar.gz"
+ sha256: "f7bcd4531e37083609bb92c3f0ae03b56e7197002d0dc9c695104dcef445f2ab"
diff --git a/recipes/cppitertools/all/conanfile.py b/recipes/cppitertools/all/conanfile.py
index 15118a8925b22e..d59270a8f393ac 100644
--- a/recipes/cppitertools/all/conanfile.py
+++ b/recipes/cppitertools/all/conanfile.py
@@ -1,69 +1,75 @@
import os
from conan import ConanFile
from conan.tools.build import check_min_cppstd
-from conan.tools.files import get, copy, rename
+from conan.tools.files import get, copy
+from conan.tools.layout import basic_layout
from conan.tools.scm import Version
from conan.errors import ConanInvalidConfiguration
-required_conan_version = ">=1.50.0"
+required_conan_version = ">=1.53.0"
class CppItertoolsConan(ConanFile):
name = "cppitertools"
- url = "https://github.com/conan-io/conan-center-index"
- homepage = "https://github.com/ryanhaining/cppitertools"
description = "Implementation of python itertools and builtin iteration functions for C++17"
- topics = ("cpp17", "iter", "itertools")
license = "BSD-2-Clause"
- no_copy_source = True
-
+ url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://github.com/ryanhaining/cppitertools"
+ topics = ("cpp17", "iter", "itertools", "header-only")
+ package_type = "header-library"
settings = "os", "arch", "compiler", "build_type"
- options = {'zip_longest': [True, False]}
- default_options = {'zip_longest': False}
+ options = {
+ 'zip_longest': [True, False],
+ }
+ default_options = {
+ 'zip_longest': False,
+ }
+ no_copy_source = True
@property
- def _source_subfolder(self):
- return "source_subfolder"
-
- def source(self):
- get(self, **self.conan_data["sources"][self.version])
- extracted_dir = self.name + "-" + self.version
- rename(self, extracted_dir, self._source_subfolder)
-
- def validate(self):
- if self.settings.compiler.get_safe("cppstd"):
- check_min_cppstd(self, 17)
+ def _min_cppstd(self):
+ return 17
- minimal_version = {
+ @property
+ def _compilers_minimum_version(self):
+ return {
"Visual Studio": "15",
"msvc": "191",
"gcc": "7",
"clang": "5.0",
"apple-clang": "9.1"
}
- compiler = str(self.settings.compiler)
- compiler_version = Version(self.settings.compiler.version)
-
- if compiler not in minimal_version:
- self.output.info("{} requires a compiler that supports at least C++17".format(self.name))
- return
- # Exclude compilers not supported by cppitertools
- if compiler_version < minimal_version[compiler]:
- raise ConanInvalidConfiguration("{} requires a compiler that supports at least C++17. {} {} is not".format(
- self.name, compiler, Version(self.settings.compiler.version.value)))
+ def layout(self):
+ basic_layout(self, src_folder="src")
def requirements(self):
if self.options.zip_longest:
- self.requires('boost/1.75.0')
+ self.requires('boost/1.83.0')
+
+ def package_id(self):
+ self.info.clear()
+
+ def validate(self):
+ if self.settings.compiler.get_safe("cppstd"):
+ check_min_cppstd(self, self._min_cppstd)
+ minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False)
+ if minimum_version and Version(self.settings.compiler.version) < minimum_version:
+ raise ConanInvalidConfiguration(
+ f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support."
+ )
+
+ def source(self):
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def package(self):
- copy(self, "*.hpp", src=os.path.join(self.source_folder, self._source_subfolder), dst=os.path.join(self.package_folder,"include", "cppitertools"), excludes=('examples/**', 'test/**'))
- copy(self, "LICENSE.md", src=os.path.join(self.source_folder, self._source_subfolder), dst=os.path.join(self.package_folder,"licenses"))
+ copy(self, "LICENSE.md", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
+ copy(self, "*.hpp", src=self.source_folder, dst=os.path.join(self.package_folder, "include", "cppitertools"), excludes=('examples/**', 'test/**'))
+
def package_info(self):
- self.cpp_info.set_property("cmake_file_name", "cppitertools")
- self.cpp_info.set_property("cmake_target_name", "cppitertools::cppitertools")
self.cpp_info.bindirs = []
self.cpp_info.libdirs = []
- def package_id(self):
- self.info.clear()
+
+ self.cpp_info.set_property("cmake_file_name", "cppitertools")
+ self.cpp_info.set_property("cmake_target_name", "cppitertools::cppitertools")
+
diff --git a/recipes/cppitertools/all/test_package/CMakeLists.txt b/recipes/cppitertools/all/test_package/CMakeLists.txt
index 39161129005c36..18b263b57ca6f8 100644
--- a/recipes/cppitertools/all/test_package/CMakeLists.txt
+++ b/recipes/cppitertools/all/test_package/CMakeLists.txt
@@ -1,14 +1,14 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package CXX)
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES CXX)
find_package(cppitertools REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
-target_link_libraries(${PROJECT_NAME} cppitertools::cppitertools)
-set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 17)
+target_link_libraries(${PROJECT_NAME} PRIVATE cppitertools::cppitertools)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
if(ZIP_LONGEST)
add_executable(test_zip_longest test_zip_longest.cpp)
- target_link_libraries(test_zip_longest cppitertools::cppitertools)
- set_property(TARGET test_zip_longest PROPERTY CXX_STANDARD 17)
+ target_link_libraries(test_zip_longest PRIVATE cppitertools::cppitertools)
+ target_compile_features(test_zip_longest PRIVATE cxx_std_17)
endif()
diff --git a/recipes/cppitertools/all/test_package/conanfile.py b/recipes/cppitertools/all/test_package/conanfile.py
index 758d48b5853bac..fac50abb3d577a 100644
--- a/recipes/cppitertools/all/test_package/conanfile.py
+++ b/recipes/cppitertools/all/test_package/conanfile.py
@@ -7,6 +7,7 @@
class TestPackageConan(ConanFile):
settings = "os", "compiler", "build_type", "arch"
+ test_type = "explicit"
def generate(self):
tc = CMakeToolchain(self)
diff --git a/recipes/cpprestsdk/all/conanfile.py b/recipes/cpprestsdk/all/conanfile.py
index 9f8dbc8d6fec8b..0383ff59b8cacf 100644
--- a/recipes/cpprestsdk/all/conanfile.py
+++ b/recipes/cpprestsdk/all/conanfile.py
@@ -57,7 +57,7 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("boost/1.81.0")
+ self.requires("boost/1.83.0")
self.requires("openssl/[>=1.1 <4]")
if self.options.with_compression:
self.requires("zlib/1.2.13")
diff --git a/recipes/cprocessing/all/conanfile.py b/recipes/cprocessing/all/conanfile.py
index f1d8d20922d764..c9ae209b2576ff 100644
--- a/recipes/cprocessing/all/conanfile.py
+++ b/recipes/cprocessing/all/conanfile.py
@@ -1,33 +1,45 @@
-from conans import ConanFile, tools
-from conans.tools import ConanInvalidConfiguration
import os
import re
-required_conan_version = ">=1.43.0"
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import check_min_cppstd
+from conan.tools.files import copy, get, load, replace_in_file, save
+from conan.tools.layout import basic_layout
+from conan.tools.scm import Version
+
+required_conan_version = ">=1.52.0"
+
class CProcessingConan(ConanFile):
name = "cprocessing"
- description = "Processsing programming for C++ "
+ description = "Processing programming for C++ "
license = "MIT"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/maksmakuta/CProcessing"
- topics = ("processing", "opengl", "sketch")
+ topics = ("processing", "opengl", "sketch", "header-only")
+
+ package_type = "header-library"
settings = "os", "arch", "compiler", "build_type"
+ no_copy_source = True
@property
- def _source_subfolder(self):
- return "source_subfolder"
+ def _min_cppstd(self):
+ return 20
@property
def _compilers_minimum_version(self):
return {
- "gcc": "9",
- "Visual Studio": "16.2",
- "msvc": "19.22",
- "clang": "10",
- "apple-clang": "11"
+ "gcc": "9",
+ "Visual Studio": "16.2",
+ "msvc": "19.22",
+ "clang": "10",
+ "apple-clang": "11",
}
+ def layout(self):
+ basic_layout(self, src_folder="src")
+
def requirements(self):
self.requires("glfw/3.3.7")
self.requires("glm/0.9.9.8")
@@ -36,44 +48,39 @@ def requirements(self):
self.requires("opengl/system")
def package_id(self):
- self.info.header_only()
+ self.info.clear()
def validate(self):
if self.settings.compiler.get_safe("cppstd"):
- tools.check_min_cppstd(self, 20)
-
- def lazy_lt_semver(v1, v2):
- lv1 = [int(v) for v in v1.split(".")]
- lv2 = [int(v) for v in v2.split(".")]
- min_length = min(len(lv1), len(lv2))
- return lv1[:min_length] < lv2[:min_length]
-
- compiler_version = str(self.settings.compiler.version)
-
+ check_min_cppstd(self, self._min_cppstd)
minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False)
- if not minimum_version:
- self.output.warn("{} requires C++20. Your compiler is unknown. Assuming it supports C++20.".format(self.name))
- elif lazy_lt_semver(compiler_version, minimum_version):
- raise ConanInvalidConfiguration("{} requires some C++20 features,".format(self.name))
+ if minimum_version and Version(self.settings.compiler.version) < minimum_version:
+ raise ConanInvalidConfiguration(
+ f"{self.ref} requires some C++{self._min_cppstd} features, which your compiler does not support."
+ )
def source(self):
- tools.get(**self.conan_data["sources"][self.version], strip_root=True,
- destination=self._source_subfolder)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def build(self):
- tools.replace_in_file(os.path.join(self._source_subfolder, "lib", "PImage.h"),
- "stb/stb_image.h",
- "stb_image.h")
-
- def package(self):
- self.copy("*.h", "include", os.path.join(self._source_subfolder, "lib"))
+ replace_in_file(self, os.path.join(self.source_folder, "lib", "PImage.h"), "stb/stb_image.h", "stb_image.h")
+ def _extract_license(self):
# Extract the License/s from README.md to a file
- tmp = tools.load(os.path.join(self._source_subfolder, "README.md"))
+ tmp = load(self, os.path.join(self.source_folder, "README.md"))
license_contents = re.search("(## Author.*)", tmp, re.DOTALL)[1]
- tools.save(os.path.join(self.package_folder, "licenses", "LICENSE.md"), license_contents)
+ save(self, os.path.join(self.package_folder, "licenses", "LICENSE.md"), license_contents)
+
+ def package(self):
+ self._extract_license()
+ copy(self, "*.h",
+ dst=os.path.join(self.package_folder, "include"),
+ src=os.path.join(self.source_folder, "lib"))
def package_info(self):
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
+
self.cpp_info.set_property("cmake_file_name", "CProcessing")
self.cpp_info.set_property("cmake_target_name", "CProcessing::CProcessing")
diff --git a/recipes/cprocessing/all/test_package/CMakeLists.txt b/recipes/cprocessing/all/test_package/CMakeLists.txt
index 05121b9bfe4148..eeeb2f9006cc86 100644
--- a/recipes/cprocessing/all/test_package/CMakeLists.txt
+++ b/recipes/cprocessing/all/test_package/CMakeLists.txt
@@ -1,9 +1,6 @@
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.15)
project(test_package CXX)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
-
find_package(CProcessing REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
diff --git a/recipes/cprocessing/all/test_package/conanfile.py b/recipes/cprocessing/all/test_package/conanfile.py
index 51cf79f1d6887b..ef5d7042163ecc 100644
--- a/recipes/cprocessing/all/test_package/conanfile.py
+++ b/recipes/cprocessing/all/test_package/conanfile.py
@@ -1,10 +1,19 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
class TestPackageConan(ConanFile):
settings = "os", "arch", "compiler", "build_type"
- generators = "cmake", "cmake_find_package_multi"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -12,7 +21,6 @@ def build(self):
cmake.build()
def test(self):
- test_file = os.path.join("bin", "test_package")
- if self.settings.os == "Windows":
- test_file += ".exe"
- assert os.path.exists(test_file)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/cprocessing/all/test_package/test_package.cpp b/recipes/cprocessing/all/test_package/test_package.cpp
index 479e221b8ea06e..e8aaee04efe2bf 100644
--- a/recipes/cprocessing/all/test_package/test_package.cpp
+++ b/recipes/cprocessing/all/test_package/test_package.cpp
@@ -6,67 +6,74 @@
* Part 2: https://youtube.com/shorts/IS6_apBewlI
*/
+// Disable the main function from from processing.h
+// to disable the interactive GUI for the purposes of this test
+#define main _main
#include
+#undef main
float speed;
-class Star{
+class Star {
private:
- float x,y,z,pz;
+ float x, y, z, pz;
+
public:
- Star(){
- this->x = random(-width,width);
- this->y = random(-height,height);
- this->z = random(width);
- this->pz = z;
+ Star() {
+ this->x = random(-width, width);
+ this->y = random(-height, height);
+ this->z = random(width);
+ this->pz = z;
}
- void update(){
- this->z -= speed;
- if(this->z < 1.f){
- this->z = width;
- this->x = random(-width,width);
- this->y = random(-height,height);
- this->pz = z;
- }
+ void update() {
+ this->z -= speed;
+ if (this->z < 1.f) {
+ this->z = width;
+ this->x = random(-width, width);
+ this->y = random(-height, height);
+ this->pz = z;
+ }
}
- void show(){
- fill(255);
+ void show() {
+ fill(255);
- float sx = map(this->x / this->z,0,1,0, width);
- float sy = map(this->y / this->z,0,1,0,height);
+ float sx = map(this->x / this->z, 0, 1, 0, width);
+ float sy = map(this->y / this->z, 0, 1, 0, height);
- float r = map(this->z,0,width,16,0);
- circle(sx,sy,r);
+ float r = map(this->z, 0, width, 16, 0);
+ circle(sx, sy, r);
- float zx = map(this->x / this->pz,0,1,0, width);
- float zy = map(this->y / this->pz,0,1,0,height);
+ float zx = map(this->x / this->pz, 0, 1, 0, width);
+ float zy = map(this->y / this->pz, 0, 1, 0, height);
- this->pz = z;
+ this->pz = z;
- stroke(255);
- line(zx,zy,sx,sy);
+ stroke(255);
+ line(zx, zy, sx, sy);
}
-
};
std::vector stars;
-void setup(){
- size(640,480);
- for(int a = 0;a < 100;a++)
- stars.push_back(Star());
+void setup() {
+ size(640, 480);
+ for (int a = 0; a < 100; a++)
+ stars.push_back(Star());
}
-void draw(){
- speed = map(mouseX,0,width,0.f,50.f);
- background(0);
- translate(width/2,height/2);
+void draw() {
+ speed = map(mouseX, 0, width, 0.f, 50.f);
+ background(0);
+ translate(width / 2, height / 2);
- for(int a = 0;a < stars.size();a++){
- stars[a].update();
- stars[a].show();
- }
+ for (int a = 0; a < stars.size(); a++) {
+ stars[a].update();
+ stars[a].show();
+ }
+}
+int main() {
+ return 0;
}
diff --git a/recipes/cprocessing/all/test_v1_package/CMakeLists.txt b/recipes/cprocessing/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/cprocessing/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/cprocessing/all/test_v1_package/conanfile.py b/recipes/cprocessing/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..51cf79f1d6887b
--- /dev/null
+++ b/recipes/cprocessing/all/test_v1_package/conanfile.py
@@ -0,0 +1,18 @@
+from conans import ConanFile, CMake, tools
+import os
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ test_file = os.path.join("bin", "test_package")
+ if self.settings.os == "Windows":
+ test_file += ".exe"
+ assert os.path.exists(test_file)
diff --git a/recipes/cpuinfo/all/conandata.yml b/recipes/cpuinfo/all/conandata.yml
index 6231a9e8c3b977..56ce9c275f3d91 100644
--- a/recipes/cpuinfo/all/conandata.yml
+++ b/recipes/cpuinfo/all/conandata.yml
@@ -1,4 +1,10 @@
sources:
+ "cci.20230118":
+ url: "https://github.com/pytorch/cpuinfo/archive/3dc310302210c1891ffcfb12ae67b11a3ad3a150.tar.gz"
+ sha256: "f2f4df6d2b01036f36c5e372954e536881cdd59f5c2461c67aa0a92c6d755c61"
+ "cci.20220618":
+ url: "https://github.com/pytorch/cpuinfo/archive/082deffc80ce517f81dc2f3aebe6ba671fcd09c9.tar.gz"
+ sha256: "4379348ec3127b37e854a0a66f85ea1d3c606e5f3a6dce235dc9c69ce663c026"
"cci.20220228":
url: "https://github.com/pytorch/cpuinfo/archive/6288930068efc8dff4f3c0b95f062fc5ddceba04.tar.gz"
sha256: "9e9e937b3569320d23d8b1c8c26ed3603affe55c3e4a3e49622e8a2c6d6e1696"
diff --git a/recipes/cpuinfo/all/conanfile.py b/recipes/cpuinfo/all/conanfile.py
index 3a1f62573cb435..d109a4b7e8b2ff 100644
--- a/recipes/cpuinfo/all/conanfile.py
+++ b/recipes/cpuinfo/all/conanfile.py
@@ -65,9 +65,10 @@ def generate(self):
tc.generate()
def _patch_sources(self):
- replace_in_file(self, os.path.join(self.source_folder, "CMakeLists.txt"),
- "SET_PROPERTY(TARGET clog PROPERTY POSITION_INDEPENDENT_CODE ON)",
- "")
+ if self.version < "cci.20230118":
+ replace_in_file(self, os.path.join(self.source_folder, "CMakeLists.txt"),
+ "SET_PROPERTY(TARGET clog PROPERTY POSITION_INDEPENDENT_CODE ON)",
+ "")
def build(self):
self._patch_sources()
@@ -80,9 +81,19 @@ def package(self):
cmake = CMake(self)
cmake.install()
rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
+ rmdir(self, os.path.join(self.package_folder, "share"))
def package_info(self):
self.cpp_info.set_property("pkg_config_name", "libcpuinfo")
- self.cpp_info.libs = ["cpuinfo", "clog"]
+
+ if self.version < "cci.20230118":
+ self.cpp_info.components["clog"].libs = ["clog"]
+ cpuinfo_clog_target = "clog" if self.version < "cci.20220618" else "cpuinfo::clog"
+ self.cpp_info.components["clog"].set_property("cmake_target_name", cpuinfo_clog_target)
+
+ self.cpp_info.components["cpuinfo"].set_property("cmake_target_name", "cpuinfo::cpuinfo")
+ self.cpp_info.components["cpuinfo"].libs = ["cpuinfo"]
+ if self.version < "cci.20230118":
+ self.cpp_info.components["cpuinfo"].requires = ["clog"]
if self.settings.os in ["Linux", "FreeBSD"]:
- self.cpp_info.system_libs = ["pthread"]
+ self.cpp_info.components["cpuinfo"].system_libs.append("pthread")
diff --git a/recipes/cpuinfo/all/test_package/CMakeLists.txt b/recipes/cpuinfo/all/test_package/CMakeLists.txt
index f7fd88969d977e..96ba94c8edef55 100644
--- a/recipes/cpuinfo/all/test_package/CMakeLists.txt
+++ b/recipes/cpuinfo/all/test_package/CMakeLists.txt
@@ -4,5 +4,11 @@ project(test_package LANGUAGES C)
find_package(cpuinfo REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.c)
-target_link_libraries(${PROJECT_NAME} PRIVATE cpuinfo::cpuinfo)
+if ((${CPUINFO_VERSION} GREATER_EQUAL "20220618") AND (${CPUINFO_VERSION} LESS "20230118"))
+ # in that version range cpuinfo exposed cpuinfo::clog. Check that is available through conan recipe
+ target_link_libraries(${PROJECT_NAME} PRIVATE cpuinfo::cpuinfo cpuinfo::clog)
+else ()
+ target_link_libraries(${PROJECT_NAME} PRIVATE cpuinfo::cpuinfo)
+endif()
+
target_compile_features(${PROJECT_NAME} PRIVATE c_std_99)
diff --git a/recipes/cpuinfo/all/test_package/conanfile.py b/recipes/cpuinfo/all/test_package/conanfile.py
index 0a6bc68712d901..2690818e475701 100644
--- a/recipes/cpuinfo/all/test_package/conanfile.py
+++ b/recipes/cpuinfo/all/test_package/conanfile.py
@@ -1,12 +1,12 @@
from conan import ConanFile
from conan.tools.build import can_run
-from conan.tools.cmake import CMake, cmake_layout
+from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
import os
class TestPackageConan(ConanFile):
settings = "os", "arch", "compiler", "build_type"
- generators = "CMakeToolchain", "CMakeDeps", "VirtualRunEnv"
+ generators = "CMakeDeps", "VirtualRunEnv"
test_type = "explicit"
def layout(self):
@@ -15,6 +15,11 @@ def layout(self):
def requirements(self):
self.requires(self.tested_reference_str)
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["CPUINFO_VERSION"] = str(self.dependencies["cpuinfo"].ref.version).split('.')[1]
+ tc.generate()
+
def build(self):
cmake = CMake(self)
cmake.configure()
diff --git a/recipes/cpuinfo/all/test_v1_package/conanfile.py b/recipes/cpuinfo/all/test_v1_package/conanfile.py
index 38f4483872d47f..ea57bb8b3a514c 100644
--- a/recipes/cpuinfo/all/test_v1_package/conanfile.py
+++ b/recipes/cpuinfo/all/test_v1_package/conanfile.py
@@ -8,6 +8,7 @@ class TestPackageConan(ConanFile):
def build(self):
cmake = CMake(self)
+ cmake.definitions["CPUINFO_VERSION"] = self.deps_cpp_info["cpuinfo"].version.split('.')[1]
cmake.configure()
cmake.build()
diff --git a/recipes/cpuinfo/config.yml b/recipes/cpuinfo/config.yml
index a6383a8ac8924b..8e98d8506c888d 100644
--- a/recipes/cpuinfo/config.yml
+++ b/recipes/cpuinfo/config.yml
@@ -1,4 +1,8 @@
versions:
+ "cci.20230118":
+ folder: all
+ "cci.20220618":
+ folder: all
"cci.20220228":
folder: all
"cci.20201217":
diff --git a/recipes/csvmonkey/all/conanfile.py b/recipes/csvmonkey/all/conanfile.py
index 49542ed86e55ce..821a19ed460963 100644
--- a/recipes/csvmonkey/all/conanfile.py
+++ b/recipes/csvmonkey/all/conanfile.py
@@ -14,7 +14,8 @@ class CSVMONEKYConan(ConanFile):
license = "BSD-3-Clause"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/dw/csvmonkey/"
- topics = ("csv-parser", "header-only", "vectorized")
+ topics = ("csv-parser", "header-only", "vectorized", "header-only")
+ package_type = "header-library"
settings = "os", "arch", "compiler", "build_type"
options = {
"with_spirit": [True, False],
@@ -33,7 +34,7 @@ def layout(self):
def requirements(self):
if self.options.with_spirit:
- self.requires("boost/1.81.0")
+ self.requires("boost/1.83.0")
def package_id(self):
self.info.clear()
diff --git a/recipes/ctre/all/conandata.yml b/recipes/ctre/all/conandata.yml
index 0cbb6fc297fa12..84177523424ed2 100644
--- a/recipes/ctre/all/conandata.yml
+++ b/recipes/ctre/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "3.8":
+ url: "https://github.com/hanickadot/compile-time-regular-expressions/archive/v3.8.tar.gz"
+ sha256: "6462ee41fa6aa12075f6b9d13f42358091d32963087443a6669d2c94232eea04"
"3.7.2":
url: "https://github.com/hanickadot/compile-time-regular-expressions/archive/v3.7.2.tar.gz"
sha256: "0711a6f97496e010f72adab69839939a9e50ba35ad87779e422ae3ff3b0edfc3"
diff --git a/recipes/ctre/all/conanfile.py b/recipes/ctre/all/conanfile.py
index 4a9068c2ee4fea..7170bf3ad64257 100644
--- a/recipes/ctre/all/conanfile.py
+++ b/recipes/ctre/all/conanfile.py
@@ -17,6 +17,7 @@ class CtreConan(ConanFile):
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/hanickadot/compile-time-regular-expressions"
topics = ("cpp17", "regex", "compile-time-regular-expressions", "header-only")
+ package_type = "header-library"
settings = "os", "arch", "compiler", "build_type"
no_copy_source = True
@@ -38,8 +39,11 @@ def validate(self):
raise ConanInvalidConfiguration(f"{self.ref} doesn't support MSVC < 16")
elif compiler == "gcc" and compiler_version < min_gcc:
raise ConanInvalidConfiguration(f"{self.ref} doesn't support gcc < {min_gcc}")
- elif compiler == "clang" and compiler_version < "6.0":
- raise ConanInvalidConfiguration(f"{self.ref} doesn't support clang < 6.0")
+ elif compiler == "clang":
+ if compiler_version < "6.0":
+ raise ConanInvalidConfiguration(f"{self.ref} doesn't support clang < 6.0")
+ if ctre_version == "3.4.1" and compiler_version >= "12.0" and not self.settings.compiler.get_safe("cppstd"):
+ raise ConanInvalidConfiguration(f"{self.ref} doesn't support clang >= 12.0 without cppstd. Please set cppstd.")
elif compiler == "apple-clang":
if compiler_version < "10.0":
raise ConanInvalidConfiguration(f"{self.ref} doesn't support Apple clang < 10.0")
@@ -53,7 +57,7 @@ def package_id(self):
self.info.clear()
def source(self):
- get(self, **self.conan_data["sources"][self.version], destination=self.source_folder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def package(self):
copy(self, pattern="*.hpp", src=os.path.join(self.source_folder, "include"), dst=os.path.join(self.package_folder, "include"))
diff --git a/recipes/ctre/config.yml b/recipes/ctre/config.yml
index 791985db544208..e8d08c6a4805a3 100644
--- a/recipes/ctre/config.yml
+++ b/recipes/ctre/config.yml
@@ -1,4 +1,6 @@
versions:
+ "3.8":
+ folder: all
"3.7.2":
folder: all
"3.7.1":
diff --git a/recipes/cubicinterpolation/all/CMakeLists.txt b/recipes/cubicinterpolation/all/CMakeLists.txt
deleted file mode 100644
index 0ed622c3eb5d7a..00000000000000
--- a/recipes/cubicinterpolation/all/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-cmake_minimum_required(VERSION 3.1)
-project(cmake_wrapper)
-
-include(conanbuildinfo.cmake)
-conan_basic_setup(KEEP_RPATH)
-
-add_subdirectory("source_subfolder")
diff --git a/recipes/cubicinterpolation/all/conanfile.py b/recipes/cubicinterpolation/all/conanfile.py
index 722cbaa5424a18..2525795c99b747 100644
--- a/recipes/cubicinterpolation/all/conanfile.py
+++ b/recipes/cubicinterpolation/all/conanfile.py
@@ -11,10 +11,10 @@
class CubicInterpolationConan(ConanFile):
name = "cubicinterpolation"
- homepage = "https://github.com/MaxSac/cubic_interpolation"
+ description = "Leightweight interpolation library based on boost and eigen."
license = "MIT"
+ homepage = "https://github.com/MaxSac/cubic_interpolation"
url = "https://github.com/conan-io/conan-center-index"
- description = "Leightweight interpolation library based on boost and eigen."
topics = ("interpolation", "splines", "cubic", "bicubic", "boost", "eigen3")
package_type = "library"
settings = "os", "arch", "compiler", "build_type"
@@ -27,8 +27,6 @@ class CubicInterpolationConan(ConanFile):
"fPIC": True,
}
- _cmake = None
-
def export_sources(self):
export_conandata_patches(self)
@@ -45,15 +43,14 @@ def layout(self):
def requirements(self):
# TODO: update boost dependency as soon as we deprecate conan1.x (see discussion in #11207)
- self.requires("boost/1.75.0")
- self.requires("eigen/3.3.9")
+ self.requires("boost/1.83.0")
+ self.requires("eigen/3.4.0")
@property
def _required_boost_components(self):
return ["filesystem", "math", "serialization"]
def validate(self):
-
miss_boost_required_comp = any(getattr(self.dependencies["boost"].options, f"without_{boost_comp}", True) for boost_comp in self._required_boost_components)
if self.dependencies["boost"].options.header_only or miss_boost_required_comp:
raise ConanInvalidConfiguration(
@@ -64,7 +61,7 @@ def validate(self):
if self.settings.compiler.get_safe("cppstd"):
check_min_cppstd(self, "14")
- if not check_min_vs(self, 192, raise_invalid=False):
+ if not check_min_vs(self, 192, raise_invalid=False):
raise ConanInvalidConfiguration(f"{self.ref} currently Visual Studio < 2019 not yet supported in this recipe. Contributions are welcome")
if is_msvc(self) and self.options.shared:
@@ -74,7 +71,7 @@ def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)
def generate(self):
- tc = CMakeToolchain(self)
+ tc = CMakeToolchain(self)
tc.variables["BUILD_EXAMPLE"] = False
tc.variables["BUILD_DOCUMENTATION"] = False
tc.generate()
diff --git a/recipes/cubicinterpolation/all/test_package/CMakeLists.txt b/recipes/cubicinterpolation/all/test_package/CMakeLists.txt
index b98fa443a53683..0ce4681457d9e3 100644
--- a/recipes/cubicinterpolation/all/test_package/CMakeLists.txt
+++ b/recipes/cubicinterpolation/all/test_package/CMakeLists.txt
@@ -1,8 +1,8 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.8)
project(test_package LANGUAGES CXX)
find_package(CubicInterpolation REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
-target_link_libraries(${PROJECT_NAME} CubicInterpolation::CubicInterpolation)
-set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 14)
+target_link_libraries(${PROJECT_NAME} PRIVATE CubicInterpolation::CubicInterpolation)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_14)
diff --git a/recipes/cubicinterpolation/config.yml b/recipes/cubicinterpolation/config.yml
index 5185d65a2df905..5c83127c63d755 100644
--- a/recipes/cubicinterpolation/config.yml
+++ b/recipes/cubicinterpolation/config.yml
@@ -1,6 +1,6 @@
versions:
"0.1.5":
- folder: all
+ folder: all
"0.1.4":
folder: all
"0.1.3":
diff --git a/recipes/cuda-samples/all/conandata.yml b/recipes/cuda-samples/all/conandata.yml
new file mode 100644
index 00000000000000..0fc2e78f080c82
--- /dev/null
+++ b/recipes/cuda-samples/all/conandata.yml
@@ -0,0 +1,10 @@
+sources:
+ "12.2":
+ url: "https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v12.2.tar.gz"
+ sha256: "c9fbdee420fd4567edb1239420e2a5c93d9652b4ccf3a828fcb3e0de3152e466"
+ "11.8":
+ url: "https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v11.8.tar.gz"
+ sha256: "1bc02c0ca42a323f3c7a05b5682eae703681a91e95b135bfe81f848b2d6a2c51"
+ "10.2":
+ url: "https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v10.2.tar.gz"
+ sha256: "f3d224dcc7028d055617360b481947c27346d87dd1ccfbdd134ab24648c084e8"
diff --git a/recipes/cuda-samples/all/conanfile.py b/recipes/cuda-samples/all/conanfile.py
new file mode 100644
index 00000000000000..aa2ee3b794d8a8
--- /dev/null
+++ b/recipes/cuda-samples/all/conanfile.py
@@ -0,0 +1,51 @@
+import os
+
+from conan import ConanFile
+from conan.tools.files import copy, get, rmdir
+from conan.tools.layout import basic_layout
+
+required_conan_version = ">=1.52.0"
+
+
+class CudaSamplesConan(ConanFile):
+ name = "cuda-samples"
+ description = ("Common headers from NVIDIA CUDA Samples - "
+ "samples for CUDA developers which demonstrate features in CUDA Toolkit")
+ license = "BSD-3-Clause"
+ url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://github.com/NVIDIA/cuda-samples"
+ topics = ("cuda", "cuda-kernels", "cuda-driver-api", "cuda-opengl", "nvcudasamples")
+
+ package_type = "header-library"
+ settings = "os", "arch", "compiler", "build_type"
+ no_copy_source = True
+
+ def layout(self):
+ basic_layout(self, src_folder="src")
+
+ def package_id(self):
+ self.info.clear()
+
+ def source(self):
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+ # Package only headers under Common/ folder
+ rmdir(self, os.path.join(self.source_folder, "Samples"))
+ rmdir(self, os.path.join(self.source_folder, "bin"))
+ # Skip GL headers and precompiled libs, since these should be provided by separate Conan packages
+ rmdir(self, os.path.join(self.source_folder, "Common", "GL"))
+ rmdir(self, os.path.join(self.source_folder, "Common", "lib"))
+ rmdir(self, os.path.join(self.source_folder, "Common", "data"))
+
+ def build(self):
+ pass
+
+ def package(self):
+ copy(self, "LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ copy(self, "*",
+ dst=os.path.join(self.package_folder, "include", "Common"),
+ src=os.path.join(self.source_folder, "Common"))
+
+ def package_info(self):
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
+ self.cpp_info.includedirs.append(os.path.join("include", "Common"))
diff --git a/recipes/cuda-samples/all/test_package/CMakeLists.txt b/recipes/cuda-samples/all/test_package/CMakeLists.txt
new file mode 100644
index 00000000000000..fc3bd6fda4c9c5
--- /dev/null
+++ b/recipes/cuda-samples/all/test_package/CMakeLists.txt
@@ -0,0 +1,7 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES CXX)
+
+find_package(cuda-samples REQUIRED CONFIG)
+
+add_executable(${PROJECT_NAME} test_package.cpp)
+target_link_libraries(${PROJECT_NAME} PRIVATE cuda-samples::cuda-samples)
diff --git a/recipes/cuda-samples/all/test_package/conanfile.py b/recipes/cuda-samples/all/test_package/conanfile.py
new file mode 100644
index 00000000000000..3a91c9439218e3
--- /dev/null
+++ b/recipes/cuda-samples/all/test_package/conanfile.py
@@ -0,0 +1,26 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
+import os
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def layout(self):
+ cmake_layout(self)
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/cuda-samples/all/test_package/test_package.cpp b/recipes/cuda-samples/all/test_package/test_package.cpp
new file mode 100644
index 00000000000000..041e701c086ac5
--- /dev/null
+++ b/recipes/cuda-samples/all/test_package/test_package.cpp
@@ -0,0 +1,16 @@
+#include
+#include
+
+// One of the few non-CUDA-specific headers in the CUDA Samples.
+#include "helper_string.h"
+
+
+int main() {
+ char file[] = "hello_world.jpg";
+ char *ext = NULL;
+ getFileExtension(file, &ext);
+
+ std::cout << "getFileExtension(\"" << file << "\") returned \"" << ext << "\"." << std::endl;
+
+ return EXIT_SUCCESS;
+}
diff --git a/recipes/cuda-samples/config.yml b/recipes/cuda-samples/config.yml
new file mode 100644
index 00000000000000..0cc56090a313f6
--- /dev/null
+++ b/recipes/cuda-samples/config.yml
@@ -0,0 +1,7 @@
+versions:
+ "12.2":
+ folder: all
+ "11.8":
+ folder: all
+ "10.2":
+ folder: all
diff --git a/recipes/czmq/all/conanfile.py b/recipes/czmq/all/conanfile.py
index 88618f4797ed7c..1ea4a28e1852a5 100644
--- a/recipes/czmq/all/conanfile.py
+++ b/recipes/czmq/all/conanfile.py
@@ -62,7 +62,7 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("zeromq/4.3.4")
+ self.requires("zeromq/4.3.4", transitive_headers=True)
if self.options.get_safe("with_libmicrohttpd"):
self.requires("libmicrohttpd/0.9.75")
if self.options.get_safe("with_libcurl"):
@@ -70,7 +70,7 @@ def requirements(self):
if self.options.with_lz4:
self.requires("lz4/1.9.4")
if self.options.get_safe("with_libuuid"):
- self.requires("libuuid/1.0.3")
+ self.requires("util-linux-libuuid/2.39")
if self.options.get_safe("with_systemd"):
self.requires("libsystemd/252.4")
diff --git a/recipes/dacap-clip/all/conandata.yml b/recipes/dacap-clip/all/conandata.yml
index daa1ee060995e7..19103af57600db 100644
--- a/recipes/dacap-clip/all/conandata.yml
+++ b/recipes/dacap-clip/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.6":
+ url: "https://github.com/dacap/clip/archive/refs/tags/v1.6.tar.gz"
+ sha256: "fc37319775ec1b6a75475b46696f5014418d90676359b96b894f646241dcbb7e"
"1.5":
url: "https://github.com/dacap/clip/archive/refs/tags/v1.5.tar.gz"
sha256: "8f6f8a427075a09011fafbb75bfdbf1213e4492a13cff4a70975aab361c99382"
diff --git a/recipes/dacap-clip/all/conanfile.py b/recipes/dacap-clip/all/conanfile.py
index e2bd672a9b3d1b..c4021d403c55f7 100644
--- a/recipes/dacap-clip/all/conanfile.py
+++ b/recipes/dacap-clip/all/conanfile.py
@@ -8,7 +8,7 @@
from conan.tools.apple import is_apple_os
from conan.tools.build import check_min_cppstd
-required_conan_version = ">=1.51.3"
+required_conan_version = ">=1.53.0"
class DacapClipConan(ConanFile):
name = "dacap-clip"
@@ -17,6 +17,7 @@ class DacapClipConan(ConanFile):
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/dacap/clip/"
topics = ("clipboard", "copy", "paste")
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
@@ -29,8 +30,9 @@ class DacapClipConan(ConanFile):
"with_png": True,
}
- def export_sources(self):
- copy(self, "CMakeLists.txt", self.recipe_folder, self.export_sources_folder)
+ @property
+ def _min_cppstd(self):
+ return 11
def config_options(self):
if self.settings.os == "Windows":
@@ -38,10 +40,7 @@ def config_options(self):
def configure(self):
if self.options.shared:
- try:
- del self.options.fPIC
- except Exception:
- pass
+ self.options.rm_safe("fPIC")
if self.settings.os not in ["Linux", "FreeBSD"]:
del self.options.with_png
@@ -56,12 +55,12 @@ def requirements(self):
def validate(self):
if self.info.settings.compiler.cppstd:
- check_min_cppstd(self, 11)
+ check_min_cppstd(self, self._min_cppstd)
if is_msvc(self) and self.info.settings.build_type == "Debug" and self.info.options.shared == True:
raise ConanInvalidConfiguration(f"{self.ref} doesn't support MSVC debug shared build (now).")
def source(self):
- get(self, **self.conan_data["sources"][self.version], strip_root=True, destination=self.source_folder)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def generate(self):
toolchain = CMakeToolchain(self)
diff --git a/recipes/dacap-clip/all/test_package/CMakeLists.txt b/recipes/dacap-clip/all/test_package/CMakeLists.txt
index 63e11b22a301b2..39137234722695 100644
--- a/recipes/dacap-clip/all/test_package/CMakeLists.txt
+++ b/recipes/dacap-clip/all/test_package/CMakeLists.txt
@@ -1,8 +1,8 @@
cmake_minimum_required(VERSION 3.8)
-project(test_package CXX)
+project(test_package LANGUAGES CXX)
find_package(clip REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
-target_link_libraries(${PROJECT_NAME} clip::clip)
+target_link_libraries(${PROJECT_NAME} PRIVATE clip::clip)
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
diff --git a/recipes/dacap-clip/config.yml b/recipes/dacap-clip/config.yml
index 84f49b28508708..68f5d1fe1295a3 100644
--- a/recipes/dacap-clip/config.yml
+++ b/recipes/dacap-clip/config.yml
@@ -1,3 +1,5 @@
versions:
+ "1.6":
+ folder: "all"
"1.5":
folder: "all"
diff --git a/recipes/date/all/conanfile.py b/recipes/date/all/conanfile.py
index a42b06fc8f951c..16a2a092edd68d 100644
--- a/recipes/date/all/conanfile.py
+++ b/recipes/date/all/conanfile.py
@@ -53,7 +53,7 @@ def layout(self):
def requirements(self):
if not self.options.header_only and not self.options.use_system_tz_db:
- self.requires("libcurl/8.0.1")
+ self.requires("libcurl/8.2.1")
def package_id(self):
if self.info.options.header_only:
@@ -138,3 +138,4 @@ def package_info(self):
self.cpp_info.components["date-tz"].defines.extend(defines)
else:
self.cpp_info.defines.append("DATE_HEADER_ONLY")
+ self.cpp_info.libdirs = []
diff --git a/recipes/dav1d/all/conandata.yml b/recipes/dav1d/all/conandata.yml
index 960fc25c0f85a4..7841b712b35c99 100644
--- a/recipes/dav1d/all/conandata.yml
+++ b/recipes/dav1d/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.2.1":
+ url: "http://ftp.videolan.org/pub/videolan/dav1d/1.2.1/dav1d-1.2.1.tar.xz"
+ sha256: "4e33eb61ec54c768a16da0cf8fa0928b4c4593f5f804a3c887d4a21c318340b2"
"1.1.0":
url: "http://ftp.videolan.org/pub/videolan/dav1d/1.1.0/dav1d-1.1.0.tar.xz"
sha256: "fb57aae7875f28c30fb3dbae4a3683d27e2f91dde09ce5c60c22cef9bc58dfd1"
diff --git a/recipes/dav1d/config.yml b/recipes/dav1d/config.yml
index 1807dabd0bac46..2ef77329e43db9 100644
--- a/recipes/dav1d/config.yml
+++ b/recipes/dav1d/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.2.1":
+ folder: "all"
"1.1.0":
folder: "all"
"1.0.0":
diff --git a/recipes/daw_header_libraries/all/conandata.yml b/recipes/daw_header_libraries/all/conandata.yml
index 29376e7702ee0c..f07d3ecdd0bdb8 100644
--- a/recipes/daw_header_libraries/all/conandata.yml
+++ b/recipes/daw_header_libraries/all/conandata.yml
@@ -1,4 +1,10 @@
sources:
+ "2.96.1":
+ url: "https://github.com/beached/header_libraries/archive/v2.96.1.tar.gz"
+ sha256: "2a9a5c33baa9e3adc1d82fa13a56522638af13cc39372a0c1c8f5c5d984f1464"
+ "2.95.0":
+ url: "https://github.com/beached/header_libraries/archive/v2.95.0.tar.gz"
+ sha256: "8799c06f0587b202fd6049d95e70b04675acbfdbf6e86ac3bbd061cbb9d42b54"
"2.93.1":
url: "https://github.com/beached/header_libraries/archive/v2.93.1.tar.gz"
sha256: "200690094237e4a2c37ac81c23c8c5138ba90ccdeeb2a1dda37690a9d32301ad"
@@ -23,18 +29,3 @@ sources:
"2.74.2":
url: "https://github.com/beached/header_libraries/archive/v2.74.2.tar.gz"
sha256: "32871df3d314cc9b4e293a9a8c79968d1c963dfd3dd60965dbf704eb18acb218"
- "2.73.1":
- url: "https://github.com/beached/header_libraries/archive/v2.73.1.tar.gz"
- sha256: "62bd26398afa7eba1aae7bbbf107865044b8be0539d266085c36aed82557ae07"
- "2.72.0":
- url: "https://github.com/beached/header_libraries/archive/v2.72.0.tar.gz"
- sha256: "f681755183af4af35f4741f3bcb7d99c6707911806e39e3acc982f9532aacc08"
- "2.71.0":
- url: "https://github.com/beached/header_libraries/archive/v2.71.0.tar.gz"
- sha256: "50b9ddebdbc808a5714408a45f686fafe9d1d3b78c988df3973c12c9928828b9"
- "2.68.3":
- url: "https://github.com/beached/header_libraries/archive/v2.68.3.tar.gz"
- sha256: "9bb7d25d161b89ad4a0ac857c28734c061cf53f6e80212c7fe70b8e0fd14789f"
- "1.29.7":
- url: "https://github.com/beached/header_libraries/archive/refs/tags/v1.29.7.tar.gz"
- sha256: "524c34f3f5d2af498e7bcaff7802b914ba42acde29f7e3ecce41a035db0bf5bd"
diff --git a/recipes/daw_header_libraries/config.yml b/recipes/daw_header_libraries/config.yml
index 1983a1c07c0153..e5da3ea85fe212 100644
--- a/recipes/daw_header_libraries/config.yml
+++ b/recipes/daw_header_libraries/config.yml
@@ -1,4 +1,8 @@
versions:
+ "2.96.1":
+ folder: all
+ "2.95.0":
+ folder: all
"2.93.1":
folder: all
"2.92.0":
@@ -15,13 +19,3 @@ versions:
folder: all
"2.74.2":
folder: all
- "2.73.1":
- folder: all
- "2.72.0":
- folder: all
- "2.71.0":
- folder: all
- "2.68.3":
- folder: all
- "1.29.7":
- folder: all
diff --git a/recipes/daw_json_link/all/conandata.yml b/recipes/daw_json_link/all/conandata.yml
index c72c7afca87692..a5b0b4f48353b9 100644
--- a/recipes/daw_json_link/all/conandata.yml
+++ b/recipes/daw_json_link/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "3.20.1":
+ url: "https://github.com/beached/daw_json_link/archive/refs/tags/v3.20.1.tar.gz"
+ sha256: "046638bc4437d138cc8bdc882027d318ca3e267f33d1b419c5bdecb45b595a47"
"3.19.0":
url: "https://github.com/beached/daw_json_link/archive/refs/tags/v3.19.0.tar.gz"
sha256: "85c2f6a84878925eb692c53b321b9b237481969c8caa3a9324b78540096a3559"
diff --git a/recipes/daw_json_link/all/conanfile.py b/recipes/daw_json_link/all/conanfile.py
index 7a1455d0e9bdad..a22aa6b41c06b3 100644
--- a/recipes/daw_json_link/all/conanfile.py
+++ b/recipes/daw_json_link/all/conanfile.py
@@ -39,7 +39,7 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("daw_header_libraries/2.93.1")
+ self.requires("daw_header_libraries/2.96.1")
self.requires("daw_utf_range/2.2.3")
def package_id(self):
diff --git a/recipes/daw_json_link/config.yml b/recipes/daw_json_link/config.yml
index b1d3c03d355078..97a23d5d146003 100644
--- a/recipes/daw_json_link/config.yml
+++ b/recipes/daw_json_link/config.yml
@@ -1,4 +1,6 @@
versions:
+ "3.20.1":
+ folder: "all"
"3.19.0":
folder: "all"
"3.17.2":
diff --git a/recipes/daw_utf_range/all/conanfile.py b/recipes/daw_utf_range/all/conanfile.py
index 98739a79d16226..23fff04d5723fe 100644
--- a/recipes/daw_utf_range/all/conanfile.py
+++ b/recipes/daw_utf_range/all/conanfile.py
@@ -38,7 +38,7 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("daw_header_libraries/2.93.1")
+ self.requires("daw_header_libraries/2.96.1")
def package_id(self):
self.info.clear()
diff --git a/recipes/dbg-macro/all/conandata.yml b/recipes/dbg-macro/all/conandata.yml
index 695393e722d3f4..4beffe08cb1f1f 100644
--- a/recipes/dbg-macro/all/conandata.yml
+++ b/recipes/dbg-macro/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.5.0":
+ url: "https://github.com/sharkdp/dbg-macro/archive/v0.5.0.tar.gz"
+ sha256: "dac4907aadf39dbd9eac279a214c59ad30af6c0c3d585688242f73cb1a9ce243"
"0.4.0":
- sha256: e44a1206fbfd1d3dc8ad649f387df479d288b08c80cf2f1239ccb4e26148d781
- url: https://github.com/sharkdp/dbg-macro/archive/v0.4.0.tar.gz
+ url: "https://github.com/sharkdp/dbg-macro/archive/v0.4.0.tar.gz"
+ sha256: "e44a1206fbfd1d3dc8ad649f387df479d288b08c80cf2f1239ccb4e26148d781"
diff --git a/recipes/dbg-macro/all/conanfile.py b/recipes/dbg-macro/all/conanfile.py
index 7fdad007c10704..c4b00757159daa 100644
--- a/recipes/dbg-macro/all/conanfile.py
+++ b/recipes/dbg-macro/all/conanfile.py
@@ -1,41 +1,58 @@
import os
+
from conan import ConanFile
-from conan.tools.files import get, copy
-from conan.tools.build import check_min_cppstd
from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import check_min_cppstd
+from conan.tools.files import copy, get
+from conan.tools.layout import basic_layout
from conan.tools.scm import Version
+required_conan_version = ">=1.52.0"
class DbgMacroConan(ConanFile):
name = "dbg-macro"
+ description = "A dbg(...) macro for C++"
+ license = "MIT"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/sharkdp/dbg-macro"
- license = "MIT"
- description = "A dbg(...) macro for C++"
topics = ("debugging", "macro", "pretty-printing", "header-only")
package_type = "header-library"
settings = "os", "arch", "compiler", "build_type"
no_copy_source = True
+ @property
+ def _min_cppstd(self):
+ return 17
- def source(self):
- get(self, **self.conan_data["sources"][self.version], strip_root=True)
+ @property
+ def _compilers_minimum_version(self):
+ return {
+ "gcc": "8",
+ }
+
+ def layout(self):
+ basic_layout(self, src_folder="src")
+
+ def package_id(self):
+ self.info.clear()
def validate(self):
if self.settings.compiler.get_safe('cppstd'):
- check_min_cppstd(self, 17)
+ check_min_cppstd(self, self._min_cppstd)
- min_versions = {
- "gcc": 8
- }
+ minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False)
+ if minimum_version and Version(self.settings.compiler.version) < minimum_version:
+ raise ConanInvalidConfiguration(
+ f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support."
+ )
- compiler = self.settings.compiler
- if str(compiler) in min_versions and Version(compiler.version) < min_versions[str(compiler)]:
- raise ConanInvalidConfiguration("dbg-macro requires C++17 which your compiler does not support.")
+ def source(self):
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def package(self):
copy(self, "dbg.h", src=self.source_folder, dst=os.path.join(self.package_folder, "include"))
copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
- def package_id(self):
- self.info.clear()
+ def package_info(self):
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
diff --git a/recipes/dbg-macro/all/test_package/CMakeLists.txt b/recipes/dbg-macro/all/test_package/CMakeLists.txt
index 38914f6edfd7d4..535b1e583d6c52 100644
--- a/recipes/dbg-macro/all/test_package/CMakeLists.txt
+++ b/recipes/dbg-macro/all/test_package/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(test_package LANGUAGES CXX)
find_package(dbg-macro REQUIRED CONFIG)
diff --git a/recipes/dbg-macro/all/test_package/conanfile.py b/recipes/dbg-macro/all/test_package/conanfile.py
index 61ef483bce0670..2ee2f747a7393e 100644
--- a/recipes/dbg-macro/all/test_package/conanfile.py
+++ b/recipes/dbg-macro/all/test_package/conanfile.py
@@ -1,16 +1,14 @@
import os
from conan import ConanFile
+from conan.tools.build import can_run
from conan.tools.cmake import CMake, cmake_layout
-from conan.tools.build import cross_building, can_run
-from conan.tools.files import mkdir
class TestPackageConan(ConanFile):
settings = "os", "compiler", "build_type", "arch"
- generators = "CMakeDeps", "CMakeToolchain"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
test_type = "explicit"
-
def requirements(self):
self.requires(self.tested_reference_str)
diff --git a/recipes/dbg-macro/all/test_v1_package/CMakeLists.txt b/recipes/dbg-macro/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/dbg-macro/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/dbg-macro/all/test_v1_package/conanfile.py b/recipes/dbg-macro/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..e9e25c6e641afe
--- /dev/null
+++ b/recipes/dbg-macro/all/test_v1_package/conanfile.py
@@ -0,0 +1,18 @@
+import os
+from conans import ConanFile, CMake, tools
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self.settings):
+ tools.mkdir("logs/")
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/dbg-macro/config.yml b/recipes/dbg-macro/config.yml
index da269653d6e6bc..49f293dbf19712 100644
--- a/recipes/dbg-macro/config.yml
+++ b/recipes/dbg-macro/config.yml
@@ -1,3 +1,5 @@
versions:
+ "0.5.0":
+ folder: "all"
"0.4.0":
folder: "all"
diff --git a/recipes/dbus/1.x.x/conandata.yml b/recipes/dbus/1.x.x/conandata.yml
index c3b193cfa06c5e..04a0982deff4bf 100644
--- a/recipes/dbus/1.x.x/conandata.yml
+++ b/recipes/dbus/1.x.x/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.15.8":
+ url: "https://dbus.freedesktop.org/releases/dbus/dbus-1.15.8.tar.xz"
+ sha256: "84fc597e6ec82f05dc18a7d12c17046f95bad7be99fc03c15bc254c4701ed204"
"1.15.6":
url: "https://dbus.freedesktop.org/releases/dbus/dbus-1.15.6.tar.xz"
sha256: "f97f5845f9c4a5a1fb3df67dfa9e16b5a3fd545d348d6dc850cb7ccc9942bd8c"
@@ -8,12 +11,6 @@ sources:
"1.15.0":
url: "https://dbus.freedesktop.org/releases/dbus/dbus-1.15.0.tar.xz"
sha256: "5073c8cb9ad20226647bb38f4965182b762a6e1f595ccdc8e59411014bfd640a"
- "1.14.0":
- url: "https://dbus.freedesktop.org/releases/dbus/dbus-1.14.0.tar.xz"
- sha256: "ccd7cce37596e0a19558fd6648d1272ab43f011d80c8635aea8fd0bad58aebd4"
- "1.12.20":
- url: "https://dbus.freedesktop.org/releases/dbus/dbus-1.12.20.tar.gz"
- sha256: "f77620140ecb4cdc67f37fb444f8a6bea70b5b6461f12f1cbe2cec60fa7de5fe"
patches:
"1.15.2":
- patch_file: "patches/0003-meson-monotonic-clock-check.patch"
@@ -25,9 +22,3 @@ patches:
patch_type: "portability"
patch_description: "Fix detection of necessary monotonic clock functions in pthread"
patch_source: "https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/352"
- "1.12.20":
- - patch_file: "patches/0001-cmake-project.patch"
- - patch_file: "patches/0002-cmake_configure_checks_list_separator.patch"
- patch_type: "portability"
- url: "https://gitlab.freedesktop.org/dbus/dbus/-/commit/8cd1c2155252938ed38d2612e4d054c7fc0244c3.patch"
- patch_source: "https://gitlab.freedesktop.org/dbus/dbus/-/issues/324"
diff --git a/recipes/dbus/1.x.x/conanfile.py b/recipes/dbus/1.x.x/conanfile.py
index 7be295c8d86058..c20fd3f03b189c 100644
--- a/recipes/dbus/1.x.x/conanfile.py
+++ b/recipes/dbus/1.x.x/conanfile.py
@@ -1,7 +1,6 @@
from conan import ConanFile
from conan.errors import ConanInvalidConfiguration
from conan.tools.apple import fix_apple_shared_install_name, is_apple_os
-from conan.tools.cmake import CMake, cmake_layout, CMakeDeps, CMakeToolchain
from conan.tools.env import VirtualBuildEnv
from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, mkdir, rename, replace_in_file, rm, rmdir, save
from conan.tools.gnu import PkgConfigDeps
@@ -21,10 +20,12 @@ class DbusConan(ConanFile):
homepage = "https://www.freedesktop.org/wiki/Software/dbus"
description = "D-Bus is a simple system for interprocess communication and coordination."
topics = "bus", "interprocess", "message"
- package_type = "shared-library"
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
short_paths = True
options = {
+ "shared": [True, False],
+ "fPIC": [True, False],
"system_socket": [None, "ANY"],
"system_pid_file": [None, "ANY"],
"with_x11": [True, False],
@@ -34,6 +35,8 @@ class DbusConan(ConanFile):
"session_socket_dir": ["ANY"],
}
default_options = {
+ "shared": False,
+ "fPIC": True,
"system_socket": None,
"system_pid_file": None,
"with_x11": False,
@@ -43,28 +46,25 @@ class DbusConan(ConanFile):
"session_socket_dir": "/tmp",
}
- @property
- def _meson_available(self):
- return Version(self.version) >= "1.15.0"
-
def export_sources(self):
export_conandata_patches(self)
def config_options(self):
- if self.settings.os not in ("Linux", "FreeBSD") or Version(self.version) < "1.14.0":
+ if self.settings.os not in ("Linux", "FreeBSD"):
del self.options.with_systemd
if self.settings.os not in ("Linux", "FreeBSD"):
del self.options.with_x11
+ if self.settings.os == "Windows":
+ del self.options.fPIC
def configure(self):
self.settings.rm_safe("compiler.cppstd")
self.settings.rm_safe("compiler.libcxx")
+ if self.options.shared:
+ self.options.rm_safe("fPIC")
def layout(self):
- if self._meson_available:
- basic_layout(self, src_folder="src")
- else:
- cmake_layout(self, src_folder="src")
+ basic_layout(self, src_folder="src")
def requirements(self):
self.requires("expat/2.5.0")
@@ -78,19 +78,13 @@ def requirements(self):
self.requires("xorg/system")
def validate(self):
- if Version(self.version) >= "1.14.0":
- if self.settings.compiler == "gcc" and Version(self.settings.compiler.version) < 7:
- raise ConanInvalidConfiguration(f"{self.ref} requires at least gcc 7.")
-
- if not self._meson_available and self.settings.os == "Windows":
- raise ConanInvalidConfiguration(f"{self.ref} does not support Windows. Contributions welcome.")
+ if self.settings.compiler == "gcc" and Version(self.settings.compiler.version) < 7:
+ raise ConanInvalidConfiguration(f"{self.ref} requires at least gcc 7.")
def build_requirements(self):
- if self._meson_available:
- self.tool_requires("meson/1.2.0")
- if self._meson_available or self.options.get_safe("with_systemd"):
- if not self.conf.get("tools.gnu:pkg_config",check_type=str):
- self.tool_requires("pkgconf/1.9.5")
+ self.tool_requires("meson/1.2.0")
+ if not self.conf.get("tools.gnu:pkg_config",check_type=str):
+ self.tool_requires("pkgconf/1.9.5")
def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)
@@ -98,77 +92,38 @@ def source(self):
def generate(self):
env = VirtualBuildEnv(self)
env.generate()
- if self._meson_available:
- tc = MesonToolchain(self)
- tc.project_options["asserts"] = not is_apple_os(self)
- tc.project_options["checks"] = False
- tc.project_options["doxygen_docs"] = "disabled"
- tc.project_options["modular_tests"] = "disabled"
- tc.project_options["system_socket"] = str(self.options.get_safe("system_socket", ""))
- tc.project_options["system_pid_file"] = str(self.options.get_safe("system_pid_file", ""))
- tc.project_options["session_socket_dir"] = str(self.options.get_safe("session_socket_dir", ""))
- tc.project_options["selinux"] = "enabled" if self.options.get_safe("with_selinux", False) else "disabled"
- tc.project_options["systemd"] = "enabled" if self.options.get_safe("with_systemd", False) else "disabled"
- if self.options.get_safe("with_systemd", False):
- tc.project_options["systemd_system_unitdir"] = os.path.join(self.package_folder, "lib", "systemd", "system")
- tc.project_options["systemd_user_unitdir"] = os.path.join(self.package_folder, "lib", "systemd", "user")
- if is_apple_os(self):
- tc.project_options["launchd_agent_dir"] = os.path.join(self.package_folder, "res", "LaunchAgents")
- tc.project_options["x11_autolaunch"] = "enabled" if self.options.get_safe("with_x11", False) else "disabled"
- tc.project_options["xml_docs"] = "disabled"
- tc.generate()
- deps = PkgConfigDeps(self)
- deps.generate()
- else:
- tc = CMakeToolchain(self)
- tc.variables["DBUS_BUILD_TESTS"] = False
- tc.variables["DBUS_ENABLE_DOXYGEN_DOCS"] = False
- tc.variables["DBUS_ENABLE_XML_DOCS"] = False
- tc.variables["DBUS_BUILD_X11"] = bool(self.options.get_safe("with_x11", False))
- tc.variables["ENABLE_SYSTEMD"] = "ON" if self.options.get_safe("with_systemd", False) else "OFF"
- tc.variables["DBUS_WITH_GLIB"] = bool(self.options.get_safe("with_glib", False))
- tc.variables["DBUS_DISABLE_ASSERT"] = is_apple_os(self)
- tc.variables["DBUS_DISABLE_CHECKS"] = False
- tc.variables["DBUS_SYSTEM_BUS_DEFAULT_ADDRESS"] = str(self.options.get_safe("system_socket", ""))
-
- # Conan does not provide an EXPAT_LIBRARIES CMake variable for the Expat library.
- # Define EXPAT_LIBRARIES to be the expat::expat target provided by Conan to fix linking.
- tc.variables["EXPAT_LIBRARIES"] = "expat::expat"
-
- # https://github.com/freedesktop/dbus/commit/e827309976cab94c806fda20013915f1db2d4f5a
- tc.variables["DBUS_SESSION_SOCKET_DIR"] = str(self.options.get_safe("session_socket_dir", ""))
-
- tc.cache_variables["CMAKE_FIND_PACKAGE_PREFER_CONFIG"] = False
- tc.generate()
- cmake_deps = CMakeDeps(self)
- cmake_deps.generate()
- if self.options.get_safe("with_systemd"):
- deps = PkgConfigDeps(self)
- deps.generate()
+ tc = MesonToolchain(self)
+ tc.project_options["asserts"] = not is_apple_os(self)
+ tc.project_options["checks"] = False
+ tc.project_options["doxygen_docs"] = "disabled"
+ tc.project_options["modular_tests"] = "disabled"
+ tc.project_options["system_socket"] = str(self.options.get_safe("system_socket", ""))
+ tc.project_options["system_pid_file"] = str(self.options.get_safe("system_pid_file", ""))
+ tc.project_options["session_socket_dir"] = str(self.options.get_safe("session_socket_dir", ""))
+ tc.project_options["selinux"] = "enabled" if self.options.get_safe("with_selinux", False) else "disabled"
+ tc.project_options["systemd"] = "enabled" if self.options.get_safe("with_systemd", False) else "disabled"
+ if self.options.get_safe("with_systemd", False):
+ tc.project_options["systemd_system_unitdir"] = os.path.join(self.package_folder, "lib", "systemd", "system")
+ tc.project_options["systemd_user_unitdir"] = os.path.join(self.package_folder, "lib", "systemd", "user")
+ if is_apple_os(self):
+ tc.project_options["launchd_agent_dir"] = os.path.join(self.package_folder, "res", "LaunchAgents")
+ tc.project_options["x11_autolaunch"] = "enabled" if self.options.get_safe("with_x11", False) else "disabled"
+ tc.project_options["xml_docs"] = "disabled"
+ tc.generate()
+ deps = PkgConfigDeps(self)
+ deps.generate()
def build(self):
apply_conandata_patches(self)
- if self._meson_available:
- replace_in_file(self, os.path.join(self.source_folder, "meson.build"), "subdir('test')", "# subdir('test')")
- meson = Meson(self)
- meson.configure()
- meson.build()
- else:
- cmake = CMake(self)
- build_script_folder = None
- if Version(self.version) < "1.14.0":
- build_script_folder = "cmake"
- cmake.configure(build_script_folder=build_script_folder)
- cmake.build()
+ replace_in_file(self, os.path.join(self.source_folder, "meson.build"), "subdir('test')", "# subdir('test')")
+ meson = Meson(self)
+ meson.configure()
+ meson.build()
def package(self):
copy(self, "COPYING", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
- if self._meson_available:
- meson = Meson(self)
- meson.install()
- else:
- cmake = CMake(self)
- cmake.install()
+ meson = Meson(self)
+ meson.install()
rm(self, "*.pdb", os.path.join(self.package_folder, "bin"))
rmdir(self, os.path.join(self.package_folder, "share", "doc"))
@@ -180,6 +135,8 @@ def package(self):
rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
rmdir(self, os.path.join(self.package_folder, "lib", "systemd"))
fix_apple_shared_install_name(self)
+ if self.settings.os == "Windows" and not self.options.shared:
+ rename(self, os.path.join(self.package_folder, "lib", "libdbus-1.a"), os.path.join(self.package_folder, "lib", "dbus-1.lib"))
# TODO: to remove in conan v2 once cmake_find_package_* generators removed
self._create_cmake_module_alias_targets(
@@ -219,6 +176,9 @@ def package_info(self):
else:
self.cpp_info.system_libs.append("pthread")
+ if not self.options.shared:
+ self.cpp_info.defines.append("DBUS_STATIC_BUILD")
+
# TODO: to remove in conan v2 once cmake_find_package_* & pkg_config generators removed
self.cpp_info.filenames["cmake_find_package"] = "DBus1"
self.cpp_info.filenames["cmake_find_package_multi"] = "DBus1"
diff --git a/recipes/dbus/1.x.x/patches/0001-cmake-project.patch b/recipes/dbus/1.x.x/patches/0001-cmake-project.patch
deleted file mode 100644
index 2d00f57d33527d..00000000000000
--- a/recipes/dbus/1.x.x/patches/0001-cmake-project.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/cmake/CMakeLists.txt
-+++ b/cmake/CMakeLists.txt
-@@ -1,10 +1,3 @@
--# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
--list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/modules")
--
--# we do not need to have WIN32 defined
--set(CMAKE_LEGACY_CYGWIN_WIN32 0)
--
--project(dbus)
-
- # we need to be up to date
- CMAKE_MINIMUM_REQUIRED(VERSION 3.0.2 FATAL_ERROR)
-@@ -19,6 +12,9 @@ if(CMAKE_MAJOR_VERSION GREATER 2)
- cmake_policy(SET CMP0054 NEW)
- endif()
- endif()
-+set(CMAKE_LEGACY_CYGWIN_WIN32 0)
-+project(dbus)
-+list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/modules")
-
- # detect version
- include(MacrosAutotools)
diff --git a/recipes/dbus/1.x.x/patches/0002-cmake_configure_checks_list_separator.patch b/recipes/dbus/1.x.x/patches/0002-cmake_configure_checks_list_separator.patch
deleted file mode 100644
index 7c60bf52d5ec22..00000000000000
--- a/recipes/dbus/1.x.x/patches/0002-cmake_configure_checks_list_separator.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/cmake/ConfigureChecks.cmake b/cmake/ConfigureChecks.cmake
-index a9a5fc90..1a59461a 100644
---- a/cmake/ConfigureChecks.cmake
-+++ b/cmake/ConfigureChecks.cmake
-@@ -43,7 +43,7 @@ check_symbol_exists(backtrace "execinfo.h" HAVE_BACKTRACE) #
- check_symbol_exists(getgrouplist "grp.h" HAVE_GETGROUPLIST) # dbus-sysdeps.c
- check_symbol_exists(getpeerucred "ucred.h" HAVE_GETPEERUCRED) # dbus-sysdeps.c, dbus-sysdeps-win.c
- check_symbol_exists(nanosleep "time.h" HAVE_NANOSLEEP) # dbus-sysdeps.c
--check_symbol_exists(getpwnam_r "errno.h pwd.h" HAVE_POSIX_GETPWNAM_R) # dbus-sysdeps-util-unix.c
-+check_symbol_exists(getpwnam_r "errno.h;pwd.h" HAVE_POSIX_GETPWNAM_R) # dbus-sysdeps-util-unix.c
- check_symbol_exists(setenv "stdlib.h" HAVE_SETENV) # dbus-sysdeps.c
- check_symbol_exists(unsetenv "stdlib.h" HAVE_UNSETENV) # dbus-sysdeps.c
- check_symbol_exists(clearenv "stdlib.h" HAVE_CLEARENV) # dbus-sysdeps.c
-@@ -66,7 +66,7 @@ check_symbol_exists(getrlimit "sys/resource.h;sys/time.h" HAVE_GETRLIMIT)
- check_symbol_exists(prlimit "sys/resource.h;sys/time.h" HAVE_PRLIMIT)
- check_symbol_exists(setrlimit "sys/resource.h;sys/time.h" HAVE_SETRLIMIT)
-
--check_struct_member(cmsgcred cmcred_pid "sys/types.h sys/socket.h" HAVE_CMSGCRED) # dbus-sysdeps.c
-+check_struct_member(cmsgcred cmcred_pid "sys/types.h;sys/socket.h" HAVE_CMSGCRED) # dbus-sysdeps.c
-
- # missing:
- # DBUS_HAVE_GCC33_GCOV
diff --git a/recipes/dbus/config.yml b/recipes/dbus/config.yml
index b9caba7b443496..a6d5fb2e5d5f7f 100644
--- a/recipes/dbus/config.yml
+++ b/recipes/dbus/config.yml
@@ -1,11 +1,9 @@
versions:
+ "1.15.8":
+ folder: 1.x.x
"1.15.6":
folder: 1.x.x
"1.15.2":
folder: 1.x.x
"1.15.0":
folder: 1.x.x
- "1.14.0":
- folder: 1.x.x
- "1.12.20":
- folder: 1.x.x
diff --git a/recipes/deco/all/conanfile.py b/recipes/deco/all/conanfile.py
index 3760e5bb68e075..29a4d2480e3aaa 100644
--- a/recipes/deco/all/conanfile.py
+++ b/recipes/deco/all/conanfile.py
@@ -1,56 +1,82 @@
-from conans import ConanFile, tools
-from conans.errors import ConanInvalidConfiguration
import os
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import check_min_cppstd
+from conan.tools.files import copy, get
+from conan.tools.layout import basic_layout
+from conan.tools.scm import Version
+
+required_conan_version = ">=1.52.0"
+
+
class DecoConan(ConanFile):
name = "deco"
- license = "Apache-2.0-WITH-LLVM-exception"
description = "Delimiter Collision Free Format"
- topics = ("serialization")
- homepage = "https://github.com/Enhex/Deco"
+ license = "Apache-2.0-WITH-LLVM-exception"
url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://github.com/Enhex/Deco"
+ topics = ("serialization", "header-only")
+
+ package_type = "header-library"
+ settings = "os", "arch", "compiler", "build_type"
no_copy_source = True
- settings = ("compiler", "build_type", "os", "arch")
- requires = (
- "enhex-generic_serialization/1.0.0",
- "enhex-strong_type/1.0.0",
- "boost/1.79.0",
- "rang/3.2",
- )
@property
- def _source_subfolder(self):
- return "source_subfolder"
-
- def validate(self):
- if self.settings.compiler.get_safe("cppstd"):
- tools.check_min_cppstd(self, 17)
+ def _min_cppstd(self):
+ return 17
- minimal_version = {
+ @property
+ def _compilers_minimum_version(self):
+ return {
"Visual Studio": "15",
+ "msvc": "191",
"gcc": "7",
"clang": "5.0",
- "apple-clang": "9.1"
+ "apple-clang": "9.1",
}
+
+ def layout(self):
+ basic_layout(self, src_folder="src")
+
+ def requirements(self):
+ self.requires("enhex-generic_serialization/1.0.0")
+ self.requires("enhex-strong_type/1.0.0")
+ self.requires("boost/1.82.0")
+ self.requires("rang/3.2")
+
+ def package_id(self):
+ self.info.clear()
+
+ def validate(self):
+ if self.settings.compiler.get_safe("cppstd"):
+ check_min_cppstd(self, self._min_cppstd)
+
compiler = str(self.settings.compiler)
- compiler_version = tools.Version(self.settings.compiler.version)
+ compiler_version = Version(self.settings.compiler.version)
- if compiler not in minimal_version:
- self.output.info("{} requires a compiler that supports at least C++17".format(self.name))
+ if compiler not in self._compilers_minimum_version:
+ self.output.info(f"{self.name} requires a compiler that supports at least C++17")
return
# Exclude compilers not supported
- if compiler_version < minimal_version[compiler]:
- raise ConanInvalidConfiguration("{} requires a compiler that supports at least C++17. {} {} is not".format(
- self.name, compiler, tools.Version(self.settings.compiler.version.value)))
+ if compiler_version < self._compilers_minimum_version[compiler]:
+ raise ConanInvalidConfiguration(
+ f"{self.name} requires a compiler that supports at least C++17. "
+ f"{compiler} {Version(self.settings.compiler.version.value)} is not"
+ )
def source(self):
- tools.get(**self.conan_data["sources"][self.version],
- destination=self._source_subfolder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def package(self):
- self.copy(pattern="LICENSE.txt", dst="licenses", src=self._source_subfolder)
- self.copy(pattern="*", dst="include", src=os.path.join(self._source_subfolder, "include"))
+ copy(self, "LICENSE.txt",
+ dst=os.path.join(self.package_folder, "licenses"),
+ src=self.source_folder)
+ copy(self, "*",
+ dst=os.path.join(self.package_folder, "include"),
+ src=os.path.join(self.source_folder, "include"))
- def package_id(self):
- self.info.header_only()
+ def package_info(self):
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
diff --git a/recipes/deco/all/test_package/CMakeLists.txt b/recipes/deco/all/test_package/CMakeLists.txt
index 00c3587be1a635..c3b92714405e83 100644
--- a/recipes/deco/all/test_package/CMakeLists.txt
+++ b/recipes/deco/all/test_package/CMakeLists.txt
@@ -1,11 +1,8 @@
-cmake_minimum_required(VERSION 3.1)
-project(PackageTest CXX)
-
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
+cmake_minimum_required(VERSION 3.15)
+project(test_package CXX)
find_package(deco CONFIG REQUIRED)
-add_executable(example example.cpp)
-target_link_libraries(example deco::deco)
-set_target_properties(example PROPERTIES CXX_STANDARD 17)
+add_executable(test_package test_package.cpp)
+target_link_libraries(test_package deco::deco)
+set_target_properties(test_package PROPERTIES CXX_STANDARD 17)
diff --git a/recipes/deco/all/test_package/conanfile.py b/recipes/deco/all/test_package/conanfile.py
index f735734fbcfa9b..ef5d7042163ecc 100644
--- a/recipes/deco/all/test_package/conanfile.py
+++ b/recipes/deco/all/test_package/conanfile.py
@@ -1,11 +1,19 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
-from conans import ConanFile, CMake, tools
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
-class DecoTestConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake", "cmake_find_package_multi"
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -13,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "example")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/deco/all/test_package/example.cpp b/recipes/deco/all/test_package/test_package.cpp
similarity index 100%
rename from recipes/deco/all/test_package/example.cpp
rename to recipes/deco/all/test_package/test_package.cpp
diff --git a/recipes/deco/all/test_v1_package/CMakeLists.txt b/recipes/deco/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/deco/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/deco/all/test_v1_package/conanfile.py b/recipes/deco/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..f64055b093b4d3
--- /dev/null
+++ b/recipes/deco/all/test_v1_package/conanfile.py
@@ -0,0 +1,18 @@
+import os
+
+from conans import ConanFile, CMake, tools
+
+
+class DecoTestConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/di/all/BSL-1.0.txt b/recipes/di/all/BSL-1.0.txt
deleted file mode 100644
index 36b7cd93cdfbac..00000000000000
--- a/recipes/di/all/BSL-1.0.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Boost Software License - Version 1.0 - August 17th, 2003
-
-Permission is hereby granted, free of charge, to any person or organization
-obtaining a copy of the software and accompanying documentation covered by
-this license (the "Software") to use, reproduce, display, distribute,
-execute, and transmit the Software, and to prepare derivative works of the
-Software, and to permit third-parties to whom the Software is furnished to
-do so, all subject to the following:
-
-The copyright notices in the Software and this entire statement, including
-the above license grant, this restriction and the following disclaimer,
-must be included in all copies of the Software, in whole or in part, and
-all derivative works of the Software, unless such copies or derivative
-works are solely in the form of machine-executable object code generated by
-a source language processor.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
-SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
-FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
diff --git a/recipes/di/all/conanfile.py b/recipes/di/all/conanfile.py
index 5ccda35c324e5a..25630735095f55 100644
--- a/recipes/di/all/conanfile.py
+++ b/recipes/di/all/conanfile.py
@@ -1,61 +1,101 @@
-from conans import ConanFile, tools
-from conans.errors import ConanInvalidConfiguration
import os
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import check_min_cppstd
+from conan.tools.files import copy, get, save, load
+from conan.tools.layout import basic_layout
+from conan.tools.scm import Version
+
+required_conan_version = ">=1.52.0"
+
class DiConan(ConanFile):
name = "di"
+ description = "DI: C++14 Dependency Injection Library."
license = "BSL-1.0"
- homepage = "https://github.com/boost-ext/di"
url = "https://github.com/conan-io/conan-center-index"
- description = "DI: C++14 Dependency Injection Library."
- topics = ("dependency-injection", "metaprogramming", "design-patterns")
- exports_sources = ["BSL-1.0.txt"]
- settings = "compiler"
- options = {"with_extensions": [True, False], "diagnostics_level": [0, 1, 2]}
- default_options = {"with_extensions": False, "diagnostics_level": 1}
+ homepage = "https://github.com/boost-ext/di"
+ topics = ("dependency-injection", "metaprogramming", "design-patterns", "header-only")
+
+ package_type = "header-library"
+ settings = "os", "arch", "compiler", "build_type"
+ options = {
+ "with_extensions": [True, False],
+ "diagnostics_level": [0, 1, 2]
+ }
+ default_options = {
+ "with_extensions": False,
+ "diagnostics_level": 1
+ }
no_copy_source = True
@property
- def _source_subfolder(self):
- return "source_subfolder"
+ def _min_cppstd(self):
+ return 14
- def configure(self):
- minimal_cpp_standard = "14"
- if self.settings.compiler.cppstd:
- tools.check_min_cppstd(self, minimal_cpp_standard)
- minimal_version = {
+ @property
+ def _compilers_minimum_version(self):
+ return {
"gcc": "5",
"clang": "3.4",
"apple-clang": "10",
- "Visual Studio": "15"
+ "Visual Studio": "15",
+ "msvc": "191"
}
+
+ def configure(self):
+ if self.settings.compiler.cppstd:
+ check_min_cppstd(self, self._min_cppstd)
compiler = str(self.settings.compiler)
- if compiler not in minimal_version:
- self.output.warn(
- "%s recipe lacks information about the %s compiler standard version support" % (self.name, compiler))
- self.output.warn(
- "%s requires a compiler that supports at least C++%s" % (self.name, minimal_cpp_standard))
+ if compiler not in self._compilers_minimum_version:
+ self.output.warning(
+ f"{self.name} recipe lacks information about the {compiler} compiler standard version support")
+ self.output.warning(
+ f"{self.name} requires a compiler that supports at least C++{self._min_cppstd}")
return
- version = tools.Version(self.settings.compiler.version)
- if version < minimal_version[compiler]:
- raise ConanInvalidConfiguration("%s requires a compiler that supports at least C++%s" % (self.name, minimal_cpp_standard))
+ version = Version(self.settings.compiler.version)
+ if version < self._compilers_minimum_version[compiler]:
+ raise ConanInvalidConfiguration(
+ f"{self.name} requires a compiler that supports at least C++{self._min_cppstd}")
- def source(self):
- tools.get(**self.conan_data["sources"][self.version])
- extracted_dir = "di-" + self.version
- os.rename(extracted_dir, self._source_subfolder)
-
- def package(self):
- self.copy("BSL-1.0.txt", src="", dst="licenses")
- if self.options.with_extensions:
- self.copy("*.hpp", src=os.path.join(self._source_subfolder, "extension", "include", "boost", "di", "extension"), dst=os.path.join("include", "boost", "di", "extension"), keep_path=True)
- self.copy("di.hpp", src=os.path.join(self._source_subfolder, "include", "boost"), dst=os.path.join("include", "boost"))
+ def layout(self):
+ basic_layout(self, src_folder="src")
def package_id(self):
self.info.requires.clear()
self.info.settings.clear()
del self.info.options.diagnostics_level
+ def source(self):
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+ def _extract_license(self):
+ file = os.path.join(self.source_folder, "CMakeLists.txt")
+ file_content = load(self, file)
+
+ license_start = file_content.find("# Copyright")
+ sub_end = "LICENSE_1_0.txt)"
+ license_end = file_content.find(sub_end)
+ license_contents = file_content[license_start:(license_end + len(sub_end))]
+ save(self, os.path.join(self.package_folder, "licenses", "LICENSE"), license_contents)
+
+
+ def package(self):
+ self._extract_license()
+ copy(self, pattern="LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ if self.options.with_extensions:
+ copy(self, "*.hpp",
+ dst=os.path.join(self.package_folder, "include", "boost", "di", "extension"),
+ src=os.path.join(self.source_folder, "extension", "include", "boost", "di", "extension"),
+ keep_path=True)
+ copy(self, "di.hpp",
+ dst=os.path.join(self.package_folder, "include", "boost"),
+ src=os.path.join(self.source_folder, "include", "boost"))
+
def package_info(self):
- self.cpp_info.defines.append("BOOST_DI_CFG_DIAGNOSTICS_LEVEL={}".format(self.options.diagnostics_level))
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
+
+ self.cpp_info.defines.append(
+ f"BOOST_DI_CFG_DIAGNOSTICS_LEVEL={self.options.diagnostics_level}")
diff --git a/recipes/di/all/test_package/CMakeLists.txt b/recipes/di/all/test_package/CMakeLists.txt
index 44d785353d02dd..4ead030531af2f 100644
--- a/recipes/di/all/test_package/CMakeLists.txt
+++ b/recipes/di/all/test_package/CMakeLists.txt
@@ -1,9 +1,8 @@
-cmake_minimum_required(VERSION 3.1.3)
+cmake_minimum_required(VERSION 3.15)
project(PackageTest CXX)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
+find_package(di REQUIRED CONFIG)
add_executable(example example.cpp)
+target_link_libraries(example di::di)
set_target_properties(example PROPERTIES CXX_STANDARD 14)
-target_link_libraries(example CONAN_PKG::di)
diff --git a/recipes/di/all/test_package/conanfile.py b/recipes/di/all/test_package/conanfile.py
index 8d63f059b4cdca..8d52b7021efe14 100644
--- a/recipes/di/all/test_package/conanfile.py
+++ b/recipes/di/all/test_package/conanfile.py
@@ -1,10 +1,19 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
-class DiConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake"
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -12,5 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self.settings):
- self.run(os.path.join("bin", "example"), run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "example")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/di/all/test_v1_package/CMakeLists.txt b/recipes/di/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/di/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/di/all/test_v1_package/conanfile.py b/recipes/di/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..da134b42a75e31
--- /dev/null
+++ b/recipes/di/all/test_v1_package/conanfile.py
@@ -0,0 +1,16 @@
+from conans import ConanFile, CMake, tools
+import os
+
+
+class DiConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self.settings):
+ self.run(os.path.join("bin", "example"), run_environment=True)
diff --git a/recipes/dice-template-library/all/conandata.yml b/recipes/dice-template-library/all/conandata.yml
index def2d951ef94ea..3dcfa182d3a53a 100644
--- a/recipes/dice-template-library/all/conandata.yml
+++ b/recipes/dice-template-library/all/conandata.yml
@@ -1,7 +1,10 @@
sources:
+ "1.1.0":
+ url: "https://github.com/dice-group/dice-template-library/archive/refs/tags/v1.1.0.tar.gz"
+ sha256: "a00ee401379eaf6c8af013fb39d6732fa68c3852e14b50789edde6f054647ca2"
"1.0.0":
url: "https://github.com/dice-group/dice-template-library/archive/refs/tags/v1.0.0.tar.gz"
- sha256: "485505ad3f9fb033083e2952bd8b4e68f6b4f123746b20f4ec3af46f4ce66cfe"
+ sha256: "d0c75ec4861e2480dc7d6533125f9c2dfb3574fc2cffd15c66665b1cdfa66561"
"0.3.0":
url: "https://github.com/dice-group/dice-template-library/archive/refs/tags/v0.3.0.tar.gz"
sha256: "2c02278f86c7b5fe1c684f5126f30529952a03784fa7c883cc4fd44965b3c33e"
diff --git a/recipes/dice-template-library/config.yml b/recipes/dice-template-library/config.yml
index 930d790eeb4ba9..f1e3df07fed832 100644
--- a/recipes/dice-template-library/config.yml
+++ b/recipes/dice-template-library/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.1.0":
+ folder: all
"1.0.0":
folder: all
"0.3.0":
diff --git a/recipes/djinni-generator/all/conanfile.py b/recipes/djinni-generator/all/conanfile.py
index ae2c62ed78bb57..f6319f3914356b 100644
--- a/recipes/djinni-generator/all/conanfile.py
+++ b/recipes/djinni-generator/all/conanfile.py
@@ -1,37 +1,60 @@
import os
-from conans import ConanFile, tools
+from conan import ConanFile
+from conan.tools.files import copy, download
+from conan.tools.layout import basic_layout
+
+required_conan_version = ">=1.47.0"
class Djinni(ConanFile):
name = "djinni-generator"
+ description = "Djinni is a tool for generating cross-language type declarations and interface bindings."
+ license = "Apache-2.0"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://djinni.xlcpp.dev"
- description = "Djinni is a tool for generating cross-language type declarations and interface bindings."
topics = ("java", "Objective-C", "ios", "Android")
- license = "Apache-2.0"
- settings = "os", "arch"
+ package_type = "application"
+ settings = "os", "arch", "compiler", "build_type"
+ no_copy_source = True
+
+ def layout(self):
+ basic_layout(self, src_folder="src")
+
+ def package_id(self):
+ del self.info.settings.compiler
+ del self.info.settings.build_type
def source(self):
filename = os.path.basename(self.conan_data["sources"][self.version]["url"])
- tools.download(filename=filename, **self.conan_data["sources"][self.version])
- tools.download(filename="LICENSE", url="https://raw.githubusercontent.com/cross-language-cpp/djinni-generator/main/LICENSE")
+ download(self, filename=filename, **self.conan_data["sources"][self.version])
+ download(self, filename="LICENSE", url="https://raw.githubusercontent.com/cross-language-cpp/djinni-generator/main/LICENSE")
def build(self):
pass # avoid warning for missing build steps
def package(self):
- if tools.detected_os() == "Windows":
- os.rename('djinni','djinni.bat')
- self.copy("djinni.bat", dst="bin", keep_path=False)
+ copy(self, "LICENSE",
+ dst=os.path.join(self.package_folder, "licenses"),
+ src=self.source_folder,
+ keep_path=False)
+ copy(self, "djinni",
+ dst=os.path.join(self.package_folder, "bin"),
+ src=self.source_folder,
+ keep_path=False)
+ if self.settings.os == "Windows":
+ os.rename(os.path.join(self.package_folder, "bin", "djinni"),
+ os.path.join(self.package_folder, "bin", "djinni.bat"))
else:
- self.copy("djinni", dst="bin", keep_path=False)
executable = os.path.join(self.package_folder, "bin", "djinni")
os.chmod(executable, os.stat(executable).st_mode | 0o111)
- self.copy("LICENSE", dst="licenses", keep_path=False)
def package_info(self):
+ self.cpp_info.frameworkdirs = []
+ self.cpp_info.libdirs = []
+ self.cpp_info.resdirs = []
self.cpp_info.includedirs = []
- self.env_info.PATH.append(os.path.join(self.package_folder, "bin"))
+ # TODO: Legacy, to be removed on Conan 2.0
+ self.env_info.PATH.append(os.path.join(self.package_folder, "bin"))
diff --git a/recipes/djinni-generator/all/test_package/conanfile.py b/recipes/djinni-generator/all/test_package/conanfile.py
index 456428a9a86702..7d899a138c0dd2 100644
--- a/recipes/djinni-generator/all/test_package/conanfile.py
+++ b/recipes/djinni-generator/all/test_package/conanfile.py
@@ -1,21 +1,25 @@
-
from io import StringIO
-from conans import ConanFile, tools
+
+from conan import ConanFile
+from conan.tools.build import can_run
+
class TestPackageConan(ConanFile):
- settings = "os", "arch"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
- def build(self):
- pass # please no warning that we build nothing
+ def build_requirements(self):
+ self.tool_requires(self.tested_reference_str)
def test(self):
- if not tools.cross_building(self.settings):
+ if can_run(self):
output = StringIO()
- self.run("djinni --help", output=output, run_environment=True)
- output.seek(0, 0)
+ self.run("djinni --help", output)
+ output.seek(0)
found_usage = False
for line in output:
if "Usage: djinni [options]" in line:
found_usage = True
break
- assert(found_usage)
+ assert found_usage
diff --git a/recipes/djinni-generator/all/test_v1_package/conanfile.py b/recipes/djinni-generator/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..456428a9a86702
--- /dev/null
+++ b/recipes/djinni-generator/all/test_v1_package/conanfile.py
@@ -0,0 +1,21 @@
+
+from io import StringIO
+from conans import ConanFile, tools
+
+class TestPackageConan(ConanFile):
+ settings = "os", "arch"
+
+ def build(self):
+ pass # please no warning that we build nothing
+
+ def test(self):
+ if not tools.cross_building(self.settings):
+ output = StringIO()
+ self.run("djinni --help", output=output, run_environment=True)
+ output.seek(0, 0)
+ found_usage = False
+ for line in output:
+ if "Usage: djinni [options]" in line:
+ found_usage = True
+ break
+ assert(found_usage)
diff --git a/recipes/dlib/all/CMakeLists.txt b/recipes/dlib/all/CMakeLists.txt
deleted file mode 100644
index 1c22f049379454..00000000000000
--- a/recipes/dlib/all/CMakeLists.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-cmake_minimum_required(VERSION 3.1)
-project(cmake_wrapper)
-
-include(conanbuildinfo.cmake)
-conan_basic_setup(KEEP_RPATHS)
-
-# Include the dlib subdirectory to skip a check
-add_subdirectory(source_subfolder/dlib)
diff --git a/recipes/dlib/all/conanfile.py b/recipes/dlib/all/conanfile.py
index b6ccf5c0b9123d..fc668dbc311da2 100644
--- a/recipes/dlib/all/conanfile.py
+++ b/recipes/dlib/all/conanfile.py
@@ -1,13 +1,14 @@
from conan import ConanFile
-from conan.errors import ConanInvalidConfiguration
-from conan.tools.files import get, rmdir
+from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
+from conan.tools.files import get, replace_in_file, copy, rmdir, collect_libs, rm
+from conan.tools.build import check_min_cppstd
from conan.tools.microsoft import is_msvc
from conan.tools.scm import Version
-from conans import CMake, tools
-import functools
+from conan.errors import ConanInvalidConfiguration
import os
-required_conan_version = ">=1.45.0"
+
+required_conan_version = ">=1.53.0"
class DlibConan(ConanFile):
@@ -17,7 +18,7 @@ class DlibConan(ConanFile):
url = "https://github.com/conan-io/conan-center-index"
homepage = "http://dlib.net"
license = "BSL-1.0"
-
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
@@ -46,34 +47,26 @@ class DlibConan(ConanFile):
"with_openblas": True,
}
- exports_sources = "CMakeLists.txt"
- generators = "cmake", "cmake_find_package"
-
- @property
- def _source_subfolder(self):
- return "source_subfolder"
-
- @property
- def _build_subfolder(self):
- return "build_subfolder"
-
@property
def _has_with_webp_option(self):
return Version(self.version) >= "19.24"
def config_options(self):
if self.settings.os == "Windows":
- del self.options.fPIC
+ self.options.rm_safe("fPIC")
if self.settings.arch not in ["x86", "x86_64"]:
- del self.options.with_sse2
- del self.options.with_sse4
- del self.options.with_avx
+ self.options.rm_safe("with_sse2")
+ self.options.rm_safe("with_sse4")
+ self.options.rm_safe("with_avx")
if not self._has_with_webp_option:
- del self.options.with_webp
+ self.options.rm_safe("with_webp")
def configure(self):
if self.options.shared:
- del self.options.fPIC
+ self.options.rm_safe("fPIC")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
def requirements(self):
if self.options.with_gif:
@@ -90,91 +83,91 @@ def requirements(self):
self.requires("openblas/0.3.20")
def validate(self):
+ if self.settings.get_safe("compiler.cppstd"):
+ check_min_cppstd(self, "11")
if is_msvc(self) and self.options.shared:
- raise ConanInvalidConfiguration("dlib can not be built as a shared library with Visual Studio")
- if self.settings.os == "Macos" and self.settings.arch == "armv8":
- raise ConanInvalidConfiguration("dlib doesn't support macOS M1")
+ raise ConanInvalidConfiguration(f"{self.ref} does not support shared on Windows. See https://github.com/davisking/dlib/issues/1483.")
def source(self):
- get(self, **self.conan_data["sources"][self.version],
- destination=self._source_subfolder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def _patch_sources(self):
- dlib_cmakelists = os.path.join(self._source_subfolder, "dlib", "CMakeLists.txt")
+ dlib_cmakelists = os.path.join(self.source_folder, "dlib", "CMakeLists.txt")
# robust giflib injection
- tools.replace_in_file(dlib_cmakelists, "${GIF_LIBRARY}", "GIF::GIF")
+ replace_in_file(self, dlib_cmakelists, "${GIF_LIBRARY}", "GIF::GIF")
# robust libjpeg injection
for cmake_file in [
dlib_cmakelists,
- os.path.join(self._source_subfolder, "dlib", "cmake_utils", "find_libjpeg.cmake"),
- os.path.join(self._source_subfolder, "dlib", "cmake_utils", "test_for_libjpeg", "CMakeLists.txt"),
+ os.path.join(self.source_folder, "dlib", "cmake_utils", "find_libjpeg.cmake"),
+ os.path.join(self.source_folder, "dlib", "cmake_utils", "test_for_libjpeg", "CMakeLists.txt"),
]:
- tools.replace_in_file(cmake_file, "${JPEG_LIBRARY}", "JPEG::JPEG")
+ replace_in_file(self, cmake_file, "${JPEG_LIBRARY}", "JPEG::JPEG")
# robust libpng injection
for cmake_file in [
dlib_cmakelists,
- os.path.join(self._source_subfolder, "dlib", "cmake_utils", "find_libpng.cmake"),
- os.path.join(self._source_subfolder, "dlib", "cmake_utils", "test_for_libpng", "CMakeLists.txt"),
+ os.path.join(self.source_folder, "dlib", "cmake_utils", "find_libpng.cmake"),
+ os.path.join(self.source_folder, "dlib", "cmake_utils", "test_for_libpng", "CMakeLists.txt"),
]:
- tools.replace_in_file(cmake_file, "${PNG_LIBRARIES}", "PNG::PNG")
+ replace_in_file(self, cmake_file, "${PNG_LIBRARIES}", "PNG::PNG")
# robust sqlite3 injection
- tools.replace_in_file(dlib_cmakelists, "find_library(sqlite sqlite3)", "find_package(SQLite3 REQUIRED)")
- tools.replace_in_file(dlib_cmakelists, "find_path(sqlite_path sqlite3.h)", "")
- tools.replace_in_file(dlib_cmakelists, "if (sqlite AND sqlite_path)", "if(1)")
- tools.replace_in_file(dlib_cmakelists, "${sqlite}", "SQLite::SQLite3")
+ if self.options.with_sqlite3:
+ replace_in_file(self, dlib_cmakelists, "find_library(sqlite sqlite3)", "find_package(SQLite3 REQUIRED)")
+ replace_in_file(self, dlib_cmakelists, "find_path(sqlite_path sqlite3.h)", "")
+ replace_in_file(self, dlib_cmakelists, "if (sqlite AND sqlite_path)", "if(1)")
+ replace_in_file(self, dlib_cmakelists, "${sqlite}", "SQLite::SQLite3")
# robust libwebp injection
if self._has_with_webp_option:
- tools.replace_in_file(dlib_cmakelists, "include(cmake_utils/find_libwebp.cmake)", "find_package(WebP REQUIRED)")
- tools.replace_in_file(dlib_cmakelists, "if (WEBP_FOUND)", "if(1)")
- tools.replace_in_file(dlib_cmakelists, "${WEBP_LIBRARY}", "WebP::webp")
+ replace_in_file(self, dlib_cmakelists, "include(cmake_utils/find_libwebp.cmake)", "find_package(WebP REQUIRED)")
+ replace_in_file(self, dlib_cmakelists, "if (WEBP_FOUND)", "if(1)")
+ replace_in_file(self, dlib_cmakelists, "${WEBP_LIBRARY}", "WebP::webp")
+ if self.options.with_png:
+ replace_in_file(self, dlib_cmakelists, "include(cmake_utils/find_libpng.cmake)", "find_package(PNG REQUIRED)")
+ if self.options.with_jpeg:
+ replace_in_file(self, dlib_cmakelists, "include(cmake_utils/find_libjpeg.cmake)", "find_package(JPEG REQUIRED)")
- @functools.lru_cache(1)
- def _configure_cmake(self):
- cmake = CMake(self)
+ def generate(self):
+ tc = CMakeToolchain(self)
# With in-project builds dlib is always built as a static library,
# we want to be able to build it as a shared library too
- cmake.definitions["DLIB_IN_PROJECT_BUILD"] = False
-
- cmake.definitions["DLIB_ISO_CPP_ONLY"] = False
- cmake.definitions["DLIB_NO_GUI_SUPPORT"] = True
+ tc.variables["DLIB_IN_PROJECT_BUILD"] = False
+ tc.variables["DLIB_ISO_CPP_ONLY"] = False
+ tc.variables["DLIB_NO_GUI_SUPPORT"] = True
# Configure external dependencies
- cmake.definitions["DLIB_JPEG_SUPPORT"] = self.options.with_jpeg
+ tc.variables["DLIB_JPEG_SUPPORT"] = self.options.with_jpeg
if self._has_with_webp_option:
- cmake.definitions["DLIB_WEBP_SUPPORT"] = self.options.with_webp
- cmake.definitions["DLIB_LINK_WITH_SQLITE3"] = self.options.with_sqlite3
- cmake.definitions["DLIB_USE_BLAS"] = True # FIXME: all the logic behind is not sufficiently under control
- cmake.definitions["DLIB_USE_LAPACK"] = True # FIXME: all the logic behind is not sufficiently under control
- cmake.definitions["DLIB_USE_CUDA"] = False # TODO: add with_cuda option?
- cmake.definitions["DLIB_PNG_SUPPORT"] = self.options.with_png
- cmake.definitions["DLIB_GIF_SUPPORT"] = self.options.with_gif
- cmake.definitions["DLIB_USE_MKL_FFT"] = False
+ tc.variables["DLIB_WEBP_SUPPORT"] = self.options.with_webp
+ tc.variables["DLIB_LINK_WITH_SQLITE3"] = self.options.with_sqlite3
+ tc.variables["DLIB_USE_BLAS"] = True # FIXME: all the logic behind is not sufficiently under control
+ tc.variables["DLIB_USE_LAPACK"] = True # FIXME: all the logic behind is not sufficiently under control
+ tc.variables["DLIB_USE_CUDA"] = False # TODO: add with_cuda option?
+ tc.variables["DLIB_PNG_SUPPORT"] = self.options.with_png
+ tc.variables["DLIB_GIF_SUPPORT"] = self.options.with_gif
+ tc.variables["DLIB_USE_MKL_FFT"] = False
# Configure SIMD options if possible
if self.settings.arch in ["x86", "x86_64"]:
if self.options.with_sse2 != "auto":
- cmake.definitions["USE_SSE2_INSTRUCTIONS"] = self.options.with_sse2
+ tc.variables["USE_SSE2_INSTRUCTIONS"] = self.options.with_sse2
if self.options.with_sse4 != "auto":
- cmake.definitions["USE_SSE4_INSTRUCTIONS"] = self.options.with_sse4
+ tc.variables["USE_SSE4_INSTRUCTIONS"] = self.options.with_sse4
if self.options.with_avx != "auto":
- cmake.definitions["USE_AVX_INSTRUCTIONS"] = self.options.with_avx
-
- cmake.configure(build_folder=self._build_subfolder)
- return cmake
+ tc.variables["USE_AVX_INSTRUCTIONS"] = self.options.with_avx
+ tc.generate()
+ tc = CMakeDeps(self)
+ tc.generate()
def build(self):
self._patch_sources()
- cmake = self._configure_cmake()
+ cmake = CMake(self)
+ cmake.configure(build_script_folder=os.path.join(self.source_folder, "dlib"))
cmake.build()
def package(self):
- cmake = self._configure_cmake()
+ cmake = CMake(self)
cmake.install()
-
- self.copy("LICENSE.txt", "licenses", os.path.join(self._source_subfolder, "dlib"), keep_path=False)
-
- # Remove configuration files
+ copy(self, "LICENSE.txt", src=os.path.join(self.source_folder, "dlib"), dst=os.path.join(self.package_folder, "licenses"), keep_path=False)
for dir_to_remove in [
os.path.join("lib", "cmake"),
os.path.join("lib", "pkgconfig"),
@@ -182,15 +175,15 @@ def package(self):
os.path.join("include", "dlib", "external", "pybind11", "tools")
]:
rmdir(self, os.path.join(self.package_folder, dir_to_remove))
+ rm(self, "*.txt", os.path.join(self.package_folder, "include", "dlib"))
def package_info(self):
self.cpp_info.set_property("cmake_file_name", "dlib")
self.cpp_info.set_property("cmake_target_name", "dlib::dlib")
self.cpp_info.set_property("pkg_config_name", "dlib-1")
- self.cpp_info.libs = tools.collect_libs(self)
+ # INFO: Unix systems use dlib as library name, but on Windows it includes settings, e.g dlib19.24.0_release_64bit_msvc1933.lib
+ self.cpp_info.libs = collect_libs(self)
if self.settings.os in ["Linux", "FreeBSD"]:
- self.cpp_info.system_libs = ["pthread"]
+ self.cpp_info.system_libs = ["pthread", "nsl"]
elif self.settings.os == "Windows":
self.cpp_info.system_libs = ["ws2_32", "winmm", "comctl32", "gdi32", "imm32"]
-
- self.cpp_info.names["pkg_config"] = "dlib-1"
diff --git a/recipes/dlib/all/test_package/CMakeLists.txt b/recipes/dlib/all/test_package/CMakeLists.txt
index 50caaa372ec830..9ce5dccc129836 100644
--- a/recipes/dlib/all/test_package/CMakeLists.txt
+++ b/recipes/dlib/all/test_package/CMakeLists.txt
@@ -1,11 +1,8 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package LANGUAGES CXX)
-
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
+cmake_minimum_required(VERSION 3.15)
+project(test_package CXX)
find_package(dlib REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
-target_link_libraries(${PROJECT_NAME} dlib::dlib)
-set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
+target_link_libraries(${PROJECT_NAME} PRIVATE dlib::dlib)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
diff --git a/recipes/dlib/all/test_package/conanfile.py b/recipes/dlib/all/test_package/conanfile.py
index 38f4483872d47f..ef5d7042163ecc 100644
--- a/recipes/dlib/all/test_package/conanfile.py
+++ b/recipes/dlib/all/test_package/conanfile.py
@@ -1,10 +1,19 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
class TestPackageConan(ConanFile):
settings = "os", "arch", "compiler", "build_type"
- generators = "cmake", "cmake_find_package_multi"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -12,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/dlib/all/test_v1_package/CMakeLists.txt b/recipes/dlib/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..be00a8c7f57c71
--- /dev/null
+++ b/recipes/dlib/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.8)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/dlib/all/test_v1_package/conanfile.py b/recipes/dlib/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..e0660e0801b965
--- /dev/null
+++ b/recipes/dlib/all/test_v1_package/conanfile.py
@@ -0,0 +1,15 @@
+import os
+from conans import ConanFile, CMake, tools
+
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type",
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self):
+ self.run(os.path.join("bin", "test_package"), run_environment=True)
diff --git a/recipes/docopt.cpp/all/conanfile.py b/recipes/docopt.cpp/all/conanfile.py
index 0745cc959331b1..f91d97fba08924 100644
--- a/recipes/docopt.cpp/all/conanfile.py
+++ b/recipes/docopt.cpp/all/conanfile.py
@@ -48,7 +48,7 @@ def layout(self):
def requirements(self):
if self.options.boost_regex:
- self.requires("boost/1.81.0")
+ self.requires("boost/1.83.0")
def validate(self):
if self.settings.compiler.get_safe("cppstd"):
diff --git a/recipes/drogon/all/conandata.yml b/recipes/drogon/all/conandata.yml
index 3ee3725bb502de..d62ebab92171a2 100644
--- a/recipes/drogon/all/conandata.yml
+++ b/recipes/drogon/all/conandata.yml
@@ -1,4 +1,10 @@
sources:
+ "1.8.6":
+ url: "https://github.com/drogonframework/drogon/archive/v1.8.6.tar.gz"
+ sha256: "ff02979f28047e97e19e36d1f363b3052b8122975fa8a379305d746dfe5fb004"
+ "1.8.5":
+ url: "https://github.com/drogonframework/drogon/archive/v1.8.5.tar.gz"
+ sha256: "9469f99408c114bc1e89945a3a8dab4640ea6d8cb06e7d42f06c1dfda3f71d2a"
"1.8.4":
url: "https://github.com/drogonframework/drogon/archive/v1.8.4.tar.gz"
sha256: "6f2f59ead0f0c37b0aac4bc889cbaedf3c2540f3020e892596c72f0a4d887a18"
@@ -15,6 +21,20 @@ sources:
url: "https://github.com/drogonframework/drogon/archive/refs/tags/v1.7.5.tar.gz"
sha256: "e2af7c55dcabafef16f26f5b3242692f5a2b54c19b7b626840bf9132d24766f6"
patches:
+ "1.8.6":
+ - patch_file: "patches/1.8.5-0001-remove-shared-libs.patch"
+ patch_description: "remove shared libs option"
+ patch_type: "conan"
+ - patch_file: "patches/1.8.6-0002-find-cci-packages.patch"
+ patch_description: "Fix jsoncpp cmake target name"
+ patch_type: "conan"
+ "1.8.5":
+ - patch_file: "patches/1.8.5-0001-remove-shared-libs.patch"
+ patch_description: "remove shared libs option"
+ patch_type: "conan"
+ - patch_file: "patches/1.8.5-0002-find-cci-packages.patch"
+ patch_description: "Fix jsoncpp cmake target name"
+ patch_type: "conan"
"1.8.4":
- patch_file: "patches/1.8.4-0001-remove-shared-libs.patch"
patch_description: "remove shared libs option"
@@ -28,6 +48,10 @@ patches:
- patch_file: "patches/1.8.4-0004-find-package-yaml-cpp.patch"
patch_description: "Fix yaml-cpp cmake target name"
patch_type: "conan"
+ - patch_file: "patches/1.8.2-0004-support-gcc13.patch"
+ patch_description: "Fix compilation error on gcc13 with C++17"
+ patch_type: "portability"
+ patch_source: "https://github.com/drogonframework/drogon/pull/1563/"
"1.8.3":
- patch_file: "patches/1.8.0-0001-disable-unused-data.patch"
patch_description: "Consume Trantor package from Conan instead of using the\
@@ -39,6 +63,10 @@ patches:
- patch_file: "patches/1.8.3-0003-find-package-sqlite.patch"
patch_description: "Fix sqlite cmake target name"
patch_type: "conan"
+ - patch_file: "patches/1.8.2-0004-support-gcc13.patch"
+ patch_description: "Fix compilation error on gcc13 with C++17"
+ patch_type: "portability"
+ patch_source: "https://github.com/drogonframework/drogon/pull/1563/"
"1.8.2":
- patch_file: "patches/1.8.0-0001-disable-unused-data.patch"
patch_description: "Consume Trantor package from Conan instead of using the\
@@ -50,6 +78,10 @@ patches:
- patch_file: "patches/1.8.2-0003-find-package-sqlite.patch"
patch_description: "Fix sqlite cmake target name"
patch_type: "conan"
+ - patch_file: "patches/1.8.2-0004-support-gcc13.patch"
+ patch_description: "Fix compilation error on gcc13 with C++17"
+ patch_type: "portability"
+ patch_source: "https://github.com/drogonframework/drogon/pull/1563/"
"1.8.0":
- patch_file: "patches/1.8.0-0001-disable-unused-data.patch"
patch_description: "Consume Trantor package from Conan instead of using the subproject"
diff --git a/recipes/drogon/all/conanfile.py b/recipes/drogon/all/conanfile.py
index 80dc0d02645002..1cde167ffc5cc2 100644
--- a/recipes/drogon/all/conanfile.py
+++ b/recipes/drogon/all/conanfile.py
@@ -57,6 +57,8 @@ def export_sources(self):
def config_options(self):
if self.settings.os == "Windows":
del self.options.fPIC
+ if Version(self.version) < "1.8.4":
+ del self.options.with_yaml_cpp
def configure(self):
if self.options.shared:
@@ -108,28 +110,28 @@ def validate(self):
raise ConanInvalidConfiguration(f"{self.ref} requires boost on C++14")
def requirements(self):
- self.requires("trantor/1.5.11", transitive_headers=True, transitive_libs=True)
+ self.requires("trantor/1.5.13", transitive_headers=True, transitive_libs=True)
self.requires("jsoncpp/1.9.5", transitive_headers=True, transitive_libs=True)
self.requires("openssl/[>=1.1 <4]")
self.requires("zlib/1.2.13")
if self.settings.os == "Linux":
- self.requires("libuuid/1.0.3")
+ self.requires("util-linux-libuuid/2.39")
if self.options.with_profile:
self.requires("coz/cci.20210322")
if self.options.with_boost:
- self.requires("boost/1.82.0", transitive_headers=True)
+ self.requires("boost/1.83.0", transitive_headers=True)
if self.options.with_brotli:
self.requires("brotli/1.0.9")
if self.options.get_safe("with_postgres"):
- self.requires("libpq/14.7")
+ self.requires("libpq/15.4")
if self.options.get_safe("with_mysql"):
- self.requires("libmysqlclient/8.0.31")
+ self.requires("libmysqlclient/8.1.0")
if self.options.get_safe("with_sqlite"):
self.requires("sqlite3/3.42.0")
if self.options.get_safe("with_redis"):
- self.requires("hiredis/1.1.0")
- if self.options.with_yaml_cpp:
- self.requires("yaml-cpp/0.7.0")
+ self.requires("hiredis/1.2.0")
+ if self.options.get_safe("with_yaml_cpp", False):
+ self.requires("yaml-cpp/0.8.0")
def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)
@@ -146,7 +148,7 @@ def generate(self):
tc.variables["BUILD_DROGON_SHARED"] = self.options.shared
tc.variables["BUILD_DOC"] = False
tc.variables["BUILD_BROTLI"] = self.options.with_brotli
- tc.variables["BUILD_YAML_CONFIG"] = self.options.with_yaml_cpp
+ tc.variables["BUILD_YAML_CONFIG"] = self.options.get_safe("with_yaml_cpp", False)
tc.variables["BUILD_POSTGRESQL"] = self.options.get_safe("with_postgres", False)
tc.variables["BUILD_POSTGRESQL_BATCH"] = self.options.get_safe("with_postgres_batch", False)
tc.variables["BUILD_MYSQL"] = self.options.get_safe("with_mysql", False)
diff --git a/recipes/drogon/all/patches/1.8.2-0004-support-gcc13.patch b/recipes/drogon/all/patches/1.8.2-0004-support-gcc13.patch
new file mode 100644
index 00000000000000..477d23fb1fd63f
--- /dev/null
+++ b/recipes/drogon/all/patches/1.8.2-0004-support-gcc13.patch
@@ -0,0 +1,12 @@
+diff --git a/lib/inc/drogon/RateLimiter.h b/lib/inc/drogon/RateLimiter.h
+index 3b8706b..dece795 100644
+--- a/lib/inc/drogon/RateLimiter.h
++++ b/lib/inc/drogon/RateLimiter.h
+@@ -3,6 +3,7 @@
+ #include
+ #include
+ #include
++#include
+
+ namespace drogon
+ {
diff --git a/recipes/drogon/all/patches/1.8.5-0001-remove-shared-libs.patch b/recipes/drogon/all/patches/1.8.5-0001-remove-shared-libs.patch
new file mode 100644
index 00000000000000..9920eee5341394
--- /dev/null
+++ b/recipes/drogon/all/patches/1.8.5-0001-remove-shared-libs.patch
@@ -0,0 +1,12 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index db95642..e3e7fcf 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -8,7 +8,6 @@ option(BUILD_CTL "Build drogon_ctl" ON)
+ option(BUILD_EXAMPLES "Build examples" ON)
+ option(BUILD_ORM "Build orm" ON)
+ option(COZ_PROFILING "Use coz for profiling" OFF)
+-option(BUILD_SHARED_LIBS "Build drogon as a shared lib" OFF)
+ option(BUILD_DOC "Build Doxygen documentation" OFF)
+ option(BUILD_BROTLI "Build Brotli" ON)
+ option(BUILD_YAML_CONFIG "Build yaml config" ON)
diff --git a/recipes/drogon/all/patches/1.8.5-0002-find-cci-packages.patch b/recipes/drogon/all/patches/1.8.5-0002-find-cci-packages.patch
new file mode 100644
index 00000000000000..8bf9e60842f932
--- /dev/null
+++ b/recipes/drogon/all/patches/1.8.5-0002-find-cci-packages.patch
@@ -0,0 +1,71 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e3e7fcf..d1032da 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -198,9 +198,9 @@ else()
+ endif()
+
+ # jsoncpp
+-find_package(Jsoncpp REQUIRED)
+-target_link_libraries(${PROJECT_NAME} PUBLIC Jsoncpp_lib)
+-list(APPEND INCLUDE_DIRS_FOR_DYNAMIC_VIEW ${JSONCPP_INCLUDE_DIRS})
++find_package(jsoncpp REQUIRED)
++target_link_libraries(${PROJECT_NAME} PUBLIC jsoncpp_lib)
++list(APPEND INCLUDE_DIRS_FOR_DYNAMIC_VIEW ${jsoncpp_INCLUDE_DIRS})
+
+ # yamlcpp
+ if(BUILD_YAML_CONFIG)
+@@ -212,7 +212,7 @@ if(BUILD_YAML_CONFIG)
+ message(STATUS "yaml-cpp not used")
+ else()
+ message(STATUS "yaml-cpp found ")
+- target_link_libraries(${PROJECT_NAME} PUBLIC ${YAML_CPP_LINK_LIBRARY})
++ target_link_libraries(${PROJECT_NAME} PUBLIC yaml-cpp)
+ target_compile_definitions(${PROJECT_NAME} PUBLIC HAS_YAML_CPP)
+ endif()
+ else()
+@@ -442,7 +442,7 @@ if (BUILD_SQLITE)
+ find_package(SQLite3 QUIET)
+ find_package(unofficial-sqlite3 QUIET)
+ if (SQLite3_FOUND)
+- target_link_libraries(${PROJECT_NAME} PRIVATE SQLite3_lib)
++ target_link_libraries(${PROJECT_NAME} PRIVATE SQLite::SQLite3)
+ set(DROGON_FOUND_SQLite3 TRUE)
+ elseif (unofficial-sqlite3_FOUND)
+ target_link_libraries(${PROJECT_NAME} PRIVATE unofficial::sqlite3::sqlite3)
+@@ -465,10 +465,10 @@ if (BUILD_SQLITE)
+ endif (BUILD_SQLITE)
+
+ if (BUILD_REDIS)
+- find_package(Hiredis)
+- if (Hiredis_FOUND)
++ find_package(hiredis)
++ if (hiredis_FOUND)
+ add_definitions(-DUSE_REDIS)
+- target_link_libraries(${PROJECT_NAME} PRIVATE Hiredis_lib)
++ target_link_libraries(${PROJECT_NAME} PRIVATE hiredis::hiredis)
+ set(DROGON_SOURCES
+ ${DROGON_SOURCES}
+ nosql_lib/redis/src/RedisClientImpl.cc
+@@ -488,10 +488,10 @@ if (BUILD_REDIS)
+ nosql_lib/redis/src/SubscribeContext.h
+ nosql_lib/redis/src/RedisSubscriberImpl.h)
+
+- endif (Hiredis_FOUND)
++ endif ()
+ endif (BUILD_REDIS)
+
+-if (NOT Hiredis_FOUND)
++if (NOT hiredis_FOUND)
+ set(DROGON_SOURCES
+ ${DROGON_SOURCES}
+ lib/src/RedisClientSkipped.cc
+@@ -500,7 +500,7 @@ if (NOT Hiredis_FOUND)
+ set(private_headers
+ ${private_headers}
+ lib/src/RedisClientManager.h)
+-endif (NOT Hiredis_FOUND)
++endif ()
+
+ if (BUILD_TESTING)
+ add_subdirectory(nosql_lib/redis/tests)
diff --git a/recipes/drogon/all/patches/1.8.6-0002-find-cci-packages.patch b/recipes/drogon/all/patches/1.8.6-0002-find-cci-packages.patch
new file mode 100644
index 00000000000000..3da404b88ccc2b
--- /dev/null
+++ b/recipes/drogon/all/patches/1.8.6-0002-find-cci-packages.patch
@@ -0,0 +1,71 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a3ba35a..26fed2a 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -198,9 +198,9 @@ else()
+ endif()
+
+ # jsoncpp
+-find_package(Jsoncpp REQUIRED)
+-target_link_libraries(${PROJECT_NAME} PUBLIC Jsoncpp_lib)
+-list(APPEND INCLUDE_DIRS_FOR_DYNAMIC_VIEW ${JSONCPP_INCLUDE_DIRS})
++find_package(jsoncpp REQUIRED)
++target_link_libraries(${PROJECT_NAME} PUBLIC jsoncpp_lib)
++list(APPEND INCLUDE_DIRS_FOR_DYNAMIC_VIEW ${jsoncpp_INCLUDE_DIRS})
+
+ # yamlcpp
+ if(BUILD_YAML_CONFIG)
+@@ -212,7 +212,7 @@ if(BUILD_YAML_CONFIG)
+ message(STATUS "yaml-cpp not used")
+ else()
+ message(STATUS "yaml-cpp found ")
+- target_link_libraries(${PROJECT_NAME} PUBLIC ${YAML_CPP_LINK_LIBRARY})
++ target_link_libraries(${PROJECT_NAME} PUBLIC yaml-cpp)
+ target_compile_definitions(${PROJECT_NAME} PUBLIC HAS_YAML_CPP)
+ endif()
+ else()
+@@ -444,7 +444,7 @@ if (BUILD_SQLITE)
+ find_package(SQLite3 QUIET)
+ find_package(unofficial-sqlite3 QUIET)
+ if (SQLite3_FOUND)
+- target_link_libraries(${PROJECT_NAME} PRIVATE SQLite3_lib)
++ target_link_libraries(${PROJECT_NAME} PRIVATE SQLite::SQLite3)
+ set(DROGON_FOUND_SQLite3 TRUE)
+ elseif (unofficial-sqlite3_FOUND)
+ target_link_libraries(${PROJECT_NAME} PRIVATE unofficial::sqlite3::sqlite3)
+@@ -467,10 +467,10 @@ if (BUILD_SQLITE)
+ endif (BUILD_SQLITE)
+
+ if (BUILD_REDIS)
+- find_package(Hiredis)
+- if (Hiredis_FOUND)
++ find_package(hiredis)
++ if (hiredis_FOUND)
+ add_definitions(-DUSE_REDIS)
+- target_link_libraries(${PROJECT_NAME} PRIVATE Hiredis_lib)
++ target_link_libraries(${PROJECT_NAME} PRIVATE hiredis::hiredis)
+ set(DROGON_SOURCES
+ ${DROGON_SOURCES}
+ nosql_lib/redis/src/RedisClientImpl.cc
+@@ -490,10 +490,10 @@ if (BUILD_REDIS)
+ nosql_lib/redis/src/SubscribeContext.h
+ nosql_lib/redis/src/RedisSubscriberImpl.h)
+
+- endif (Hiredis_FOUND)
++ endif ()
+ endif (BUILD_REDIS)
+
+-if (NOT Hiredis_FOUND)
++if (NOT hiredis_FOUND)
+ set(DROGON_SOURCES
+ ${DROGON_SOURCES}
+ lib/src/RedisClientSkipped.cc
+@@ -502,7 +502,7 @@ if (NOT Hiredis_FOUND)
+ set(private_headers
+ ${private_headers}
+ lib/src/RedisClientManager.h)
+-endif (NOT Hiredis_FOUND)
++endif ()
+
+ if (BUILD_TESTING)
+ add_subdirectory(nosql_lib/redis/tests)
diff --git a/recipes/drogon/config.yml b/recipes/drogon/config.yml
index 7b7f0bad90e217..62f17e07b2e955 100644
--- a/recipes/drogon/config.yml
+++ b/recipes/drogon/config.yml
@@ -1,4 +1,8 @@
versions:
+ "1.8.6":
+ folder: "all"
+ "1.8.5":
+ folder: "all"
"1.8.4":
folder: "all"
"1.8.3":
diff --git a/recipes/dsp-filters/all/conandata.yml b/recipes/dsp-filters/all/conandata.yml
new file mode 100644
index 00000000000000..17f324a8e1446b
--- /dev/null
+++ b/recipes/dsp-filters/all/conandata.yml
@@ -0,0 +1,12 @@
+sources:
+ "cci.20170309":
+ url: "https://github.com/vinniefalco/DSPFilters/archive/acc49170e79a94fcb9c04b8a2116e9f8dffd1c7d.tar.gz"
+ sha256: "330c3960e55b8cdbf041d8ec4790a21a326dc331e43bf14c144ae5d88a47d53d"
+patches:
+ "cci.20170309":
+ - patch_file: "patches/0001-remove-explicit-cmake-options.patch"
+ patch_description: "Remove explicit STATIC and FPIC options in CMakeLists.txt"
+ patch_type: "conan"
+ - patch_file: "patches/0002-remove-msvc-cmake-flags.patch"
+ patch_description: "Remove MY_FLAGS options in CMakeLists.txt"
+ patch_type: "conan"
diff --git a/recipes/dsp-filters/all/conanfile.py b/recipes/dsp-filters/all/conanfile.py
new file mode 100644
index 00000000000000..d4ef17870d0514
--- /dev/null
+++ b/recipes/dsp-filters/all/conanfile.py
@@ -0,0 +1,74 @@
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.cmake import CMakeToolchain, CMake, cmake_layout
+from conan.tools.files import copy, get, apply_conandata_patches, export_conandata_patches, rename
+from conan.tools.microsoft import is_msvc
+import os
+
+required_conan_version = ">=1.53.0"
+
+class DSPFiltersConan(ConanFile):
+ name = "dsp-filters"
+ description = "Set of DSP filters"
+ topics = ("dsp", "filters")
+ url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://github.com/vinniefalco/DSPFilters"
+ license = "MIT"
+ settings = "os", "arch", "compiler", "build_type"
+ package_type = "library"
+
+ options = {
+ "shared": [True, False],
+ "fPIC": [True, False],
+ }
+ default_options = {
+ "shared": False,
+ "fPIC": True,
+ }
+
+ def validate(self):
+ # in case it does not work in another configuration, it should validated here too
+ if is_msvc(self) and self.options.shared:
+ raise ConanInvalidConfiguration(f"{self.ref} can not be built as shared on Visual Studio and msvc.")
+
+ def export_sources(self):
+ export_conandata_patches(self)
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
+
+ def config_options(self):
+ if self.settings.os == "Windows":
+ del self.options.fPIC
+
+ def configure(self):
+ if self.options.shared:
+ self.options.rm_safe("fPIC")
+
+ def source(self):
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.generate()
+
+ def build(self):
+ apply_conandata_patches(self)
+
+ cmake = CMake(self)
+ cmake.configure(build_script_folder=os.path.join(self.source_folder, "shared"))
+ cmake.build()
+
+ def package(self):
+ copy(self, "lib*", src=os.path.join(self.build_folder, "DSPFilters"), dst=os.path.join(self.package_folder, "lib"), keep_path=False)
+ copy(self, "DSPFilters.lib", src=os.path.join(self.build_folder, "DSPFilters", f"{self.settings.build_type}"), dst=os.path.join(self.package_folder, "lib"), keep_path=False)
+
+ copy(self, "*.h", src=os.path.join(self.source_folder, "shared", "DSPFilters", "include"), dst=os.path.join(self.package_folder, "include"))
+ copy(self, "README.md", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
+ rename(self, src=os.path.join(self.package_folder, "licenses", "README.md"), dst=os.path.join(self.package_folder, "licenses", "license"))
+
+ def package_info(self):
+ self.cpp_info.libs = ["DSPFilters"]
+
+ if self.settings.os in ["Linux", "FreeBSD", "Neutrino"]:
+ self.cpp_info.system_libs.extend(["m"])
diff --git a/recipes/dsp-filters/all/patches/0001-remove-explicit-cmake-options.patch b/recipes/dsp-filters/all/patches/0001-remove-explicit-cmake-options.patch
new file mode 100644
index 00000000000000..cece818ce0db26
--- /dev/null
+++ b/recipes/dsp-filters/all/patches/0001-remove-explicit-cmake-options.patch
@@ -0,0 +1,14 @@
+--- shared/DSPFilters/CMakeLists.txt 2017-03-09 13:40:27.000000000 +0100
++++ shared/DSPFilters/CMakeLists.txt 2023-08-03 09:10:56.248123716 +0200
+@@ -4,10 +4,8 @@
+
+ aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/source SOURCE_LIB)
+
+-add_library(${PROJECT_NAME} STATIC ${SOURCE_LIB})
++add_library(${PROJECT_NAME} ${SOURCE_LIB})
+
+ target_include_directories(${PROJECT_NAME}
+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+-set_property(TARGET ${PROJECT_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON)
+-
diff --git a/recipes/dsp-filters/all/patches/0002-remove-msvc-cmake-flags.patch b/recipes/dsp-filters/all/patches/0002-remove-msvc-cmake-flags.patch
new file mode 100644
index 00000000000000..e16d647a99e9c3
--- /dev/null
+++ b/recipes/dsp-filters/all/patches/0002-remove-msvc-cmake-flags.patch
@@ -0,0 +1,14 @@
+--- shared/CMakeLists.txt 2023-08-28 13:14:13.868202500 +0200
++++ shared/CMakeLists.txt 2023-08-28 13:14:42.827596800 +0200
+@@ -8,11 +8,6 @@
+ set(CMAKE_BUILD_TYPE Release)
+
+ if((${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC))
+- set(MYFLAGS "/O2 /WX- /MT")
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MYFLAGS}")
+- set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${MYFLAGS}")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MYFLAGS}")
+- set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${MYFLAGS}")
+ include(CheckSymbolExists)
+ check_symbol_exists(snprintf "stdio.h" HAVE_SNPRINTF)
+ if(NOT HAVE_SNPRINTF)
diff --git a/recipes/dsp-filters/all/test_package/CMakeLists.txt b/recipes/dsp-filters/all/test_package/CMakeLists.txt
new file mode 100644
index 00000000000000..f823007a47a745
--- /dev/null
+++ b/recipes/dsp-filters/all/test_package/CMakeLists.txt
@@ -0,0 +1,7 @@
+cmake_minimum_required(VERSION 3.14.0)
+project(test_package LANGUAGES CXX)
+
+find_package(dsp-filters REQUIRED CONFIG)
+
+add_executable(${PROJECT_NAME} test_package.cpp)
+target_link_libraries(${PROJECT_NAME} PRIVATE dsp-filters::dsp-filters)
diff --git a/recipes/dsp-filters/all/test_package/conanfile.py b/recipes/dsp-filters/all/test_package/conanfile.py
new file mode 100644
index 00000000000000..922d35b61f37a5
--- /dev/null
+++ b/recipes/dsp-filters/all/test_package/conanfile.py
@@ -0,0 +1,29 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
+import os
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
+
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not can_run(self):
+ return
+
+ bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/dsp-filters/all/test_package/test_package.cpp b/recipes/dsp-filters/all/test_package/test_package.cpp
new file mode 100644
index 00000000000000..10690f2821e166
--- /dev/null
+++ b/recipes/dsp-filters/all/test_package/test_package.cpp
@@ -0,0 +1,11 @@
+#include
+
+#include
+
+int main() {
+ Dsp::SimpleFilter, 1> f;
+ f.setup(1, 100, 1000);
+ f.reset();
+
+ return 0;
+}
diff --git a/recipes/dsp-filters/config.yml b/recipes/dsp-filters/config.yml
new file mode 100644
index 00000000000000..d7e185cf9c9647
--- /dev/null
+++ b/recipes/dsp-filters/config.yml
@@ -0,0 +1,3 @@
+versions:
+ "cci.20170309":
+ folder: all
diff --git a/recipes/dtl/all/conanfile.py b/recipes/dtl/all/conanfile.py
index 6d45ac4104004b..c53d228db89218 100644
--- a/recipes/dtl/all/conanfile.py
+++ b/recipes/dtl/all/conanfile.py
@@ -1,28 +1,40 @@
-from conans import ConanFile, tools
import os
-required_conan_version = ">=1.33.0"
+from conan import ConanFile
+from conan.tools.build import check_min_cppstd
+from conan.tools.files import copy, get
+from conan.tools.layout import basic_layout
+
+required_conan_version = ">=1.52.0"
+
class DtlConan(ConanFile):
name = "dtl"
description = "diff template library written by C++"
- topics = ("diff", "library", "algorithm")
license = "BSD-3-Clause"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/cubicdaiya/dtl"
+ topics = ("diff", "library", "algorithm", "header-only")
+
+ package_type = "header-library"
+ settings = "os", "arch", "compiler", "build_type"
no_copy_source = True
- @property
- def _source_subfolder(self):
- return "source_subfolder"
+ def layout(self):
+ basic_layout(self, src_folder="src")
def package_id(self):
- self.info.header_only()
+ self.info.clear()
def source(self):
- tools.get(**self.conan_data["sources"][self.version], strip_root=True, destination=self._source_subfolder)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def package(self):
- self.copy(os.path.join("dtl", "*.hpp"), dst="include", src=self._source_subfolder)
- self.copy(pattern="COPYING", dst="licenses", src=self._source_subfolder)
+ copy(self, "COPYING",
+ dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ copy(self, os.path.join("dtl", "*.hpp"),
+ dst=os.path.join(self.package_folder, "include"), src=self.source_folder)
+ def package_info(self):
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
diff --git a/recipes/dtl/all/test_package/CMakeLists.txt b/recipes/dtl/all/test_package/CMakeLists.txt
index 9710bb88ce36ce..f8aa0df23cba23 100644
--- a/recipes/dtl/all/test_package/CMakeLists.txt
+++ b/recipes/dtl/all/test_package/CMakeLists.txt
@@ -1,8 +1,5 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package)
-
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES CXX)
find_package(dtl CONFIG REQUIRED)
diff --git a/recipes/dtl/all/test_package/conanfile.py b/recipes/dtl/all/test_package/conanfile.py
index 49a3a66ea5bad4..ef5d7042163ecc 100644
--- a/recipes/dtl/all/test_package/conanfile.py
+++ b/recipes/dtl/all/test_package/conanfile.py
@@ -1,10 +1,19 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
class TestPackageConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake", "cmake_find_package_multi"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -12,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/dtl/all/test_v1_package/CMakeLists.txt b/recipes/dtl/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/dtl/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/dtl/all/test_v1_package/conanfile.py b/recipes/dtl/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..49a3a66ea5bad4
--- /dev/null
+++ b/recipes/dtl/all/test_v1_package/conanfile.py
@@ -0,0 +1,17 @@
+from conans import ConanFile, CMake, tools
+import os
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/duktape/all/CMakeLists.txt b/recipes/duktape/all/CMakeLists.txt
index 76bab4dba57c05..cc4f8cfa2df773 100644
--- a/recipes/duktape/all/CMakeLists.txt
+++ b/recipes/duktape/all/CMakeLists.txt
@@ -1,12 +1,8 @@
-cmake_minimum_required(VERSION 2.8.12)
-
+cmake_minimum_required(VERSION 3.12)
project(duktape C)
-include(conanbuildinfo.cmake)
-conan_basic_setup(KEEP_RPATHS)
-
-file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/source_subfolder/src/*.c)
-file(GLOB HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/source_subfolder/src/*.h)
+file(GLOB SOURCES ${CMAKE_CURRENT_LIST_DIR}/src/src/*.c)
+file(GLOB HEADERS ${CMAKE_CURRENT_LIST_DIR}/src/src/*.h)
add_library(duktape ${SOURCES} ${HEADERS})
set_target_properties(duktape PROPERTIES PUBLIC_HEADER "${HEADERS}")
@@ -14,10 +10,8 @@ if (UNIX AND NOT APPLE AND NOT ANDROID)
target_link_libraries(duktape m)
endif()
+include(GNUInstallDirs)
install(
TARGETS duktape
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib
PUBLIC_HEADER DESTINATION include
)
diff --git a/recipes/duktape/all/conanfile.py b/recipes/duktape/all/conanfile.py
index 3e582932bd5957..588a96a8c0f571 100644
--- a/recipes/duktape/all/conanfile.py
+++ b/recipes/duktape/all/conanfile.py
@@ -1,29 +1,33 @@
import os
-from conans import CMake, ConanFile, tools
-required_conan_version = ">=1.33.0"
+from conan import ConanFile
+from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
+from conan.tools.files import copy, get
+
+required_conan_version = ">=1.53.0"
+
class DuktapeConan(ConanFile):
name = "duktape"
- license = "MIT"
description = "Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint."
- topics = ("javascript", "engine", "embeddable", "compact")
+ license = "MIT"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://duktape.org"
- exports_sources = ["CMakeLists.txt"]
- generators = "cmake"
+ topics = ("javascript", "engine", "embeddable", "compact")
+
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
- options = {"shared": [True, False], "fPIC": [True, False]}
+ options = {
+ "shared": [True, False],
+ "fPIC": [True, False],
+ }
default_options = {
"shared": False,
"fPIC": True,
}
- _cmake = None
-
- @property
- def _source_subfolder(self):
- return "source_subfolder"
+ def export_sources(self):
+ copy(self, "CMakeLists.txt", src=self.recipe_folder, dst=self.export_sources_folder)
def config_options(self):
if self.settings.os == "Windows":
@@ -31,44 +35,41 @@ def config_options(self):
def configure(self):
if self.options.shared:
- del self.options.fPIC
- del self.settings.compiler.libcxx
- del self.settings.compiler.cppstd
+ self.options.rm_safe("fPIC")
+ self.settings.rm_safe("compiler.libcxx")
+ self.settings.rm_safe("compiler.cppstd")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
def source(self):
- tools.get(**self.conan_data["sources"][self.version], strip_root=True, destination=self._source_subfolder)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
- def _configure_cmake(self):
- if self._cmake:
- return self._cmake
- self._cmake = CMake(self)
- self._cmake.configure()
- return self._cmake
+ def generate(self):
+ tc = CMakeToolchain(self)
+ if self.settings.os == "Windows" and self.options.shared:
+ # Duktape has a configure script with a number of options.
+ # However, it requires python 2 and PyYAML package
+ # which is quite an unusual combination to have.
+ # The most crucial option is --dll which enables
+ # DUK_F_DLL_BUILD and the following defines.
+ tc.preprocessor_definitions["DUK_EXTERNAL_DECL"] = "extern __declspec(dllexport)"
+ tc.preprocessor_definitions["DUK_EXTERNAL"] = "__declspec(dllexport)"
+ tc.generate()
def build(self):
- # Duktape has configure script with a number of options.
- # However it requires python 2 and PyYAML package
- # which is quite an unusual combination to have.
- # The most crucial option is --dll which just flips this define.
- if self.settings.os == "Windows" and self.options.shared:
- tools.replace_in_file(
- os.path.join(self._source_subfolder, "src", "duk_config.h"),
- "#undef DUK_F_DLL_BUILD",
- "#define DUK_F_DLL_BUILD",
- )
- cmake = self._configure_cmake()
+ cmake = CMake(self)
+ cmake.configure(build_script_folder=self.export_sources_folder)
cmake.build()
def package(self):
- self.copy("LICENSE.txt", dst="licenses", src=self._source_subfolder)
- cmake = self._configure_cmake()
+ copy(self, "LICENSE.txt",
+ dst=os.path.join(self.package_folder, "licenses"),
+ src=self.source_folder)
+ cmake = CMake(self)
cmake.install()
def package_info(self):
self.cpp_info.libs = ["duktape"]
- if not self.options.shared and str(self.settings.os) in (
- "Linux",
- "FreeBSD",
- "SunOS",
- ):
+ if not self.options.shared and self.settings.os in ("Linux", "FreeBSD", "SunOS"):
self.cpp_info.system_libs = ["m"]
diff --git a/recipes/duktape/all/test_package/CMakeLists.txt b/recipes/duktape/all/test_package/CMakeLists.txt
index 526e8d40c66a27..e6adea9e794dde 100644
--- a/recipes/duktape/all/test_package/CMakeLists.txt
+++ b/recipes/duktape/all/test_package/CMakeLists.txt
@@ -1,9 +1,7 @@
-cmake_minimum_required(VERSION 3.1)
-
+cmake_minimum_required(VERSION 3.15)
project(test_package C)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
+find_package(duktape REQUIRED CONFIG)
add_executable(${CMAKE_PROJECT_NAME} test_package.c)
-target_link_libraries(${CMAKE_PROJECT_NAME} CONAN_PKG::duktape)
+target_link_libraries(${CMAKE_PROJECT_NAME} duktape::duktape)
diff --git a/recipes/duktape/all/test_package/conanfile.py b/recipes/duktape/all/test_package/conanfile.py
index ca9da956709115..ef5d7042163ecc 100644
--- a/recipes/duktape/all/test_package/conanfile.py
+++ b/recipes/duktape/all/test_package/conanfile.py
@@ -1,11 +1,19 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
-from conans import CMake, ConanFile, tools
-
class TestPackageConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -13,5 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self):
- self.run(os.path.join("bin", "test_package"), run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/duktape/all/test_v1_package/CMakeLists.txt b/recipes/duktape/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/duktape/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/duktape/all/test_v1_package/conanfile.py b/recipes/duktape/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..d47b5097e761e7
--- /dev/null
+++ b/recipes/duktape/all/test_v1_package/conanfile.py
@@ -0,0 +1,17 @@
+import os
+
+from conans import CMake, ConanFile, tools
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self):
+ self.run(os.path.join("bin", "test_package"), run_environment=True)
diff --git a/recipes/earcut/all/conanfile.py b/recipes/earcut/all/conanfile.py
index 23791142acadb5..9ff1959d206ffe 100644
--- a/recipes/earcut/all/conanfile.py
+++ b/recipes/earcut/all/conanfile.py
@@ -68,5 +68,15 @@ def package(self):
copy(self, "LICENSE", self.source_folder,
os.path.join(self.package_folder, "licenses"))
+ def package_info(self):
+ self.cpp_info.set_property("cmake_file_name", "earcut_hpp")
+ self.cpp_info.set_property("cmake_target_name", "earcut_hpp::earcut_hpp")
+
+ # TODO: to remove in conan v2 once cmake_find_package* generators removed
+ self.cpp_info.filenames["cmake_find_package"] = "earcut_hpp"
+ self.cpp_info.filenames["cmake_find_package_multi"] = "earcut_hpp"
+ self.cpp_info.names["cmake_find_package"] = "earcut_hpp"
+ self.cpp_info.names["cmake_find_package_multi"] = "earcut_hpp"
+
def package_id(self):
self.info.clear()
diff --git a/recipes/earcut/all/test_package/CMakeLists.txt b/recipes/earcut/all/test_package/CMakeLists.txt
index 4a460cc9a3c999..a6d943d9266685 100644
--- a/recipes/earcut/all/test_package/CMakeLists.txt
+++ b/recipes/earcut/all/test_package/CMakeLists.txt
@@ -1,8 +1,8 @@
cmake_minimum_required(VERSION 3.1)
project(test_package LANGUAGES CXX)
-find_package(earcut REQUIRED CONFIG)
+find_package(earcut_hpp REQUIRED CONFIG)
add_executable(${PROJECT_NAME} example.cpp)
-target_link_libraries(${PROJECT_NAME} PRIVATE earcut::earcut)
+target_link_libraries(${PROJECT_NAME} PRIVATE earcut_hpp::earcut_hpp)
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
diff --git a/recipes/easyloggingpp/all/CMakeLists.txt b/recipes/easyloggingpp/all/CMakeLists.txt
deleted file mode 100644
index f6fc5c33e69b07..00000000000000
--- a/recipes/easyloggingpp/all/CMakeLists.txt
+++ /dev/null
@@ -1,67 +0,0 @@
-cmake_minimum_required(VERSION 3.2)
-project(cmake_wrapper)
-
-include(conanbuildinfo.cmake)
-conan_basic_setup()
-option(enable_crash_log "Enable crash log handler" OFF)
-option(enable_thread_safe "Enable thread safety for use in multithreaded env" OFF)
-option(enable_debug_errors "Enable debug errors in case of configuration issues" OFF)
-option(enable_default_logfile "Enable creation of default logfile" ON)
-option(disable_logs "Disables all logs" OFF)
-option(disable_debug_logs "Disables debug logs" OFF)
-option(disable_info_logs "Disables info logs" OFF)
-option(disable_warning_logs "Disables warning logs" OFF)
-option(disable_error_logs "Disables error logs" OFF)
-option(disable_fatal_logs "Disables fatal logs" OFF)
-option(disable_verbose_logs "Disables verbose logs" OFF)
-option(disable_trace_logs "Disables trace logs" OFF)
-
-if (enable_crash_log)
- add_definitions(-DELPP_FEATURE_CRASH_LOG)
-endif()
-
-if (enable_thread_safe)
- add_definitions(-DELPP_THREAD_SAFE)
-endif()
-
-if (enable_debug_errors)
- add_definitions(-DELPP_DEBUG_ERRORS)
-endif()
-
-if (NOT enable_default_logfile)
- add_definitions(-DELPP_NO_DEFAULT_LOG_FILE)
-endif()
-
-if (disable_logs)
- add_definitions(-DELPP_DISABLE_LOGS)
-endif()
-
-if (disable_debug_logs)
- add_definitions(-DELPP_DISABLE_DEBUG_LOGS)
-endif()
-
-if (disable_info_logs)
- add_definitions(-DELPP_DISABLE_INFO_LOGS)
-endif()
-
-if (disable_warning_logs)
- add_definitions(-DELPP_DISABLE_WARNING_LOGS)
-endif()
-
-if (disable_error_logs)
- add_definitions(-DELPP_DISABLE_ERROR_LOGS)
-endif()
-
-if (disable_fatal_logs)
- add_definitions(-DELPP_DISABLE_FATAL_LOGS)
-endif()
-
-if (disable_verbose_logs)
- add_definitions(-DELPP_DISABLE_VERBOSE_LOGS)
-endif()
-
-if (disable_trace_logs)
- add_definitions(-DELPP_DISABLE_TRACE_LOGS)
-endif()
-
-add_subdirectory("source_subfolder")
diff --git a/recipes/easyloggingpp/all/conanfile.py b/recipes/easyloggingpp/all/conanfile.py
index b5d1f9b44e060d..5410892575c4a7 100644
--- a/recipes/easyloggingpp/all/conanfile.py
+++ b/recipes/easyloggingpp/all/conanfile.py
@@ -1,21 +1,22 @@
import os
-from conans import CMake
-from conan.tools import files
+
from conan import ConanFile
+from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
+from conan.tools.files import copy, get, rmdir, replace_in_file
+required_conan_version = ">=1.53.0"
-required_conan_version = ">=1.33.0"
class EasyloggingppConan(ConanFile):
name = "easyloggingpp"
- license = "The MIT License (MIT)"
- homepage = "https://github.com/amrayn/easyloggingpp"
+ description = "Single-header C++ logging library."
+ license = "MIT"
url = "https://github.com/conan-io/conan-center-index"
- description = "Single header C++ logging library."
+ homepage = "https://github.com/amrayn/easyloggingpp"
topics = ("logging", "stacktrace", "efficient-logging")
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake"
- exports_sources = "CMakeLists.txt",
+
+ package_type = "static-library"
+ settings = "os", "arch", "compiler", "build_type"
options = {
"enable_crash_log": [True, False],
"enable_thread_safe": [True, False],
@@ -28,7 +29,8 @@ class EasyloggingppConan(ConanFile):
"disable_error_logs": [True, False],
"disable_fatal_logs": [True, False],
"disable_verbose_logs": [True, False],
- "disable_trace_logs": [True, False]
+ "disable_trace_logs": [True, False],
+ "lib_utc_datetime": [True, False],
}
default_options = {
"enable_crash_log": False,
@@ -42,80 +44,70 @@ class EasyloggingppConan(ConanFile):
"disable_error_logs": False,
"disable_fatal_logs": False,
"disable_verbose_logs": False,
- "disable_trace_logs": False
+ "disable_trace_logs": False,
+ "lib_utc_datetime": False,
}
- _cmake = None
-
- @property
- def _source_subfolder(self):
- return "source_subfolder"
-
- @property
- def _build_subfolder(self):
- return "build_subfolder"
- def _configure_cmake(self):
- if self._cmake is not None:
- return self._cmake
- self._cmake = CMake(self)
- self._cmake.definitions["build_static_lib"] = True
- self._cmake.definitions["enable_crash_log"] = self.options.enable_crash_log
- self._cmake.definitions["enable_thread_safe"] = self.options.enable_thread_safe
- self._cmake.definitions["enable_debug_errors"] = self.options.enable_debug_errors
- self._cmake.definitions["enable_default_logfile"] = self.options.enable_default_logfile
- self._cmake.definitions["disable_logs"] = self.options.disable_logs
- self._cmake.definitions["disable_debug_logs"] = self.options.disable_debug_logs
- self._cmake.definitions["disable_info_logs"] = self.options.disable_info_logs
- self._cmake.definitions["disable_warning_logs"] = self.options.disable_warning_logs
- self._cmake.definitions["disable_error_logs"] = self.options.disable_error_logs
- self._cmake.definitions["disable_fatal_logs"] = self.options.disable_fatal_logs
- self._cmake.definitions["disable_verbose_logs"] = self.options.disable_verbose_logs
- self._cmake.definitions["disable_trace_logs"] = self.options.disable_trace_logs
- self._cmake.configure(build_folder=self._build_subfolder)
- return self._cmake
+ def layout(self):
+ cmake_layout(self, src_folder="src")
def source(self):
- files.get(self, **self.conan_data["sources"][self.version],
- destination=self._source_subfolder, strip_root=True)
-
- def build(self):
- cmake = self._configure_cmake()
- cmake.build()
-
- def package(self):
- cmake = self._configure_cmake()
- cmake.install()
- files.rmdir(self, os.path.join(self.package_folder, "share"))
- self.copy(pattern="LICENSE",
- dst="licenses",
- src=self._source_subfolder)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
- def package_info(self):
- self.cpp_info.names["cmake_find_package"] = "easyloggingpp"
- self.cpp_info.names["cmake_find_package_multi"] = "easyloggingpp"
- self.cpp_info.libs = ["easyloggingpp"]
+ @property
+ def _public_defines(self):
+ defines = []
if self.options.enable_crash_log:
- self.cpp_info.defines.append("ELPP_FEATURE_CRASH_LOG")
+ defines.append("ELPP_FEATURE_CRASH_LOG")
if self.options.enable_thread_safe:
- self.cpp_info.defines.append("ELPP_THREAD_SAFE")
+ defines.append("ELPP_THREAD_SAFE")
if self.options.enable_debug_errors:
- self.cpp_info.defines.append("ELPP_DEBUG_ERRORS")
+ defines.append("ELPP_DEBUG_ERRORS")
if self.options.enable_default_logfile:
- self.cpp_info.defines.append("ELPP_NO_DEFAULT_LOG_FILE")
+ defines.append("ELPP_NO_DEFAULT_LOG_FILE")
if self.options.disable_logs:
- self.cpp_info.defines.append("ELPP_DISABLE_LOGS")
+ defines.append("ELPP_DISABLE_LOGS")
if self.options.disable_debug_logs:
- self.cpp_info.defines.append("ELPP_DISABLE_DEBUG_LOGS")
+ defines.append("ELPP_DISABLE_DEBUG_LOGS")
if self.options.disable_info_logs:
- self.cpp_info.defines.append("ELPP_DISABLE_INFO_LOGS")
+ defines.append("ELPP_DISABLE_INFO_LOGS")
if self.options.disable_warning_logs:
- self.cpp_info.defines.append("ELPP_DISABLE_WARNING_LOGS")
+ defines.append("ELPP_DISABLE_WARNING_LOGS")
if self.options.disable_error_logs:
- self.cpp_info.defines.append("ELPP_DISABLE_ERROR_LOGS")
+ defines.append("ELPP_DISABLE_ERROR_LOGS")
if self.options.disable_fatal_logs:
- self.cpp_info.defines.append("ELPP_DISABLE_FATAL_LOGS")
+ defines.append("ELPP_DISABLE_FATAL_LOGS")
if self.options.disable_verbose_logs:
- self.cpp_info.defines.append("ELPP_DISABLE_VERBOSE_LOGS")
+ defines.append("ELPP_DISABLE_VERBOSE_LOGS")
if self.options.disable_trace_logs:
- self.cpp_info.defines.append("ELPP_DISABLE_TRACE_LOGS")
+ defines.append("lib_utc_datetime")
+ if self.options.lib_utc_datetime:
+ defines.append("ELPP_UTC_DATETIME")
+ return defines
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["build_static_lib"] = True
+ for d in self._public_defines:
+ tc.preprocessor_definitions[d] = "1"
+ tc.generate()
+ def _patch_sources(self):
+ replace_in_file(self, os.path.join(self.source_folder, "CMakeLists.txt"),
+ "set_property(TARGET easyloggingpp PROPERTY POSITION_INDEPENDENT_CODE ON)", "")
+
+ def build(self):
+ self._patch_sources()
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def package(self):
+ cmake = CMake(self)
+ cmake.install()
+ rmdir(self, os.path.join(self.package_folder, "share"))
+ copy(self, "LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+
+ def package_info(self):
+ self.cpp_info.libs = ["easyloggingpp"]
+ self.cpp_info.defines = self._public_defines
diff --git a/recipes/easyloggingpp/all/test_package/CMakeLists.txt b/recipes/easyloggingpp/all/test_package/CMakeLists.txt
index e515e14d7e6ada..a353807cafd1f8 100644
--- a/recipes/easyloggingpp/all/test_package/CMakeLists.txt
+++ b/recipes/easyloggingpp/all/test_package/CMakeLists.txt
@@ -1,9 +1,6 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(test_package CXX)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
-
find_package(easyloggingpp REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
diff --git a/recipes/easyloggingpp/all/test_package/conanfile.py b/recipes/easyloggingpp/all/test_package/conanfile.py
index 49a3a66ea5bad4..ef5d7042163ecc 100644
--- a/recipes/easyloggingpp/all/test_package/conanfile.py
+++ b/recipes/easyloggingpp/all/test_package/conanfile.py
@@ -1,10 +1,19 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
class TestPackageConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake", "cmake_find_package_multi"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -12,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/easyloggingpp/all/test_package/test_package.cpp b/recipes/easyloggingpp/all/test_package/test_package.cpp
index 9f1fc4b8dad349..da48715e9c0a26 100644
--- a/recipes/easyloggingpp/all/test_package/test_package.cpp
+++ b/recipes/easyloggingpp/all/test_package/test_package.cpp
@@ -10,11 +10,12 @@ void myCrashHandler(int sig) {
}
#endif
-int main() {
+int main(int argc, char* argv[]) {
+ START_EASYLOGGINGPP(argc, argv);
LOG(INFO) << "My first info log using default logger";
- #ifdef ELPP_FEATURE_CRASH_LOG
+#ifdef ELPP_FEATURE_CRASH_LOG
LOG(INFO) << "Installed crash handler";
el::Helpers::setCrashHandler(myCrashHandler);
- #endif
+#endif
return 0;
}
diff --git a/recipes/easyloggingpp/all/test_v1_package/CMakeLists.txt b/recipes/easyloggingpp/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/easyloggingpp/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/easyloggingpp/all/test_v1_package/conanfile.py b/recipes/easyloggingpp/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..49a3a66ea5bad4
--- /dev/null
+++ b/recipes/easyloggingpp/all/test_v1_package/conanfile.py
@@ -0,0 +1,17 @@
+from conans import ConanFile, CMake, tools
+import os
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/embag/all/CMakeLists.txt b/recipes/embag/all/CMakeLists.txt
new file mode 100644
index 00000000000000..6638694bdd2b66
--- /dev/null
+++ b/recipes/embag/all/CMakeLists.txt
@@ -0,0 +1,33 @@
+cmake_minimum_required(VERSION 3.15)
+project(embag LANGUAGES CXX)
+
+find_package(Boost REQUIRED COMPONENTS iostreams headers)
+find_package(lz4 REQUIRED CONFIG)
+find_package(BZip2 REQUIRED CONFIG)
+
+file(GLOB_RECURSE embag_SOURCES "lib/*.cc")
+add_library(embag ${embag_SOURCES})
+set_target_properties(embag PROPERTIES
+ # embag does not export any symbols otherwise
+ WINDOWS_EXPORT_ALL_SYMBOLS ON
+)
+target_compile_features(embag PUBLIC cxx_std_14)
+target_link_libraries(embag PUBLIC
+ Boost::iostreams
+ Boost::headers
+ lz4::lz4
+ BZip2::BZip2
+)
+
+if (MSVC)
+ # For a #if __cplusplus < 201402L check in lib/util.h
+ target_compile_options(embag PRIVATE /Zc:__cplusplus)
+endif()
+
+install(TARGETS embag)
+install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib/
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/embag
+ FILES_MATCHING
+ PATTERN "*.h"
+ PATTERN "*.hpp"
+)
diff --git a/recipes/embag/all/conandata.yml b/recipes/embag/all/conandata.yml
new file mode 100644
index 00000000000000..6df20cbf9a5ef0
--- /dev/null
+++ b/recipes/embag/all/conandata.yml
@@ -0,0 +1,4 @@
+sources:
+ "0.0.42":
+ url: "https://github.com/embarktrucks/embag/archive/refs/tags/0.0.42.tar.gz"
+ sha256: "60b22ba9355528040046b7e2c3ee968798ad5773a9eb7a1d13cf33dc47e2adec"
diff --git a/recipes/embag/all/conanfile.py b/recipes/embag/all/conanfile.py
new file mode 100644
index 00000000000000..3d3e19b6eb19bb
--- /dev/null
+++ b/recipes/embag/all/conanfile.py
@@ -0,0 +1,91 @@
+import os
+
+from conan import ConanFile
+from conan.tools.build import check_min_cppstd
+from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
+from conan.tools.files import get, copy, rm
+from conan.tools.microsoft import is_msvc
+
+required_conan_version = ">=1.53.0"
+
+
+class EmbagConan(ConanFile):
+ name = "embag"
+ description = "Schema and dependency free ROS bag reader"
+ license = "MIT"
+ url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://github.com/embarktrucks/embag"
+ topics = ("rosbag", "ros", "robotics")
+ package_type = "library"
+ settings = "os", "arch", "compiler", "build_type"
+ options = {
+ "shared": [True, False],
+ "fPIC": [True, False],
+ }
+ default_options = {
+ "shared": False,
+ "fPIC": True,
+ }
+
+ @property
+ def _min_cppstd(self):
+ return 14
+
+ def export_sources(self):
+ copy(self, "CMakeLists.txt",
+ src=self.recipe_folder,
+ dst=os.path.join(self.export_sources_folder, "src"))
+
+ def config_options(self):
+ if self.settings.os == "Windows":
+ del self.options.fPIC
+
+ def configure(self):
+ if self.options.shared:
+ self.options.rm_safe("fPIC")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
+
+ def requirements(self):
+ # INFO: embag.h includes boost/variant.hpp
+ self.requires("boost/1.82.0", transitive_headers=True)
+ # INFO: decompression.h includes lz4frame.h
+ self.requires("lz4/1.9.4", transitive_headers=True)
+ # INFO: ros_bag_types.h includes bzlib.h
+ self.requires("bzip2/1.0.8", transitive_headers=True)
+
+ def validate(self):
+ if self.settings.compiler.cppstd:
+ check_min_cppstd(self, self._min_cppstd)
+
+ def source(self):
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.generate()
+ deps = CMakeDeps(self)
+ deps.generate()
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def package(self):
+ copy(self, "LICENSE",
+ dst=os.path.join(self.package_folder, "licenses"),
+ src=self.source_folder)
+ cmake = CMake(self)
+ cmake.install()
+ rm(self, "*.pdb", self.package_folder, recursive=True)
+
+ def package_info(self):
+ self.cpp_info.libs = ["embag"]
+
+ if self.settings.os in ["Linux", "FreeBSD"]:
+ self.cpp_info.system_libs = ["m"]
+ if is_msvc(self):
+ # For a #if __cplusplus < 201402L check in lib/util.h, which is a public header
+ self.cpp_info.cxxflags.append("/Zc:__cplusplus")
diff --git a/recipes/embag/all/test_package/CMakeLists.txt b/recipes/embag/all/test_package/CMakeLists.txt
new file mode 100644
index 00000000000000..27b09cd59a9016
--- /dev/null
+++ b/recipes/embag/all/test_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES CXX)
+
+find_package(embag REQUIRED CONFIG)
+
+add_executable(${PROJECT_NAME} test_package.cpp)
+target_link_libraries(${PROJECT_NAME} PRIVATE embag::embag)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_14)
diff --git a/recipes/embag/all/test_package/conanfile.py b/recipes/embag/all/test_package/conanfile.py
new file mode 100644
index 00000000000000..ef5d7042163ecc
--- /dev/null
+++ b/recipes/embag/all/test_package/conanfile.py
@@ -0,0 +1,26 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
+import os
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/embag/all/test_package/test_package.cpp b/recipes/embag/all/test_package/test_package.cpp
new file mode 100644
index 00000000000000..c8563d402b2b7b
--- /dev/null
+++ b/recipes/embag/all/test_package/test_package.cpp
@@ -0,0 +1,18 @@
+#include
+#include
+
+#include
+
+int main() {
+ Embag::View view{};
+ // Do not load any bag file for testing
+ // view.addBag("xyz.bag");
+ const auto start_time = view.getStartTime();
+ const auto end_time = view.getEndTime();
+ std::cout << "Start time is " << start_time.secs + start_time.nsecs * 1e-9 << std::endl;
+ std::cout << "End time is " << end_time.secs + end_time.nsecs * 1e-9 << std::endl;
+ for (const auto &message : view.getMessages()) {
+ message->print();
+ }
+ return EXIT_SUCCESS;
+}
diff --git a/recipes/embag/config.yml b/recipes/embag/config.yml
new file mode 100644
index 00000000000000..97f7bce9d3b04c
--- /dev/null
+++ b/recipes/embag/config.yml
@@ -0,0 +1,3 @@
+versions:
+ "0.0.42":
+ folder: all
diff --git a/recipes/emsdk/all/conandata.yml b/recipes/emsdk/all/conandata.yml
index 8a32427b651c26..72c3415a7c7c25 100644
--- a/recipes/emsdk/all/conandata.yml
+++ b/recipes/emsdk/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "3.1.44":
+ url: "https://github.com/emscripten-core/emsdk/archive/3.1.44.tar.gz"
+ sha256: "cb8cded78f6953283429d724556e89211e51ac4d871fcf38e0b32405ee248e91"
"3.1.31":
url: "https://github.com/emscripten-core/emsdk/archive/3.1.31.tar.gz"
sha256: "1d38b7375e12e85197165a4c51d76d90e1d9db8c2c593b64cfaec4338af54750"
diff --git a/recipes/emsdk/config.yml b/recipes/emsdk/config.yml
index 82752e0f1209d8..f990e1dc35d29e 100644
--- a/recipes/emsdk/config.yml
+++ b/recipes/emsdk/config.yml
@@ -1,4 +1,6 @@
versions:
+ "3.1.44":
+ folder: all
"3.1.31":
folder: all
"3.1.30":
diff --git a/recipes/enhex-strong_type/all/conanfile.py b/recipes/enhex-strong_type/all/conanfile.py
index 40601c5f9d3e88..8b4ea08eec845b 100644
--- a/recipes/enhex-strong_type/all/conanfile.py
+++ b/recipes/enhex-strong_type/all/conanfile.py
@@ -1,50 +1,72 @@
-from conans import ConanFile, tools
-from conans.errors import ConanInvalidConfiguration
import os
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import check_min_cppstd
+from conan.tools.files import copy, get
+from conan.tools.layout import basic_layout
+from conan.tools.scm import Version
+
+required_conan_version = ">=1.52.0"
+
+
class EnhexStrongTypeConan(ConanFile):
name = "enhex-strong_type"
- license = "MIT"
description = "Create new type from existing type without changing the interface."
- topics = ("strong_type", "safety")
- homepage = "https://github.com/Enhex/strong_type"
+ license = "MIT"
url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://github.com/Enhex/strong_type"
+ topics = ("strong_type", "safety", "header-only")
+
+ package_type = "header-library"
+ settings = "os", "arch", "compiler", "build_type"
no_copy_source = True
- settings = ("compiler")
@property
- def _source_subfolder(self):
- return "source_subfolder"
-
- def validate(self):
- if self.settings.compiler.get_safe("cppstd"):
- tools.check_min_cppstd(self, 17)
+ def _min_cppstd(self):
+ return 17
- minimal_version = {
+ @property
+ def _compilers_minimum_version(self):
+ return {
"Visual Studio": "15",
+ "msvc": "191",
"gcc": "7",
"clang": "5.0",
- "apple-clang": "9.1"
+ "apple-clang": "9.1",
}
+
+ def layout(self):
+ basic_layout(self, src_folder="src")
+
+ def package_id(self):
+ self.info.clear()
+
+ def validate(self):
+ if self.settings.compiler.get_safe("cppstd"):
+ check_min_cppstd(self, self._min_cppstd)
+
compiler = str(self.settings.compiler)
- compiler_version = tools.Version(self.settings.compiler.version)
+ compiler_version = Version(self.settings.compiler.version)
- if compiler not in minimal_version:
- self.output.info("{} requires a compiler that supports at least C++17".format(self.name))
+ if compiler not in self._compilers_minimum_version:
+ self.output.info(f"{self.name} requires a compiler that supports at least C++17")
return
# Exclude compilers not supported
- if compiler_version < minimal_version[compiler]:
- raise ConanInvalidConfiguration("{} requires a compiler that supports at least C++17. {} {} is not".format(
- self.name, compiler, tools.Version(self.settings.compiler.version.value)))
+ if compiler_version < self._compilers_minimum_version[compiler]:
+ raise ConanInvalidConfiguration(
+ f"{self.name} requires a compiler that supports at least C++17. "
+ f"{compiler} {Version(self.settings.compiler.version.value)} is not"
+ )
def source(self):
- tools.get(**self.conan_data["sources"][self.version],
- destination=self._source_subfolder, strip_root=True)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
def package(self):
- self.copy(pattern="LICENSE.txt", dst="licenses", src=self._source_subfolder)
- self.copy(pattern="*", dst="include", src=os.path.join(self._source_subfolder, "include"))
+ copy(self, pattern="LICENSE.txt", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ copy(self, pattern="*", dst=os.path.join(self.package_folder, "include"), src=os.path.join(self.source_folder, "include"))
- def package_id(self):
- self.info.header_only()
+ def package_info(self):
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
diff --git a/recipes/enhex-strong_type/all/test_package/CMakeLists.txt b/recipes/enhex-strong_type/all/test_package/CMakeLists.txt
index ee8f5992e5656a..51d45c127f7222 100644
--- a/recipes/enhex-strong_type/all/test_package/CMakeLists.txt
+++ b/recipes/enhex-strong_type/all/test_package/CMakeLists.txt
@@ -1,10 +1,7 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(PackageTest CXX)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
-
-find_package(enhex-strong_type CONFIG REQUIRED)
+find_package(enhex-strong_type REQUIRED CONFIG)
add_executable(example example.cpp)
target_link_libraries(example enhex-strong_type::enhex-strong_type)
diff --git a/recipes/enhex-strong_type/all/test_package/conanfile.py b/recipes/enhex-strong_type/all/test_package/conanfile.py
index c48d1d23bfccde..8d52b7021efe14 100644
--- a/recipes/enhex-strong_type/all/test_package/conanfile.py
+++ b/recipes/enhex-strong_type/all/test_package/conanfile.py
@@ -1,11 +1,19 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
-from conans import ConanFile, CMake, tools
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
-class EnhexStrongTypeTestConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake", "cmake_find_package_multi"
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -13,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "example")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "example")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/enhex-strong_type/all/test_v1_package/CMakeLists.txt b/recipes/enhex-strong_type/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/enhex-strong_type/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/enhex-strong_type/all/test_v1_package/conanfile.py b/recipes/enhex-strong_type/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..c48d1d23bfccde
--- /dev/null
+++ b/recipes/enhex-strong_type/all/test_v1_package/conanfile.py
@@ -0,0 +1,18 @@
+import os
+
+from conans import ConanFile, CMake, tools
+
+
+class EnhexStrongTypeTestConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self):
+ bin_path = os.path.join("bin", "example")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/enkits/all/CMakeLists.txt b/recipes/enkits/all/CMakeLists.txt
deleted file mode 100644
index c986d294c75479..00000000000000
--- a/recipes/enkits/all/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-cmake_minimum_required(VERSION 3.1)
-project(cmake_wrapper)
-
-include(conanbuildinfo.cmake)
-conan_basic_setup()
-
-add_subdirectory("source_subfolder")
diff --git a/recipes/enkits/all/conandata.yml b/recipes/enkits/all/conandata.yml
index 9604c7fcf2b728..197355c129edc9 100644
--- a/recipes/enkits/all/conandata.yml
+++ b/recipes/enkits/all/conandata.yml
@@ -8,13 +8,3 @@ sources:
"1.8":
url: "https://github.com/dougbinks/enkiTS/archive/v1.8.zip"
sha256: "b96d8d439502d52f9dc419539b12b588df10750f4631ad5518586f7048cdfaef"
-patches:
- "1.11":
- - patch_file: "patches/cmake-install-lib-location.patch"
- base_path: "source_subfolder"
- "1.10":
- - patch_file: "patches/cmake-install-lib-location.patch"
- base_path: "source_subfolder"
- "1.8":
- - patch_file: "patches/cmake-install-lib-location.patch"
- base_path: "source_subfolder"
diff --git a/recipes/enkits/all/conanfile.py b/recipes/enkits/all/conanfile.py
index 3a8bf5c9e920b0..6149fad91345f3 100644
--- a/recipes/enkits/all/conanfile.py
+++ b/recipes/enkits/all/conanfile.py
@@ -1,18 +1,22 @@
import os
-from conans import ConanFile, CMake, tools
+
+from conan import ConanFile
+from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
+from conan.tools.files import copy, export_conandata_patches, get, replace_in_file
+
+required_conan_version = ">=1.53.0"
+
class EnkiTSConan(ConanFile):
name = "enkits"
description = "A permissively licensed C and C++ Task Scheduler for creating parallel programs."
- topics = ("conan", "c", "thread", "multithreading", "scheduling", "enkits", "gamedev")
+ license = "Zlib"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/dougbinks/enkiTS"
- license = "Zlib"
- settings = "os", "arch", "compiler", "build_type"
-
- exports_sources = "CMakeLists.txt", "patches/*"
- generators = "cmake"
+ topics = ("c", "thread", "multithreading", "scheduling", "gamedev")
+ package_type = "library"
+ settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
"fPIC": [True, False],
@@ -22,11 +26,8 @@ class EnkiTSConan(ConanFile):
"fPIC": True,
}
- _cmake = None
-
- @property
- def _source_subfolder(self):
- return "source_subfolder"
+ def export_sources(self):
+ export_conandata_patches(self)
def config_options(self):
if self.settings.os == "Windows":
@@ -34,37 +35,44 @@ def config_options(self):
def configure(self):
if self.options.shared:
- del self.options.fPIC
+ self.options.rm_safe("fPIC")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
def source(self):
- tools.get(**self.conan_data["sources"][self.version])
- extracted_dir = "enkiTS-" + self.version
- os.rename(extracted_dir, self._source_subfolder)
-
- def _configure_cmake(self):
- if not self._cmake:
- self._cmake = CMake(self)
- self._cmake.definitions["ENKITS_INSTALL"] = True
- self._cmake.definitions["ENKITS_BUILD_EXAMPLES"] = False
- self._cmake.definitions["ENKITS_BUILD_SHARED"] = self.options.shared
- self._cmake.configure()
- return self._cmake
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["ENKITS_INSTALL"] = True
+ tc.variables["ENKITS_BUILD_EXAMPLES"] = False
+ tc.variables["ENKITS_BUILD_SHARED"] = self.options.shared
+ tc.generate()
+
+ def _patch_sources(self):
+ replace_in_file(
+ self,
+ os.path.join(self.source_folder, "CMakeLists.txt"),
+ 'install(TARGETS enkiTS DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/enkiTS")',
+ "install(TARGETS enkiTS ARCHIVE LIBRARY RUNTIME)",
+ )
def build(self):
- for patch in self.conan_data["patches"][self.version]:
- tools.patch(**patch)
- cmake = self._configure_cmake()
+ self._patch_sources()
+ cmake = CMake(self)
+ cmake.configure()
cmake.build()
def package(self):
- self.copy(pattern="License.txt", dst="licenses", src=self._source_subfolder)
- cmake = self._configure_cmake()
+ copy(self, "License.txt", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ cmake = CMake(self)
cmake.install()
def package_info(self):
self.cpp_info.libs = ["enkiTS"]
-
+
if self.options.shared:
self.cpp_info.defines.append("ENKITS_DLL=1")
- if self.settings.os == "Linux":
- self.cpp_info.system_libs = ["pthread"]
+ if self.settings.os in ["Linux", "FreeBSD"]:
+ self.cpp_info.system_libs = ["m", "pthread"]
diff --git a/recipes/enkits/all/patches/cmake-install-lib-location.patch b/recipes/enkits/all/patches/cmake-install-lib-location.patch
deleted file mode 100644
index 0a43979813c180..00000000000000
--- a/recipes/enkits/all/patches/cmake-install-lib-location.patch
+++ /dev/null
@@ -1,5 +0,0 @@
---- CMakeLists.txt
-+++ CMakeLists.txt
-@@ -63,1 +63,1 @@
-- install(TARGETS enkiTS DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/enkiTS")
-+ install(TARGETS enkiTS ARCHIVE LIBRARY RUNTIME)
diff --git a/recipes/enkits/all/test_package/CMakeLists.txt b/recipes/enkits/all/test_package/CMakeLists.txt
index 33ae887aa6aea3..2c29974d552845 100644
--- a/recipes/enkits/all/test_package/CMakeLists.txt
+++ b/recipes/enkits/all/test_package/CMakeLists.txt
@@ -1,9 +1,8 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package)
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES CXX)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup()
+find_package(enkits REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
-target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
+target_link_libraries(${PROJECT_NAME} PRIVATE enkits::enkits)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
diff --git a/recipes/enkits/all/test_package/conanfile.py b/recipes/enkits/all/test_package/conanfile.py
index 32e9e0cb58ab64..ef5d7042163ecc 100644
--- a/recipes/enkits/all/test_package/conanfile.py
+++ b/recipes/enkits/all/test_package/conanfile.py
@@ -1,9 +1,19 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
-from conans import ConanFile, CMake, tools
+
class TestPackageConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -11,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self.settings):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/enkits/all/test_v1_package/CMakeLists.txt b/recipes/enkits/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/enkits/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/enkits/all/test_v1_package/conanfile.py b/recipes/enkits/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..910ae60d104386
--- /dev/null
+++ b/recipes/enkits/all/test_v1_package/conanfile.py
@@ -0,0 +1,16 @@
+import os
+from conans import ConanFile, CMake, tools
+
+class TestPackageConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self.settings):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/etc2comp/all/CMakeLists.txt b/recipes/etc2comp/all/CMakeLists.txt
deleted file mode 100644
index c986d294c75479..00000000000000
--- a/recipes/etc2comp/all/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-cmake_minimum_required(VERSION 3.1)
-project(cmake_wrapper)
-
-include(conanbuildinfo.cmake)
-conan_basic_setup()
-
-add_subdirectory("source_subfolder")
diff --git a/recipes/etc2comp/all/conandata.yml b/recipes/etc2comp/all/conandata.yml
index c09fa8bdc3d9b0..a0bae7c1226dd7 100644
--- a/recipes/etc2comp/all/conandata.yml
+++ b/recipes/etc2comp/all/conandata.yml
@@ -5,4 +5,3 @@ sources:
patches:
"cci.20170424":
- patch_file: "patches/fix-cmake.patch"
- base_path: "source_subfolder"
diff --git a/recipes/etc2comp/all/conanfile.py b/recipes/etc2comp/all/conanfile.py
index 4a9a0df7d22660..0293dc8b7a9962 100644
--- a/recipes/etc2comp/all/conanfile.py
+++ b/recipes/etc2comp/all/conanfile.py
@@ -1,16 +1,22 @@
import os
-import glob
-from conans import ConanFile, CMake, tools
+
+from conan import ConanFile
+from conan.tools.build import check_min_cppstd
+from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
+from conan.tools.files import apply_conandata_patches, collect_libs, copy, export_conandata_patches, get
+
+required_conan_version = ">=1.53.0"
+
class Etc2compConan(ConanFile):
name = "etc2comp"
description = "Open source c++ skeletal animation library and toolset."
- license = "Apache-2.0",
- topics = ("conan", "texture", "etc2", "compressor")
- homepage = "https://github.com/google/etc2comp"
+ license = ("Apache-2.0",)
url = "https://github.com/conan-io/conan-center-index"
- exports_sources = ["CMakeLists.txt", "patches/**"]
- generators = "cmake"
+ homepage = "https://github.com/google/etc2comp"
+ topics = ("texture", "etc2", "compressor")
+
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
@@ -21,54 +27,51 @@ class Etc2compConan(ConanFile):
"fPIC": True,
}
- _cmake = None
-
- @property
- def _source_subfolder(self):
- return "source_subfolder"
-
- @property
- def _build_subfolder(self):
- return "build_subfolder"
+ def export_sources(self):
+ export_conandata_patches(self)
def config_options(self):
- if self.settings.os == 'Windows':
+ if self.settings.os == "Windows":
del self.options.fPIC
def configure(self):
if self.options.shared:
- del self.options.fPIC
+ self.options.rm_safe("fPIC")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
+
+ def validate(self):
if self.settings.compiler.cppstd:
- tools.check_min_cppstd(self, 11)
+ check_min_cppstd(self, 11)
def source(self):
- tools.get(**self.conan_data["sources"][self.version])
- extracted_dir = glob.glob('etc2comp-*/')[0]
- os.rename(extracted_dir, self._source_subfolder)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
- def _configure_cmake(self):
- if self._cmake:
- return self._cmake
- self._cmake = CMake(self)
- self._cmake.configure(build_folder=self._build_subfolder)
- return self._cmake
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.generate()
def build(self):
- for patch in self.conan_data.get("patches", {}).get(self.version, []):
- tools.patch(**patch)
- cmake = self._configure_cmake()
+ apply_conandata_patches(self)
+ cmake = CMake(self)
+ cmake.configure()
cmake.build()
def package(self):
- self.copy(pattern="LICENSE", dst="licenses", src=self._source_subfolder)
- self.copy("*.lib", dst="lib", keep_path=False)
- self.copy("*.dll", dst="bin", keep_path=False)
- self.copy("*.so*", dst="lib", keep_path=False, symlinks=True)
- self.copy("*.dylib", dst="lib", keep_path=False)
- self.copy("*.a", dst="lib", keep_path=False)
- self.copy("*.h", dst=os.path.join("include"), src=os.path.join(self._source_subfolder, "EtcLib"), keep_path=False)
+ copy(self, pattern="LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ for pattern in ["*.lib", "*.a", "*.so*", "*.dylib"]:
+ copy(self, pattern, dst=os.path.join(self.package_folder, "lib"), src=self.build_folder, keep_path=False)
+ copy(self, "*.dll", dst=os.path.join(self.package_folder, "bin"), src=self.build_folder, keep_path=False)
+ copy(
+ self,
+ "*.h",
+ dst=os.path.join(self.package_folder, "include"),
+ src=os.path.join(self.source_folder, "EtcLib"),
+ keep_path=False,
+ )
def package_info(self):
- self.cpp_info.libs = tools.collect_libs(self)
- if self.settings.os == "Linux":
- self.cpp_info.system_libs.append("pthread")
+ self.cpp_info.libs = collect_libs(self)
+ if self.settings.os in ["Linux", "FreeBSD"]:
+ self.cpp_info.system_libs = ["pthread"]
diff --git a/recipes/etc2comp/all/test_package/CMakeLists.txt b/recipes/etc2comp/all/test_package/CMakeLists.txt
index aede60e3b1e4a0..174341b077e2c4 100644
--- a/recipes/etc2comp/all/test_package/CMakeLists.txt
+++ b/recipes/etc2comp/all/test_package/CMakeLists.txt
@@ -1,9 +1,8 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package)
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES CXX)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup()
+find_package(etc2comp REQUIRED CONFIG)
add_executable(${CMAKE_PROJECT_NAME} test_package.cpp)
-target_link_libraries(${CMAKE_PROJECT_NAME} ${CONAN_LIBS})
+target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE etc2comp::etc2comp)
set_property(TARGET ${CMAKE_PROJECT_NAME} PROPERTY CXX_STANDARD 11)
diff --git a/recipes/etc2comp/all/test_package/conanfile.py b/recipes/etc2comp/all/test_package/conanfile.py
index 4903f1a7e8fa0f..ef5d7042163ecc 100644
--- a/recipes/etc2comp/all/test_package/conanfile.py
+++ b/recipes/etc2comp/all/test_package/conanfile.py
@@ -1,9 +1,19 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
+
class TestPackageConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -11,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self.settings):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/etc2comp/all/test_v1_package/CMakeLists.txt b/recipes/etc2comp/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/etc2comp/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/etc2comp/all/test_v1_package/conanfile.py b/recipes/etc2comp/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..6c9d5dba712c72
--- /dev/null
+++ b/recipes/etc2comp/all/test_v1_package/conanfile.py
@@ -0,0 +1,16 @@
+from conans import ConanFile, CMake, tools
+import os
+
+class TestPackageConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self.settings):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/etl/all/conandata.yml b/recipes/etl/all/conandata.yml
index d02bdeabb7ddbe..aaf305dbf4ff24 100644
--- a/recipes/etl/all/conandata.yml
+++ b/recipes/etl/all/conandata.yml
@@ -1,4 +1,13 @@
sources:
+ "20.38.0":
+ url: "https://github.com/ETLCPP/etl/archive/20.38.0.tar.gz"
+ sha256: "7e29ce81a2a2d5826286502a2ad5bde1f4b591d2c9e0ef7ccc335e75445223cd"
+ "20.37.3":
+ url: "https://github.com/ETLCPP/etl/archive/20.37.3.tar.gz"
+ sha256: "fbdf60c770772cd96d1eb25bdf56e4f45f23bf4029e18ef1f2af1f2056b9ea41"
+ "20.37.2":
+ url: "https://github.com/ETLCPP/etl/archive/20.37.2.tar.gz"
+ sha256: "13bd5d9d1bfbc887e3182895ca0291df0008a1c5770ddd12ef6cd2215c2bc6af"
"20.37.1":
url: "https://github.com/ETLCPP/etl/archive/20.37.1.tar.gz"
sha256: "73c29678e478eca9243c1d0c98e727a2249a7973d1429a847c669bccc65dca88"
@@ -23,9 +32,3 @@ sources:
"20.34.0":
url: "https://github.com/ETLCPP/etl/archive/20.34.0.tar.gz"
sha256: "56e25968f20167a161ee50c3eecda3daa91f696660ba59654c1afd22e502c465"
- "20.33.0":
- url: "https://github.com/ETLCPP/etl/archive/20.33.0.tar.gz"
- sha256: "46068e44cc3cbd626fc8adc5344101b4654c675b9a5faec0c80989176419cd7d"
- "20.32.1":
- url: "https://github.com/ETLCPP/etl/archive/20.32.1.tar.gz"
- sha256: "f39c8ccf33190303946dbcb2b251c86b4516234f57e0e87b83c0a28a1bdb059d"
diff --git a/recipes/etl/all/conanfile.py b/recipes/etl/all/conanfile.py
index b0f40f7104e269..a1737588ee9650 100644
--- a/recipes/etl/all/conanfile.py
+++ b/recipes/etl/all/conanfile.py
@@ -60,7 +60,8 @@ def _module_file_rel_path(self):
def package_info(self):
self.cpp_info.set_property("cmake_file_name", "etl")
- self.cpp_info.set_property("cmake_target_name", "etl")
+ self.cpp_info.set_property("cmake_target_name", "etl::etl")
+ self.cpp_info.set_property("cmake_target_aliases", ["etl"]) # legacy target before 20.27.2
self.cpp_info.bindirs = []
self.cpp_info.libdirs = []
diff --git a/recipes/etl/all/test_package/CMakeLists.txt b/recipes/etl/all/test_package/CMakeLists.txt
index b8e7aee7d94588..abf67a0fae7eec 100644
--- a/recipes/etl/all/test_package/CMakeLists.txt
+++ b/recipes/etl/all/test_package/CMakeLists.txt
@@ -5,4 +5,4 @@ find_package(etl REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
-target_link_libraries(${PROJECT_NAME} PRIVATE etl)
+target_link_libraries(${PROJECT_NAME} PRIVATE etl::etl)
diff --git a/recipes/etl/all/test_v1_package/CMakeLists.txt b/recipes/etl/all/test_v1_package/CMakeLists.txt
index b8e7ad788b8211..19dd51b438baa7 100644
--- a/recipes/etl/all/test_v1_package/CMakeLists.txt
+++ b/recipes/etl/all/test_v1_package/CMakeLists.txt
@@ -8,4 +8,4 @@ find_package(etl REQUIRED CONFIG)
add_executable(${PROJECT_NAME} ../test_package/test_package.cpp)
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
-target_link_libraries(${PROJECT_NAME} etl)
+target_link_libraries(${PROJECT_NAME} etl::etl)
diff --git a/recipes/etl/config.yml b/recipes/etl/config.yml
index 587b12dc52899e..f57d0b4090ca85 100644
--- a/recipes/etl/config.yml
+++ b/recipes/etl/config.yml
@@ -1,4 +1,10 @@
versions:
+ "20.38.0":
+ folder: all
+ "20.37.3":
+ folder: all
+ "20.37.2":
+ folder: all
"20.37.1":
folder: all
"20.37.0":
@@ -15,7 +21,3 @@ versions:
folder: all
"20.34.0":
folder: all
- "20.33.0":
- folder: all
- "20.32.1":
- folder: all
diff --git a/recipes/evmc/all/conandata.yml b/recipes/evmc/all/conandata.yml
new file mode 100644
index 00000000000000..6c98b724e418c4
--- /dev/null
+++ b/recipes/evmc/all/conandata.yml
@@ -0,0 +1,4 @@
+sources:
+ "10.1.1":
+ url: "https://github.com/ethereum/evmc/archive/v10.1.1.tar.gz"
+ sha256: "314a18635b2727a5129a7da3e4e15bd2fd76ee0c5ae19f21391b7a94e79cf459"
diff --git a/recipes/evmc/all/conanfile.py b/recipes/evmc/all/conanfile.py
new file mode 100644
index 00000000000000..13c6e5da4cc780
--- /dev/null
+++ b/recipes/evmc/all/conanfile.py
@@ -0,0 +1,81 @@
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.cmake import CMakeToolchain, CMake, cmake_layout
+from conan.tools.files import get, copy, rmdir
+from conan.tools.build import check_min_cppstd
+from conan.tools.scm import Version
+import os
+
+
+required_conan_version = ">=1.54.0"
+
+
+class EVMCConan(ConanFile):
+ name = "evmc"
+ description = "EVMC – Ethereum Client-VM Connector API"
+ license = "Apache-2.0"
+ url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://github.com/ethereum/evmc"
+ topics = ("ethereum", "wasm", "evm")
+ package_type = "static-library"
+ settings = "os", "arch", "compiler", "build_type"
+ tool_requires = "cmake/[>=3.16.2 <4]"
+ options = {"fPIC": [True, False]}
+ default_options = {"fPIC": True}
+
+ @property
+ def _min_cppstd(self):
+ return 17
+
+ @property
+ def _compilers_minimum_version(self):
+ return {
+ "Visual Studio": "16",
+ "msvc": "192",
+ "gcc": "8",
+ "clang": "9",
+ "apple-clang": "10",
+ }
+
+ def config_options(self):
+ if self.settings.os == "Windows":
+ del self.options.fPIC
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["EVMC_INSTALL"] = True
+ tc.variables["EVMC_TESTING"] = False
+ tc.variables["EVMC_JAVA"] = False
+ tc.variables["EVMC_TESTING"] = False
+ tc.variables["EVMC_EXAMPLES"] = False
+ tc.variables["EVMC_TOOLS"] = False
+ tc.variables["HUNTER_ENABLED"] = False
+ tc.generate()
+
+ def validate(self):
+ if self.settings.get_safe("compiler.cppstd"):
+ check_min_cppstd(self, self._min_cppstd)
+
+ minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False)
+ if minimum_version and Version(self.settings.compiler.version) < minimum_version:
+ raise ConanInvalidConfiguration(f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support.")
+
+ def source(self):
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def package(self):
+ copy(self, pattern="LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ cmake = CMake(self)
+ cmake.install()
+ rmdir(self, os.path.join(self.package_folder, "lib", "cmake"))
+
+ def package_info(self):
+ self.cpp_info.libs = ["evmc-instructions", "evmc-loader", "tooling"]
diff --git a/recipes/evmc/all/test_package/CMakeLists.txt b/recipes/evmc/all/test_package/CMakeLists.txt
new file mode 100644
index 00000000000000..d3cab735f84a22
--- /dev/null
+++ b/recipes/evmc/all/test_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.12)
+project(test_package LANGUAGES CXX)
+
+find_package(evmc REQUIRED CONFIG)
+
+add_executable(${PROJECT_NAME} test_package.cpp)
+target_link_libraries(${PROJECT_NAME} PRIVATE evmc::evmc)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
diff --git a/recipes/evmc/all/test_package/conanfile.py b/recipes/evmc/all/test_package/conanfile.py
new file mode 100644
index 00000000000000..a9fb96656f2039
--- /dev/null
+++ b/recipes/evmc/all/test_package/conanfile.py
@@ -0,0 +1,26 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
+import os
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/evmc/all/test_package/test_package.cpp b/recipes/evmc/all/test_package/test_package.cpp
new file mode 100644
index 00000000000000..2810a6cfce9456
--- /dev/null
+++ b/recipes/evmc/all/test_package/test_package.cpp
@@ -0,0 +1,19 @@
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+int main() {
+ const auto table = evmc_get_instruction_names_table(EVMC_BYZANTIUM);
+ std::cout << "HEX 0x80: " << evmc::hex(0x80) << std::endl;
+
+ return EXIT_SUCCESS;
+}
diff --git a/recipes/evmc/config.yml b/recipes/evmc/config.yml
new file mode 100644
index 00000000000000..a29f6d72c69f65
--- /dev/null
+++ b/recipes/evmc/config.yml
@@ -0,0 +1,3 @@
+versions:
+ "10.1.1":
+ folder: all
diff --git a/recipes/exiv2/all/conandata.yml b/recipes/exiv2/all/conandata.yml
index 63e5ef9836649b..981b0a2937754c 100644
--- a/recipes/exiv2/all/conandata.yml
+++ b/recipes/exiv2/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.28.0":
+ url: "https://github.com/Exiv2/exiv2/releases/download/v0.28.0/exiv2-0.28.0-Source.tar.gz"
+ sha256: "89af3b5ef7277753ef7a7b5374ae017c6b9e304db3b688f1948e73e103491f3d"
"0.27.5":
url: "https://github.com/Exiv2/exiv2/releases/download/v0.27.5/exiv2-0.27.5-Source.tar.gz"
sha256: "35a58618ab236a901ca4928b0ad8b31007ebdc0386d904409d825024e45ea6e2"
@@ -6,6 +9,11 @@ sources:
url: "https://github.com/Exiv2/exiv2/releases/download/v0.27.4/exiv2-0.27.4-Source.tar.gz"
sha256: "84366dba7c162af9a7603bcd6c16f40fe0e9af294ba2fd2f66ffffb9fbec904e"
patches:
+ "0.28.0":
+ - patch_file: "patches/0001-link-0.28.0.patch"
+ - patch_file: "patches/0004-find-expat-0.28.0.patch"
+ patch_description: "enforce usage of FindEXPAT.cmake"
+ patch_type: "conan"
"0.27.5":
- patch_file: "patches/0001-link-0.27.5.patch"
- patch_file: "patches/0003-fix-ios.patch"
diff --git a/recipes/exiv2/all/conanfile.py b/recipes/exiv2/all/conanfile.py
index 34ee99761cacc6..b5c3445fd34dae 100644
--- a/recipes/exiv2/all/conanfile.py
+++ b/recipes/exiv2/all/conanfile.py
@@ -1,9 +1,12 @@
-from conan import ConanFile
+from conan import ConanFile, conan_version
from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import check_min_cppstd
from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout, CMakeDeps
from conan.tools.files import get, copy, rmdir, save, export_conandata_patches, apply_conandata_patches
-from conan.tools.microsoft import is_msvc, is_msvc_static_runtime
+from conan.tools.microsoft import is_msvc, is_msvc_static_runtime, check_min_vs
+from conan.tools.scm import Version
import os
+import sys
import textwrap
required_conan_version = ">=1.53.0"
@@ -26,6 +29,9 @@ class Exiv2Conan(ConanFile):
"with_png": [True, False],
"with_xmp": [False, "bundled", "external"],
"with_curl": [True, False],
+ "with_brotli": [True, False],
+ "with_inih": [True, False],
+ "win_unicode": [True, False],
}
default_options = {
"shared": False,
@@ -33,6 +39,9 @@ class Exiv2Conan(ConanFile):
"with_png": True,
"with_xmp": "bundled",
"with_curl": False,
+ "with_brotli": True,
+ "with_inih": True,
+ "win_unicode": False,
}
provides = []
@@ -43,6 +52,14 @@ def export_sources(self):
def config_options(self):
if self.settings.os == "Windows":
del self.options.fPIC
+ if Version(self.version) >= "0.28.0":
+ del self.options.win_unicode
+ else:
+ del self.options.with_brotli
+ del self.options.with_inih
+
+ if self.settings.os == "Windows":
+ self.options.win_unicode = True
def configure(self):
if self.options.shared:
@@ -58,14 +75,43 @@ def layout(self):
def requirements(self):
self.requires("libiconv/1.17")
if self.options.with_png:
- self.requires("libpng/1.6.39")
+ self.requires("libpng/1.6.40")
self.requires("zlib/1.2.13")
if self.options.with_xmp == "bundled":
self.requires("expat/2.5.0")
if self.options.with_curl:
- self.requires("libcurl/7.87.0")
+ self.requires("libcurl/8.2.1")
+ if self.options.get_safe("with_brotli"):
+ self.requires("brotli/1.0.9")
+ if self.options.get_safe("with_inih"):
+ self.requires("inih/57")
def validate(self):
+ if Version(self.version) >= "0.28.0":
+ min_cppstd = 17
+
+ if self.settings.compiler.cppstd:
+ check_min_cppstd(self, min_cppstd)
+ check_min_vs(self, 191)
+
+ compilers_minimum_version = {
+ "gcc": "8",
+ "clang": "5",
+ "apple-clang": "10",
+ }
+ if not is_msvc(self):
+ minimum_version = compilers_minimum_version.get(str(self.settings.compiler), False)
+ if minimum_version and Version(self.info.settings.compiler.version) < minimum_version:
+ raise ConanInvalidConfiguration(
+ f"{self.ref} requires C++{min_cppstd}, which your compiler does not fully support."
+ )
+ elif conan_version.major == 2:
+ # FIXME: linter complains, but function is there
+ # https://docs.conan.io/2.0/reference/tools/build.html?highlight=check_min_cppstd#conan-tools-build-check-max-cppstd
+ check_max_cppstd = getattr(sys.modules['conan.tools.build'], 'check_max_cppstd')
+ # https://github.com/Exiv2/exiv2/tree/v0.27.7#217-building-with-c11-and-other-compilers
+ check_max_cppstd(self, 14)
+
if self.options.with_xmp == "external":
raise ConanInvalidConfiguration("adobe-xmp-toolkit is not available on cci (yet)")
@@ -84,6 +130,12 @@ def generate(self):
tc.variables["EXIV2_ENABLE_WEBREADY"] = self.options.with_curl
tc.variables["EXIV2_ENABLE_CURL"] = self.options.with_curl
tc.variables["EXIV2_ENABLE_SSH"] = False
+ if Version(self.version) >= "0.28.0":
+ tc.variables["EXIV2_ENABLE_BMFF"] = self.options.with_brotli
+ tc.variables["EXIV2_ENABLE_BROTLI"] = self.options.with_brotli
+ tc.variables["EXIV2_ENABLE_INIH"] = self.options.with_inih
+ else:
+ tc.variables["EXIV2_ENABLE_WIN_UNICODE"] = self.options.win_unicode
tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0077"] = "NEW"
if is_msvc(self):
@@ -145,6 +197,10 @@ def package_info(self):
self.cpp_info.components["exiv2lib"].requires.extend(["libpng::libpng", "zlib::zlib"])
if self.options.with_curl:
self.cpp_info.components["exiv2lib"].requires.append("libcurl::libcurl")
+ if self.options.get_safe("with_brotli"):
+ self.cpp_info.components["exiv2lib"].requires.extend(["brotli::brotlidec", "brotli::brotlienc"])
+ if self.options.get_safe("with_inih"):
+ self.cpp_info.components["exiv2lib"].requires.append("inih::inireader")
if self.settings.os in ("FreeBSD", "Linux"):
self.cpp_info.components["exiv2lib"].system_libs.extend(["pthread"])
@@ -154,14 +210,17 @@ def package_info(self):
# component exiv2-xmp
if self.options.with_xmp == "bundled":
- self.cpp_info.components["exiv2-xmp"].set_property("cmake_target_name", "exiv2-xmp")
- self.cpp_info.components["exiv2-xmp"].libs = ["exiv2-xmp"]
- self.cpp_info.components["exiv2-xmp"].requires = [ "expat::expat" ]
- self.cpp_info.components["exiv2lib"].requires.append("exiv2-xmp")
+ if Version(self.version) < "0.28.0":
+ self.cpp_info.components["exiv2-xmp"].set_property("cmake_target_name", "exiv2-xmp")
+ self.cpp_info.components["exiv2-xmp"].libs = ["exiv2-xmp"]
+ self.cpp_info.components["exiv2-xmp"].requires = [ "expat::expat" ]
+ self.cpp_info.components["exiv2lib"].requires.append("exiv2-xmp")
+ else:
+ self.cpp_info.components["exiv2lib"].requires.append("expat::expat")
# TODO: to remove in conan v2 once cmake_find_package_* generators removed
self.cpp_info.components["exiv2lib"].build_modules["cmake_find_package"] = [self._module_file_rel_path]
self.cpp_info.components["exiv2lib"].build_modules["cmake_find_package_multi"] = [self._module_file_rel_path]
- if self.options.with_xmp == "bundled":
+ if self.options.with_xmp == "bundled" and Version(self.version) < "0.28.0":
self.cpp_info.components["exiv2-xmp"].build_modules["cmake_find_package"] = [self._module_file_rel_path]
self.cpp_info.components["exiv2-xmp"].build_modules["cmake_find_package_multi"] = [self._module_file_rel_path]
diff --git a/recipes/exiv2/all/patches/0001-link-0.28.0.patch b/recipes/exiv2/all/patches/0001-link-0.28.0.patch
new file mode 100644
index 00000000000000..0c0e5fa28d40cc
--- /dev/null
+++ b/recipes/exiv2/all/patches/0001-link-0.28.0.patch
@@ -0,0 +1,22 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 41a672e8..93370b5e 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -170,10 +170,10 @@ if (MSVC)
+ set_target_properties(exiv2lib PROPERTIES LINK_FLAGS "/ignore:4099")
+ endif()
+
+-set_target_properties( exiv2lib_int PROPERTIES
+- POSITION_INDEPENDENT_CODE ON
+- COMPILE_DEFINITIONS exiv2lib_EXPORTS
+-)
++
++
++
++
+
+ # NOTE: Cannot use target_link_libraries on OBJECT libraries with old versions of CMake
+ target_include_directories(exiv2lib_int PRIVATE ${ZLIB_INCLUDE_DIR})
+--
+2.33.0.windows.1
+
diff --git a/recipes/exiv2/all/patches/0004-find-expat-0.28.0.patch b/recipes/exiv2/all/patches/0004-find-expat-0.28.0.patch
new file mode 100644
index 00000000000000..07fb4804513c7f
--- /dev/null
+++ b/recipes/exiv2/all/patches/0004-find-expat-0.28.0.patch
@@ -0,0 +1,16 @@
+diff --git a/cmake/findDependencies.cmake b/cmake/findDependencies.cmake
+index 1075c303..d8b580d4 100644
+--- a/cmake/findDependencies.cmake
++++ b/cmake/findDependencies.cmake
+@@ -60,7 +60,7 @@ if (EXIV2_ENABLE_XMP AND EXIV2_ENABLE_EXTERNAL_XMP)
+ message(FATAL_ERROR "EXIV2_ENABLE_XMP AND EXIV2_ENABLE_EXTERNAL_XMP are mutually exclusive. You can only choose one of them")
+ else()
+ if (EXIV2_ENABLE_XMP)
+- find_package(EXPAT REQUIRED)
++ find_package(EXPAT REQUIRED MODULE)
+ elseif (EXIV2_ENABLE_EXTERNAL_XMP)
+ find_package(XmpSdk REQUIRED)
+ endif ()
+--
+2.33.0.windows.1
+
diff --git a/recipes/exiv2/all/test_package/CMakeLists.txt b/recipes/exiv2/all/test_package/CMakeLists.txt
index 3bd4318c428bac..69bbd22508c9b5 100644
--- a/recipes/exiv2/all/test_package/CMakeLists.txt
+++ b/recipes/exiv2/all/test_package/CMakeLists.txt
@@ -5,3 +5,7 @@ find_package(exiv2 REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
target_link_libraries(${PROJECT_NAME} exiv2lib)
+
+if(${exiv2_VERSION} VERSION_GREATER_EQUAL "0.28.0")
+ target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
+endif()
diff --git a/recipes/exiv2/config.yml b/recipes/exiv2/config.yml
index 470d3a327a30b2..01a5aa663306e8 100644
--- a/recipes/exiv2/config.yml
+++ b/recipes/exiv2/config.yml
@@ -1,4 +1,6 @@
versions:
+ "0.28.0":
+ folder: all
"0.27.5":
folder: all
"0.27.4":
diff --git a/recipes/expected-lite/all/conanfile.py b/recipes/expected-lite/all/conanfile.py
index d5786a1bd1873f..591dbe00d1ead5 100644
--- a/recipes/expected-lite/all/conanfile.py
+++ b/recipes/expected-lite/all/conanfile.py
@@ -52,3 +52,4 @@ def package_info(self):
self.cpp_info.components["expectedlite"].names["cmake_find_package"] = "expected-lite"
self.cpp_info.components["expectedlite"].names["cmake_find_package_multi"] = "expected-lite"
self.cpp_info.components["expectedlite"].set_property("cmake_target_name", "nonstd::expected-lite")
+ self.cpp_info.components["expectedlite"].libdirs = []
diff --git a/recipes/fakeit/all/conanfile.py b/recipes/fakeit/all/conanfile.py
index 821c0ce34e3878..3676955b84f0fe 100644
--- a/recipes/fakeit/all/conanfile.py
+++ b/recipes/fakeit/all/conanfile.py
@@ -1,7 +1,7 @@
from conan import ConanFile
from conan.errors import ConanInvalidConfiguration
from conan.tools.build import check_min_cppstd
-from conan.tools.files import apply_conandata_patches, export_conandata_patches, get, copy
+from conan.tools.files import get, copy
from conan.tools.layout import basic_layout
import os
@@ -11,35 +11,34 @@
class FakeItConan(ConanFile):
name = "fakeit"
description = "C++ mocking made easy. A simple yet very expressive, headers only library for c++ mocking."
- topics = ("mock", "fake", "spy")
license = "MIT"
- homepage = "https://github.com/eranpeer/FakeIt"
url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://github.com/eranpeer/FakeIt"
+ topics = ("mock", "fake", "spy", "header-only")
package_type = "header-library"
settings = "os", "arch", "compiler", "build_type"
options = {
- "integration": ["boost", "catch", "cute", "gtest", "mettle", "nunit", "mstest", "qtest", "standalone", "tpunit"]
+ "integration": ["boost", "catch", "cute", "gtest", "mettle", "nunit", "mstest", "qtest", "standalone", "tpunit"],
+ }
+ default_options = {
+ "integration": "standalone",
}
- default_options = {"integration": "standalone"}
no_copy_source = True
@property
def _min_cppstd(self):
return 11
- def export_sources(self):
- export_conandata_patches(self)
-
def layout(self):
basic_layout(self, src_folder="src")
def requirements(self):
if self.options.integration == "boost":
- self.requires("boost/1.79.0")
+ self.requires("boost/1.83.0")
elif self.options.integration == "catch":
- self.requires("catch2/2.13.9")
+ self.requires("catch2/3.4.0")
elif self.options.integration == "gtest":
- self.requires("gtest/1.11.0")
+ self.requires("gtest/1.14.0")
elif self.options.integration == "qtest":
self.requires("qt/6.3.0")
elif self.options.integration == "standalone":
@@ -60,9 +59,6 @@ def validate(self):
def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)
- def build(self):
- apply_conandata_patches(self)
-
def package(self):
copy(self, pattern="LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
copy(
@@ -71,3 +67,7 @@ def package(self):
dst=os.path.join(self.package_folder, "include"),
src=os.path.join(self.source_folder, "single_header", str(self.options.integration)),
)
+
+ def package_info(self):
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
diff --git a/recipes/fakeit/all/test_package/CMakeLists.txt b/recipes/fakeit/all/test_package/CMakeLists.txt
index bc2658ff1b34ed..6beebe71b3c838 100644
--- a/recipes/fakeit/all/test_package/CMakeLists.txt
+++ b/recipes/fakeit/all/test_package/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.8)
-project(test_package CXX)
+project(test_package LANGUAGES CXX)
find_package(fakeit REQUIRED CONFIG)
diff --git a/recipes/fast-cdr/all/conandata.yml b/recipes/fast-cdr/all/conandata.yml
index 6a9ba778684496..48019c99a16475 100644
--- a/recipes/fast-cdr/all/conandata.yml
+++ b/recipes/fast-cdr/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.1.0":
+ url: "https://github.com/eProsima/Fast-CDR/archive/v1.1.0.tar.gz"
+ sha256: "5c4b2ad5493abd30b9475b14856641a8944c98077a36bd0760c1d83c65216e67"
"1.0.27":
url: "https://github.com/eProsima/Fast-CDR/archive/v1.0.27.tar.gz"
sha256: "a9bc8fd31a2c2b95e6d2fb46e6ce1ad733e86dc4442f733479e33ed9cdc54bf6"
diff --git a/recipes/fast-cdr/all/conanfile.py b/recipes/fast-cdr/all/conanfile.py
index c39c56b44ddc4a..29f8a4528ad1d7 100644
--- a/recipes/fast-cdr/all/conanfile.py
+++ b/recipes/fast-cdr/all/conanfile.py
@@ -4,6 +4,7 @@
from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
from conan.tools.files import collect_libs, copy, get, rm, rmdir, save
from conan.tools.microsoft import is_msvc, is_msvc_static_runtime
+from conan.tools.scm import Version
import os
import textwrap
@@ -40,6 +41,10 @@ def configure(self):
def layout(self):
cmake_layout(self, src_folder="src")
+ def build_requirements(self):
+ if Version(self.version) >= "1.1.0":
+ self.tool_requires("cmake/[>=3.16.3 <4]")
+
def validate(self):
if self.settings.compiler.get_safe("cppstd"):
check_min_cppstd(self, 11)
diff --git a/recipes/fast-cdr/config.yml b/recipes/fast-cdr/config.yml
index 3527dfb5e8511d..c67335370b9c41 100644
--- a/recipes/fast-cdr/config.yml
+++ b/recipes/fast-cdr/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.1.0":
+ folder: all
"1.0.27":
folder: all
"1.0.26":
diff --git a/recipes/fast-dds/all/conandata.yml b/recipes/fast-dds/all/conandata.yml
index 89a0fa550b4d41..d1212c03f024a9 100644
--- a/recipes/fast-dds/all/conandata.yml
+++ b/recipes/fast-dds/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "2.11.1":
+ url: "https://github.com/eProsima/Fast-DDS/archive/refs/tags/v2.11.1.tar.gz"
+ sha256: "3fe8b9f67a13a5d2aa40c0bd10581bd90f0a192b39c71f92ee233ffe584d3374"
"2.10.1":
url: "https://github.com/eProsima/Fast-DDS/archive/refs/tags/v2.10.1.tar.gz"
sha256: "2cc2682db5dc7e87684b7f23166e2f32faf8d5c4b4a8c94c6c21211a8a38f553"
@@ -12,6 +15,10 @@ sources:
url: "https://github.com/eProsima/Fast-DDS/archive/refs/tags/v2.3.2.tar.gz"
sha256: "4d8183cf4d37c3de9e6fd28d2850dd08023a9079001c4880b23c95f0d8c0b5ce"
patches:
+ "2.11.1":
+ - patch_file: "patches/2.11.1-0001-fix-find-asio-and-tinyxml2.patch"
+ patch_type: "conan"
+ patch_description: "Fixup find asio and tinyxml2"
"2.10.1":
- patch_file: "patches/2.10.1-0001-fix-find-asio-and-tinyxml2.patch"
patch_type: "conan"
diff --git a/recipes/fast-dds/all/conanfile.py b/recipes/fast-dds/all/conanfile.py
index d47f222eebac4d..e8ad7b42a13f0e 100644
--- a/recipes/fast-dds/all/conanfile.py
+++ b/recipes/fast-dds/all/conanfile.py
@@ -1,3 +1,6 @@
+import os
+import textwrap
+
from conan import ConanFile
from conan.errors import ConanInvalidConfiguration
from conan.tools.build import check_min_cppstd
@@ -15,8 +18,7 @@
)
from conan.tools.microsoft import check_min_vs, is_msvc_static_runtime, is_msvc, msvc_runtime_flag
from conan.tools.scm import Version
-import os
-import textwrap
+
required_conan_version = ">=1.53.0"
@@ -69,7 +71,7 @@ def layout(self):
def requirements(self):
self.requires("tinyxml2/9.0.0")
- self.requires("asio/1.28.0")
+ self.requires("asio/1.28.0") # This is now a package_type = header
self.requires("fast-cdr/1.0.27", transitive_headers=True, transitive_libs=True)
self.requires("foonathan-memory/0.7.3")
if self.options.with_ssl:
diff --git a/recipes/fast-dds/all/patches/2.11.1-0001-fix-find-asio-and-tinyxml2.patch b/recipes/fast-dds/all/patches/2.11.1-0001-fix-find-asio-and-tinyxml2.patch
new file mode 100644
index 00000000000000..bada751126e810
--- /dev/null
+++ b/recipes/fast-dds/all/patches/2.11.1-0001-fix-find-asio-and-tinyxml2.patch
@@ -0,0 +1,31 @@
+From b8c533b0fb2b92e9bd2aada5e195d7a0b3c0c6a9 Mon Sep 17 00:00:00 2001
+From: Joakim Haugen
+Date: Wed, 10 May 2023 13:17:11 +0200
+Subject: [PATCH] fix find asio and tinyxml2
+
+---
+ CMakeLists.txt | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b01b2c470..7867feff3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -232,9 +232,11 @@ if(NOT BUILD_SHARED_LIBS)
+ set(FASTDDS_STATIC ON)
+ endif()
+
+-eprosima_find_package(fastcdr REQUIRED)
+-eprosima_find_thirdparty(Asio asio VERSION 1.10.8)
+-eprosima_find_thirdparty(TinyXML2 tinyxml2)
++eprosima_find_thirdparty(fastcdr REQUIRED)
++eprosima_find_thirdparty(asio REQUIRED)
++eprosima_find_thirdparty(tinyxml2 REQUIRED)
++set(TINYXML2_LIBRARY tinyxml2::tinyxml2)
++set(Asio_INCLUDE_DIR ${asio_INCLUDE_DIR})
+
+ find_package(foonathan_memory REQUIRED)
+ message(STATUS "Found foonathan_memory: ${foonathan_memory_DIR}")
+--
+2.30.2
+
diff --git a/recipes/fast-dds/config.yml b/recipes/fast-dds/config.yml
index 9d0fe488028aa8..b5f51dc05cbcf0 100644
--- a/recipes/fast-dds/config.yml
+++ b/recipes/fast-dds/config.yml
@@ -1,4 +1,6 @@
versions:
+ "2.11.1":
+ folder: all
"2.10.1":
folder: all
"2.3.4":
diff --git a/recipes/fltk/all/CMakeLists.txt b/recipes/fltk/all/CMakeLists.txt
deleted file mode 100644
index 60dd71d7363c30..00000000000000
--- a/recipes/fltk/all/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-cmake_minimum_required(VERSION 2.8)
-project(cmake_wrapper)
-
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(KEEP_RPATHS)
-
-add_subdirectory(source_subfolder)
diff --git a/recipes/fltk/all/conandata.yml b/recipes/fltk/all/conandata.yml
index 1b3f085545004d..0f349ed1289218 100644
--- a/recipes/fltk/all/conandata.yml
+++ b/recipes/fltk/all/conandata.yml
@@ -5,9 +5,6 @@ sources:
patches:
"1.3.8":
- - base_path: "source_subfolder"
- patch_file: "patches/1.3.8-0001-remove-fluid.patch"
- - base_path: "source_subfolder"
- patch_file: "patches/1.3.8-0002-fix-resources.patch"
- - base_path: "source_subfolder"
- patch_file: "patches/1.3.8-0003-build-static-only-on-static.patch"
+ - patch_file: "patches/1.3.8-0001-remove-fluid.patch"
+ - patch_file: "patches/1.3.8-0002-fix-resources.patch"
+ - patch_file: "patches/1.3.8-0003-build-static-only-on-static.patch"
diff --git a/recipes/fltk/all/conanfile.py b/recipes/fltk/all/conanfile.py
index 0533063aab5851..a7feaec5a6e94b 100644
--- a/recipes/fltk/all/conanfile.py
+++ b/recipes/fltk/all/conanfile.py
@@ -1,19 +1,22 @@
import os
-import conan.tools.files as tools
from conan import ConanFile
-from conans import CMake
+from conan.tools.apple import is_apple_os
+from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
+from conan.tools.files import apply_conandata_patches, collect_libs, copy, export_conandata_patches, get, rm, rmdir
-required_conan_version = ">=1.50.0"
+required_conan_version = ">=1.53.0"
class FltkConan(ConanFile):
name = "fltk"
description = "Fast Light Toolkit is a cross-platform C++ GUI toolkit"
- topics = ("fltk", "gui")
- homepage = "https://www.fltk.org"
- url = "https://github.com/conan-io/conan-center-index"
license = "LGPL-2.0-custom"
+ url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://www.fltk.org"
+ topics = ("gui",)
+
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
@@ -21,31 +24,25 @@ class FltkConan(ConanFile):
"with_gl": [True, False],
"with_threads": [True, False],
"with_gdiplus": [True, False],
- "abi_version": "ANY"
+ "abi_version": ["ANY"],
}
default_options = {
"shared": False,
"fPIC": True,
"with_gl": True,
"with_threads": True,
- "with_gdiplus": True
+ "with_gdiplus": True,
}
- generators = "cmake", "cmake_find_package_multi"
-
- @property
- def _source_subfolder(self):
- return "source_subfolder"
def export_sources(self):
- self.copy("CMakeLists.txt")
- for patch in self.conan_data.get("patches", {}).get(self.version, []):
- self.copy(patch["patch_file"])
+ export_conandata_patches(self)
def config_options(self):
if self.settings.os == "Windows":
del self.options.fPIC
else:
- del self.options.with_gdiplus
+ self.options.rm_safe("with_gdiplus")
+
if self.options.abi_version == None:
_version_token = self.version.split(".")
_version_major = int(_version_token[0])
@@ -56,84 +53,81 @@ def config_options(self):
_version_minor = int(_version_token[1])
_version_patch = 0
self.options.abi_version = str(
- int(_version_major) * 10000 +
- int(_version_minor) * 100 +
- int(_version_patch)
+ int(_version_major) * 10000 + int(_version_minor) * 100 + int(_version_patch)
)
def configure(self):
if self.options.shared:
- del self.options.fPIC
+ self.options.rm_safe("fPIC")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("zlib/1.2.12")
- self.requires("libjpeg/9d")
- self.requires("libpng/1.6.37")
- if self.settings.os == "Linux":
+ self.requires("zlib/1.2.13")
+ self.requires("libjpeg/9e")
+ self.requires("libpng/1.6.40")
+ if self.settings.os in ["Linux", "FreeBSD"]:
self.requires("opengl/system")
self.requires("glu/system")
- self.requires("fontconfig/2.13.93")
+ self.requires("fontconfig/2.14.2")
self.requires("xorg/system")
def source(self):
- tools.get(self, **self.conan_data["sources"][self.version],
- destination=self._source_subfolder, strip_root=True)
-
- def _configure_cmake(self):
- cmake = CMake(self)
- cmake.definitions['OPTION_BUILD_SHARED_LIBS'] = self.options.shared
- cmake.definitions['FLTK_BUILD_TEST'] = False
- cmake.definitions['FLTK_BUILD_EXAMPLES'] = False
- cmake.definitions['OPTION_USE_GL'] = self.options.with_gl
- cmake.definitions['OPTION_USE_THREADS'] = self.options.with_threads
- cmake.definitions['OPTION_BUILD_HTML_DOCUMENTATION'] = False
- cmake.definitions['OPTION_BUILD_PDF_DOCUMENTATION'] = False
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["OPTION_BUILD_SHARED_LIBS"] = self.options.shared
+ tc.variables["FLTK_BUILD_TEST"] = False
+ tc.variables["FLTK_BUILD_EXAMPLES"] = False
+ tc.variables["OPTION_USE_GL"] = self.options.with_gl
+ tc.variables["OPTION_USE_THREADS"] = self.options.with_threads
+ tc.variables["OPTION_BUILD_HTML_DOCUMENTATION"] = False
+ tc.variables["OPTION_BUILD_PDF_DOCUMENTATION"] = False
if self.options.abi_version:
- cmake.definitions['OPTION_ABI_VERSION'] = self.options.abi_version
- cmake.configure()
- return cmake
+ tc.variables["OPTION_ABI_VERSION"] = self.options.abi_version
+ tc.generate()
+ tc = CMakeDeps(self)
+ tc.generate()
def build(self):
- for patch in self.conan_data.get("patches", {}).get(self.version, []):
- tools.patch(self, **patch)
-
- cmake = self._configure_cmake()
+ apply_conandata_patches(self)
+ cmake = CMake(self)
+ cmake.configure()
cmake.build()
def package(self):
- self.copy(pattern="COPYING", dst="licenses", src=self._source_subfolder)
- cmake = self._configure_cmake()
+ copy(self, "COPYING", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ cmake = CMake(self)
cmake.install()
- tools.rmdir(self, os.path.join(self.package_folder, "share"))
- tools.rmdir(self, os.path.join(self.package_folder, "FLTK.framework"))
- tools.rmdir(self, os.path.join(self.package_folder, "CMake"))
- tools.rm(self, "fltk-config*", os.path.join(self.package_folder, "bin"))
+ rmdir(self, os.path.join(self.package_folder, "share"))
+ rmdir(self, os.path.join(self.package_folder, "FLTK.framework"))
+ rmdir(self, os.path.join(self.package_folder, "CMake"))
+ rm(self, "fltk-config*", os.path.join(self.package_folder, "bin"))
def package_info(self):
self.cpp_info.set_property("cmake_file_name", "fltk")
self.cpp_info.set_property("cmake_target_name", "fltk::fltk")
-
- self.cpp_info.names["cmake_find_package"] = "fltk"
- self.cpp_info.names["cmake_find_package_multi"] = "fltk"
+ self.cpp_info.libs = collect_libs(self)
if self.options.shared and self.settings.os == "Windows":
self.cpp_info.defines.append("FL_DLL")
- self.cpp_info.libs = tools.collect_libs(self)
if self.settings.os in ("Linux", "FreeBSD"):
if self.options.with_threads:
- self.cpp_info.system_libs.extend(['pthread', 'dl'])
+ self.cpp_info.system_libs.extend(["pthread", "dl"])
if self.options.with_gl:
- self.cpp_info.system_libs.extend(['GL', 'GLU'])
- if self.settings.os == "Macos":
- self.cpp_info.frameworks = ['Cocoa', 'OpenGL', 'IOKit', 'Carbon', 'CoreFoundation', 'CoreVideo']
- if self.settings.os == "Windows":
- self.cpp_info.system_libs = [
- "gdi32",
- "imm32",
- "msimg32",
- "ole32",
- "oleaut32",
- "uuid",
+ self.cpp_info.system_libs.extend(["GL", "GLU"])
+ if is_apple_os(self):
+ self.cpp_info.frameworks = [
+ "AppKit", "ApplicationServices", "Carbon", "Cocoa", "CoreFoundation", "CoreGraphics",
+ "CoreText", "CoreVideo", "Foundation", "IOKit", "OpenGL",
]
+ if self.settings.os == "Windows":
+ self.cpp_info.system_libs = ["gdi32", "imm32", "msimg32", "ole32", "oleaut32", "uuid"]
if self.options.get_safe("with_gdiplus"):
self.cpp_info.system_libs.append("gdiplus")
+
+ # TODO: to remove in conan v2 once legacy generators removed
+ self.cpp_info.names["cmake_find_package"] = "fltk"
+ self.cpp_info.names["cmake_find_package_multi"] = "fltk"
diff --git a/recipes/fltk/all/test_package/CMakeLists.txt b/recipes/fltk/all/test_package/CMakeLists.txt
index a163bc26a443bb..cf30c297c55310 100644
--- a/recipes/fltk/all/test_package/CMakeLists.txt
+++ b/recipes/fltk/all/test_package/CMakeLists.txt
@@ -1,8 +1,5 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package)
-
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES CXX)
find_package(fltk REQUIRED CONFIG)
diff --git a/recipes/fltk/all/test_package/conanfile.py b/recipes/fltk/all/test_package/conanfile.py
index a500b98343c743..ef5d7042163ecc 100644
--- a/recipes/fltk/all/test_package/conanfile.py
+++ b/recipes/fltk/all/test_package/conanfile.py
@@ -1,9 +1,19 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
+
class TestPackageConan(ConanFile):
settings = "os", "arch", "compiler", "build_type"
- generators = "cmake", "cmake_find_package_multi"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -11,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/fltk/all/test_v1_package/CMakeLists.txt b/recipes/fltk/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/fltk/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/fltk/all/test_v1_package/conanfile.py b/recipes/fltk/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..a500b98343c743
--- /dev/null
+++ b/recipes/fltk/all/test_v1_package/conanfile.py
@@ -0,0 +1,16 @@
+from conans import ConanFile, CMake, tools
+import os
+
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/fmt/all/conandata.yml b/recipes/fmt/all/conandata.yml
index 2125f36949279c..1ddc76ef1e6675 100644
--- a/recipes/fmt/all/conandata.yml
+++ b/recipes/fmt/all/conandata.yml
@@ -1,4 +1,10 @@
sources:
+ "10.1.1":
+ url: "https://github.com/fmtlib/fmt/releases/download/10.1.1/fmt-10.1.1.zip"
+ sha256: "b84e58a310c9b50196cda48d5678d5fa0849bca19e5fdba6b684f0ee93ed9d1b"
+ "10.1.0":
+ url: "https://github.com/fmtlib/fmt/releases/download/10.1.0/fmt-10.1.0.zip"
+ sha256: "d725fa83a8b57a3cedf238828fa6b167f963041e8f9f7327649bddc68ae316f4"
"10.0.0":
url: "https://github.com/fmtlib/fmt/releases/download/10.0.0/fmt-10.0.0.zip"
sha256: "4943cb165f3f587f26da834d3056ee8733c397e024145ca7d2a8a96bb71ac281"
diff --git a/recipes/fmt/all/conanfile.py b/recipes/fmt/all/conanfile.py
index 862834c3580478..ab898ea9914110 100644
--- a/recipes/fmt/all/conanfile.py
+++ b/recipes/fmt/all/conanfile.py
@@ -118,9 +118,9 @@ def package_info(self):
if self.options.header_only:
self.cpp_info.components["_fmt"].defines.append("FMT_HEADER_ONLY=1")
+ self.cpp_info.components["_fmt"].libdirs = []
+ self.cpp_info.components["_fmt"].bindirs = []
- self.cpp_info.libdirs = []
- self.cpp_info.bindirs = []
else:
postfix = "d" if self.settings.build_type == "Debug" else ""
libname = "fmt" + postfix
diff --git a/recipes/fmt/config.yml b/recipes/fmt/config.yml
index 44e12e4e3ddc72..74db66d3ff4032 100644
--- a/recipes/fmt/config.yml
+++ b/recipes/fmt/config.yml
@@ -1,4 +1,8 @@
versions:
+ "10.1.1":
+ folder: all
+ "10.1.0":
+ folder: all
"10.0.0":
folder: all
"9.1.0":
diff --git a/recipes/fmtlog/all/conanfile.py b/recipes/fmtlog/all/conanfile.py
index 17e20eaf9c51b4..759d3b12c68610 100644
--- a/recipes/fmtlog/all/conanfile.py
+++ b/recipes/fmtlog/all/conanfile.py
@@ -67,7 +67,7 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("fmt/10.0.0", transitive_headers=True, transitive_libs=True)
+ self.requires("fmt/10.1.0", transitive_headers=True, transitive_libs=True)
def package_id(self):
if self.info.options.header_only:
diff --git a/recipes/fontconfig/all/conanfile.py b/recipes/fontconfig/all/conanfile.py
index c44276116659f5..1a6adb5ab1e225 100644
--- a/recipes/fontconfig/all/conanfile.py
+++ b/recipes/fontconfig/all/conanfile.py
@@ -50,7 +50,7 @@ def requirements(self):
self.requires("freetype/2.13.0")
self.requires("expat/2.5.0")
if self.settings.os == "Linux":
- self.requires("libuuid/1.0.3")
+ self.requires("util-linux-libuuid/2.39")
def validate(self):
if is_msvc(self):
diff --git a/recipes/fontconfig/meson/conanfile.py b/recipes/fontconfig/meson/conanfile.py
index dc1462585f4ec2..4ae32ba159e757 100644
--- a/recipes/fontconfig/meson/conanfile.py
+++ b/recipes/fontconfig/meson/conanfile.py
@@ -52,13 +52,13 @@ def requirements(self):
self.requires("freetype/2.13.0")
self.requires("expat/2.5.0")
if self.settings.os == "Linux":
- self.requires("libuuid/1.0.3")
+ self.requires("util-linux-libuuid/2.39")
def build_requirements(self):
self.tool_requires("gperf/3.1")
- self.tool_requires("meson/1.1.1")
+ self.tool_requires("meson/1.2.1")
if not self.conf.get("tools.gnu:pkg_config", default=False, check_type=str):
- self.tool_requires("pkgconf/1.9.3")
+ self.tool_requires("pkgconf/2.0.2")
def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)
@@ -95,7 +95,7 @@ def package(self):
copy(self, "COPYING", self.source_folder, os.path.join(self.package_folder, "licenses"))
meson = Meson(self)
meson.install()
- rm(self, "*.pdb", os.path.join(self.package_folder, "bin"))
+ rm(self, "*.pdb", self.package_folder, recursive=True)
rm(self, "*.conf", os.path.join(self.package_folder, "bin", "etc", "fonts", "conf.d"))
rm(self, "*.def", os.path.join(self.package_folder, "lib"))
rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
diff --git a/recipes/forestdb/all/CMakeLists.txt b/recipes/forestdb/all/CMakeLists.txt
deleted file mode 100644
index 78b537ac50f883..00000000000000
--- a/recipes/forestdb/all/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-cmake_minimum_required(VERSION 3.10)
-project(test_package)
-
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup()
-
-add_subdirectory("source_subfolder")
diff --git a/recipes/forestdb/all/conandata.yml b/recipes/forestdb/all/conandata.yml
index 935f0559af3352..e15581c6eba7e8 100644
--- a/recipes/forestdb/all/conandata.yml
+++ b/recipes/forestdb/all/conandata.yml
@@ -5,4 +5,3 @@ sources:
patches:
"cci.20220727":
- patch_file: "patches/0001-proper-cxx-std-flag.patch"
- base_path: "source_subfolder"
diff --git a/recipes/forestdb/all/conanfile.py b/recipes/forestdb/all/conanfile.py
index 526ab2f1f2069b..fd380e23358136 100644
--- a/recipes/forestdb/all/conanfile.py
+++ b/recipes/forestdb/all/conanfile.py
@@ -1,8 +1,13 @@
import os
-from conans import ConanFile, CMake, tools
-from conans.errors import ConanInvalidConfiguration
-required_conan_version = ">=1.33.0"
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import check_min_cppstd
+from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
+from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get
+
+required_conan_version = ">=1.53.0"
+
class ForestDBConan(ConanFile):
name = "forestdb"
@@ -11,12 +16,13 @@ class ForestDBConan(ConanFile):
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/ForestDB-KVStore/forestdb"
topics = ("kv-store", "mvcc", "wal")
- settings = "os", "arch", "compiler", "build_type"
+ package_type = "library"
+ settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
"fPIC": [True, False],
- "with_snappy": [True, False]
+ "with_snappy": [True, False],
}
default_options = {
"shared": False,
@@ -24,64 +30,65 @@ class ForestDBConan(ConanFile):
"with_snappy": False,
}
- generators = "cmake"
+ def export_sources(self):
+ export_conandata_patches(self)
- @property
- def _source_subfolder(self):
- return "source_subfolder"
+ def configure(self):
+ if self.options.shared:
+ self.options.rm_safe("fPIC")
- def export_sources(self):
- self.copy("CMakeLists.txt")
- for patch in self.conan_data.get("patches", {}).get(self.version, []):
- self.copy(patch["patch_file"])
+ def layout(self):
+ cmake_layout(self, src_folder="src")
def requirements(self):
if self.options.with_snappy:
- self.requires("snappy/1.1.9")
+ self.requires("snappy/1.1.10")
def validate(self):
if self.settings.os == "Windows":
raise ConanInvalidConfiguration("Windows Builds Unsupported")
if self.settings.compiler == "clang":
- if self.settings.compiler.libcxx == "libc++" and self.options.shared == False:
+ if self.settings.compiler.libcxx == "libc++" and not self.options.shared:
raise ConanInvalidConfiguration("LibC++ Static Builds Unsupported")
if self.settings.compiler.cppstd:
- tools.check_min_cppstd(self, 11)
-
- def configure(self):
- if self.options.shared:
- del self.options.fPIC
+ check_min_cppstd(self, 11)
def source(self):
- tools.get(**self.conan_data["sources"][self.version], strip_root=True, destination=self._source_subfolder)
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
- def build(self):
- for patch in self.conan_data.get("patches", {}).get(self.version, []):
- tools.patch(**patch)
- cmake = CMake(self)
- cmake.definitions["SNAPPY_OPTION"] = "Disable"
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["SNAPPY_OPTION"] = "Disable"
if self.options.with_snappy:
- cmake.definitions["SNAPPY_OPTION"] = "Enable"
- cmake.configure()
+ tc.variables["SNAPPY_OPTION"] = "Enable"
+ tc.generate()
+ tc = CMakeDeps(self)
+ tc.generate()
+
+ def build(self):
+ apply_conandata_patches(self)
lib_target = "forestdb"
if not self.options.shared:
lib_target = "static_lib"
+ cmake = CMake(self)
+ cmake.configure()
cmake.build(target=lib_target)
def package(self):
- self.copy("LICENSE", dst="licenses/", src=self._source_subfolder )
+ copy(self, "LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
# Parent Build system does not support library type selection
# and will only install the shared object from cmake; so we must
# handpick our libraries.
- self.copy("*.a*", dst="lib", src="lib")
- self.copy("*.lib", dst="lib", src="lib")
- self.copy("*.so*", dst="lib", src="lib", symlinks=True)
- self.copy("*.dylib*", dst="lib", src="lib", symlinks=True)
- self.copy("*.dll*", dst="lib", src="lib")
- self.copy("*.h", dst="include", src=os.path.join(self._source_subfolder, "include"), keep_path=True)
+ for pattern in ["*.a*", "*.lib", "*.so*", "*.dylib*", "*.dll*"]:
+ copy(self, pattern,
+ dst=os.path.join(self.package_folder, "lib"),
+ src=self.build_folder)
+ copy(self, "*.h",
+ dst=os.path.join(self.package_folder, "include"),
+ src=os.path.join(self.source_folder, "include"),
+ keep_path=True)
def package_info(self):
self.cpp_info.libs = ["forestdb"]
- self.cpp_info.system_libs.extend(["pthread", "m", "dl"])
- if self.settings.os == "Linux":
- self.cpp_info.system_libs.extend(["rt"])
+ if self.settings.os in ["Linux", "FreeBSD"]:
+ self.cpp_info.system_libs = ["pthread", "m", "dl", "rt"]
diff --git a/recipes/forestdb/all/test_package/CMakeLists.txt b/recipes/forestdb/all/test_package/CMakeLists.txt
index 9912b39ed8da5d..44b53f97f3be55 100644
--- a/recipes/forestdb/all/test_package/CMakeLists.txt
+++ b/recipes/forestdb/all/test_package/CMakeLists.txt
@@ -1,9 +1,6 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.15)
project(test_package CXX)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup()
-
find_package(forestdb REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
diff --git a/recipes/forestdb/all/test_package/conanfile.py b/recipes/forestdb/all/test_package/conanfile.py
index 751b9d5bc7b9cd..fae501d0afb9e4 100644
--- a/recipes/forestdb/all/test_package/conanfile.py
+++ b/recipes/forestdb/all/test_package/conanfile.py
@@ -1,11 +1,19 @@
-from conans import ConanFile, CMake, tools, RunEnvironment
-from conan.tools.build import cross_building
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
class TestPackageConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake", "cmake_find_package_multi"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -13,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/forestdb/all/test_v1_package/CMakeLists.txt b/recipes/forestdb/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/forestdb/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/forestdb/all/test_v1_package/conanfile.py b/recipes/forestdb/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..751b9d5bc7b9cd
--- /dev/null
+++ b/recipes/forestdb/all/test_v1_package/conanfile.py
@@ -0,0 +1,18 @@
+from conans import ConanFile, CMake, tools, RunEnvironment
+from conan.tools.build import cross_building
+import os
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not cross_building(self):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/fpgen/all/conandata.yml b/recipes/fpgen/all/conandata.yml
index 89315a6f71ce41..0ed9b7cc136ee0 100644
--- a/recipes/fpgen/all/conandata.yml
+++ b/recipes/fpgen/all/conandata.yml
@@ -1,7 +1,4 @@
sources:
- "1.1.0":
- url: "https://github.com/jay-tux/fpgen/archive/refs/tags/v1.1.0.tar.gz"
- sha256: "5e5faf1fbdcb3d93306bd8a838f805afdccdbb9076d78356ad5443943555be7d"
"1.1.0-clang":
url: "https://github.com/jay-tux/fpgen/archive/refs/tags/v1.1.0-clang.tar.gz"
sha256: "02936c1e790bcdba1479cf8164596b05cfc5b7401b3c71e0a1fd77e51fe8b93f"
diff --git a/recipes/fpgen/all/conanfile.py b/recipes/fpgen/all/conanfile.py
index b9e1ea43fa34a9..5d2f0cf538ac50 100644
--- a/recipes/fpgen/all/conanfile.py
+++ b/recipes/fpgen/all/conanfile.py
@@ -1,94 +1,77 @@
import os
-from conans import ConanFile, tools
-from conans.errors import ConanInvalidConfiguration
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import check_min_cppstd
+from conan.tools.files import copy, get
+from conan.tools.layout import basic_layout
+
+required_conan_version = ">=1.52.0"
class FpgenConan(ConanFile):
name = "fpgen"
- description = " Functional programming in C++ using C++20 coroutines."
+ description = "Functional programming in C++ using C++20 coroutines."
license = ["MPL2"]
- topics = (
- "generators",
- "coroutines",
- "c++20",
- "header-only",
- "functional-programming",
- "functional",
- )
- homepage = "https://github.com/jay-tux/fpgen/"
url = "https://github.com/conan-io/conan-center-index"
- settings = "arch", "os", "compiler", "build_type"
- no_copy_source = True
+ homepage = "https://github.com/jay-tux/fpgen/"
+ topics = ("generators", "coroutines", "c++20", "header-only", "functional-programming", "functional")
- @property
- def _source_subfolder(self):
- return "source_subfolder"
+ package_type = "header-library"
+ settings = "os", "arch", "compiler", "build_type"
+ no_copy_source = True
@property
def _min_cppstd(self):
- return "20"
+ return 20
@property
def _compilers_minimum_version(self):
return {
"gcc": "11",
"clang": "13",
+ "apple-clang": "13.1",
+ "Visual Studio": "16",
+ "msvc": "192",
}
- def package_id(self):
- self.info.header_only()
+ def layout(self):
+ basic_layout(self, src_folder="src")
- def source(self):
- tools.get(
- **self.conan_data["sources"][self.version],
- destination=self._source_subfolder,
- strip_root=True,
- )
+ def package_id(self):
+ self.info.clear()
def validate(self):
- if self.settings.compiler == "clang" and "clang" not in str(self.version):
- raise ConanInvalidConfiguration(
- f"Use '{self.version}-clang' for Clang support."
- )
-
- if (
- self.settings.compiler == "clang"
- and not self.settings.compiler.libcxx == "libc++"
- ):
- raise ConanInvalidConfiguration(
- f"Use 'compiler.libcxx=libc++' for {self.name} on Clang."
- )
+ if self.settings.compiler == "clang" and not self.settings.compiler.libcxx == "libc++":
+ raise ConanInvalidConfiguration(f"Use 'compiler.libcxx=libc++' with Clang for {self.name}.")
if self.settings.compiler.get_safe("cppstd"):
- tools.check_min_cppstd(self, self._min_cppstd)
+ check_min_cppstd(self, self._min_cppstd)
def lazy_lt_semver(v1, v2):
- lv1 = [int(v) for v in v1.split(".")]
- lv2 = [int(v) for v in v2.split(".")]
- min_length = min(len(lv1), len(lv2))
- return lv1[:min_length] < lv2[:min_length]
-
- minimum_version = self._compilers_minimum_version.get(
- str(self.settings.compiler), False
- )
- if not minimum_version:
- raise ConanInvalidConfiguration(
- f"{self.name} is currently not available for your compiler."
- )
- elif lazy_lt_semver(str(self.settings.compiler.version), minimum_version):
+ # Needed to allow version "13" >= "13.1" for apple-clang
+ return all(int(p1) < int(p2) for p1, p2 in zip(v1.split("."), v2.split(".")))
+
+ minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False)
+ if minimum_version and lazy_lt_semver(str(self.settings.compiler.version), minimum_version):
raise ConanInvalidConfiguration(
- f"{self.name} {self.version} requires C++20, which your compiler does not support."
+ f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support."
)
+ def source(self):
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
def package(self):
- self.copy(pattern="LICENSE", dst="licenses", src=self._source_subfolder)
- self.copy(
- pattern="*.hpp",
- dst=os.path.join("include", "fpgen"),
- src=self._source_subfolder,
- keep_path=False,
- )
+ copy(self, "LICENSE",
+ dst=os.path.join(self.package_folder, "licenses"),
+ src=self.source_folder)
+ copy(self, "*.hpp",
+ dst=os.path.join(self.package_folder, "include", "fpgen"),
+ src=self.source_folder,
+ keep_path=False)
def package_info(self):
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
+
self.cpp_info.includedirs.append(os.path.join("include", "fpgen"))
diff --git a/recipes/fpgen/all/test_package/CMakeLists.txt b/recipes/fpgen/all/test_package/CMakeLists.txt
index 2d7e6737381f9b..7013b94735f0f1 100644
--- a/recipes/fpgen/all/test_package/CMakeLists.txt
+++ b/recipes/fpgen/all/test_package/CMakeLists.txt
@@ -1,9 +1,6 @@
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.15)
project(test_package CXX)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup()
-
find_package(fpgen REQUIRED CONFIG)
add_executable(${PROJECT_NAME} main.cpp)
diff --git a/recipes/fpgen/all/test_package/conanfile.py b/recipes/fpgen/all/test_package/conanfile.py
index 3f4a9f50f389e4..ef5d7042163ecc 100644
--- a/recipes/fpgen/all/test_package/conanfile.py
+++ b/recipes/fpgen/all/test_package/conanfile.py
@@ -1,11 +1,19 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
-from conans import ConanFile, CMake, tools
-
class TestPackageConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake", "cmake_find_package_multi"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -13,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self.settings):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/fpgen/all/test_package/main.cpp b/recipes/fpgen/all/test_package/main.cpp
index 43bf51fe320f0d..d9d39d7a4b608c 100644
--- a/recipes/fpgen/all/test_package/main.cpp
+++ b/recipes/fpgen/all/test_package/main.cpp
@@ -1,13 +1,14 @@
+#include "fpgen/fpgen.hpp"
+
#include
#include
-#include "fpgen/fpgen.hpp"
int main() {
- std::vector vals = {0,1,2,3};
+ std::vector vals = {0, 1, 2, 3};
auto gen = fpgen::from(vals);
- for(auto &&val : gen) {
- std::cout << val << std::endl;
+ for (auto &&val : gen) {
+ std::cout << val << std::endl;
}
return 0;
}
diff --git a/recipes/fpgen/all/test_v1_package/CMakeLists.txt b/recipes/fpgen/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/fpgen/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/fpgen/all/test_v1_package/conanfile.py b/recipes/fpgen/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..3f4a9f50f389e4
--- /dev/null
+++ b/recipes/fpgen/all/test_v1_package/conanfile.py
@@ -0,0 +1,18 @@
+import os
+
+from conans import ConanFile, CMake, tools
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self.settings):
+ bin_path = os.path.join("bin", "test_package")
+ self.run(bin_path, run_environment=True)
diff --git a/recipes/fpgen/config.yml b/recipes/fpgen/config.yml
index ec935d5cf64ffc..2786096f9ff863 100644
--- a/recipes/fpgen/config.yml
+++ b/recipes/fpgen/config.yml
@@ -1,5 +1,3 @@
versions:
- "1.1.0":
- folder: all
"1.1.0-clang":
folder: all
diff --git a/recipes/fpzip/all/conandata.yml b/recipes/fpzip/all/conandata.yml
new file mode 100644
index 00000000000000..ef306da4b06498
--- /dev/null
+++ b/recipes/fpzip/all/conandata.yml
@@ -0,0 +1,4 @@
+sources:
+ "1.3.0":
+ url: "https://github.com/LLNL/fpzip/releases/download/1.3.0/fpzip-1.3.0.tar.gz"
+ sha256: "248df7d84259e3feaa4c4797956b2a77c3fcd734e8f8fdc51ce171dcf4f0136c"
diff --git a/recipes/fpzip/all/conanfile.py b/recipes/fpzip/all/conanfile.py
new file mode 100644
index 00000000000000..2369b2e58e6b6a
--- /dev/null
+++ b/recipes/fpzip/all/conanfile.py
@@ -0,0 +1,80 @@
+from conan import ConanFile
+from conan.tools.files import apply_conandata_patches, export_conandata_patches, get, copy, rmdir
+from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
+import os
+
+
+required_conan_version = ">=1.53.0"
+
+class FpzipConan(ConanFile):
+ name = "fpzip"
+ description = "Lossless compressor of multidimensional floating-point arrays"
+ license = "BSD-3-Clause"
+ url = "https://github.com/conan-io/conan-center-index"
+ homepage = "http://fpzip.llnl.gov/"
+ topics = ("compression", "lossless", "floating-point")
+ package_type = "library"
+ settings = "os", "arch", "compiler", "build_type"
+ options = {
+ "shared": [True, False],
+ "fPIC": [True, False],
+ "with_fp": ["fast", "safe", "emul", "int"],
+ }
+ default_options = {
+ "shared": False,
+ "fPIC": True,
+ "with_fp": "fast",
+ }
+
+ def export_sources(self):
+ export_conandata_patches(self)
+
+ def config_options(self):
+ if self.settings.os == "Windows":
+ del self.options.fPIC
+
+ def configure(self):
+ if self.options.shared:
+ self.options.rm_safe("fPIC")
+
+ def layout(self):
+ cmake_layout(self, src_folder="src")
+
+ def source(self):
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+ @property
+ def _fp_name_table(self):
+ return {
+ "fast": "FPZIP_FP_FAST",
+ "safe": "FPZIP_FP_SAFE",
+ "emul": "FPZIP_FP_EMUL",
+ "int": "FPZIP_FP_INT",
+ }
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.variables["FPZIP_FP"] = self._fp_name_table.get(str(self.options.with_fp), "FP_ZIP_FAST")
+ tc.generate()
+ deps = CMakeDeps(self)
+ deps.generate()
+
+ def build(self):
+ apply_conandata_patches(self)
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def package(self):
+ copy(self, pattern="LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ cmake = CMake(self)
+ cmake.install()
+ rmdir(self, os.path.join(self.package_folder, "lib", "cmake"))
+
+ def package_info(self):
+ self.cpp_info.libs = ["fpzip"]
+ self.cpp_info.defines.append("FPZIP_FP={}".format(self._fp_name_table.get(str(self.options.with_fp), "FP_ZIP_FAST")))
+ if self.options.shared:
+ self.cpp_info.defines.append("FPZIP_SHARED_LIBS")
+ if self.settings.compiler in ["gcc", "clang", "apple-clang"]:
+ self.cpp_info.system_libs += ["stdc++"]
diff --git a/recipes/fpzip/all/test_package/CMakeLists.txt b/recipes/fpzip/all/test_package/CMakeLists.txt
new file mode 100644
index 00000000000000..1476da8811ce63
--- /dev/null
+++ b/recipes/fpzip/all/test_package/CMakeLists.txt
@@ -0,0 +1,7 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES C)
+
+find_package(fpzip REQUIRED CONFIG)
+
+add_executable(${PROJECT_NAME} test_package.c)
+target_link_libraries(${PROJECT_NAME} PRIVATE fpzip::fpzip)
diff --git a/recipes/fpzip/all/test_package/conanfile.py b/recipes/fpzip/all/test_package/conanfile.py
new file mode 100644
index 00000000000000..ef5d7042163ecc
--- /dev/null
+++ b/recipes/fpzip/all/test_package/conanfile.py
@@ -0,0 +1,26 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
+import os
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/fpzip/all/test_package/test_package.c b/recipes/fpzip/all/test_package/test_package.c
new file mode 100644
index 00000000000000..8e359fe8da3194
--- /dev/null
+++ b/recipes/fpzip/all/test_package/test_package.c
@@ -0,0 +1,142 @@
+#include
+#include
+#include
+#include
+#include
+
+#include "fpzip.h"
+
+static size_t
+compress(FPZ* fpz, const void* data)
+{
+ size_t size;
+ /* write header */
+ if (!fpzip_write_header(fpz)) {
+ fprintf(stderr, "cannot write header: %s\n", fpzip_errstr[fpzip_errno]);
+ return 0;
+ }
+ /* perform actual compression */
+ size = fpzip_write(fpz, data);
+ if (!size) {
+ fprintf(stderr, "compression failed: %s\n", fpzip_errstr[fpzip_errno]);
+ return 0;
+ }
+ return size;
+}
+
+static int
+decompress(FPZ* fpz, void* data, size_t inbytes)
+{
+ /* read header */
+ if (!fpzip_read_header(fpz)) {
+ fprintf(stderr, "cannot read header: %s\n", fpzip_errstr[fpzip_errno]);
+ return 0;
+ }
+ /* make sure array size stored in header matches expectations */
+ if ((fpz->type == FPZIP_TYPE_FLOAT ? sizeof(float) : sizeof(double)) * fpz->nx * fpz->ny * fpz->nz * fpz->nf != inbytes) {
+ fprintf(stderr, "array size does not match dimensions from header\n");
+ return 0;
+ }
+ /* perform actual decompression */
+ if (!fpzip_read(fpz, data)) {
+ fprintf(stderr, "decompression failed: %s\n", fpzip_errstr[fpzip_errno]);
+ return 0;
+ }
+ return 1;
+}
+
+static float
+float_rand()
+{
+ static unsigned int seed = 1;
+ double val;
+ seed = 1103515245 * seed + 12345;
+ seed &= 0x7fffffffu;
+ val = ldexp((double)seed, -31);
+ val = 2 * val - 1;
+ val *= val * val;
+ val *= val * val;
+ return val;
+}
+
+/* generate a trilinear field perturbed by random noise */
+float*
+float_field(int nx, int ny, int nz, float offset)
+{
+ int n = nx * ny * nz;
+ float* field = malloc(n * sizeof(float));
+ int i, x, y, z;
+ /* generate random field */
+ *field = offset;
+ for (i = 1; i < n; i++)
+ field[i] = float_rand();
+ /* integrate along x */
+ for (z = 0; z < nz; z++)
+ for (y = 0; y < ny; y++)
+ for (x = 1; x < nx; x++)
+ field[x + nx * (y + ny * z)] += field[(x - 1) + nx * (y + ny * z)];
+ /* integrate along y */
+ for (z = 0; z < nz; z++)
+ for (y = 1; y < ny; y++)
+ for (x = 0; x < nx; x++)
+ field[x + nx * (y + ny * z)] += field[x + nx * ((y - 1) + ny * z)];
+ /* integrate along z */
+ for (z = 1; z < nz; z++)
+ for (y = 0; y < ny; y++)
+ for (x = 0; x < nx; x++)
+ field[x + nx * (y + ny * z)] += field[x + nx * (y + ny * (z - 1))];
+ return field;
+}
+
+static void
+test_float_array(const float* field, int nx, int ny, int nz, int prec)
+{
+ int status;
+ unsigned int actual_checksum;
+ int dims = (nz == 1 ? ny == 1 ? 1 : 2 : 3);
+ size_t inbytes = nx * ny * nz * sizeof(float);
+ size_t bufbytes = 1024 + inbytes;
+ size_t outbytes = 0;
+ void* buffer = malloc(bufbytes);
+ float* copy = malloc(inbytes);
+ char name[0x100];
+
+ /* compress to memory */
+ FPZ* fpz = fpzip_write_to_buffer(buffer, bufbytes);
+ fpz->type = FPZIP_TYPE_FLOAT;
+ fpz->prec = prec;
+ fpz->nx = nx;
+ fpz->ny = ny;
+ fpz->nz = nz;
+ fpz->nf = 1;
+ outbytes = compress(fpz, field);
+ status = (0 < outbytes && outbytes <= bufbytes);
+ fpzip_write_close(fpz);
+ sprintf(name, "test.float.%dd.prec%d.compress", dims, prec);
+
+ /* decompress */
+ fpz = fpzip_read_from_buffer(buffer);
+ status = decompress(fpz, copy, inbytes);
+ fpzip_read_close(fpz);
+ sprintf(name, "test.float.%dd.prec%d.decompress", dims, prec);
+
+ free(copy);
+ free(buffer);
+}
+
+static int
+test_float(int nx, int ny, int nz)
+{
+ float* field = float_field(nx, ny, nz, 0);
+ int prec = 8;
+ test_float_array(field, nx * ny * nz, 1, 1, prec);
+ test_float_array(field, nx, ny * nz, 1, prec);
+ test_float_array(field, nx, ny, nz, prec);
+ free(field);
+}
+
+int main(void) {
+ test_float(65, 64, 63);
+
+ return 0;
+}
diff --git a/recipes/fpzip/config.yml b/recipes/fpzip/config.yml
new file mode 100644
index 00000000000000..426a0e4c79e9b1
--- /dev/null
+++ b/recipes/fpzip/config.yml
@@ -0,0 +1,3 @@
+versions:
+ "1.3.0":
+ folder: all
diff --git a/recipes/freetype/all/conanfile.py b/recipes/freetype/all/conanfile.py
index 2d1c5c126ce107..1415f8ffb04464 100644
--- a/recipes/freetype/all/conanfile.py
+++ b/recipes/freetype/all/conanfile.py
@@ -66,11 +66,11 @@ def requirements(self):
if self.options.with_png:
self.requires("libpng/1.6.40")
if self.options.with_zlib:
- self.requires("zlib/1.2.13")
+ self.requires("zlib/[>=1.2.10 <2]")
if self.options.with_bzip2:
self.requires("bzip2/1.0.8")
if self.options.get_safe("with_brotli"):
- self.requires("brotli/1.0.9")
+ self.requires("brotli/1.1.0")
def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)
diff --git a/recipes/freexl/all/conandata.yml b/recipes/freexl/all/conandata.yml
index 1ded763735f94d..9d309ba6c3c0d0 100644
--- a/recipes/freexl/all/conandata.yml
+++ b/recipes/freexl/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "2.0.0":
+ url: "http://www.gaia-gis.it/gaia-sins/freexl-sources/freexl-2.0.0.tar.gz"
+ sha256: "176705f1de58ab7c1eebbf5c6de46ab76fcd8b856508dbd28f5648f7c6e1a7f0"
"1.0.6":
url: "http://www.gaia-gis.it/gaia-sins/freexl-sources/freexl-1.0.6.tar.gz"
sha256: "3de8b57a3d130cb2881ea52d3aa9ce1feedb1b57b7daa4eb37f751404f90fc22"
@@ -6,6 +9,8 @@ sources:
url: "http://www.gaia-gis.it/gaia-sins/freexl-sources/freexl-1.0.5.tar.gz"
sha256: "3dc9b150d218b0e280a3d6a41d93c1e45f4d7155829d75f1e5bf3e0b0de6750d"
patches:
+ "2.0.0":
+ - patch_file: "patches/fix-nmake-2.0.0.patch"
"1.0.6":
- patch_file: "patches/fix-nmake-1.0.6.patch"
"1.0.5":
diff --git a/recipes/freexl/all/conanfile.py b/recipes/freexl/all/conanfile.py
index 794b52fdc98a55..6f97355b38f7c3 100644
--- a/recipes/freexl/all/conanfile.py
+++ b/recipes/freexl/all/conanfile.py
@@ -6,6 +6,7 @@
from conan.tools.gnu import Autotools, AutotoolsDeps, AutotoolsToolchain
from conan.tools.layout import basic_layout
from conan.tools.microsoft import is_msvc, NMakeDeps, NMakeToolchain
+from conan.tools.scm import Version
import os
required_conan_version = ">=1.55.0"
@@ -16,10 +17,10 @@ class FreexlConan(ConanFile):
description = "FreeXL is an open source library to extract valid data " \
"from within an Excel (.xls) spreadsheet."
license = ["MPL-1.0", "GPL-2.0-only", "LGPL-2.1-only"]
- topics = ("excel", "xls")
- homepage = "https://www.gaia-gis.it/fossil/freexl/index"
url = "https://github.com/conan-io/conan-center-index"
-
+ homepage = "https://www.gaia-gis.it/fossil/freexl/index"
+ topics = ("excel", "xls")
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
@@ -52,6 +53,9 @@ def layout(self):
def requirements(self):
self.requires("libiconv/1.17")
+ if Version(self.version) >= "2.0.0":
+ self.requires("expat/2.5.0")
+ self.requires("minizip/1.2.13")
def build_requirements(self):
if not is_msvc(self):
diff --git a/recipes/freexl/all/patches/fix-nmake-2.0.0.patch b/recipes/freexl/all/patches/fix-nmake-2.0.0.patch
new file mode 100644
index 00000000000000..80cf36670487d4
--- /dev/null
+++ b/recipes/freexl/all/patches/fix-nmake-2.0.0.patch
@@ -0,0 +1,42 @@
+diff --git a/a/makefile.vc b/b/makefile.vc
+index 5cd5d05..f7505ea 100644
+--- a/a/makefile.vc
++++ b/b/makefile.vc
+@@ -11,7 +11,7 @@ ODS = freexl_ods.obj
+ LIBOBJ = $(CORE) $(XLSX) $(ODS)
+ FREEXL_DLL = freexl$(VERSION).dll
+
+-CFLAGS = /nologo -I. -Iheaders -IC:\OSGeo4W\include $(OPTFLAGS)
++CFLAGS = /nologo -I. -Iheaders $(OPTFLAGS)
+
+ default: all
+
+@@ -33,12 +33,8 @@ freexl.lib: $(LIBOBJ)
+ $(FREEXL_DLL): freexl_i.lib
+
+ freexl_i.lib: $(LIBOBJ)
+- link /debug /dll /out:$(FREEXL_DLL) \
+- /implib:freexl_i.lib $(LIBOBJ) \
+- C:\OSGeo4W\lib\iconv.lib \
+- C:\OSGeo4W\lib\libexpat.lib \
+- C:\OSGeo4W\lib\libminizip.lib \
+- C:\OSGeo4w\lib\zlib.lib
++ link /dll /out:$(FREEXL_DLL) \
++ /implib:freexl_i.lib $(LIBOBJ)
+ if exist $(FREEXL_DLL).manifest mt -manifest \
+ $(FREEXL_DLL).manifest -outputresource:$(FREEXL_DLL);2
+
+diff --git a/a/nmake.opt b/b/nmake.opt
+index 35f9242..15abafe 100644
+--- a/a/nmake.opt
++++ b/b/nmake.opt
+@@ -2,8 +2,7 @@
+ INSTDIR=C:\OSGeo4W
+
+ # Uncomment the first for an optimized build, or the second for debug.
+-OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS \
+- /DDLL_EXPORT
++OPTFLAGS= /nologo /fp:precise /W3 /D_CRT_SECURE_NO_WARNINGS $(FREEXL_EXPORT)
+ #OPTFLAGS= /nologo /Zi /MD /Fdfreexl.pdb /DDLL_EXPORT
+
+ # Set the version number for the DLL. Normally we leave this blank since
diff --git a/recipes/freexl/config.yml b/recipes/freexl/config.yml
index 06269eb399e913..e78a14da43e749 100644
--- a/recipes/freexl/config.yml
+++ b/recipes/freexl/config.yml
@@ -1,4 +1,6 @@
versions:
+ "2.0.0":
+ folder: all
"1.0.6":
folder: all
"1.0.5":
diff --git a/recipes/fruit/all/conanfile.py b/recipes/fruit/all/conanfile.py
index 39e570bb06b3ac..9ad222d0dcc889 100644
--- a/recipes/fruit/all/conanfile.py
+++ b/recipes/fruit/all/conanfile.py
@@ -3,11 +3,12 @@
import tarfile
from fnmatch import fnmatch
-from conan import ConanFile, Version
+from conan import ConanFile
from conan.errors import ConanInvalidConfiguration
from conan.tools.build import check_min_cppstd
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
from conan.tools.files import apply_conandata_patches, copy, download, export_conandata_patches, get
+from conan.tools.scm import Version
required_conan_version = ">=1.53.0"
@@ -19,16 +20,18 @@ class FruitConan(ConanFile):
homepage = "https://github.com/google/fruit"
license = "Apache-2.0"
topics = ("injection", "framework")
- settings = "os", "compiler", "build_type", "arch"
- options = {"shared": [True, False],
- "use_boost": [True, False, "deprecated"],
- "with_boost": [True, False],
- "fPIC": [True, False]}
+ package_type = "library"
+ settings = "os", "arch", "compiler", "build_type"
+ options = {
+ "shared": [True, False],
+ "fPIC": [True, False],
+ "with_boost": [True, False],
+ }
default_options = {
"shared": False,
- "use_boost": "deprecated",
+ "fPIC": True,
"with_boost": True,
- "fPIC": True}
+ }
def export_sources(self):
export_conandata_patches(self)
@@ -37,22 +40,16 @@ def config_options(self):
if self.settings.os == "Windows":
self.options.rm_safe("fPIC")
- def package_id(self):
- del self.info.options.use_boost
-
def configure(self):
if self.options.shared:
self.options.rm_safe("fPIC")
- if self.options.use_boost != "deprecated":
- self.output.warn("use_boost option is deprecated, use the option with_boost instead.")
- self.options.with_boost = self.options.use_boost
def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
if self.options.with_boost:
- self.requires("boost/1.80.0")
+ self.requires("boost/1.83.0")
def validate(self):
if self.settings.compiler.cppstd:
diff --git a/recipes/fruit/config.yml b/recipes/fruit/config.yml
index 684a4c74b25420..63afa5b5e5a827 100644
--- a/recipes/fruit/config.yml
+++ b/recipes/fruit/config.yml
@@ -1,11 +1,11 @@
versions:
- "3.4.0":
+ "3.7.1":
folder: all
- "3.5.0":
+ "3.7.0":
folder: all
"3.6.0":
folder: all
- "3.7.0":
+ "3.5.0":
folder: all
- "3.7.1":
+ "3.4.0":
folder: all
diff --git a/recipes/ftxui/all/conandata.yml b/recipes/ftxui/all/conandata.yml
index 9093a5522f932e..56009c498942c4 100644
--- a/recipes/ftxui/all/conandata.yml
+++ b/recipes/ftxui/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "5.0.0":
+ url: "https://github.com/ArthurSonzogni/FTXUI/archive/refs/tags/v5.0.0.tar.gz"
+ sha256: "a2991cb222c944aee14397965d9f6b050245da849d8c5da7c72d112de2786b5b"
"4.1.1":
url: "https://github.com/ArthurSonzogni/FTXUI/archive/refs/tags/v4.1.1.tar.gz"
sha256: "9009d093e48b3189487d67fc3e375a57c7b354c0e43fc554ad31bec74a4bc2dd"
diff --git a/recipes/ftxui/config.yml b/recipes/ftxui/config.yml
index 727707c7ea7212..7747269b92a0d1 100644
--- a/recipes/ftxui/config.yml
+++ b/recipes/ftxui/config.yml
@@ -1,4 +1,6 @@
versions:
+ "5.0.0":
+ folder: all
"4.1.1":
folder: all
"4.1.0":
diff --git a/recipes/function2/all/conandata.yml b/recipes/function2/all/conandata.yml
index 4a8c1d45eb5f55..ef31d20ffc3552 100644
--- a/recipes/function2/all/conandata.yml
+++ b/recipes/function2/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "4.2.3":
+ url: "https://github.com/Naios/function2/archive/refs/tags/4.2.3.tar.gz"
+ sha256: "097333b05e596280d3bc7a4769f1262931716cd8cc31ca7337b7af714085f3fc"
"4.2.2":
url: "https://github.com/Naios/function2/archive/refs/tags/4.2.2.tar.gz"
sha256: "f755cb79712dfb9ceefcf7f7ff3225f7c99d22a164dae109044dbfad55d7111e"
diff --git a/recipes/function2/config.yml b/recipes/function2/config.yml
index 955cd0773fc58e..0be889b562c58c 100644
--- a/recipes/function2/config.yml
+++ b/recipes/function2/config.yml
@@ -1,4 +1,6 @@
versions:
+ "4.2.3":
+ folder: all
"4.2.2":
folder: all
"4.2.1":
diff --git a/recipes/functions-framework-cpp/all/CMakeLists.txt b/recipes/functions-framework-cpp/all/CMakeLists.txt
deleted file mode 100644
index c921d02a0d877e..00000000000000
--- a/recipes/functions-framework-cpp/all/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-cmake_minimum_required(VERSION 3.4)
-project(cmake_wrapper)
-
-include(conanbuildinfo.cmake)
-conan_basic_setup()
-
-add_subdirectory("source_subfolder")
diff --git a/recipes/functions-framework-cpp/all/conandata.yml b/recipes/functions-framework-cpp/all/conandata.yml
index c01327cda0d09f..0f463b674b8cca 100644
--- a/recipes/functions-framework-cpp/all/conandata.yml
+++ b/recipes/functions-framework-cpp/all/conandata.yml
@@ -1,8 +1,22 @@
sources:
+ "1.2.0":
+ url: "https://github.com/GoogleCloudPlatform/functions-framework-cpp/archive/refs/tags/v1.2.0.tar.gz"
+ sha256: "729e24ef58a03b563e48d8006d63972b16a22bcf93bf2b49f40c3b219032b64b"
"1.0.0":
url: "https://github.com/GoogleCloudPlatform/functions-framework-cpp/archive/refs/tags/v1.0.0.tar.gz"
sha256: "005f2fbe3b8be9f6f0bf7a4a5d218a23b0f62d854a5e84c56872dd3a4d2820f7"
patches:
+ "1.2.0":
+ - patch_file: "patches/1.2.0-0001-dont-skip-namelink.patch"
+ patch_description: "disable NAMELINK_SKIP"
+ patch_type: "portability"
+ - patch_file: "patches/1.2.0-0002-find-nlohmann_json.patch"
+ patch_description: "use cci's nlohmann_json"
+ patch_type: "conan"
"1.0.0":
- - patch_file: "patches/0001-dont-skip-namelink.patch"
- base_path: "source_subfolder"
+ - patch_file: "patches/1.0.0-0001-dont-skip-namelink.patch"
+ patch_description: "disable NAMELINK_SKIP"
+ patch_type: "portability"
+ - patch_file: "patches/1.0.0-0002-find-nlohmann_json.patch"
+ patch_description: "use cci's nlohmann_json"
+ patch_type: "conan"
diff --git a/recipes/functions-framework-cpp/all/conanfile.py b/recipes/functions-framework-cpp/all/conanfile.py
index 96389274771c44..859f3f1596a4e6 100644
--- a/recipes/functions-framework-cpp/all/conanfile.py
+++ b/recipes/functions-framework-cpp/all/conanfile.py
@@ -1,19 +1,22 @@
-from conans import ConanFile, CMake, tools
-from conans.errors import ConanInvalidConfiguration
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.microsoft import check_min_vs, is_msvc_static_runtime, is_msvc
+from conan.tools.files import apply_conandata_patches, export_conandata_patches, get, copy, rmdir
+from conan.tools.build import check_min_cppstd, cross_building
+from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
import os
-required_conan_version = ">=1.43.0"
-
+required_conan_version = ">=1.53.0"
class FunctionsFrameworkCppConan(ConanFile):
name = "functions-framework-cpp"
description = "An open source FaaS (Functions as a Service) framework"
license = "Apache-2.0"
- topics = ("google", "cloud", "functions-as-a-service", "faas-framework")
- homepage = "https://github.com/GoogleCloudPlatform/functions-framework-cpp"
url = "https://github.com/conan-io/conan-center-index"
-
+ homepage = "https://github.com/GoogleCloudPlatform/functions-framework-cpp"
+ topics = ("google", "cloud", "functions-as-a-service", "faas-framework")
settings = "os", "arch", "compiler", "build_type"
+ package_type = "library"
options = {
"shared": [True, False],
"fPIC": [True, False],
@@ -22,23 +25,24 @@ class FunctionsFrameworkCppConan(ConanFile):
"shared": False,
"fPIC": True,
}
-
- generators = "cmake", "cmake_find_package_multi", "cmake_find_package"
short_paths = True
- _cmake = None
@property
- def _source_subfolder(self):
- return "source_subfolder"
+ def _min_cppstd(self):
+ return 17
@property
- def _is_msvc(self):
- return str(self.settings.compiler) in ["Visual Studio", "msvc"]
+ def _compilers_minimum_version(self):
+ return {
+ "gcc": "9",
+ "Visual Studio": "15.7",
+ "msvc": "190",
+ "clang": "7",
+ "apple-clang": "11",
+ }
def export_sources(self):
- self.copy("CMakeLists.txt")
- for patch in self.conan_data.get("patches", {}).get(self.version, []):
- self.copy(patch["patch_file"])
+ export_conandata_patches(self)
def config_options(self):
if self.settings.os == "Windows":
@@ -46,21 +50,15 @@ def config_options(self):
def configure(self):
if self.options.shared:
- del self.options.fPIC
+ self.options.rm_safe("fPIC")
- def requirements(self):
- self.requires("abseil/20211102.0")
- self.requires("boost/1.78.0")
- self.requires("nlohmann_json/3.10.5")
+ def layout(self):
+ cmake_layout(self, src_folder="src")
- @property
- def _compilers_minimum_version(self):
- return {
- "gcc": "9",
- "Visual Studio": "15.7",
- "clang": "7",
- "apple-clang": "11",
- }
+ def requirements(self):
+ self.requires("abseil/20230125.3")
+ self.requires("boost/1.83.0")
+ self.requires("nlohmann_json/3.11.2", transitive_headers=True)
@property
def _required_boost_components(self):
@@ -68,10 +66,10 @@ def _required_boost_components(self):
def validate(self):
miss_boost_required_comp = \
- any(getattr(self.options["boost"],
+ any(getattr(self.dependencies["boost"].options,
"without_{}".format(boost_comp),
True) for boost_comp in self._required_boost_components)
- if self.options["boost"].header_only or miss_boost_required_comp:
+ if self.dependencies["boost"].options.header_only or miss_boost_required_comp:
raise ConanInvalidConfiguration(
"{0} requires non-header-only boost with these components: {1}".format(
self.name, ", ".join(self._required_boost_components)
@@ -79,7 +77,7 @@ def validate(self):
)
if self.settings.compiler.get_safe("cppstd"):
- tools.check_min_cppstd(self, 17)
+ check_min_cppstd(self, self._min_cppstd)
def loose_lt_semver(v1, v2):
lv1 = [int(v) for v in v1.split(".")]
@@ -90,46 +88,40 @@ def loose_lt_semver(v1, v2):
minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False)
if minimum_version and loose_lt_semver(str(self.settings.compiler.version), minimum_version):
raise ConanInvalidConfiguration(
- "{} requires C++17, which your compiler does not support.".format(self.name)
+ "{self.ref} requires C++{self._min_cppstd}, which your compiler does not support."
)
- if self._is_msvc and self.options.shared:
+ if is_msvc(self) and self.options.shared:
raise ConanInvalidConfiguration("Fails to build for Visual Studio as a DLL")
- if hasattr(self, "settings_build") and tools.cross_building(self):
+ if hasattr(self, "settings_build") and cross_building(self):
raise ConanInvalidConfiguration(
"Recipe not prepared for cross-building (yet)"
)
def source(self):
- tools.get(
- **self.conan_data["sources"][self.version],
- destination=self._source_subfolder,
- strip_root=True
- )
-
- def _configure_cmake(self):
- if self._cmake:
- return self._cmake
- self._cmake = CMake(self)
- self._cmake.definitions["BUILD_TESTING"] = False
- self._cmake.definitions["FUNCTIONS_FRAMEWORK_CPP_TEST_EXAMPLES"] = False
-
- self._cmake.configure()
- return self._cmake
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.cache_variables["BUILD_TESTING"] = False
+ tc.variables["FUNCTIONS_FRAMEWORK_CPP_TEST_EXAMPLES"] = False
+ tc.generate()
+ deps = CMakeDeps(self)
+ deps.generate()
def build(self):
- for patch in self.conan_data.get("patches", {}).get(self.version, []):
- tools.patch(**patch)
- cmake = self._configure_cmake()
+ apply_conandata_patches(self)
+ cmake = CMake(self)
+ cmake.configure()
cmake.build()
def package(self):
- self.copy("LICENSE", dst="licenses", src=self._source_subfolder)
- cmake = self._configure_cmake()
+ copy(self, pattern="LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ cmake = CMake(self)
cmake.install()
- tools.rmdir(os.path.join(self.package_folder, "lib", "cmake"))
- tools.rmdir(os.path.join(self.package_folder, "lib", "pkgconfig"))
+ rmdir(self, os.path.join(self.package_folder, "lib", "cmake"))
+ rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
def package_info(self):
self.cpp_info.set_property("cmake_file_name", "functions_framework_cpp")
diff --git a/recipes/functions-framework-cpp/all/patches/0001-dont-skip-namelink.patch b/recipes/functions-framework-cpp/all/patches/1.0.0-0001-dont-skip-namelink.patch
similarity index 100%
rename from recipes/functions-framework-cpp/all/patches/0001-dont-skip-namelink.patch
rename to recipes/functions-framework-cpp/all/patches/1.0.0-0001-dont-skip-namelink.patch
diff --git a/recipes/functions-framework-cpp/all/patches/1.0.0-0002-find-nlohmann_json.patch b/recipes/functions-framework-cpp/all/patches/1.0.0-0002-find-nlohmann_json.patch
new file mode 100644
index 00000000000000..869e28e5358111
--- /dev/null
+++ b/recipes/functions-framework-cpp/all/patches/1.0.0-0002-find-nlohmann_json.patch
@@ -0,0 +1,22 @@
+diff --git a/google/cloud/functions/CMakeLists.txt b/google/cloud/functions/CMakeLists.txt
+index f7cac3a..38f7449 100644
+--- a/google/cloud/functions/CMakeLists.txt
++++ b/google/cloud/functions/CMakeLists.txt
+@@ -23,6 +23,7 @@ configure_file(internal/version_info.h.in
+ find_package(absl REQUIRED)
+ find_package(Boost REQUIRED COMPONENTS program_options)
+ find_package(Threads REQUIRED)
++find_package(nlohmann_json REQUIRED)
+
+ add_library(
+ functions_framework_cpp # cmake-format: sort
+@@ -76,7 +77,8 @@ target_include_directories(functions_framework_cpp SYSTEM
+ PUBLIC $)
+ target_link_libraries(
+ functions_framework_cpp PUBLIC absl::time Boost::headers
+- Boost::program_options Threads::Threads)
++ Boost::program_options Threads::Threads
++ nlohmann_json::nlohmann_json)
+ target_compile_definitions(functions_framework_cpp
+ PUBLIC BOOST_BEAST_USE_STD_STRING_VIEW)
+ set_target_properties(
diff --git a/recipes/functions-framework-cpp/all/patches/1.2.0-0001-dont-skip-namelink.patch b/recipes/functions-framework-cpp/all/patches/1.2.0-0001-dont-skip-namelink.patch
new file mode 100644
index 00000000000000..661786756beb57
--- /dev/null
+++ b/recipes/functions-framework-cpp/all/patches/1.2.0-0001-dont-skip-namelink.patch
@@ -0,0 +1,12 @@
+diff --git a/google/cloud/functions/CMakeLists.txt b/google/cloud/functions/CMakeLists.txt
+index 2b9506b..609c238 100644
+--- a/google/cloud/functions/CMakeLists.txt
++++ b/google/cloud/functions/CMakeLists.txt
+@@ -137,7 +137,6 @@ install(
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ COMPONENT runtime
+- NAMELINK_SKIP
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ COMPONENT development
+ NAMELINK_COMPONENT development
diff --git a/recipes/functions-framework-cpp/all/patches/1.2.0-0002-find-nlohmann_json.patch b/recipes/functions-framework-cpp/all/patches/1.2.0-0002-find-nlohmann_json.patch
new file mode 100644
index 00000000000000..974fed8146e709
--- /dev/null
+++ b/recipes/functions-framework-cpp/all/patches/1.2.0-0002-find-nlohmann_json.patch
@@ -0,0 +1,22 @@
+diff --git a/google/cloud/functions/CMakeLists.txt b/google/cloud/functions/CMakeLists.txt
+index 2b9506b..ab3aaaa 100644
+--- a/google/cloud/functions/CMakeLists.txt
++++ b/google/cloud/functions/CMakeLists.txt
+@@ -23,6 +23,7 @@ configure_file(internal/version_info.h.in
+ find_package(absl REQUIRED)
+ find_package(Boost REQUIRED COMPONENTS program_options)
+ find_package(Threads REQUIRED)
++find_package(nlohmann_json REQUIRED)
+
+ add_library(
+ functions_framework_cpp # cmake-format: sort
+@@ -80,7 +81,8 @@ target_include_directories(functions_framework_cpp SYSTEM
+ PUBLIC $)
+ target_link_libraries(
+ functions_framework_cpp PUBLIC absl::time Boost::headers
+- Boost::program_options Threads::Threads)
++ Boost::program_options Threads::Threads
++ nlohmann_json::nlohmann_json)
+ target_compile_definitions(functions_framework_cpp
+ PUBLIC BOOST_BEAST_USE_STD_STRING_VIEW)
+ set_target_properties(
diff --git a/recipes/functions-framework-cpp/all/test_package/CMakeLists.txt b/recipes/functions-framework-cpp/all/test_package/CMakeLists.txt
index d4b4a2212f334e..5126c69942f535 100644
--- a/recipes/functions-framework-cpp/all/test_package/CMakeLists.txt
+++ b/recipes/functions-framework-cpp/all/test_package/CMakeLists.txt
@@ -1,11 +1,8 @@
cmake_minimum_required(VERSION 3.8)
-project(test_package CXX)
-
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
+project(test_package LANGUAGES CXX)
find_package(functions_framework_cpp REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
-target_link_libraries(${PROJECT_NAME} functions-framework-cpp::framework)
+target_link_libraries(${PROJECT_NAME} PRIVATE functions-framework-cpp::framework)
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
diff --git a/recipes/functions-framework-cpp/all/test_package/conanfile.py b/recipes/functions-framework-cpp/all/test_package/conanfile.py
index 38f4483872d47f..ef5d7042163ecc 100644
--- a/recipes/functions-framework-cpp/all/test_package/conanfile.py
+++ b/recipes/functions-framework-cpp/all/test_package/conanfile.py
@@ -1,10 +1,19 @@
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
class TestPackageConan(ConanFile):
settings = "os", "arch", "compiler", "build_type"
- generators = "cmake", "cmake_find_package_multi"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -12,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run(bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/functions-framework-cpp/config.yml b/recipes/functions-framework-cpp/config.yml
index c7f13630776fb5..45091dac1186fa 100644
--- a/recipes/functions-framework-cpp/config.yml
+++ b/recipes/functions-framework-cpp/config.yml
@@ -1,3 +1,5 @@
versions:
+ "1.2.0":
+ folder: "all"
"1.0.0":
folder: "all"
diff --git a/recipes/fusepp/all/CMakeLists.txt b/recipes/fusepp/all/CMakeLists.txt
index 661f0d421c5455..95ef7fe5638955 100644
--- a/recipes/fusepp/all/CMakeLists.txt
+++ b/recipes/fusepp/all/CMakeLists.txt
@@ -1,18 +1,16 @@
-cmake_minimum_required(VERSION 3.4)
-project(cmake_wrapper)
+cmake_minimum_required(VERSION 3.12)
+project(cmake_wrapper LANGUAGES CXX)
-include("${CMAKE_BINARY_DIR}/conanbuildinfo.cmake")
-conan_basic_setup(KEEP_RPATHS)
+find_package(libfuse REQUIRED CONFIG)
-set(SOURCE_SUBFOLDER ${CMAKE_CURRENT_SOURCE_DIR}/source_subfolder)
+set(SOURCE_SUBFOLDER ${CMAKE_CURRENT_LIST_DIR}/src)
file(GLOB_RECURSE INCLUDE_FILES "${SOURCE_SUBFOLDER}/Fuse*.h" "${SOURCE_SUBFOLDER}/Fuse.cpp")
add_library(fusepp ${SOURCE_SUBFOLDER}/Fuse.cpp)
-
+target_link_libraries(fusepp PUBLIC libfuse::libfuse)
set_target_properties(fusepp PROPERTIES PUBLIC_HEADER "${INCLUDE_FILES}")
+
+include(GNUInstallDirs)
install(TARGETS fusepp
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
diff --git a/recipes/fusepp/all/conanfile.py b/recipes/fusepp/all/conanfile.py
index f23b9daa7e8748..36394b1187d48c 100644
--- a/recipes/fusepp/all/conanfile.py
+++ b/recipes/fusepp/all/conanfile.py
@@ -1,15 +1,24 @@
-from conans import ConanFile, CMake, tools
-from conans.errors import ConanInvalidConfiguration
+import os
+
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import check_min_cppstd
+from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
+from conan.tools.files import copy, get
+from conan.tools.scm import Version
+
+required_conan_version = ">=1.53.0"
class FuseppConan(ConanFile):
name = "fusepp"
description = "A simple C++ wrapper for the FUSE filesystem."
license = "MIT"
- topics = ("fuse", "fusepp", "wrapper", "filesystem")
- homepage = "https://github.com/jachappell/Fusepp"
url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://github.com/jachappell/Fusepp"
+ topics = ("fuse", "wrapper", "filesystem")
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
@@ -17,23 +26,11 @@ class FuseppConan(ConanFile):
}
default_options = {
"shared": False,
- "fPIC": True
+ "fPIC": True,
}
- exports_sources = "CMakeLists.txt"
-
- generators = "cmake"
- _cmake = None
-
- @property
- def _source_subfolder(self):
- return "source_subfolder"
- def validate(self):
- if self.settings.compiler.get_safe("cppstd"):
- tools.check_min_cppstd(self, "11")
- if self.settings.compiler == "gcc":
- if tools.Version(self.settings.compiler.version) < "6":
- raise ConanInvalidConfiguration("gcc < 6 is unsupported")
+ def export_sources(self):
+ copy(self, "CMakeLists.txt", src=self.recipe_folder, dst=self.export_sources_folder)
def config_options(self):
if self.settings.os == "Windows":
@@ -41,38 +38,50 @@ def config_options(self):
def configure(self):
if self.options.shared:
- del self.options.fPIC
- del self.settings.compiler.libcxx
- del self.settings.compiler.cppstd
+ self.options.rm_safe("fPIC")
+ self.settings.rm_safe("compiler.libcxx")
+ self.settings.rm_safe("compiler.cppstd")
- def source(self):
- tools.get(**self.conan_data["sources"][self.version],
- strip_root=True, destination=self._source_subfolder)
+ def layout(self):
+ cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("libfuse/3.10.5")
+ self.requires("libfuse/3.10.5", transitive_headers=True)
- def _configure_cmake(self):
- if self._cmake:
- return self._cmake
- self._cmake = CMake(self)
- self._cmake.configure()
- return self._cmake
+ def validate(self):
+ if self.settings.compiler.get_safe("cppstd"):
+ check_min_cppstd(self, 11)
+ if self.settings.compiler == "gcc":
+ if Version(self.settings.compiler.version) < "6":
+ raise ConanInvalidConfiguration("gcc < 6 is unsupported")
+
+ def source(self):
+ get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+ def generate(self):
+ tc = CMakeToolchain(self)
+ tc.generate()
+ tc = CMakeDeps(self)
+ tc.generate()
def build(self):
- cmake = self._configure_cmake()
+ cmake = CMake(self)
+ cmake.configure(build_script_folder=self.export_sources_folder)
cmake.build()
def package(self):
- self.copy("LICENSE", dst="licenses", src=self._source_subfolder)
- cmake = self._configure_cmake()
+ copy(self, "LICENSE", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
+ cmake = CMake(self)
cmake.install()
def package_info(self):
self.cpp_info.libs = ["fusepp"]
+ self.cpp_info.set_property("cmake_file_name", "fusepp")
+ self.cpp_info.set_property("cmake_target_name", "fusepp::fusepp")
+
+ if self.settings.os in ["Linux", "FreeBSD"]:
+ self.cpp_info.system_libs = ["m"]
+
# TODO: Remove after Conan 2.0
self.cpp_info.names["cmake_find_package"] = "fusepp"
self.cpp_info.names["cmake_find_package_multi"] = "fusepp"
-
- self.cpp_info.set_property("cmake_file_name", "fusepp")
- self.cpp_info.set_property("cmake_target_name", "fusepp")
diff --git a/recipes/fusepp/all/test_package/CMakeLists.txt b/recipes/fusepp/all/test_package/CMakeLists.txt
index 00168e2e070002..03f33e510f02d6 100644
--- a/recipes/fusepp/all/test_package/CMakeLists.txt
+++ b/recipes/fusepp/all/test_package/CMakeLists.txt
@@ -1,10 +1,7 @@
-cmake_minimum_required(VERSION 3.1)
-project(test_package)
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES CXX)
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup(TARGETS)
-
-find_package(fusepp CONFIG REQUIRED)
+find_package(fusepp REQUIRED CONFIG)
add_executable(${PROJECT_NAME} example.cpp)
target_link_libraries(${PROJECT_NAME} fusepp::fusepp)
diff --git a/recipes/fusepp/all/test_package/conanfile.py b/recipes/fusepp/all/test_package/conanfile.py
index 46d9d6bbaf311f..23d14d1e4b9f6f 100644
--- a/recipes/fusepp/all/test_package/conanfile.py
+++ b/recipes/fusepp/all/test_package/conanfile.py
@@ -1,10 +1,19 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake
import os
-from conans import ConanFile, CMake, tools
class TestPackageConan(ConanFile):
- settings = "os", "compiler", "build_type", "arch"
- generators = "cmake", "cmake_find_package_multi"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
+
+ def layout(self):
+ cmake_layout(self)
def build(self):
cmake = CMake(self)
@@ -12,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.cross_building(self):
- bin_path = os.path.join("bin", "test_package")
- self.run("%s --version" % bin_path, run_environment=True)
+ if can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(f"{bin_path} --version", env="conanrun")
diff --git a/recipes/fusepp/all/test_v1_package/CMakeLists.txt b/recipes/fusepp/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 00000000000000..91630d79f4abb3
--- /dev/null
+++ b/recipes/fusepp/all/test_v1_package/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package)
+
+include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
+conan_basic_setup(TARGETS)
+
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package/
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package/)
diff --git a/recipes/fusepp/all/test_v1_package/conanfile.py b/recipes/fusepp/all/test_v1_package/conanfile.py
new file mode 100644
index 00000000000000..46d9d6bbaf311f
--- /dev/null
+++ b/recipes/fusepp/all/test_v1_package/conanfile.py
@@ -0,0 +1,17 @@
+import os
+from conans import ConanFile, CMake, tools
+
+
+class TestPackageConan(ConanFile):
+ settings = "os", "compiler", "build_type", "arch"
+ generators = "cmake", "cmake_find_package_multi"
+
+ def build(self):
+ cmake = CMake(self)
+ cmake.configure()
+ cmake.build()
+
+ def test(self):
+ if not tools.cross_building(self):
+ bin_path = os.path.join("bin", "test_package")
+ self.run("%s --version" % bin_path, run_environment=True)
diff --git a/recipes/gdal/config.yml b/recipes/gdal/config.yml
index 3a324b7465d342..a2ce278d929656 100644
--- a/recipes/gdal/config.yml
+++ b/recipes/gdal/config.yml
@@ -1,4 +1,6 @@
versions:
+ "3.7.0":
+ folder: "post_3.5.0"
"3.5.2":
folder: "post_3.5.0"
"3.5.1":
@@ -9,7 +11,3 @@ versions:
folder: "pre_3.5.0"
"3.3.3":
folder: "pre_3.5.0"
- "3.2.3":
- folder: "pre_3.5.0"
- "3.1.4":
- folder: "pre_3.5.0"
diff --git a/recipes/gdal/post_3.5.0/CMakeLists.txt b/recipes/gdal/post_3.5.0/CMakeLists.txt
index c0e666f41f1de8..7c7f67a48db89a 100644
--- a/recipes/gdal/post_3.5.0/CMakeLists.txt
+++ b/recipes/gdal/post_3.5.0/CMakeLists.txt
@@ -26,12 +26,12 @@ endif()
if (${GDAL_USE_CRYPTOPP})
find_package(cryptopp REQUIRED)
- add_library(CRYPTOPP::CRYPTOPP ALIAS cryptopp::cryptopp-static)
+ add_library(CRYPTOPP::CRYPTOPP ALIAS ${TARGET_FOR_CRYPTOPP})
endif()
if (${GDAL_USE_DEFLATE})
find_package(libdeflate REQUIRED)
- add_library(Deflate::Deflate ALIAS libdeflate::libdeflate)
+ add_library(Deflate::Deflate ALIAS ${TARGET_FOR_DEFLATE})
endif()
if (${GDAL_USE_LZ4})
diff --git a/recipes/gdal/post_3.5.0/conandata.yml b/recipes/gdal/post_3.5.0/conandata.yml
index 2dbc2d17b374fa..6ac086393ccfdc 100644
--- a/recipes/gdal/post_3.5.0/conandata.yml
+++ b/recipes/gdal/post_3.5.0/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "3.7.0":
+ url: "https://github.com/OSGeo/gdal/releases/download/v3.7.0/gdal-3.7.0.tar.gz"
+ sha256: "5a806d759f403a15bbbf8a14ecc6947071afc5ab91e5abaef0d11d1d2d16bf94"
"3.5.2":
url: "https://github.com/OSGeo/gdal/releases/download/v3.5.2/gdal-3.5.2.tar.gz"
sha256: "fbd696e1b2a858fbd2eb3718db16b14ed9ba82521d3578770d480c74fe1146d2"
@@ -6,6 +9,9 @@ sources:
url: "https://github.com/OSGeo/gdal/releases/download/v3.5.1/gdal-3.5.1.tar.gz"
sha256: "7c4406ca010dc8632703a0a326f39e9db25d9f1f6ebaaeca64a963e3fac123d1"
patches:
+ "3.7.0":
+ - patch_file: "patches/3.7.0/0-replace-find-package.patch"
+ base_path: "source_subfolder"
"3.5.2":
- patch_file: "patches/3.5.2/0-replace-find-package.patch"
base_path: "source_subfolder"
diff --git a/recipes/gdal/post_3.5.0/conanfile.py b/recipes/gdal/post_3.5.0/conanfile.py
index d03de4e5125cc1..3e0847981c026c 100644
--- a/recipes/gdal/post_3.5.0/conanfile.py
+++ b/recipes/gdal/post_3.5.0/conanfile.py
@@ -1,4 +1,5 @@
from conan import ConanFile
+from conan.tools.apple import fix_apple_shared_install_name
from conan.tools.files import apply_conandata_patches, get, files
from conan.errors import ConanInvalidConfiguration
from conans import CMake
@@ -172,23 +173,23 @@ def requirements(self):
self.requires("cryptopp/8.7.0")
if self.options.with_curl:
- self.requires("libcurl/7.85.0")
+ self.requires("libcurl/8.2.0")
if self.options.with_dds:
self.requires("crunch/cci.20190615")
if self.options.with_expat:
- self.requires("expat/2.4.9")
+ self.requires("expat/2.5.0")
if self.options.with_exr:
- self.requires("openexr/3.1.5")
- self.requires("imath/3.1.5")
+ self.requires("openexr/3.1.9")
+ self.requires("imath/3.1.9")
if self.options.with_freexl:
self.requires("freexl/1.0.6")
if self.options.with_geos:
- self.requires("geos/3.11.0")
+ self.requires("geos/3.11.1")
if self.options.with_gif:
self.requires("giflib/5.2.1")
@@ -208,13 +209,13 @@ def requirements(self):
if self.options.with_jpeg == "libjpeg":
self.requires("libjpeg/9e")
elif self.options.with_jpeg == "libjpeg-turbo":
- self.requires("libjpeg-turbo/2.1.4")
+ self.requires("libjpeg-turbo/2.1.5")
if self.options.with_kea:
self.requires("kealib/1.4.14")
if self.options.with_libdeflate:
- self.requires("libdeflate/1.12")
+ self.requires("libdeflate/1.18")
if self.options.with_libiconv:
self.requires("libiconv/1.17")
@@ -223,7 +224,7 @@ def requirements(self):
self.requires("libkml/1.3.0")
if self.options.with_libtiff:
- self.requires("libtiff/4.4.0")
+ self.requires("libtiff/4.5.1")
if self.options.with_lz4:
self.requires("lz4/1.9.4")
@@ -246,19 +247,19 @@ def requirements(self):
self.requires("openjpeg/2.5.0")
if self.options.with_openssl:
- self.requires("openssl/1.1.1q")
+ self.requires("openssl/1.1.1u")
if self.options.with_pcre:
self.requires("pcre/8.45")
if self.options.with_pcre2:
- self.requires("pcre2/10.40")
+ self.requires("pcre2/10.42")
if self.options.with_pg:
self.requires("libpq/14.5")
if self.options.with_png:
- self.requires("libpng/1.6.38")
+ self.requires("libpng/1.6.40")
if self.options.with_podofo:
self.requires("podofo/0.9.7")
@@ -267,28 +268,32 @@ def requirements(self):
self.requires("poppler/21.07.0")
if self.options.with_proj:
- self.requires("proj/9.0.1")
+ self.requires("proj/9.1.1")
if self.options.with_qhull:
self.requires("qhull/8.0.1")
if self.options.with_sqlite3:
- self.requires("sqlite3/3.39.3")
+ self.requires("sqlite3/3.42.0")
if self.options.with_webp:
- self.requires("libwebp/1.2.4")
+ self.requires("libwebp/1.3.1")
if self.options.with_xerces:
self.requires("xerces-c/3.2.3")
if self.options.with_xml2:
- self.requires("libxml2/2.9.14")
+ self.requires("libxml2/2.10.3")
if self.options.with_zlib:
- self.requires("zlib/1.2.12")
+ self.requires("zlib/1.2.13")
if self.options.with_zstd:
- self.requires("zstd/1.5.2")
+ self.requires("zstd/1.5.5")
+
+ def build_requirements(self):
+ # https://github.com/conan-io/conan/issues/3482#issuecomment-662284561
+ self.tool_requires("cmake/[>=3.18 <4]")
def package_id(self):
del self.info.options.with_crypto
@@ -724,10 +729,10 @@ def package(self):
self.copy("LICENSE.TXT", dst="licenses", src=self._source_subfolder)
cmake = self._configure_cmake()
cmake.install()
-
files.rmdir(self, os.path.join(self.package_folder, "share"))
files.rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
files.rmdir(self, os.path.join(self.package_folder, "lib", "cmake"))
+ fix_apple_shared_install_name(self)
def package_info(self):
diff --git a/recipes/gdal/post_3.5.0/patches/3.7.0/0-replace-find-package.patch b/recipes/gdal/post_3.5.0/patches/3.7.0/0-replace-find-package.patch
new file mode 100644
index 00000000000000..34401a53eae6d4
--- /dev/null
+++ b/recipes/gdal/post_3.5.0/patches/3.7.0/0-replace-find-package.patch
@@ -0,0 +1,282 @@
+diff -urN ./a/alg/CMakeLists.txt ./b/alg/CMakeLists.txt
+--- ./a/alg/CMakeLists.txt 2023-05-02 08:47:11.000000000 -0500
++++ ./b/alg/CMakeLists.txt 2023-06-06 16:47:02.784509800 -0500
+@@ -73,7 +73,7 @@
+ target_sources(alg PRIVATE gdalwarpkernel_opencl.h gdalwarpkernel_opencl.cpp)
+ endif ()
+
+-gdal_target_link_libraries(alg PRIVATE PROJ::proj)
++target_link_libraries(alg PUBLIC PROJ::proj)
+
+ if (GDAL_USE_QHULL_INTERNAL)
+ target_compile_definitions(alg PRIVATE -DINTERNAL_QHULL)
+diff -urN ./a/apps/CMakeLists.txt ./b/apps/CMakeLists.txt
+--- ./a/apps/CMakeLists.txt 2023-05-02 08:47:11.000000000 -0500
++++ ./b/apps/CMakeLists.txt 2023-06-06 16:46:55.380690700 -0500
+@@ -26,7 +26,7 @@
+ appslib PRIVATE $ $
+ $ $)
+
+-gdal_target_link_libraries(appslib PRIVATE PROJ::proj)
++target_link_libraries(appslib PUBLIC PROJ::proj)
+
+ set_property(TARGET appslib PROPERTY POSITION_INDEPENDENT_CODE ${GDAL_OBJECT_LIBRARIES_POSITION_INDEPENDENT_CODE})
+ if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.16)
+diff -urN ./a/cmake/helpers/CheckDependentLibraries.cmake ./b/cmake/helpers/CheckDependentLibraries.cmake
+--- ./a/cmake/helpers/CheckDependentLibraries.cmake 2023-06-07 09:33:06.599777700 -0500
++++ ./b/cmake/helpers/CheckDependentLibraries.cmake 2023-06-07 13:38:51.722872200 -0500
+@@ -11,7 +11,8 @@
+ include(CheckFunctionExists)
+ include(CMakeDependentOption)
+ include(FeatureSummary)
+-include(DefineFindPackage2)
++#include(DefineFindPackage2)
++include(ConanFindPackage)
+ include(CheckSymbolExists)
+
+ option(
+@@ -109,51 +110,8 @@
+ string(TOUPPER ${name} key)
+ set(_find_dependency "")
+ set(_find_dependency_args "")
+- if(FIND_PACKAGE2_${name}_ENABLED)
+- find_package2(${name} QUIET OUT_DEPENDENCY _find_dependency)
+- else()
+- set(_find_package_args)
+- if (_GCP_VERSION)
+- list(APPEND _find_package_args ${_GCP_VERSION})
+- endif ()
+- if (_GCP_CONFIG)
+- list(APPEND _find_package_args CONFIG)
+- endif ()
+- if (_GCP_COMPONENTS)
+- list(APPEND _find_package_args COMPONENTS ${_GCP_COMPONENTS})
+- endif ()
+- if (_GCP_PATHS)
+- list(APPEND _find_package_args PATHS ${_GCP_PATHS})
+- endif ()
+- if (_GCP_NAMES)
+- set(GDAL_CHECK_PACKAGE_${name}_NAMES "${_GCP_NAMES}" CACHE STRING "Config file name for ${name}")
+- mark_as_advanced(GDAL_CHECK_PACKAGE_${name}_NAMES)
+- endif ()
+- if (_GCP_TARGETS)
+- set(GDAL_CHECK_PACKAGE_${name}_TARGETS "${_GCP_TARGETS}" CACHE STRING "Target name candidates for ${name}")
+- mark_as_advanced(GDAL_CHECK_PACKAGE_${name}_TARGETS)
+- endif ()
+- if (GDAL_CHECK_PACKAGE_${name}_NAMES)
+- find_package(${name} NAMES ${GDAL_CHECK_PACKAGE_${name}_NAMES} ${_find_package_args})
+- gdal_check_package_target(${name} ${GDAL_CHECK_PACKAGE_${name}_TARGETS} REQUIRED)
+- if (${name}_FOUND)
+- get_filename_component(_find_dependency_args "${${name}_CONFIG}" NAME)
+- string(REPLACE ";" " " _find_dependency_args "${name} NAMES ${GDAL_CHECK_PACKAGE_${name}_NAMES} CONFIGS ${_find_dependency_args} ${_find_package_args}")
+- endif ()
+- endif ()
+- if (NOT ${name}_FOUND)
+- find_package(${name} ${_find_package_args})
+- if (${name}_FOUND)
+- gdal_check_package_target(${name} ${GDAL_CHECK_PACKAGE_${name}_TARGETS})
+- elseif (${key}_FOUND) # Some find modules do not set _FOUND
+- gdal_check_package_target(${key} ${GDAL_CHECK_PACKAGE_${name}_TARGETS})
+- set(${name}_FOUND "${key}_FOUND")
+- endif ()
+- if (${name}_FOUND)
+- string(REPLACE ";" " " _find_dependency_args "${name} ${_find_package_args}")
+- endif()
+- endif ()
+- endif ()
++
++ find_package2(${name} QUIET OUT_DEPENDENCY _find_dependency)
+ if (${key}_FOUND OR ${name}_FOUND)
+ if(_GCP_MINIMUM_VERSION)
+
+@@ -368,14 +326,12 @@
+ endif ()
+
+ # First check with CMake config files (starting at version 8, due to issues with earlier ones), and then fallback to the FindPROJ module.
+-find_package(PROJ 9 CONFIG QUIET)
+-if (NOT PROJ_FOUND)
+- find_package(PROJ 8 CONFIG QUIET)
+-endif()
++find_package2(PROJ)
++target_include_directories(PROJ::proj INTERFACE ${PROJ_INCLUDE_DIRS})
+ if (PROJ_FOUND)
+ string(APPEND GDAL_IMPORT_DEPENDENCIES "find_dependency(PROJ ${PROJ_VERSION_MAJOR} CONFIG)\n")
+ else()
+- find_package(PROJ 6.0 REQUIRED)
++ find_package(proj 6.0 REQUIRED)
+ string(APPEND GDAL_IMPORT_DEPENDENCIES "find_dependency(PROJ 6.0)\n")
+ endif ()
+
+@@ -458,15 +414,10 @@
+ TARGETS json-c::json-c JSONC::JSONC
+ )
+ gdal_internal_library(JSONC REQUIRED)
+-if(TARGET json-c::json-c)
+- get_target_property(include_dirs json-c::json-c INTERFACE_INCLUDE_DIRECTORIES)
+- find_path(GDAL_JSON_INCLUDE_DIR NAMES json.h PATHS ${include_dirs} PATH_SUFFIXES json-c NO_DEFAULT_PATH)
+- list(APPEND include_dirs "${GDAL_JSON_INCLUDE_DIR}")
+- list(REMOVE_DUPLICATES include_dirs)
+- set_target_properties(json-c::json-c PROPERTIES
+- INTERFACE_INCLUDE_DIRECTORIES "${GDAL_JSON_INCLUDE_DIR}"
+- )
+-endif()
++get_target_property(include_dirs json-c::json-c INTERFACE_INCLUDE_DIRECTORIES)
++list(APPEND include_dirs "${JSONC_INCLUDE_DIRS}/json-c")
++set_target_properties(json-c::json-c PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${include_dirs}")
++message("Setting include for json-c: ${include_dirs}")
+
+ gdal_check_package(OpenCAD "libopencad (external, used by OpenCAD driver)" CAN_DISABLE)
+ gdal_internal_library(OPENCAD)
+@@ -527,6 +478,24 @@
+ gdal_check_package(SQLite3 "Enable SQLite3 support (used by SQLite/Spatialite, GPKG, Rasterlite, MBTiles, etc.)"
+ CAN_DISABLE RECOMMENDED)
+ if (SQLite3_FOUND)
++ set(CMAKE_REQUIRED_INCLUDES ${SQLite3_INCLUDE_DIRS})
++ check_symbol_exists(sqlite3_mutex_alloc sqlite3ext.h SQLite3_HAS_MUTEX_ALLOC)
++ check_symbol_exists(sqlite3_column_table_name sqlite3ext.h SQLite3_HAS_COLUMN_METADATA)
++ check_symbol_exists(sqlite3_rtree_query_callback sqlite3.h SQLite3_HAS_RTREE)
++ check_symbol_exists(sqlite3_load_extension sqlite3ext.h SQLite3_HAS_LOAD_EXTENSION)
++ # https://www.sqlite.org/compile.html recommends to build with -DSQLITE_OMIT_PROGRESS_CALLBACK
++ # "for applications that are able to use them"... This is sometimes wrongly
++ # understood as recommended in all situations.
++ check_symbol_exists(sqlite3_progress_handler sqlite3.h SQLite3_HAS_PROGRESS_HANDLER)
++
++ #if(NOT TARGET SQLite::SQLite3)
++ # add_library(SQLite::SQLite3 UNKNOWN IMPORTED)
++ # set_target_properties(SQLite::SQLite3 PROPERTIES
++ # INTERFACE_INCLUDE_DIRECTORIES "${SQLite3_INCLUDE_DIRS}"
++ # IMPORTED_LINK_INTERFACE_LANGUAGES "C"
++ # IMPORTED_LOCATION "${SQLite3_LIBRARY}")
++ #endif()
++
+ if (NOT DEFINED SQLite3_HAS_COLUMN_METADATA)
+ message(FATAL_ERROR "missing SQLite3_HAS_COLUMN_METADATA")
+ endif ()
+@@ -566,7 +535,7 @@
+ gdal_check_package(SPATIALITE "Enable spatialite support for sqlite3" VERSION 4.1.2 CAN_DISABLE)
+ gdal_check_package(RASTERLITE2 "Enable RasterLite2 support for sqlite3" VERSION 1.1.0 CAN_DISABLE)
+
+-find_package(LibKML COMPONENTS DOM ENGINE)
++find_package(LibKML COMPONENTS kmlengine kmldom kmlbase)
+ if (GDAL_USE_LIBKML)
+ if (NOT LibKML_FOUND)
+ message(FATAL_ERROR "Configured to use GDAL_USE_LIBKML, but not found")
+diff -urN ./a/cmake/helpers/ConanFindPackage.cmake ./b/cmake/helpers/ConanFindPackage.cmake
+--- ./a/cmake/helpers/ConanFindPackage.cmake 1969-12-31 18:00:00.000000000 -0600
++++ ./b/cmake/helpers/ConanFindPackage.cmake 2023-06-06 16:26:55.800008000 -0500
+@@ -0,0 +1,43 @@
++
++function(define_find_package2 pkgname include_file library_name)
++endfunction()
++
++function(find_package2 pkgname)
++ set(_options QUIET REQUIRED)
++ set(_oneValueArgs OUT_DEPENDENCY)
++ set(_multiValueArgs)
++ cmake_parse_arguments(arg "${_options}" "${_oneValueArgs}" "${_multiValueArgs}" ${ARGN})
++ if(arg_QUIET)
++ set(${pkgname}_FIND_QUIETLY TRUE)
++ endif()
++ if(arg_REQUIRED)
++ set(${pkgname}_FIND_REQUIRED TRUE)
++ endif()
++
++ string(TOUPPER ${pkgname} key)
++
++ set(docstring "Configured for conan package ${GDAL_CONAN_PACKAGE_FOR_${key}}")
++ if (DEFINED GDAL_CONAN_PACKAGE_FOR_${key})
++ message("Using conan package ${GDAL_CONAN_PACKAGE_FOR_${key}} for dependency ${pkgname}")
++ set(conan_package ${GDAL_CONAN_PACKAGE_FOR_${key}})
++ string(TOUPPER ${conan_package} conan_package_upper)
++
++ set(${key}_INCLUDE_DIRS "${CONAN_INCLUDE_DIRS_${conan_package_upper}}" CACHE STRING ${docstring})
++ if (NOT TARGET_FOR_${key})
++ set(TARGET_FOR_${key} "${conan_package}::${conan_package}")
++ endif()
++ set(${key}_LIBRARIES "${TARGET_FOR_${key}}" CACHE STRING ${docstring})
++ set(${key}_LIBRARY "${TARGET_FOR_${key}}" CACHE STRING ${docstring})
++ set(${key}_TARGET "${TARGET_FOR_${key}}" CACHE STRING ${docstring})
++ set(${pkgname}_INCLUDE_DIRS "CONAN_INCLUDE_DIRS_${conan_package_upper}" CACHE STRING ${docstring})
++ set(${pkgname}_LIBRARIES "${TARGET_FOR_${key}}" CACHE STRING ${docstring})
++ set(${pkgname}_LIBRARY "${TARGET_FOR_${key}}" CACHE STRING ${docstring})
++ set(${pkgname}_TARGET "${TARGET_FOR_${key}}" CACHE STRING ${docstring})
++ set(${key}_FOUND TRUE CACHE BOOL ${docstring})
++
++ else ()
++ message("dependency ${pkgname} has no conan package")
++ set(${key}_FOUND FALSE CACHE BOOL ${docstring})
++ endif()
++
++endfunction()
+diff -urN ./a/frmts/hfa/CMakeLists.txt ./b/frmts/hfa/CMakeLists.txt
+--- ./a/frmts/hfa/CMakeLists.txt 2023-05-02 08:47:11.000000000 -0500
++++ ./b/frmts/hfa/CMakeLists.txt 2023-06-06 16:54:31.162043900 -0500
+@@ -15,7 +15,8 @@
+ hfa_overviews.cpp
+ BUILTIN)
+ gdal_standard_includes(gdal_HFA)
+-target_include_directories(gdal_HFA PRIVATE $)
++target_link_libraries(gdal_HFA INTERFACE PROJ::proj)
++target_include_directories(gdal_HFA PRIVATE ${PROJ_INCLUDE_DIRS})
+ target_compile_definitions(gdal_HFA PRIVATE $)
+
+ if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.12)
+diff -urN ./a/gdal.cmake ./b/gdal.cmake
+--- ./a/gdal.cmake 2023-05-02 08:47:12.000000000 -0500
++++ ./b/gdal.cmake 2023-06-06 16:55:34.252830900 -0500
+@@ -859,25 +859,6 @@
+ ${CMAKE_CURRENT_BINARY_DIR}/GDALConfig.cmake @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/GDALConfig.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/gdal/)
+
+- # Generate gdal-config utility command and pkg-config module gdal.pc
+- include(GdalGenerateConfig)
+- gdal_generate_config(
+- TARGET
+- "${GDAL_LIB_TARGET_NAME}"
+- GLOBAL_PROPERTY
+- "gdal_private_link_libraries"
+- GDAL_CONFIG
+- "${PROJECT_BINARY_DIR}/apps/gdal-config"
+- PKG_CONFIG
+- "${CMAKE_CURRENT_BINARY_DIR}/gdal.pc")
+- install(
+- PROGRAMS ${PROJECT_BINARY_DIR}/apps/gdal-config
+- DESTINATION ${CMAKE_INSTALL_BINDIR}
+- COMPONENT applications)
+- install(
+- FILES ${CMAKE_CURRENT_BINARY_DIR}/gdal.pc
+- DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
+- COMPONENT libraries)
+ endif ()
+
+ configure_file(${GDAL_CMAKE_TEMPLATE_PATH}/uninstall.cmake.in ${PROJECT_BINARY_DIR}/cmake_uninstall.cmake @ONLY)
+diff -urN ./a/ogr/CMakeLists.txt ./b/ogr/CMakeLists.txt
+--- ./a/ogr/CMakeLists.txt 2023-05-02 08:47:12.000000000 -0500
++++ ./b/ogr/CMakeLists.txt 2023-06-06 16:56:18.682151700 -0500
+@@ -89,12 +89,12 @@
+
+ target_compile_definitions(ogr PRIVATE HAVE_MITAB)
+
+-gdal_target_link_libraries(ogr PRIVATE PROJ::proj)
++target_link_libraries(ogr PUBLIC PROJ::proj)
+
+ # External libs then
+ if (GDAL_USE_GEOS)
+ target_compile_definitions(ogr PRIVATE -DHAVE_GEOS=1)
+- gdal_target_link_libraries(ogr PRIVATE ${GEOS_TARGET})
++ target_link_libraries(ogr PUBLIC ${GEOS_TARGET})
+ endif ()
+
+ if (GDAL_USE_SFCGAL)
+diff -urN ./a/ogr/ogr_proj_p.h ./b/ogr/ogr_proj_p.h
+--- ./a/ogr/ogr_proj_p.h 2023-05-02 08:47:12.000000000 -0500
++++ ./b/ogr/ogr_proj_p.h 2023-06-06 16:56:30.772908800 -0500
+@@ -29,7 +29,7 @@
+ #ifndef OGR_PROJ_P_H_INCLUDED
+ #define OGR_PROJ_P_H_INCLUDED
+
+-#include "proj.h"
++#include
+
+ #include "cpl_mem_cache.h"
+
diff --git a/recipes/gdal/pre_3.5.0/conandata.yml b/recipes/gdal/pre_3.5.0/conandata.yml
index 4ca595dd102568..49983edc62730c 100644
--- a/recipes/gdal/pre_3.5.0/conandata.yml
+++ b/recipes/gdal/pre_3.5.0/conandata.yml
@@ -8,12 +8,6 @@ sources:
"3.3.3":
url: "https://github.com/OSGeo/gdal/releases/download/v3.3.3/gdal-3.3.3.tar.gz"
sha256: "28925ea4717b02185ee208bfc121a94fa0bc1dfe9cb862fd3868c2a0394d605a"
- "3.2.3":
- url: "https://github.com/OSGeo/gdal/releases/download/v3.2.3/gdal-3.2.3.tar.gz"
- sha256: "86a35aad60a1eb87c2c0c145f9bccd83a47c4781254544ed5246f64d55ee1f18"
- "3.1.4":
- url: "https://github.com/OSGeo/gdal/releases/download/v3.1.4/gdal-3.1.4.tar.gz"
- sha256: "5f09ea6ca797e296b608d261e08e18ffa43a12fa28d460ae139d2a026ee2b0c0"
patches:
"3.4.3":
- patch_file: "patches/3.4.x/fix-autotools-3.4.3.patch"
@@ -33,17 +27,3 @@ patches:
- patch_file: "patches/3.3.x/fix-include-jsonc.patch"
- patch_file: "patches/3.3.x/fix-include-xerces.patch"
- patch_file: "patches/3.3.x/fix-include-podofo.patch"
- "3.2.3":
- - patch_file: "patches/3.2.x/fix-autotools.patch"
- - patch_file: "patches/3.2.x/fix-nmake.patch"
- - patch_file: "patches/3.2.x/fix-include-jsonc.patch"
- - patch_file: "patches/3.2.x/fix-include-xerces.patch"
- - patch_file: "patches/3.2.x/fix-include-podofo.patch"
- "3.1.4":
- - patch_file: "patches/3.1.x/fix-autotools-3.1.4.patch"
- - patch_file: "patches/3.1.x/fix-nmake-common.patch"
- - patch_file: "patches/3.1.x/fix-nmake-opt-3.1.2.patch"
- - patch_file: "patches/3.1.x/fix-import-dll-msvc.patch"
- - patch_file: "patches/3.1.x/fix-include-jsonc.patch"
- - patch_file: "patches/3.1.x/fix-include-xerces-3.1.2.patch"
- - patch_file: "patches/3.1.x/fix-include-podofo.patch"
diff --git a/recipes/gdal/pre_3.5.0/conanfile.py b/recipes/gdal/pre_3.5.0/conanfile.py
index 7ecdfb6713c6ab..65bbd7d92d812a 100644
--- a/recipes/gdal/pre_3.5.0/conanfile.py
+++ b/recipes/gdal/pre_3.5.0/conanfile.py
@@ -246,21 +246,21 @@ def layout(self):
self.folders.build = self.folders.source
def requirements(self):
- self.requires("json-c/0.16")
+ self.requires("json-c/0.17")
self.requires("libgeotiff/1.7.1")
# self.requires("libopencad/0.0.2") # TODO: use conan recipe when available instead of internal one
- self.requires("libtiff/4.4.0")
- self.requires("proj/9.1.1")
+ self.requires("libtiff/4.5.1")
+ self.requires("proj/9.2.1")
if Version(self.version) >= "3.1.0":
self.requires("flatbuffers/2.0.5")
if self.options.get_safe("with_zlib", True):
self.requires("zlib/1.2.13")
if self.options.get_safe("with_libdeflate"):
- self.requires("libdeflate/1.17")
+ self.requires("libdeflate/1.18")
if self.options.with_libiconv:
self.requires("libiconv/1.17")
if self.options.get_safe("with_zstd"):
- self.requires("zstd/1.5.2")
+ self.requires("zstd/1.5.5")
if self.options.get_safe("with_blosc"):
self.requires("c-blosc/1.21.3")
if self.options.get_safe("with_lz4"):
@@ -274,7 +274,7 @@ def requirements(self):
# if self.options.with_pcraster:
# self.requires("pcraster-rasterformat/1.3.2")
if self.options.get_safe("with_png", True):
- self.requires("libpng/1.6.39")
+ self.requires("libpng/1.6.40")
if self.options.with_dds:
self.requires("crunch/cci.20190615")
if self.options.with_gta:
@@ -284,7 +284,7 @@ def requirements(self):
if self.options.with_jpeg == "libjpeg":
self.requires("libjpeg/9e")
elif self.options.with_jpeg == "libjpeg-turbo":
- self.requires("libjpeg-turbo/2.1.4")
+ self.requires("libjpeg-turbo/3.0.0")
elif self.options.with_jpeg == "mozjpeg":
self.requires("mozjpeg/4.1.1")
if self.options.with_charls:
@@ -326,13 +326,13 @@ def requirements(self):
# if self.options.with_dods_root:
# self.requires("libdap/3.20.6")
if self.options.with_curl:
- self.requires("libcurl/7.87.0")
+ self.requires("libcurl/8.2.1")
if self.options.with_xml2:
self.requires("libxml2/2.10.3")
# if self.options.with_spatialite:
# self.requires("libspatialite/4.3.0a")
if self.options.get_safe("with_sqlite3"):
- self.requires("sqlite3/3.40.1")
+ self.requires("sqlite3/3.42.0")
# if self.options.with_rasterlite2:
# self.requires("rasterlite2/x.x.x")
if self.options.get_safe("with_pcre"):
@@ -340,7 +340,7 @@ def requirements(self):
if self.options.get_safe("with_pcre2"):
self.requires("pcre2/10.42")
if self.options.with_webp:
- self.requires("libwebp/1.3.0")
+ self.requires("libwebp/1.3.1")
if self.options.with_geos:
self.requires("geos/3.11.1")
# if self.options.with_sfcgal:
@@ -367,11 +367,11 @@ def requirements(self):
if self.options.with_cryptopp:
self.requires("cryptopp/8.7.0")
if self.options.with_crypto:
- self.requires("openssl/1.1.1s")
+ self.requires("openssl/1.1.1u")
# if not self.options.without_lerc:
# self.requires("lerc/2.1") # TODO: use conan recipe (not possible yet because lerc API is broken for GDAL)
if self.options.get_safe("with_exr"):
- self.requires("openexr/3.1.5")
+ self.requires("openexr/3.1.9")
if self.options.get_safe("with_heif"):
self.requires("libheif/1.13.0")
diff --git a/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-autotools-3.1.4.patch b/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-autotools-3.1.4.patch
deleted file mode 100644
index 974146f6a3f7ad..00000000000000
--- a/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-autotools-3.1.4.patch
+++ /dev/null
@@ -1,283 +0,0 @@
---- a/GDALmake.opt.in
-+++ b/GDALmake.opt.in
-@@ -601,7 +601,7 @@ endif
-
- ifeq ($(HAVE_LIBTOOL), yes)
-
--CONFIG_LIBS = $(GDAL_ROOT)/$(LIBGDAL)
-+CONFIG_LIBS = $(GDAL_ROOT)/$(LIBGDAL) $(LIBS)
- ifeq ($(MACOSX_FRAMEWORK),yes)
- CONFIG_LIBS_INS = -L$(INST_LIB)/unix/lib -lgdal
- else
---- a/configure.ac
-+++ b/configure.ac
-@@ -1214,6 +1214,7 @@ dnl ---------------------------------------------------------------------------
- dnl PROJ.6 related stuff
- dnl ---------------------------------------------------------------------------
-
-+PKG_PROG_PKG_CONFIG([0.21])
- AC_MSG_CHECKING([for PROJ >= 6 library])
-
- AC_ARG_WITH(proj,[ --with-proj=ARG Compile with PROJ.x (ARG=yes or path)],,)
-@@ -1229,11 +1230,7 @@ if test "x$with_proj" = "xno" ; then
- else
-
- if test "x$with_proj" = "xyes" -o "x$with_proj" = "x"; then
-- ORIG_LIBS="$LIBS"
-- LIBS="-lproj $ORIG_LIBS"
-- AC_LANG_PUSH([C++])
-- AC_CHECK_LIB(proj,proj_create_from_wkt,PROJ_FOUND=yes,PROJ_FOUND=no,)
-- AC_LANG_POP([C++])
-+ PROJ_FOUND=yes
- if test "$PROJ_FOUND" = "no"; then
- AC_LANG_PUSH([C++])
- AC_CHECK_LIB(proj,internal_proj_create_from_wkt,PROJ_FOUND=yes,PROJ_FOUND=no,)
-@@ -1876,7 +1873,6 @@ else
-
- DDS_SETTING=yes
- CRUNCHDIR="$with_dds"
-- LIBS="-L$with_dds/lib/ -lcrunch $LIBS"
- echo "using libcrunch from $with_dds."
-
- fi
-@@ -2012,7 +2008,7 @@ else
- AC_MSG_RESULT([using libtiff from ${with_libtiff}.])
-
- dnl Check for the BigTIFF enabled library (libtiff >= 4.0)
-- AC_CHECK_LIB(tiff,TIFFScanlineSize64,HAVE_BIGTIFF=yes,HAVE_BIGTIFF=no,)
-+ AC_CHECK_LIB(tiff,TIFFScanlineSize64,HAVE_BIGTIFF=yes,HAVE_BIGTIFF=no,$LIBS)
-
- fi
-
-@@ -2082,7 +2078,6 @@ else
-
- dnl We now require libgeotiff 1.5.0
- dnl first check if $with_geotiff/lib has the library:
-- AC_CHECK_LIB(geotiff,GTIFAttachPROJContext,GEOTIFF_SETTING=external,GEOTIFF_SETTING=not_found,-L$with_geotiff/lib)
-
- if test $GEOTIFF_SETTING = "external" ; then
- LIBS="-L$with_geotiff/lib -lgeotiff $LIBS"
-@@ -2650,6 +2645,10 @@ if test x"$with_hdf4" = x"no" ; then
-
- echo "hdf4 support disabled."
-
-+elif test x"$with_hdf4" = x"yes" ; then
-+ PKG_CHECK_MODULES([HDF4], [hdf], [HAVE_HDF4=yes], [AC_MSG_ERROR([hdf4 not found...])])
-+ PKG_CHECK_MODULES([HDF4], [hdf >= 4.2.5], [HDF4_HAS_MAXOPENFILES=yes], [HDF4_HAS_MAXOPENFILES=no])
-+ HDF4_INCLUDE="$HDF4_CFLAGS"
- else
-
- if test x"$with_hdf4" = x"yes" -o x"$with_hdf4" = x"" ; then
-@@ -2780,7 +2779,6 @@ elif test "$with_hdf5" = "yes" -o "$with_hdf5" = "" ; then
- # Test that the package found is for the right architecture
- saved_LIBS="$LIBS"
- LIBS="$HDF5_LIBS"
-- AC_CHECK_LIB(hdf5,H5Fopen, [HAVE_HDF5=yes], [HAVE_HDF5=no])
- LIBS="$saved_LIBS"
-
- if test "$HAVE_HDF5" = "yes"; then
-@@ -2849,21 +2847,21 @@ KEA_CONFIG=no
-
- AC_ARG_WITH(kea,[ --with-kea[=ARG] Include kealib (ARG=path to kea-config) [[default=yes]]],,)
-
-+AC_MSG_CHECKING([for kea])
- if test "$with_kea" = "yes" -o "x$with_kea" = "x" ; then
-- AC_PATH_PROG(KEA_CONFIG, kea-config, no)
-+ HAVE_KEA=yes
-+ AC_MSG_RESULT([yes])
- else
-- KEA_CONFIG=$with_kea
-+ HAVE_KEA=no
-+ AC_MSG_RESULT([no])
- fi
-
--AC_MSG_CHECKING([for kea])
-
- if test "$KEA_CONFIG" = "no" ; then
-
-- HAVE_KEA=no
- KEA_LIB=
- KEA_INC=
-
-- AC_MSG_RESULT([no])
-
- else
- if test -d $KEA_CONFIG ; then
-@@ -3715,18 +3713,15 @@ MYSQL_CONFIG=no
- AC_ARG_WITH(mysql,[ --with-mysql[=ARG] Include MySQL (ARG=path to mysql_config) [[default=no]]],,)
-
- if test "$with_mysql" = "yes" ; then
-- AC_PATH_PROG(MYSQL_CONFIG, mysql_config, no)
-+ HAVE_MYSQL=yes
- else
-- if test "x$with_mysql" != "x" ; then
-- MYSQL_CONFIG=$with_mysql
-- fi
-+ HAVE_MYSQL=no
- fi
-
- AC_MSG_CHECKING([for MySQL])
-
- if test "$MYSQL_CONFIG" = "no" ; then
-
-- HAVE_MYSQL=no
- MYSQL_LIB=
- MYSQL_INC=
-
-@@ -3820,8 +3815,11 @@ dnl Check for Expat configuration.
- dnl ---------------------------------------------------------------------------
-
- dnl Expat 1.95.0 released in 2000-09-28
--EXPAT_REQ_VERSION="1.95.0"
--AX_LIB_EXPAT($EXPAT_REQ_VERSION)
-+# AX_LIB_EXPAT is too fragile, it doesn't properly handle debug expat on Windows
-+HAVE_EXPAT=no
-+AC_ARG_WITH([expat], AS_HELP_STRING([--with-expat[=ARG]], [use Expat library (ARG=yes or no)]),,)
-+if test x"$with_expat" = x"yes" ; then
-+PKG_CHECK_MODULES([EXPAT], [expat >= 1.95.0], [HAVE_EXPAT=yes], [AC_MSG_ERROR([expat not found...])])
-
- if test "$HAVE_EXPAT" = "yes"; then
- LIBS="$EXPAT_LDFLAGS $LIBS"
-@@ -3834,6 +3832,7 @@ m4_foreach_w([frmt],EXPAT_DRIVERS,[
- fi
- ])
-
-+fi
- fi
-
- AC_SUBST([HAVE_EXPAT], $HAVE_EXPAT)
-@@ -4059,29 +4058,17 @@ AC_ARG_WITH(curl,
- dnl Clear some cache variables
- unset ac_cv_path_LIBCURL
-
--if test "`basename xx/$with_curl`" = "curl-config" ; then
-- LIBCURL_CONFIG="$with_curl"
--elif test "$with_curl" = "no" ; then
-- LIBCURL_CONFIG=no
--else
-- AC_PATH_PROG(LIBCURL_CONFIG, curl-config, no)
--fi
--
--if test "$LIBCURL_CONFIG" != "no" ; then
--
-- CURL_VERNUM=`$LIBCURL_CONFIG --vernum`
-- CURL_VER=`$LIBCURL_CONFIG --version | awk '{print $2}'`
--
-- AC_MSG_RESULT([ found libcurl version $CURL_VER])
--
-- AC_CHECK_LIB(curl,curl_global_init,CURL_SETTING=yes,CURL_SETTING=no,`$LIBCURL_CONFIG --libs`)
-
-+if test "$with_curl" = "yes" ; then
-+ PKG_CHECK_MODULES([CURL], [libcurl], [CURL_SETTING=yes], [AC_MSG_ERROR([libcurl not found...])])
-+else
-+ CURL_SETTING=no
- fi
-
- if test "$CURL_SETTING" = "yes" ; then
-
-- CURL_INC=`$LIBCURL_CONFIG --cflags`
-- CURL_LIB=`$LIBCURL_CONFIG --libs`
-+ CURL_INC="$CURL_CFLAGS"
-+ CURL_LIB="$CURL_LIBS"
- m4_foreach_w([frmt],CURL_FORMATS,[
- driver_enabled=m4_join([_],[$INTERNAL_FORMAT],frmt,[ENABLED])
- if test "x$driver_enabled" = "xyes"; then
-@@ -4121,7 +4108,6 @@ if test "x$with_xml2" = "xyes" -o "x$with_xml2" = "x" ; then
- if test "${HAVE_LIBXML2}" = "yes"; then
- SAVED_LIBS="${LIBS}"
- LIBS="${LIBXML2_LIBS}"
-- AC_CHECK_LIB(xml2,xmlParseDoc,HAVE_LIBXML2=yes,HAVE_LIBXML2=no)
- LIBS="${SAVED_LIBS}"
- fi
-
-@@ -4242,9 +4228,12 @@ dnl ---------------------------------------------------------------------------
- dnl Check for SQLite (only if SpatiaLite is not detected)
- dnl ---------------------------------------------------------------------------
-
-+HAVE_SQLITE3=no
-+AC_ARG_WITH(sqlite3, AS_HELP_STRING([--with-sqlite3[=ARG]], [use SQLite 3 library (ARG=yes or no)]),,)
- if test "${HAVE_SPATIALITE}" = "no" -o "${HAVE_SPATIALITE}" = "dlopen" ; then
-- SQLITE3_REQ_VERSION="3.0.0"
-- AX_LIB_SQLITE3($SQLITE3_REQ_VERSION)
-+ if test x"$with_sqlite3" = x"yes" ; then
-+ PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.0.0], [HAVE_SQLITE3=yes], [AC_MSG_ERROR([sqlite3 not found...])])
-+ fi
-
- if test "$HAVE_SQLITE3" = "yes"; then
- LIBS="$SQLITE3_LDFLAGS $LIBS"
-@@ -4597,8 +4586,13 @@ dnl ---------------------------------------------------------------------------
- dnl Check if geos library is available.
- dnl ---------------------------------------------------------------------------
-
--GEOS_INIT(3.1.0)
-+AC_ARG_WITH(geos, AS_HELP_STRING([--with-geos[=ARG]], [Include GEOS support (ARG=yes or no)]),,)
- HAVE_GEOS_RESULT="no"
-+HAVE_GEOS=no
-+if test x"$with_geos" = x"no" ; then
-+ AC_MSG_RESULT([GEOS support disabled])
-+else
-+ PKG_CHECK_MODULES([GEOS], [geos >= 3.1.0], [HAVE_GEOS=yes], [AC_MSG_ERROR([geos not found...])])
- if test "${HAVE_GEOS}" = "yes" ; then
-
- AC_MSG_NOTICE([Using C API from GEOS $GEOS_VERSION])
-@@ -4607,6 +4601,8 @@ if test "${HAVE_GEOS}" = "yes" ; then
- LIBS="${GEOS_LIBS} ${LIBS}"
- HAVE_GEOS_RESULT="yes"
- fi
-+fi
-+AC_SUBST(HAVE_GEOS, $HAVE_GEOS)
-
- dnl ---------------------------------------------------------------------------
- dnl Check if SFCGAL library is available.
-@@ -4641,20 +4637,18 @@ elif test "$with_qhull" = "yes" -o "$with_qhull" = "" ; then
- # qhull/qhull.h
- AC_CHECK_HEADERS([qhull/libqhull.h])
- if test "$ac_cv_header_qhull_libqhull_h" = "yes"; then
-- AC_CHECK_LIB(qhull,qh_new_qhull,QHULL_SETTING=yes,QHULL_SETTING=no,)
-+ QHULL_SETTING=yes
- if test "$QHULL_SETTING" = "yes"; then
- QHULL_SETTING=external
- QHULL_INCLUDE_SUBDIR_IS_LIBQHULL=0
-- LIBS="-lqhull $LIBS"
- fi
- fi
- AC_CHECK_HEADERS([libqhull/libqhull.h])
- if test "$ac_cv_header_libqhull_libqhull_h" = "yes"; then
-- AC_CHECK_LIB(qhull,qh_new_qhull,QHULL_SETTING=yes,QHULL_SETTING=no,)
-+ QHULL_SETTING=yes
- if test "$QHULL_SETTING" = "yes"; then
- QHULL_SETTING=external
- QHULL_INCLUDE_SUBDIR_IS_LIBQHULL=1
-- LIBS="-lqhull $LIBS"
- fi
- fi
-
-@@ -4741,7 +4735,9 @@ AC_MSG_CHECKING([for FreeXL support])
- HAVE_FREEXL=no
- FREEXL_INCLUDE=
-
--if test "$with_freexl" = "" -o "$with_freexl" = "yes" ; then
-+if test "$with_freexl" = "yes"; then
-+ PKG_CHECK_MODULES([FREEXL], [freexl >= 1.0.0], [HAVE_FREEXL=yes], [AC_MSG_ERROR([freexl not found...])])
-+elif test "$with_freexl" = ""; then
- AC_CHECK_HEADERS(freexl.h)
- AC_CHECK_LIB(freexl,freexl_open,FREEXL_LIBS="-lfreexl",FREEXL_LIBS=missing)
-
-@@ -4847,8 +4843,7 @@ if test "$with_libjson_c" = "external" -o "$with_libjson_c" = "" -o "$with_libjs
- elif test "$with_libjson_c" = "internal" ; then
- LIBJSONC_SETTING=internal
- elif test "$with_libjson_c" != "no"; then
-- LIBS="-L$with_libjson_c/lib $LIBS"
-- AC_CHECK_LIB(json-c,json_object_set_serializer,LIBJSONC_SETTING=external,LIBJSONC_SETTING=internal,-L$with_libjson_c/lib)
-+ LIBJSONC_SETTING=external
- else
- AC_MSG_ERROR([libjson-c (internal or external) is required])
- fi
-@@ -5952,7 +5947,6 @@ else
- # Test that the package found is for the right architecture
- saved_LIBS="$LIBS"
- LIBS="$EXR_LIBS"
-- AC_CHECK_LIB(IlmImf,ImfTiledInputReadTile, [HAVE_EXR=yes], [HAVE_EXR=no])
- LIBS="$saved_LIBS"
-
- if test "$HAVE_EXR" = "yes"; then
diff --git a/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-import-dll-msvc.patch b/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-import-dll-msvc.patch
deleted file mode 100644
index 308c1bca0a4c0f..00000000000000
--- a/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-import-dll-msvc.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/port/cpl_port.h
-+++ b/port/cpl_port.h
-@@ -344,7 +344,11 @@ typedef unsigned int GUIntptr_t;
-
- #ifndef CPL_DLL
- #if defined(_MSC_VER) && !defined(CPL_DISABLE_DLL)
--# define CPL_DLL __declspec(dllexport)
-+# ifdef GDAL_COMPILATION
-+# define CPL_DLL __declspec(dllexport)
-+# else
-+# define CPL_DLL
-+# endif
- # define CPL_INTERNAL
- #else
- # if defined(USE_GCC_VISIBILITY_FLAG)
diff --git a/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-include-jsonc.patch b/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-include-jsonc.patch
deleted file mode 100644
index c52f9dff533821..00000000000000
--- a/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-include-jsonc.patch
+++ /dev/null
@@ -1,104 +0,0 @@
---- a/gcore/gdal_rat.cpp
-+++ b/gcore/gdal_rat.cpp
-@@ -50,7 +50,7 @@
- #pragma clang diagnostic ignored "-Wunknown-pragmas"
- #pragma clang diagnostic ignored "-Wdocumentation"
- #endif
--#include "json.h"
-+#include
- #ifdef __clang__
- #pragma clang diagnostic pop
- #endif
---- a/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp
-+++ b/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp
-@@ -37,7 +37,7 @@
-
- #include "cpl_conv.h"
- #include "cpl_error.h"
--#include "json.h"
-+#include
- // #include "json_object.h"
- // #include "json_tokener.h"
- #include "ogr_api.h"
---- a/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
-+++ b/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
-@@ -41,7 +41,7 @@
- #include "cpl_string.h"
- #include "cpl_vsi.h"
- #include "cpl_vsi_error.h"
--#include "json.h"
-+#include
- // #include "json_object.h"
- #include "gdal_utils.h"
- #include "gdal.h"
---- a/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
-+++ b/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
-@@ -37,7 +37,7 @@
- # endif
- #endif // !DEBUG_VERBOSE
-
--#include
-+#include
-
- #if !DEBUG_JSON
- # ifdef __clang
---- a/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
-+++ b/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
-@@ -32,7 +32,7 @@
- #include "ogrgeojsonreader.h"
- #include "ogrgeojsonutils.h"
- #include "ogr_geojson.h"
--#include // JSON-C
-+#include // JSON-C
-
- #if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013)
- #include // just for sizeof(struct json_object)
---- a/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
-+++ b/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
-@@ -31,7 +31,7 @@
- #include
- #include
- #include
--#include // JSON-C
-+#include // JSON-C
-
- #include
- #include
---- a/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp
-+++ b/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp
-@@ -33,13 +33,13 @@
- #include "ogrgeojsonutils.h"
- #include "ogr_geojson.h"
- #include "ogrgeojsonreader.h"
--#include // JSON-C
-+#include // JSON-C
-
- #if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013)
- #include
- #endif
-
--#include
-+#include
- #include
- #include
-
---- a/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
-+++ b/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
-@@ -30,5 +30,5 @@
- #include "ogrgeojsonutils.h"
- #include "ogr_geojson.h"
--#include // JSON-C
-+#include // JSON-C
- #include
-
---- a/port/cpl_json_header.h
-+++ b/port/cpl_json_header.h
-@@ -33,7 +33,7 @@
- #pragma GCC system_header
- #endif
-
--#include
-+#include
-
- #undef json_object_object_foreachC
- #define json_object_object_foreachC(obj,iter) \
diff --git a/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-include-podofo.patch b/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-include-podofo.patch
deleted file mode 100644
index aa86489f0296ba..00000000000000
--- a/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-include-podofo.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/frmts/pdf/pdfsdk_headers.h
-+++ b/frmts/pdf/pdfsdk_headers.h
-@@ -103,7 +103,7 @@ typedef unsigned char Guchar;
- #undef GetObject
- #endif
-
--#include "podofo.h"
-+#include
- #endif // HAVE_PODOFO
-
- #ifdef HAVE_PDFIUM
diff --git a/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-include-xerces-3.1.2.patch b/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-include-xerces-3.1.2.patch
deleted file mode 100644
index 8b08760381794f..00000000000000
--- a/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-include-xerces-3.1.2.patch
+++ /dev/null
@@ -1,63 +0,0 @@
---- a/ogr/ogr_xerces_headers.h
-+++ b/ogr/ogr_xerces_headers.h
-@@ -33,9 +33,9 @@
- #pragma GCC system_header
- #endif
-
--#include
--#include
--#include
-+#include
-+#include
-+#include
-
- #ifdef XERCES_CPP_NAMESPACE_USE
- XERCES_CPP_NAMESPACE_USE
---- a/ogr/ogrsf_frmts/gml/xercesc_headers.h
-+++ b/ogr/ogrsf_frmts/gml/xercesc_headers.h
-@@ -33,13 +33,13 @@
- #pragma GCC system_header
- #endif
-
--#include
--#include
--#include
--#include
--#include
--#include
--#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-
- #ifdef XERCES_CPP_NAMESPACE_USE
- XERCES_CPP_NAMESPACE_USE
---- a/ogr/ogrsf_frmts/ili/xercesc_headers.h
-+++ b/ogr/ogrsf_frmts/ili/xercesc_headers.h
-@@ -33,14 +33,14 @@
- #pragma GCC system_header
- #endif
-
--#include
--#include
--#include
--#include
--#include
--#include
--#include
--#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-
- #ifdef XERCES_CPP_NAMESPACE_USE
- XERCES_CPP_NAMESPACE_USE
diff --git a/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-nmake-common.patch b/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-nmake-common.patch
deleted file mode 100644
index c0201f8dc9cd8c..00000000000000
--- a/recipes/gdal/pre_3.5.0/patches/3.1.x/fix-nmake-common.patch
+++ /dev/null
@@ -1,165 +0,0 @@
---- a/alg/makefile.vc
-+++ b/alg/makefile.vc
-@@ -14,7 +14,7 @@ EXTRAFLAGS = -I../frmts/vrt -I../ogr/ogrsf_frmts $(GEOS_CFLAGS) $(PROJ_FLAGS) $(
- EXTRAFLAGS = $(EXTRAFLAGS) -DINTERNAL_QHULL
- !ELSE
- !IF "$(QHULL_SETTING)" == "EXTERNAL"
--EXTRAFLAGS = $(EXTRAFLAGS) -DEXTERNAL_QHULL $(QHULL_INC)
-+EXTRAFLAGS = $(EXTRAFLAGS) -DEXTERNAL_QHULL -DQHULL_INCLUDE_SUBDIR_IS_LIBQHULL=1 $(QHULL_INC)
- !ENDIF
- !ENDIF
- !ENDIF
---- a/apps/makefile.vc
-+++ b/apps/makefile.vc
-@@ -8,6 +8,9 @@ EXTRAFLAGS = -I..\frmts\vrt -I..\ogr\ogrsf_frmts\geojson\libjson -I..\ogr\ogrsf_
- !INCLUDE ..\nmake.opt
-
- LIBS = $(GDALLIB)
-+!IF "$(DLLBUILD)" != "1"
-+LIBS = $(LIBS) $(EXTERNAL_LIBS)
-+!ENDIF
-
- !IFDEF INCLUDE_OGR_FRMTS
- OGR_PROGRAMS = gdal_contour.exe gdaltindex.exe gdal_rasterize.exe \
---- a/frmts/gif/makefile.vc
-+++ b/frmts/gif/makefile.vc
-@@ -10,14 +10,8 @@ EXTRAFLAGS = -Igiflib
-
- default: $(OBJ)
- xcopy /D /Y *.obj ..\o
-- cd giflib
-- $(MAKE) /f makefile.vc
-- cd ..
-
- clean:
- -del *.obj
-- cd giflib
-- $(MAKE) /f makefile.vc clean
-- cd ..
-
-
---- a/frmts/jpeg/makefile.vc
-+++ b/frmts/jpeg/makefile.vc
-@@ -29,12 +29,16 @@ default: $(EXTRA_DEP) $(OBJ)
-
- clean:
- -del *.obj
-+!IFNDEF JPEG_EXTERNAL_LIB
- cd libjpeg
- $(MAKE) /f makefile.vc clean
- cd ..
-+!ENDIF
-+!IFDEF JPEG12_SUPPORTED
- cd libjpeg12
- $(MAKE) /f makefile.vc clean
- cd ..
-+!ENDIF
-
- libjpeg12src:
- cd libjpeg12
---- a/frmts/kea/makefile.vc
-+++ b/frmts/kea/makefile.vc
-@@ -1,7 +1,7 @@
-
- OBJ = keaband.obj keacopy.obj keadataset.obj keadriver.obj keamaskband.obj keaoverview.obj kearat.obj
-
--EXTRAFLAGS = $(KEA_CFLAGS) -DH5_BUILT_AS_DYNAMIC_LIB
-+EXTRAFLAGS = $(KEA_CFLAGS)
-
- GDAL_ROOT = ..\..
-
---- a/frmts/makefile.vc
-+++ b/frmts/makefile.vc
-@@ -3,11 +3,11 @@ GDAL_ROOT = ..
-
- EXTRAFLAGS = -DFRMT_ceos -DFRMT_aigrid -DFRMT_elas -DFRMT_hfa -DFRMT_gtiff\
- -DFRMT_sdts -DFRMT_raw -DFRMT_gxf -DFRMT_ceos2 -DFRMT_png \
-- -DFRMT_dted -DFRMT_mem -DFRMT_jdem -DFRMT_gif \
-+ -DFRMT_dted -DFRMT_mem -DFRMT_jdem \
- -DFRMT_envisat -DFRMT_aaigrid -DFRMT_usgsdem -DFRMT_l1b \
- -DFRMT_fit -DFRMT_vrt -DFRMT_xpm -DFRMT_bmp -DFRMT_rmf \
-- -DFRMT_nitf -DFRMT_pcidsk -DFRMT_airsar -DFRMT_rs2 \
-- -DFRMT_ilwis -DFRMT_msgn -DFRMT_rik -DFRMT_pcraster \
-+ -DFRMT_nitf -DFRMT_airsar -DFRMT_rs2 \
-+ -DFRMT_ilwis -DFRMT_msgn -DFRMT_rik \
- -DFRMT_leveller -DFRMT_sgi -DFRMT_srtmhgt -DFRMT_idrisi \
- -DFRMT_jaxapalsar -DFRMT_ers -DFRMT_ingr -DFRMT_dimap \
- -DFRMT_gff -DFRMT_terragen -DFRMT_gsg -DFRMT_cosar -DFRMT_pds \
-@@ -32,6 +32,22 @@ PLUGINDIRLIST = $(PLUGINFLAGS:-DFRMT_=)
- EXTRAFLAGS = $(EXTRAFLAGS) -DFRMT_postgisraster
- !ENDIF
-
-+!IFDEF GIF_SETTING
-+EXTRAFLAGS = $(EXTRAFLAGS) -DFRMT_gif
-+!ENDIF
-+
-+!IFDEF PCIDSK_SETTING
-+EXTRAFLAGS = $(EXTRAFLAGS) -DFRMT_pcidsk
-+!ENDIF
-+
-+!IFDEF PCRASTER_SETTING
-+EXTRAFLAGS = $(EXTRAFLAGS) -DFRMT_pcraster
-+!ENDIF
-+
-+!IFDEF EXR_INC
-+EXTRAFLAGS = $(EXTRAFLAGS) -DFRMT_exr
-+!ENDIF
-+
- !IFDEF JPEG_SUPPORTED
- EXTRAFLAGS = -DFRMT_jpeg $(EXTRAFLAGS)
- !ENDIF
---- a/frmts/pcidsk/makefile.vc
-+++ b/frmts/pcidsk/makefile.vc
-@@ -14,7 +14,11 @@ OBJ = pcidskdataset2.obj ogrpcidsklayer.obj vsi_pcidsk_io.obj gdal_edb.obj
- !ENDIF
-
- !IF "$(PCIDSK_SETTING)" == "INTERNAL"
-+!IFDEF JPEG_SUPPORTED
- PCIDSKFLAGS = -Isdk -DPCIDSK_INTERNAL -DHAVE_LIBJPEG
-+!ELSE
-+PCIDSKFLAGS = -Isdk -DPCIDSK_INTERNAL
-+!ENDIF
-
- OBJ = pcidskdataset2.obj ogrpcidsklayer.obj vsi_pcidsk_io.obj gdal_edb.obj \
- sdk\channel\cbandinterleavedchannel.obj \
-@@ -57,11 +61,13 @@ OBJ = pcidskdataset2.obj ogrpcidsklayer.obj vsi_pcidsk_io.obj gdal_edb.obj \
-
- !ENDIF
-
-+!IFDEF JPEG_SUPPORTED
- !IFDEF JPEG_EXTERNAL_LIB
- JPEGFLAGS = -I$(JPEGDIR)
- !ELSE
- JPEGFLAGS = -I..\jpeg\libjpeg
- !ENDIF
-+!ENDIF
-
- .cpp.obj:
- $(CC) $(CFLAGS) $(PCIDSKFLAGS) $(JPEGFLAGS) /c $*.cpp /Fo$*.obj
---- a/makefile.vc
-+++ b/makefile.vc
-@@ -84,7 +84,7 @@ staticlib: $(LIB_DEPENDS)
- call <= 4.0)
-- AC_CHECK_LIB(tiff,TIFFScanlineSize64,HAVE_BIGTIFF=yes,HAVE_BIGTIFF=no,)
-+ AC_CHECK_LIB(tiff,TIFFScanlineSize64,HAVE_BIGTIFF=yes,HAVE_BIGTIFF=no,$LIBS)
-
- fi
-
-@@ -1333,23 +1337,11 @@ AC_ARG_WITH(curl,
- dnl Clear some cache variables
- unset ac_cv_path_LIBCURL
-
--if test "`basename xx/$with_curl`" = "curl-config" ; then
-- LIBCURL_CONFIG="$with_curl"
--elif test "$with_curl" = "no" ; then
-- LIBCURL_CONFIG=no
-+PKG_PROG_PKG_CONFIG([0.21])
-+if test "$with_curl" = "yes" ; then
-+ PKG_CHECK_MODULES([CURL], [libcurl], [CURL_SETTING=yes], [AC_MSG_ERROR([libcurl not found...])])
- else
-- AC_PATH_PROG(LIBCURL_CONFIG, curl-config, no)
--fi
--
--if test "$LIBCURL_CONFIG" != "no" ; then
--
-- CURL_VERNUM=`$LIBCURL_CONFIG --vernum`
-- CURL_VER=`$LIBCURL_CONFIG --version | awk '{print $2}'`
--
-- AC_MSG_RESULT([ found libcurl version $CURL_VER])
--
-- AC_CHECK_LIB(curl,curl_global_init,CURL_SETTING=yes,CURL_SETTING=no,`$LIBCURL_CONFIG --libs`)
--
-+ CURL_SETTING=no
- fi
-
- AC_SUBST(CURL_SETTING,$CURL_SETTING)
-@@ -1361,8 +1353,11 @@ dnl Check for SQLite
- dnl Proj depends on it so it must appear before.
- dnl ---------------------------------------------------------------------------
-
--SQLITE3_REQ_VERSION="3.0.0"
--AX_LIB_SQLITE3($SQLITE3_REQ_VERSION)
-+HAVE_SQLITE3=no
-+AC_ARG_WITH(sqlite3, AS_HELP_STRING([--with-sqlite3[=ARG]], [use SQLite 3 library (ARG=yes or no)]),,)
-+if test x"$with_sqlite3" = x"yes" ; then
-+ PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.0.0], [HAVE_SQLITE3=yes], [AC_MSG_ERROR([sqlite3 not found...])])
-+fi
-
- if test "$HAVE_SQLITE3" = "yes"; then
- LIBS="$SQLITE3_LDFLAGS $LIBS"
-@@ -1393,11 +1388,7 @@ if test "x$with_proj" = "xno" ; then
- else
-
- if test "x$with_proj" = "xyes" -o "x$with_proj" = "x"; then
-- ORIG_LIBS="$LIBS"
-- LIBS="-lproj $with_proj_extra_lib_for_test $ORIG_LIBS"
-- AC_LANG_PUSH([C++])
-- AC_CHECK_LIB(proj,proj_create_from_wkt,PROJ_FOUND=yes,PROJ_FOUND=no,)
-- AC_LANG_POP([C++])
-+ PROJ_FOUND=yes
- if test "$PROJ_FOUND" = "no"; then
- AC_LANG_PUSH([C++])
- AC_CHECK_LIB(proj,internal_proj_create_from_wkt,PROJ_FOUND=yes,PROJ_FOUND=no,)
-@@ -1820,8 +1811,8 @@ fi
-
- if test "$CURL_SETTING" = "yes" ; then
-
-- CURL_INC=`$LIBCURL_CONFIG --cflags`
-- CURL_LIB=`$LIBCURL_CONFIG --libs`
-+ CURL_INC="$CURL_CFLAGS"
-+ CURL_LIB="$CURL_LIBS"
- m4_foreach_w([frmt],CURL_FORMATS,[
- driver_enabled=m4_join([_],[$INTERNAL_FORMAT],frmt,[ENABLED])
- if test "x$driver_enabled" = "xyes"; then
-@@ -2153,7 +2144,6 @@ else
-
- DDS_SETTING=yes
- CRUNCHDIR="$with_dds"
-- LIBS="-L$with_dds/lib/ -lcrunch $LIBS"
- echo "using libcrunch from $with_dds."
-
- fi
-@@ -2304,7 +2294,6 @@ else
-
- dnl We now require libgeotiff 1.5.0
- dnl first check if $with_geotiff/lib has the library:
-- AC_CHECK_LIB(geotiff,GTIFAttachPROJContext,GEOTIFF_SETTING=external,GEOTIFF_SETTING=not_found,-L$with_geotiff/lib)
-
- if test $GEOTIFF_SETTING = "external" ; then
- LIBS="-L$with_geotiff/lib -lgeotiff $LIBS"
-@@ -2872,6 +2861,10 @@ if test x"$with_hdf4" = x"no" ; then
-
- echo "hdf4 support disabled."
-
-+elif test x"$with_hdf4" = x"yes" ; then
-+ PKG_CHECK_MODULES([HDF4], [hdf], [HAVE_HDF4=yes], [AC_MSG_ERROR([hdf4 not found...])])
-+ PKG_CHECK_MODULES([HDF4], [hdf >= 4.2.5], [HDF4_HAS_MAXOPENFILES=yes], [HDF4_HAS_MAXOPENFILES=no])
-+ HDF4_INCLUDE="$HDF4_CFLAGS"
- else
-
- if test x"$with_hdf4" = x"yes" -o x"$with_hdf4" = x"" ; then
-@@ -3002,7 +2995,6 @@ elif test "$with_hdf5" = "yes" -o "$with_hdf5" = "" ; then
- # Test that the package found is for the right architecture
- saved_LIBS="$LIBS"
- LIBS="$HDF5_LIBS"
-- AC_CHECK_LIB(hdf5,H5Fopen, [HAVE_HDF5=yes], [HAVE_HDF5=no])
- LIBS="$saved_LIBS"
-
- if test "$HAVE_HDF5" = "yes"; then
-@@ -3071,21 +3063,21 @@ KEA_CONFIG=no
-
- AC_ARG_WITH(kea,[ --with-kea[=ARG] Include kealib (ARG=path to kea-config) [[default=yes]]],,)
-
-+AC_MSG_CHECKING([for kea])
- if test "$with_kea" = "yes" -o "x$with_kea" = "x" ; then
-- AC_PATH_PROG(KEA_CONFIG, kea-config, no)
-+ HAVE_KEA=yes
-+ AC_MSG_RESULT([yes])
- else
-- KEA_CONFIG=$with_kea
-+ HAVE_KEA=no
-+ AC_MSG_RESULT([no])
- fi
-
--AC_MSG_CHECKING([for kea])
-
- if test "$KEA_CONFIG" = "no" ; then
-
-- HAVE_KEA=no
- KEA_LIB=
- KEA_INC=
-
-- AC_MSG_RESULT([no])
-
- else
- if test -d $KEA_CONFIG ; then
-@@ -3937,18 +3929,15 @@ MYSQL_CONFIG=no
- AC_ARG_WITH(mysql,[ --with-mysql[=ARG] Include MySQL (ARG=path to mysql_config) [[default=no]]],,)
-
- if test "$with_mysql" = "yes" ; then
-- AC_PATH_PROG(MYSQL_CONFIG, mysql_config, no)
-+ HAVE_MYSQL=yes
- else
-- if test "x$with_mysql" != "x" ; then
-- MYSQL_CONFIG=$with_mysql
-- fi
-+ HAVE_MYSQL=no
- fi
-
- AC_MSG_CHECKING([for MySQL])
-
- if test "$MYSQL_CONFIG" = "no" ; then
-
-- HAVE_MYSQL=no
- MYSQL_LIB=
- MYSQL_INC=
-
-@@ -4042,8 +4031,11 @@ dnl Check for Expat configuration.
- dnl ---------------------------------------------------------------------------
-
- dnl Expat 1.95.0 released in 2000-09-28
--EXPAT_REQ_VERSION="1.95.0"
--AX_LIB_EXPAT($EXPAT_REQ_VERSION)
-+# AX_LIB_EXPAT is too fragile, it doesn't properly handle debug expat on Windows
-+HAVE_EXPAT=no
-+AC_ARG_WITH([expat], AS_HELP_STRING([--with-expat[=ARG]], [use Expat library (ARG=yes or no)]),,)
-+if test x"$with_expat" = x"yes" ; then
-+PKG_CHECK_MODULES([EXPAT], [expat >= 1.95.0], [HAVE_EXPAT=yes], [AC_MSG_ERROR([expat not found...])])
-
- if test "$HAVE_EXPAT" = "yes"; then
- LIBS="$EXPAT_LDFLAGS $LIBS"
-@@ -4056,6 +4048,7 @@ m4_foreach_w([frmt],EXPAT_DRIVERS,[
- fi
- ])
-
-+fi
- fi
-
- AC_SUBST([HAVE_EXPAT], $HAVE_EXPAT)
-@@ -4287,7 +4280,6 @@ if test "x$with_xml2" = "xyes" -o "x$with_xml2" = "x" ; then
- if test "${HAVE_LIBXML2}" = "yes"; then
- SAVED_LIBS="${LIBS}"
- LIBS="${LIBXML2_LIBS}"
-- AC_CHECK_LIB(xml2,xmlParseDoc,HAVE_LIBXML2=yes,HAVE_LIBXML2=no)
- LIBS="${SAVED_LIBS}"
- fi
-
-@@ -4567,8 +4559,13 @@ dnl ---------------------------------------------------------------------------
- dnl Check if geos library is available.
- dnl ---------------------------------------------------------------------------
-
--GEOS_INIT(3.1.0)
-+AC_ARG_WITH(geos, AS_HELP_STRING([--with-geos[=ARG]], [Include GEOS support (ARG=yes or no)]),,)
- HAVE_GEOS_RESULT="no"
-+HAVE_GEOS=no
-+if test x"$with_geos" = x"no" ; then
-+ AC_MSG_RESULT([GEOS support disabled])
-+else
-+ PKG_CHECK_MODULES([GEOS], [geos >= 3.1.0], [HAVE_GEOS=yes], [AC_MSG_ERROR([geos not found...])])
- if test "${HAVE_GEOS}" = "yes" ; then
-
- AC_MSG_NOTICE([Using C API from GEOS $GEOS_VERSION])
-@@ -4577,6 +4574,8 @@ if test "${HAVE_GEOS}" = "yes" ; then
- LIBS="${GEOS_LIBS} ${LIBS}"
- HAVE_GEOS_RESULT="yes"
- fi
-+fi
-+AC_SUBST(HAVE_GEOS, $HAVE_GEOS)
-
- dnl ---------------------------------------------------------------------------
- dnl Check if SFCGAL library is available.
-@@ -4611,20 +4610,18 @@ elif test "$with_qhull" = "yes" -o "$with_qhull" = "" ; then
- # qhull/qhull.h
- AC_CHECK_HEADERS([qhull/libqhull.h])
- if test "$ac_cv_header_qhull_libqhull_h" = "yes"; then
-- AC_CHECK_LIB(qhull,qh_new_qhull,QHULL_SETTING=yes,QHULL_SETTING=no,)
-+ QHULL_SETTING=yes
- if test "$QHULL_SETTING" = "yes"; then
- QHULL_SETTING=external
- QHULL_INCLUDE_SUBDIR_IS_LIBQHULL=0
-- LIBS="-lqhull $LIBS"
- fi
- fi
- AC_CHECK_HEADERS([libqhull/libqhull.h])
- if test "$ac_cv_header_libqhull_libqhull_h" = "yes"; then
-- AC_CHECK_LIB(qhull,qh_new_qhull,QHULL_SETTING=yes,QHULL_SETTING=no,)
-+ QHULL_SETTING=yes
- if test "$QHULL_SETTING" = "yes"; then
- QHULL_SETTING=external
- QHULL_INCLUDE_SUBDIR_IS_LIBQHULL=1
-- LIBS="-lqhull $LIBS"
- fi
- fi
-
-@@ -4711,7 +4708,9 @@ AC_MSG_CHECKING([for FreeXL support])
- HAVE_FREEXL=no
- FREEXL_INCLUDE=
-
--if test "$with_freexl" = "" -o "$with_freexl" = "yes" ; then
-+if test "$with_freexl" = "yes"; then
-+ PKG_CHECK_MODULES([FREEXL], [freexl >= 1.0.0], [HAVE_FREEXL=yes], [AC_MSG_ERROR([freexl not found...])])
-+elif test "$with_freexl" = ""; then
- AC_CHECK_HEADERS(freexl.h)
- AC_CHECK_LIB(freexl,freexl_open,FREEXL_LIBS="-lfreexl",FREEXL_LIBS=missing)
-
-@@ -4817,8 +4816,7 @@ if test "$with_libjson_c" = "external" -o "$with_libjson_c" = "" -o "$with_libjs
- elif test "$with_libjson_c" = "internal" ; then
- LIBJSONC_SETTING=internal
- elif test "$with_libjson_c" != "no"; then
-- LIBS="-L$with_libjson_c/lib $LIBS"
-- AC_CHECK_LIB(json-c,json_object_set_serializer,LIBJSONC_SETTING=external,LIBJSONC_SETTING=internal,-L$with_libjson_c/lib)
-+ LIBJSONC_SETTING=external
- else
- AC_MSG_ERROR([libjson-c (internal or external) is required])
- fi
-@@ -5928,7 +5926,6 @@ else
- # Test that the package found is for the right architecture
- saved_LIBS="$LIBS"
- LIBS="$EXR_LIBS"
-- AC_CHECK_LIB(IlmImf,ImfTiledInputReadTile, [HAVE_EXR=yes], [HAVE_EXR=no])
- LIBS="$saved_LIBS"
-
- if test "$HAVE_EXR" = "yes"; then
diff --git a/recipes/gdal/pre_3.5.0/patches/3.2.x/fix-include-jsonc.patch b/recipes/gdal/pre_3.5.0/patches/3.2.x/fix-include-jsonc.patch
deleted file mode 100644
index e88043df4189f5..00000000000000
--- a/recipes/gdal/pre_3.5.0/patches/3.2.x/fix-include-jsonc.patch
+++ /dev/null
@@ -1,104 +0,0 @@
---- a/gcore/gdal_rat.cpp
-+++ b/gcore/gdal_rat.cpp
-@@ -50,7 +50,7 @@
- #pragma clang diagnostic ignored "-Wunknown-pragmas"
- #pragma clang diagnostic ignored "-Wdocumentation"
- #endif
--#include "json.h"
-+#include
- #ifdef __clang__
- #pragma clang diagnostic pop
- #endif
---- a/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp
-+++ b/ogr/ogrsf_frmts/geojson/ogresrijsonreader.cpp
-@@ -37,7 +37,7 @@
-
- #include "cpl_conv.h"
- #include "cpl_error.h"
--#include "json.h"
-+#include
- // #include "json_object.h"
- // #include "json_tokener.h"
- #include "ogr_api.h"
---- a/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
-+++ b/ogr/ogrsf_frmts/geojson/ogrgeojsondatasource.cpp
-@@ -41,7 +41,7 @@
- #include "cpl_string.h"
- #include "cpl_vsi.h"
- #include "cpl_vsi_error.h"
--#include "json.h"
-+#include
- // #include "json_object.h"
- #include "gdal_utils.h"
- #include "gdal.h"
---- a/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
-+++ b/ogr/ogrsf_frmts/geojson/ogrgeojsonlayer.cpp
-@@ -37,7 +37,7 @@
- # endif
- #endif // !DEBUG_VERBOSE
-
--#include
-+#include
-
- #if !DEBUG_JSON
- # ifdef __clang
---- a/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
-+++ b/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp
-@@ -32,7 +32,7 @@
- #include "ogrgeojsonreader.h"
- #include "ogrgeojsonutils.h"
- #include "ogr_geojson.h"
--#include // JSON-C
-+#include
-
- #if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013)
- #include // just for sizeof(struct json_object)
---- a/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
-+++ b/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp
-@@ -32,7 +32,7 @@
- #include
- #include
- #include
--#include // JSON-C
-+#include
-
- #include
- #include
---- a/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp
-+++ b/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp
-@@ -33,13 +33,13 @@
- #include "ogrgeojsonutils.h"
- #include "ogr_geojson.h"
- #include "ogrgeojsonreader.h"
--#include // JSON-C
-+#include
-
- #if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013)
- #include
- #endif
-
--#include
-+#include
- #include
- #include
-
---- a/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
-+++ b/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp
-@@ -30,5 +30,5 @@
- #include "ogrgeojsonutils.h"
- #include "ogr_geojson.h"
--#include // JSON-C
-+#include
- #include
-
---- a/port/cpl_json_header.h
-+++ b/port/cpl_json_header.h
-@@ -33,7 +33,7 @@
- #pragma GCC system_header
- #endif
-
--#include
-+#include
-
- #undef json_object_object_foreachC
- #define json_object_object_foreachC(obj,iter) \
diff --git a/recipes/gdal/pre_3.5.0/patches/3.2.x/fix-include-podofo.patch b/recipes/gdal/pre_3.5.0/patches/3.2.x/fix-include-podofo.patch
deleted file mode 100644
index aa86489f0296ba..00000000000000
--- a/recipes/gdal/pre_3.5.0/patches/3.2.x/fix-include-podofo.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/frmts/pdf/pdfsdk_headers.h
-+++ b/frmts/pdf/pdfsdk_headers.h
-@@ -103,7 +103,7 @@ typedef unsigned char Guchar;
- #undef GetObject
- #endif
-
--#include "podofo.h"
-+#include
- #endif // HAVE_PODOFO
-
- #ifdef HAVE_PDFIUM
diff --git a/recipes/gdal/pre_3.5.0/patches/3.2.x/fix-include-xerces.patch b/recipes/gdal/pre_3.5.0/patches/3.2.x/fix-include-xerces.patch
deleted file mode 100644
index 8b08760381794f..00000000000000
--- a/recipes/gdal/pre_3.5.0/patches/3.2.x/fix-include-xerces.patch
+++ /dev/null
@@ -1,63 +0,0 @@
---- a/ogr/ogr_xerces_headers.h
-+++ b/ogr/ogr_xerces_headers.h
-@@ -33,9 +33,9 @@
- #pragma GCC system_header
- #endif
-
--#include
--#include
--#include
-+#include
-+#include
-+#include
-
- #ifdef XERCES_CPP_NAMESPACE_USE
- XERCES_CPP_NAMESPACE_USE
---- a/ogr/ogrsf_frmts/gml/xercesc_headers.h
-+++ b/ogr/ogrsf_frmts/gml/xercesc_headers.h
-@@ -33,13 +33,13 @@
- #pragma GCC system_header
- #endif
-
--#include
--#include
--#include
--#include
--#include
--#include
--#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-
- #ifdef XERCES_CPP_NAMESPACE_USE
- XERCES_CPP_NAMESPACE_USE
---- a/ogr/ogrsf_frmts/ili/xercesc_headers.h
-+++ b/ogr/ogrsf_frmts/ili/xercesc_headers.h
-@@ -33,14 +33,14 @@
- #pragma GCC system_header
- #endif
-
--#include
--#include
--#include
--#include
--#include
--#include
--#include
--#include
-+#include
-+#include
-+#include
-+#include