Skip to content

Commit 6375c8c

Browse files
authored
Fix MacOS compile (#5978)
* Fix MacOS compile * Update GRPC * Unset PROTOBUF_EXEC
1 parent 985e4ab commit 6375c8c

File tree

2 files changed

+27
-9
lines changed

2 files changed

+27
-9
lines changed

cmake/external/grpc.cmake

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ SET(GRPC_SOURCES_DIR ${THIRD_PARTY_PATH}/grpc)
2323
SET(GRPC_INSTALL_DIR ${THIRD_PARTY_PATH}/install/grpc)
2424
SET(GRPC_INCLUDE_DIR "${GRPC_INSTALL_DIR}/include/" CACHE PATH "grpc include directory." FORCE)
2525
SET(GRPC_CPP_PLUGIN "${GRPC_INSTALL_DIR}/bin/grpc_cpp_plugin" CACHE FILEPATH "GRPC_CPP_PLUGIN" FORCE)
26+
IF(APPLE)
27+
SET(BUILD_CMD make -n | sed "s/-Werror//g" | sh)
28+
ELSE()
29+
SET(BUILD_CMD make)
30+
ENDIF()
2631

2732
ExternalProject_Add(
2833
extern_grpc
@@ -33,7 +38,11 @@ ExternalProject_Add(
3338
UPDATE_COMMAND ""
3439
CONFIGURE_COMMAND ""
3540
BUILD_IN_SOURCE 1
36-
BUILD_COMMAND make
41+
# NOTE(yuyang18):
42+
# Disable -Werror, otherwise the compile will fail in MacOS.
43+
# It seems that we cannot configure that by make command.
44+
# Just dry run make command and remove `-Werror`, then use a shell to run make commands
45+
BUILD_COMMAND ${BUILD_CMD}
3746
INSTALL_COMMAND make prefix=${GRPC_INSTALL_DIR} install
3847
)
3948

@@ -55,4 +64,3 @@ SET_PROPERTY(TARGET grpc_unsecure PROPERTY IMPORTED_LOCATION
5564

5665
include_directories(${GRPC_INCLUDE_DIR})
5766
ADD_DEPENDENCIES(grpc++_unsecure extern_grpc)
58-

cmake/external/protobuf.cmake

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,18 @@
1515
INCLUDE(ExternalProject)
1616
# Always invoke `FIND_PACKAGE(Protobuf)` for importing function protobuf_generate_cpp
1717
FIND_PACKAGE(Protobuf QUIET)
18-
SET(PROTOBUF_FOUND "OFF")
18+
macro(UNSET_VAR VAR_NAME)
19+
UNSET(${VAR_NAME} CACHE)
20+
UNSET(${VAR_NAME})
21+
endmacro()
22+
UNSET_VAR(PROTOBUF_INCLUDE_DIR)
23+
UNSET_VAR(PROTOBUF_FOUND)
24+
UNSET_VAR(PROTOBUF_PROTOC_EXECUTABLE)
25+
UNSET_VAR(PROTOBUF_PROTOC_LIBRARY)
26+
UNSET_VAR(PROTOBUF_LITE_LIBRARY)
27+
UNSET_VAR(PROTOBUF_LIBRARY)
28+
UNSET_VAR(PROTOBUF_INCLUDE_DIR)
29+
UNSET_VAR(Protobuf_PROTOC_EXECUTABLE)
1930

2031
if(NOT COMMAND protobuf_generate_python) # before cmake 3.4, protobuf_genrerate_python is not defined.
2132
function(protobuf_generate_python SRCS)
@@ -110,7 +121,6 @@ macro(PROMPT_PROTOBUF_LIB)
110121
# FIND_Protobuf.cmake uses `Protobuf_PROTOC_EXECUTABLE`.
111122
# make `protobuf_generate_cpp` happy.
112123
SET(Protobuf_PROTOC_EXECUTABLE ${PROTOBUF_PROTOC_EXECUTABLE})
113-
114124
FOREACH(dep ${protobuf_DEPS})
115125
ADD_DEPENDENCIES(protobuf ${dep})
116126
ADD_DEPENDENCIES(protobuf_lite ${dep})
@@ -128,11 +138,11 @@ endmacro()
128138

129139
set(PROTOBUF_ROOT "" CACHE PATH "Folder contains protobuf")
130140
if (NOT "${PROTOBUF_ROOT}" STREQUAL "")
131-
find_path(PROTOBUF_INCLUDE_DIR google/protobuf/message.h PATHS ${PROTOBUF_ROOT}/include)
132-
find_library(PROTOBUF_LIBRARY protobuf PATHS ${PROTOBUF_ROOT}/lib)
133-
find_library(PROTOBUF_LITE_LIBRARY protobuf-lite PATHS ${PROTOBUF_ROOT}/lib)
134-
find_library(PROTOBUF_PROTOC_LIBRARY protoc PATHS ${PROTOBUF_ROOT}/lib)
135-
find_program(PROTOBUF_PROTOC_EXECUTABLE protoc PATHS ${PROTOBUF_ROOT}/bin)
141+
find_path(PROTOBUF_INCLUDE_DIR google/protobuf/message.h PATHS ${PROTOBUF_ROOT}/include NO_DEFAULT_PATH)
142+
find_library(PROTOBUF_LIBRARY protobuf PATHS ${PROTOBUF_ROOT}/lib NO_DEFAULT_PATH)
143+
find_library(PROTOBUF_LITE_LIBRARY protobuf-lite PATHS ${PROTOBUF_ROOT}/lib NO_DEFAULT_PATH)
144+
find_library(PROTOBUF_PROTOC_LIBRARY protoc PATHS ${PROTOBUF_ROOT}/lib NO_DEFAULT_PATH)
145+
find_program(PROTOBUF_PROTOC_EXECUTABLE protoc PATHS ${PROTOBUF_ROOT}/bin NO_DEFAULT_PATH)
136146
if (PROTOBUF_INCLUDE_DIR AND PROTOBUF_LIBRARY AND PROTOBUF_LITE_LIBRARY AND PROTOBUF_PROTOC_LIBRARY AND PROTOBUF_PROTOC_EXECUTABLE)
137147
message(STATUS "Using custom protobuf library in ${PROTOBUF_ROOT}.")
138148
SET_PROTOBUF_VERSION()

0 commit comments

Comments
 (0)