From 2f27d18aecd7f17aef05570692e7746e2830a8f8 Mon Sep 17 00:00:00 2001 From: Alexander Voronov Date: Thu, 30 Nov 2023 20:31:20 +0300 Subject: [PATCH 1/6] eyalroz_printf: Add version 6.2.0-b1 A package for a library that provides a custom printf implementation. See https://github.com/eyalroz/printf. --- cmake/configs/default.cmake | 1 + cmake/projects/eyalroz_printf/hunter.cmake | 30 ++++++++++++++++++++++ docs/packages/pkg/eyalroz_printf.rst | 19 ++++++++++++++ examples/eyalroz_printf/CMakeLists.txt | 20 +++++++++++++++ examples/eyalroz_printf/config.cmake | 6 +++++ examples/eyalroz_printf/main.c | 13 ++++++++++ 6 files changed, 89 insertions(+) create mode 100644 cmake/projects/eyalroz_printf/hunter.cmake create mode 100644 docs/packages/pkg/eyalroz_printf.rst create mode 100644 examples/eyalroz_printf/CMakeLists.txt create mode 100644 examples/eyalroz_printf/config.cmake create mode 100644 examples/eyalroz_printf/main.c diff --git a/cmake/configs/default.cmake b/cmake/configs/default.cmake index dcf3e14453..63ec82662a 100644 --- a/cmake/configs/default.cmake +++ b/cmake/configs/default.cmake @@ -281,6 +281,7 @@ hunter_default_version(eos VERSION 0.12.1) hunter_default_version(etc2comp VERSION 0.0.0-9cd0f9c-p0) hunter_default_version(ethash VERSION 1.0.0) hunter_default_version(eventpp VERSION 0.1.2-for-hunter-pm) +hunter_default_version(eyalroz_printf VERSION 6.2.0-b1) hunter_default_version(farmhash VERSION 1.1) hunter_default_version(fast_obj VERSION 1.1-9255172-p0) hunter_default_version(ffmpeg VERSION n4.1-dev-45499e557c-p7) diff --git a/cmake/projects/eyalroz_printf/hunter.cmake b/cmake/projects/eyalroz_printf/hunter.cmake new file mode 100644 index 0000000000..c54d0c3771 --- /dev/null +++ b/cmake/projects/eyalroz_printf/hunter.cmake @@ -0,0 +1,30 @@ +# Copyright (c) 2023 Alexander Voronov +# All rights reserved. + +# !!! DO NOT PLACE HEADER GUARDS HERE !!! + +include(hunter_add_version) +include(hunter_cacheable) +include(hunter_cmake_args) +include(hunter_download) +include(hunter_pick_scheme) +include(hunter_report_broken_package) +include(hunter_status_debug) + +hunter_add_version( + PACKAGE_NAME eyalroz_printf + VERSION "6.2.0-b1" + URL "https://github.com/eyalroz/printf/archive/refs/tags/v6.2.0-b1.zip" + SHA1 4f2e2bbfffb9f6db46d87c5152ce17dd9f7053d5 +) + +hunter_cmake_args( + eyalroz_printf + CMAKE_ARGS + BUILD_TESTS=OFF +) + +hunter_pick_scheme(DEFAULT url_sha1_cmake) +hunter_cacheable(eyalroz_printf) +hunter_download(PACKAGE_NAME eyalroz_printf) + diff --git a/docs/packages/pkg/eyalroz_printf.rst b/docs/packages/pkg/eyalroz_printf.rst new file mode 100644 index 0000000000..812706c6ac --- /dev/null +++ b/docs/packages/pkg/eyalroz_printf.rst @@ -0,0 +1,19 @@ +.. spelling:: + + eyalroz + printf + +.. index:: logging ; eyalroz_printf + +.. _pkg.eyalroz_printf: + +eyalroz_printf +============== + +- `Official `__ + +.. literalinclude:: /../examples/eyalroz_printf/CMakeLists.txt + :language: cmake + :start-after: # DOCUMENTATION_START { + :end-before: # DOCUMENTATION_END } + diff --git a/examples/eyalroz_printf/CMakeLists.txt b/examples/eyalroz_printf/CMakeLists.txt new file mode 100644 index 0000000000..3f4d48dc2e --- /dev/null +++ b/examples/eyalroz_printf/CMakeLists.txt @@ -0,0 +1,20 @@ +# Copyright (c) 2023, Alexander Voronov +# All rights reserved. + +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 +include("../common.cmake") + +project(download-eyalroz_printf) + +# DOCUMENTATION_START { +hunter_add_package(eyalroz_printf) +find_package(printf CONFIG REQUIRED) + +add_executable(main main.c) +target_link_libraries(main PUBLIC printf::printf) +# DOCUMENTATION_END } diff --git a/examples/eyalroz_printf/config.cmake b/examples/eyalroz_printf/config.cmake new file mode 100644 index 0000000000..1bde3f5736 --- /dev/null +++ b/examples/eyalroz_printf/config.cmake @@ -0,0 +1,6 @@ +hunter_config( + eyalroz_printf + VERSION 6.2.0-b1 + CMAKE_ARGS BUILD_STATIC_LIBRARY=ON +) + diff --git a/examples/eyalroz_printf/main.c b/examples/eyalroz_printf/main.c new file mode 100644 index 0000000000..6ff19dcc29 --- /dev/null +++ b/examples/eyalroz_printf/main.c @@ -0,0 +1,13 @@ +#include +#include +#include + +void putchar_(char c) { + putchar(c); +} + +int main() { + printf_("%s %d %f\n", "Hello World!", 42, M_PI); + return 0; +} + From 1e6b76df674cec1225aacc6887d32c0ff530d256 Mon Sep 17 00:00:00 2001 From: Alexander Voronov Date: Thu, 30 Nov 2023 20:48:37 +0300 Subject: [PATCH 2/6] eyalroz_printf: Fix MSVC build error --- examples/eyalroz_printf/main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/eyalroz_printf/main.c b/examples/eyalroz_printf/main.c index 6ff19dcc29..683a18ca88 100644 --- a/examples/eyalroz_printf/main.c +++ b/examples/eyalroz_printf/main.c @@ -1,5 +1,4 @@ #include -#include #include void putchar_(char c) { @@ -7,7 +6,7 @@ void putchar_(char c) { } int main() { - printf_("%s %d %f\n", "Hello World!", 42, M_PI); + printf_("%s %d %f\n", "Hello World!", 42, 3.1415); return 0; } From d1689366002499908fd8e5c46265d9ce0164ce7c Mon Sep 17 00:00:00 2001 From: Alexander Voronov Date: Fri, 1 Dec 2023 01:03:48 +0300 Subject: [PATCH 3/6] eyalroz_printf: Remove unused imports from hunter.cmake --- cmake/projects/eyalroz_printf/hunter.cmake | 2 -- 1 file changed, 2 deletions(-) diff --git a/cmake/projects/eyalroz_printf/hunter.cmake b/cmake/projects/eyalroz_printf/hunter.cmake index c54d0c3771..a76090b113 100644 --- a/cmake/projects/eyalroz_printf/hunter.cmake +++ b/cmake/projects/eyalroz_printf/hunter.cmake @@ -8,8 +8,6 @@ include(hunter_cacheable) include(hunter_cmake_args) include(hunter_download) include(hunter_pick_scheme) -include(hunter_report_broken_package) -include(hunter_status_debug) hunter_add_version( PACKAGE_NAME eyalroz_printf From 67244000a7bb7a8619727c15ee8d862faa2f80dc Mon Sep 17 00:00:00 2001 From: Alexander Voronov Date: Sat, 20 Jul 2024 22:41:46 +0300 Subject: [PATCH 4/6] eyalroz_printf: Minor fixes --- cmake/configs/default.cmake | 2 +- cmake/projects/eyalroz_printf/hunter.cmake | 13 +++++++------ docs/packages/pkg/eyalroz_printf.rst | 2 +- examples/eyalroz_printf/CMakeLists.txt | 3 +++ examples/eyalroz_printf/config.cmake | 4 ++-- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/cmake/configs/default.cmake b/cmake/configs/default.cmake index 63ec82662a..bc228b7d17 100644 --- a/cmake/configs/default.cmake +++ b/cmake/configs/default.cmake @@ -281,7 +281,7 @@ hunter_default_version(eos VERSION 0.12.1) hunter_default_version(etc2comp VERSION 0.0.0-9cd0f9c-p0) hunter_default_version(ethash VERSION 1.0.0) hunter_default_version(eventpp VERSION 0.1.2-for-hunter-pm) -hunter_default_version(eyalroz_printf VERSION 6.2.0-b1) +hunter_default_version(eyalroz_printf VERSION 6.2.0) hunter_default_version(farmhash VERSION 1.1) hunter_default_version(fast_obj VERSION 1.1-9255172-p0) hunter_default_version(ffmpeg VERSION n4.1-dev-45499e557c-p7) diff --git a/cmake/projects/eyalroz_printf/hunter.cmake b/cmake/projects/eyalroz_printf/hunter.cmake index a76090b113..5dbf4f402a 100644 --- a/cmake/projects/eyalroz_printf/hunter.cmake +++ b/cmake/projects/eyalroz_printf/hunter.cmake @@ -1,4 +1,5 @@ -# Copyright (c) 2023 Alexander Voronov +# Copyright (c) 2024 Eyal Rozenberg +# Copyright (c) 2024 Alexander Voronov # All rights reserved. # !!! DO NOT PLACE HEADER GUARDS HERE !!! @@ -11,14 +12,14 @@ include(hunter_pick_scheme) hunter_add_version( PACKAGE_NAME eyalroz_printf - VERSION "6.2.0-b1" - URL "https://github.com/eyalroz/printf/archive/refs/tags/v6.2.0-b1.zip" - SHA1 4f2e2bbfffb9f6db46d87c5152ce17dd9f7053d5 + VERSION "6.2.0" + URL "https://github.com/eyalroz/printf/archive/refs/tags/v6.2.0.zip" + SHA1 f60ce53b0d47e1ff0c4f54cd702a71eec362ffc6 ) hunter_cmake_args( - eyalroz_printf - CMAKE_ARGS + eyalroz_printf + CMAKE_ARGS BUILD_TESTS=OFF ) diff --git a/docs/packages/pkg/eyalroz_printf.rst b/docs/packages/pkg/eyalroz_printf.rst index 812706c6ac..f5044a94f5 100644 --- a/docs/packages/pkg/eyalroz_printf.rst +++ b/docs/packages/pkg/eyalroz_printf.rst @@ -1,7 +1,7 @@ .. spelling:: eyalroz - printf + printf .. index:: logging ; eyalroz_printf diff --git a/examples/eyalroz_printf/CMakeLists.txt b/examples/eyalroz_printf/CMakeLists.txt index 3f4d48dc2e..185e8cd237 100644 --- a/examples/eyalroz_printf/CMakeLists.txt +++ b/examples/eyalroz_printf/CMakeLists.txt @@ -18,3 +18,6 @@ find_package(printf CONFIG REQUIRED) add_executable(main main.c) target_link_libraries(main PUBLIC printf::printf) # DOCUMENTATION_END } + +# Test double library creation +find_package(printf CONFIG REQUIRED) diff --git a/examples/eyalroz_printf/config.cmake b/examples/eyalroz_printf/config.cmake index 1bde3f5736..0a49745159 100644 --- a/examples/eyalroz_printf/config.cmake +++ b/examples/eyalroz_printf/config.cmake @@ -1,6 +1,6 @@ hunter_config( - eyalroz_printf - VERSION 6.2.0-b1 + eyalroz_printf + VERSION ${HUNTER_eyalroz_printf_VERSION} CMAKE_ARGS BUILD_STATIC_LIBRARY=ON ) From a62b1c4317bf0c3aa542a062e8f5e7adaaa1b9b0 Mon Sep 17 00:00:00 2001 From: Alexander Voronov Date: Sat, 20 Jul 2024 23:19:48 +0300 Subject: [PATCH 5/6] eyalroz_printf: Enhance example --- examples/eyalroz_printf/CMakeLists.txt | 5 ++--- examples/eyalroz_printf/config.cmake | 6 ------ 2 files changed, 2 insertions(+), 9 deletions(-) delete mode 100644 examples/eyalroz_printf/config.cmake diff --git a/examples/eyalroz_printf/CMakeLists.txt b/examples/eyalroz_printf/CMakeLists.txt index 185e8cd237..3725360fb6 100644 --- a/examples/eyalroz_printf/CMakeLists.txt +++ b/examples/eyalroz_printf/CMakeLists.txt @@ -1,10 +1,9 @@ -# Copyright (c) 2023, Alexander Voronov +# Copyright (c) 2024 Eyal Rozenberg +# Copyright (c) 2024 Alexander Voronov # All rights reserved. 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 include("../common.cmake") diff --git a/examples/eyalroz_printf/config.cmake b/examples/eyalroz_printf/config.cmake deleted file mode 100644 index 0a49745159..0000000000 --- a/examples/eyalroz_printf/config.cmake +++ /dev/null @@ -1,6 +0,0 @@ -hunter_config( - eyalroz_printf - VERSION ${HUNTER_eyalroz_printf_VERSION} - CMAKE_ARGS BUILD_STATIC_LIBRARY=ON -) - From 79752d04350179505b4944833e5784394749f33a Mon Sep 17 00:00:00 2001 From: Alexander Voronov Date: Sun, 21 Jul 2024 10:31:59 +0300 Subject: [PATCH 6/6] eyalroz_printf: Enhance docs --- docs/packages/pkg/eyalroz_printf.rst | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs/packages/pkg/eyalroz_printf.rst b/docs/packages/pkg/eyalroz_printf.rst index f5044a94f5..ad520304a0 100644 --- a/docs/packages/pkg/eyalroz_printf.rst +++ b/docs/packages/pkg/eyalroz_printf.rst @@ -11,9 +11,32 @@ eyalroz_printf ============== - `Official `__ +- `Example `__ +- Added by `Alexander Voronov `__ (`pr-725 `__) + .. literalinclude:: /../examples/eyalroz_printf/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 package: + +- For example, to build static library: + + .. code-block:: cmake + + hunter_config( + eyalroz_printf + VERSION ${HUNTER_eyalroz_printf_VERSION} + CMAKE_ARGS + BUILD_SHARED_LIBS=OFF + ) + +For more options see `original repository `__. +