Skip to content

Commit

Permalink
Upgrade Noa and JSON Toolkit
Browse files Browse the repository at this point in the history
Signed-off-by: Juan Cruz Viotti <[email protected]>
  • Loading branch information
jviotti committed Jan 21, 2025
1 parent 31f6cff commit bb626d1
Show file tree
Hide file tree
Showing 433 changed files with 63,442 additions and 2,708 deletions.
8 changes: 7 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,12 @@ jobs:
${{ matrix.platform.options }}
- run: cmake --build ./build --config Release --target clang_format_test
- run: cmake --build ./build --config Release --parallel 4
- run: >
cmake --install ./build --prefix ./build/dist --config Release --verbose
--component sourcemeta_noa
- run: >
cmake --install ./build --prefix ./build/dist --config Release --verbose
--component sourcemeta_noa_dev
- run: >
cmake --install ./build --prefix ./build/dist --config Release --verbose
--component sourcemeta_jsontoolkit
Expand Down Expand Up @@ -171,7 +177,7 @@ jobs:

- name: Tests (Windows)
# TODO: Run Bucket MinIO tests on Windows
run: cd ./build && ctest --build-config Release --exclude-regex e2e_Bucket --output-on-failure --parallel
run: cd ./build && ctest --build-config Release --exclude-regex hydra.bucket_e2e --output-on-failure --parallel
if: runner.os == 'windows'
env:
SOURCEMETA_HYDRA_TEST_HTTPCLIENT_BASE_URL: 'http://localhost:${{ env.HTTPCLIENT_STUB_PORT }}'
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ cmake_minimum_required(VERSION 3.16)
project(hydra VERSION 0.0.1 LANGUAGES C CXX
DESCRIPTION "A convenience networking library for modern C++")
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
include(vendor/noa/cmake/noa.cmake)

# Options
option(HYDRA_CRYPTO "Build the Hydra crypto library" ON)
Expand All @@ -21,6 +20,8 @@ option(HYDRA_INSTALL "Install the Hydra library" ON)
option(HYDRA_ADDRESS_SANITIZER "Build Hydra with an address sanitizer" OFF)
option(HYDRA_UNDEFINED_SANITIZER "Build Hydra with an undefined behavior sanitizer" OFF)

find_package(Noa REQUIRED)

if(HYDRA_INSTALL)
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
Expand Down Expand Up @@ -88,7 +89,6 @@ endif()

# Testing
if(HYDRA_TESTS)
find_package(GoogleTest REQUIRED)
enable_testing()

if(HYDRA_HTTPCLIENT OR HYDRA_HTTPSERVER OR HYDRA_BUCKET)
Expand Down
5 changes: 2 additions & 3 deletions DEPENDENCIES
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
vendorpull https://github.com/sourcemeta/vendorpull 70342aaf458e6cb80baeb5b718901075fc42ede6
noa https://github.com/sourcemeta/noa caad2e1ceedf9fd1a18686a6a6d1e2b9757ead75
jsontoolkit https://github.com/sourcemeta/jsontoolkit 93a921d0f1e99bfdfe14bfd4d2acf5981294080b
noa https://github.com/sourcemeta/noa a8d36453236abc365f08a76a486f92c84f976fd9
jsontoolkit https://github.com/sourcemeta/jsontoolkit 60a3862ad0d9642c97685f94aeaed96ab3509690
bearssl https://www.bearssl.org/git/BearSSL 8ef7680081c61b486622f2d983c0d3d21e83caad
zlib https://github.com/madler/zlib 51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf
uwebsockets https://github.com/uNetworking/uWebSockets v20.71.0
googletest https://github.com/google/googletest 987e225614755fec7253aa95bf959c09e0d380d7
curl https://github.com/curl/curl curl-8_11_1
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ configure: .always
compile: .always
$(CMAKE) --build ./build --config $(PRESET) --target clang_format
$(CMAKE) --build ./build --config $(PRESET) --parallel 4
$(CMAKE) --install ./build --prefix ./build/dist --config $(PRESET) --verbose \
--component sourcemeta_noa
$(CMAKE) --install ./build --prefix ./build/dist --config $(PRESET) --verbose \
--component sourcemeta_noa_dev
$(CMAKE) --install ./build --prefix ./build/dist --config $(PRESET) --verbose \
--component sourcemeta_jsontoolkit
$(CMAKE) --install ./build --prefix ./build/dist --config $(PRESET) --verbose \
Expand Down
5 changes: 0 additions & 5 deletions cmake/FindGoogleTest.cmake

This file was deleted.

12 changes: 12 additions & 0 deletions cmake/FindNoa.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
if(NOT Noa_FOUND)
if(HYDRA_INSTALL)
set(NOA_INSTALL ON CACHE BOOL "enable Noa installation")
else()
set(NOA_INSTALL OFF CACHE BOOL "disable Noa installation")
endif()

set(NOA_GOOGLETEST ${HYDRA_TESTS} CACHE BOOL "GoogleTest")
set(NOA_GOOGLEBENCHMARK OFF CACHE BOOL "GoogleBenchmark")
add_subdirectory("${PROJECT_SOURCE_DIR}/vendor/noa")
set(Noa_FOUND ON)
endif()
17 changes: 6 additions & 11 deletions test/e2e/bucket/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
add_executable(sourcemeta_hydra_bucket_e2e
environment.h fetch_json_test.cc
noa_googletest(NAMESPACE sourcemeta PROJECT hydra NAME bucket_e2e
FOLDER "Hydra/Bucket"
SOURCES environment.h fetch_json_test.cc
fetch_or_upsert_test.cc upsert_json_test.cc)

noa_add_default_options(PRIVATE sourcemeta_hydra_bucket_e2e)
target_link_libraries(sourcemeta_hydra_bucket_e2e
PRIVATE GTest::gtest GTest::gtest_main)
target_link_libraries(sourcemeta_hydra_bucket_e2e
target_link_libraries(sourcemeta_hydra_bucket_e2e_unit
PRIVATE sourcemeta::hydra::bucket)
target_link_libraries(sourcemeta_hydra_bucket_e2e
target_link_libraries(sourcemeta_hydra_bucket_e2e_unit
PRIVATE sourcemeta::jsontoolkit::json)
set_target_properties(sourcemeta_hydra_bucket_e2e
PROPERTIES FOLDER "Hydra/Bucket")
gtest_discover_tests(sourcemeta_hydra_bucket_e2e)

if(NOA_COMPILER_MSVC)
target_compile_definitions(sourcemeta_hydra_bucket_e2e
target_compile_definitions(sourcemeta_hydra_bucket_e2e_unit
PRIVATE _CRT_SECURE_NO_WARNINGS)
endif()
16 changes: 6 additions & 10 deletions test/e2e/httpclient/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
add_executable(sourcemeta_hydra_httpclient_e2e
environment.h request_1_1_test.cc stream_1_1_test.cc)
noa_add_default_options(PRIVATE sourcemeta_hydra_httpclient_e2e)
target_link_libraries(sourcemeta_hydra_httpclient_e2e
PRIVATE GTest::gtest GTest::gtest_main)
target_link_libraries(sourcemeta_hydra_httpclient_e2e
noa_googletest(NAMESPACE sourcemeta PROJECT hydra NAME httpclient_e2e
FOLDER "Hydra/HTTP Client"
SOURCES environment.h request_1_1_test.cc stream_1_1_test.cc)

target_link_libraries(sourcemeta_hydra_httpclient_e2e_unit
PRIVATE sourcemeta::hydra::httpclient)
set_target_properties(sourcemeta_hydra_httpclient_e2e
PROPERTIES FOLDER "Hydra/HTTP Client")
gtest_discover_tests(sourcemeta_hydra_httpclient_e2e)

if(NOA_COMPILER_MSVC)
target_compile_definitions(sourcemeta_hydra_httpclient_e2e
target_compile_definitions(sourcemeta_hydra_httpclient_e2e_unit
PRIVATE _CRT_SECURE_NO_WARNINGS)
endif()
16 changes: 6 additions & 10 deletions test/e2e/httpserver/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,11 @@ target_compile_definitions(sourcemeta_hydra_httpserver_e2e_stub PRIVATE
STATIC_PATH="${CMAKE_CURRENT_SOURCE_DIR}/static")
noa_add_default_options(PRIVATE sourcemeta_hydra_httpserver_e2e_stub)

add_executable(sourcemeta_hydra_httpserver_e2e
environment.h httpserver_test.cc)
noa_add_default_options(PRIVATE sourcemeta_hydra_httpserver_e2e)
target_link_libraries(sourcemeta_hydra_httpserver_e2e
PRIVATE GTest::gtest GTest::gtest_main)
target_link_libraries(sourcemeta_hydra_httpserver_e2e
noa_googletest(NAMESPACE sourcemeta PROJECT hydra NAME httpserver_e2e
FOLDER "Hydra/HTTP Server"
SOURCES environment.h httpserver_test.cc)

target_link_libraries(sourcemeta_hydra_httpserver_e2e_unit
PRIVATE sourcemeta::hydra::httpclient)
target_link_libraries(sourcemeta_hydra_httpserver_e2e
target_link_libraries(sourcemeta_hydra_httpserver_e2e_unit
PRIVATE sourcemeta::jsontoolkit::json)
set_target_properties(sourcemeta_hydra_httpserver_e2e
PROPERTIES FOLDER "Hydra/HTTP server")
gtest_discover_tests(sourcemeta_hydra_httpserver_e2e)
12 changes: 4 additions & 8 deletions test/unit/bucket/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
add_executable(sourcemeta_hydra_bucket_unit
cache_test.cc datastamp_test.cc iso8601_test.cc aws_sigv4_test.cc)
noa_add_default_options(PRIVATE sourcemeta_hydra_bucket_unit)
target_link_libraries(sourcemeta_hydra_bucket_unit
PRIVATE GTest::gtest GTest::gtest_main)
noa_googletest(NAMESPACE sourcemeta PROJECT hydra NAME bucket
FOLDER "Hydra/Bucket"
SOURCES cache_test.cc datastamp_test.cc iso8601_test.cc aws_sigv4_test.cc)

target_link_libraries(sourcemeta_hydra_bucket_unit
PRIVATE sourcemeta::hydra::bucket)
target_link_libraries(sourcemeta_hydra_bucket_unit
PRIVATE sourcemeta::hydra::crypto)
set_target_properties(sourcemeta_hydra_bucket_unit
PROPERTIES FOLDER "Hydra/Bucket")
gtest_discover_tests(sourcemeta_hydra_bucket_unit)
14 changes: 5 additions & 9 deletions test/unit/crypto/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
add_executable(sourcemeta_hydra_crypto_unit
uuid_test.cc base64_test.cc
md5_test.cc sha256_test.cc hmac_sha256_test.cc)
noa_add_default_options(PRIVATE sourcemeta_hydra_crypto_unit)
target_link_libraries(sourcemeta_hydra_crypto_unit
PRIVATE GTest::gtest GTest::gmock GTest::gtest_main)
noa_googletest(NAMESPACE sourcemeta PROJECT hydra NAME crypto
FOLDER "Hydra/Crypto"
SOURCES uuid_test.cc base64_test.cc
md5_test.cc sha256_test.cc hmac_sha256_test.cc)

target_link_libraries(sourcemeta_hydra_crypto_unit
PRIVATE sourcemeta::hydra::crypto)
set_target_properties(sourcemeta_hydra_crypto_unit
PROPERTIES FOLDER "Hydra/Crypto")
gtest_discover_tests(sourcemeta_hydra_crypto_unit)
12 changes: 4 additions & 8 deletions test/unit/http/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
add_executable(sourcemeta_hydra_http_unit
time_test.cc status_test.cc method_test.cc
noa_googletest(NAMESPACE sourcemeta PROJECT hydra NAME http
FOLDER "Hydra/HTTP"
SOURCES time_test.cc status_test.cc method_test.cc
header_test.cc mime_test.cc)
noa_add_default_options(PRIVATE sourcemeta_hydra_http_unit)
target_link_libraries(sourcemeta_hydra_http_unit
PRIVATE GTest::gtest GTest::gtest_main)

target_link_libraries(sourcemeta_hydra_http_unit
PRIVATE sourcemeta::hydra::http)
set_target_properties(sourcemeta_hydra_http_unit
PROPERTIES FOLDER "Hydra/HTTP")
gtest_discover_tests(sourcemeta_hydra_http_unit)
11 changes: 4 additions & 7 deletions test/unit/httpserver/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
add_executable(sourcemeta_hydra_httpserver_unit logger_test.cc)
noa_add_default_options(PRIVATE sourcemeta_hydra_httpserver_unit)
target_link_libraries(sourcemeta_hydra_httpserver_unit
PRIVATE GTest::gtest GTest::gmock GTest::gtest_main)
noa_googletest(NAMESPACE sourcemeta PROJECT hydra NAME httpserver
FOLDER "Hydra/HTTP Server"
SOURCES logger_test.cc)

target_link_libraries(sourcemeta_hydra_httpserver_unit
PRIVATE sourcemeta::hydra::httpserver)
set_target_properties(sourcemeta_hydra_httpserver_unit
PROPERTIES FOLDER "Hydra/HTTP Server")
gtest_discover_tests(sourcemeta_hydra_httpserver_unit)
16 changes: 0 additions & 16 deletions vendor/googletest.mask

This file was deleted.

16 changes: 2 additions & 14 deletions vendor/jsontoolkit/CMakeLists.txt

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions vendor/jsontoolkit/cmake/FindNoa.cmake

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 1 addition & 5 deletions vendor/jsontoolkit/config.cmake.in

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion vendor/jsontoolkit/src/json/CMakeLists.txt

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit bb626d1

Please sign in to comment.