-
Couldn't load subscription status.
- Fork 651
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_librariesissue
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
pathissue
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.