-
Notifications
You must be signed in to change notification settings - Fork 611
Description
Describe the bug
- c++ standard mismatch
Currently c++ 17
is used at
opendal/bindings/cpp/CMakeLists.txt
Line 51 in 193a30e
set(CMAKE_CXX_STANDARD 17) |
But Designated Initializers
is c++ 20
feature.
opendal/bindings/cpp/src/operator.cpp
Line 38 in 193a30e
.type = static_cast<EntryMode>(meta.mode), |
.path = std::string(std::move(other.path)), |
target_link_libraries
issue
On windows platform, some extra depdencies are linked to target using plain-style
(without PRIVATE
or PUBLIC
)
opendal/bindings/cpp/CMakeLists.txt
Line 174 in 193a30e
target_link_libraries(opendal_cpp userenv ws2_32 bcrypt) |
But there exist several keyword-style
linking.
opendal/bindings/cpp/CMakeLists.txt
Line 174 in 193a30e
target_link_libraries(opendal_cpp userenv ws2_32 bcrypt) |
Using both plain
and keyword
for the same target is not allowed in cmake
path
issue
Regular expression is used to handle path at
opendal/bindings/cpp/CMakeLists.txt
Line 86 in 193a30e
string(REGEX REPLACE "/Cargo.toml\n$" "/target" CARGO_TARGET_DIR "${CARGO_TARGET_DIR}") |
On windows platform, the line terminator can be \r\n
. Therefore this regex may generate wrong result with unexpected \r
Steps to Reproduce
Compiling the cpp bindings sample can reproduce this problem
Expected Behavior
cpp bindings sample should be compiled properly.
Additional Context
No response
Are you willing to submit a PR to fix this bug?
- Yes, I would like to submit a PR.