-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[#77] Refactor project to not use C++20 coroutines.
This commit lays the foundation for moving away from C++20 coroutines. This commit removes all S3-specific logic. That means the features which shipped in v0.1.0 of this project will need to be ported to the new design. The changes in this commit were ported from HTTP API v0.2.0. All iRODS 4.3.1 features used by the HTTP API are included. Notable features are: - 4.2 compatibility - configuration validation - connection pooling - secure communication with iRODS
- Loading branch information
1 parent
924d867
commit 7e0026c
Showing
24 changed files
with
3,155 additions
and
104 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
include(GetGitRevisionDescription) | ||
get_git_head_revision(IRODS_S3_API_GIT_REFSPEC IRODS_S3_API_GIT_SHA1) | ||
|
||
configure_file( | ||
"${CMAKE_CURRENT_SOURCE_DIR}/include/irods/private/s3_api/version.hpp.in" | ||
"${CMAKE_CURRENT_BINARY_DIR}/include/irods/private/s3_api/version.hpp" | ||
@ONLY | ||
) | ||
|
||
add_library( | ||
irods_s3_api_core | ||
OBJECT | ||
"${CMAKE_CURRENT_SOURCE_DIR}/src/common.cpp" | ||
"${CMAKE_CURRENT_SOURCE_DIR}/src/crlf_parser.cpp" | ||
"${CMAKE_CURRENT_SOURCE_DIR}/src/globals.cpp" | ||
"${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp" | ||
"${CMAKE_CURRENT_SOURCE_DIR}/src/process_stash.cpp" | ||
"${CMAKE_CURRENT_SOURCE_DIR}/src/session.cpp" | ||
"${CMAKE_CURRENT_SOURCE_DIR}/src/transport.cpp" | ||
) | ||
|
||
target_link_libraries( | ||
irods_s3_api_core | ||
PRIVATE | ||
irods_client | ||
"${IRODS_EXTERNALS_FULLPATH_BOOST}/lib/libboost_filesystem.so" | ||
"${IRODS_EXTERNALS_FULLPATH_BOOST}/lib/libboost_program_options.so" | ||
"${IRODS_EXTERNALS_FULLPATH_BOOST}/lib/libboost_url.so" | ||
"${IRODS_EXTERNALS_FULLPATH_FMT}/lib/libfmt.so" | ||
CURL::libcurl | ||
) | ||
|
||
target_compile_definitions( | ||
irods_s3_api_core | ||
PRIVATE | ||
${IRODS_COMPILE_DEFINITIONS} | ||
${IRODS_COMPILE_DEFINITIONS_PRIVATE} | ||
# The following macro requires that the application never attempt to | ||
# change log levels concurrently across threads. | ||
SPDLOG_NO_ATOMIC_LEVELS | ||
# Defines a macro which is used to construct the URL paths to individual | ||
# endpoint handlers (e.g. /irods-s3-api/0.2.0/collections). | ||
IRODS_S3_API_BASE_URL="/irods-s3-api/${IRODS_S3_API_VERSION}" | ||
) | ||
|
||
target_include_directories( | ||
irods_s3_api_core | ||
PRIVATE | ||
"${CMAKE_CURRENT_SOURCE_DIR}/include" | ||
"${CMAKE_CURRENT_BINARY_DIR}/include" | ||
"${IRODS_S3_API_PROJECT_SOURCE_DIR}/endpoints/shared/include" | ||
"${IRODS_EXTERNALS_FULLPATH_BOOST}/include" | ||
"${IRODS_EXTERNALS_FULLPATH_FMT}/include" | ||
"${IRODS_EXTERNALS_FULLPATH_SPDLOG}/include" | ||
) | ||
|
||
set_target_properties(irods_s3_api_core PROPERTIES EXCLUDE_FROM_ALL TRUE) |
Oops, something went wrong.