Skip to content

Commit

Permalink
Conforming clang19 and libc++
Browse files Browse the repository at this point in the history
Note that we removed `-Werror` to `-Wno-deprecated-declarations` due to
a bug in clang:llvm/llvm-project#75057
  • Loading branch information
ChuanqiXu9 committed Mar 11, 2024
1 parent 54c7371 commit 8f5e4f2
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 50 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ set(CXX_FLAGS
-D_FILE_OFFSET_BITS=64
-fPIC
-Wall
-Werror
-Wno-deprecated-declarations
-D__STDC_LIMIT_MACROS
-g
)
Expand Down
4 changes: 2 additions & 2 deletions async_simple_module/uthread/Await.cppm
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ T await(Future<T>&& fut) {
export template <class B, class Fn, class C, class... Ts>
decltype(auto) await(Executor* ex, Fn B::*fn, C* cls, Ts&&... ts) {
using ValueType =
typename std::result_of_t<decltype(fn)(C, Ts && ...)>::ValueType;
typename std::invoke_result_t<decltype(fn), C, Ts && ...>::ValueType;
Promise<ValueType> p;
auto f = p.getFuture().via(ex);
auto lazy = [p = std::move(p), fn,
Expand All @@ -107,7 +107,7 @@ decltype(auto) await(Executor* ex, Fn B::*fn, C* cls, Ts&&... ts) {
export template <class Fn, class... Ts>
decltype(auto) await(Executor* ex, Fn&& fn, Ts&&... ts) {
using ValueType =
typename std::result_of_t<decltype(fn)(Ts && ...)>::ValueType;
typename std::invoke_result_t<decltype(fn), Ts && ...>::ValueType;
Promise<ValueType> p;
auto f = p.getFuture().via(ex);
auto lazy = [p = std::move(p),
Expand Down
58 changes: 15 additions & 43 deletions cmake/FindGTest.cmake
Original file line number Diff line number Diff line change
@@ -1,46 +1,18 @@
if("${GOOGLETEST_ROOT}" STREQUAL "")
set(GOOGLETEST_ROOT "/usr/local")
endif()

if("${GOOGMOCK_ROOT}" STREQUAL "")
set(GOOGMOCK_ROOT "/usr/local")
endif()

find_path(GTEST_INCLUDE_DIR
NAMES gtest/gtest.h
PATHS ${GOOGLETEST_ROOT}/include)

find_path(GMOCK_INCLUDE_DIR
NAMES gmock/gmock.h
PATHS ${GOOGMOCK_ROOT}/include)

find_library(GTEST_LIBRARIES
NAME gtest
PATHS ${GOOGLETEST_ROOT}/lib)

find_library(GMOCK_LIBRARIES
NAME gmock
PATHS ${GOOGMOCK_ROOT}/lib)

if(NOT GTEST_LIBRARIES OR NOT GMOCK_LIBRARIES)
message(STATUS "fetch GTest from https://github.com/google/googletest.git")
include(FetchContent)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.11.0
)
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
set(BUILD_GMOCK ON CACHE BOOL "" FORCE)
set(BUILD_GTEST ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)
set(GMOCK_INCLUDE_DIR ${CMAKE_BINARY_DIR}/_deps/googletest-src/googlemock/include/)
set(GTEST_INCLUDE_DIR ${CMAKE_BINARY_DIR}/_deps/googletest-src/googletest/include/)
set(GTEST_LIBRARIES gtest_main)
set(GMOCK_LIBRARIES gmock_main)
else()
message(STATUS "use system GTest")
endif()
message(STATUS "fetch GTest from https://github.com/google/googletest.git")
include(FetchContent)
FetchContent_Declare(
googletest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG release-1.11.0
)
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
set(BUILD_GMOCK ON CACHE BOOL "" FORCE)
set(BUILD_GTEST ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(googletest)
set(GMOCK_INCLUDE_DIR ${CMAKE_BINARY_DIR}/_deps/googletest-src/googlemock/include/)
set(GTEST_INCLUDE_DIR ${CMAKE_BINARY_DIR}/_deps/googletest-src/googletest/include/)
set(GTEST_LIBRARIES gtest_main)
set(GMOCK_LIBRARIES gmock_main)

message(STATUS "GTest: ${GTEST_INCLUDE_DIR}, ${GTEST_LIBRARIES}")
message(STATUS "GMock: ${GMOCK_INCLUDE_DIR}, ${GMOCK_LIBRARIES}")
2 changes: 2 additions & 0 deletions third_party_module/stdmodules/functional.cppm
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ export namespace std {
operator==(const std::function<T>& __f, std::nullptr_t) noexcept {
return __f == nullptr;
}
#else
using std::operator==;
#endif
}

Expand Down
4 changes: 0 additions & 4 deletions third_party_module/stdmodules/type_traits.cppm
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,4 @@ export namespace std {

using std::invoke_result;
using std::invoke_result_t;
#if defined(__GLIBCXX__) || defined(__GLIBCPP__)
using std::result_of_t;
using std::result_of;
#endif
}

0 comments on commit 8f5e4f2

Please sign in to comment.