1# Copyright 2020 Google LLC
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15if (NOT EXISTS ${TOOLS_INSTALL_PREFIX}/bin/protoc)
16  set(PKG_BUILD_ROOT ${TOOLS_BUILD_ROOT}/protobuf)
17  set(PKG_SRC_ROOT ${CMAKE_SOURCE_DIR}/third_party/protobuf)
18  execute_process(
19    COMMAND mkdir -p ${PKG_BUILD_ROOT}
20  )
21  execute_process(
22    COMMAND cmake ${PKG_SRC_ROOT}/cmake
23    WORKING_DIRECTORY ${PKG_BUILD_ROOT}
24  )
25  execute_process(
26    COMMAND make -j${N_CPUS}
27    WORKING_DIRECTORY ${PKG_BUILD_ROOT}
28  )
29  execute_process(
30    COMMAND make check
31    WORKING_DIRECTORY ${PKG_BUILD_ROOT}
32    RESULT_VARIABLE test_exit_code
33    ERROR_QUIET
34  )
35  if (NOT ${test_exit_code} EQUAL "0")
36    message(FATAL_ERROR "Protobuf tests failed; can't use this protobuf")
37  endif()
38  execute_process(
39    COMMAND /bin/bash -c "DESTDIR=${TOOLS_INSTALL_ROOT} make install"
40    WORKING_DIRECTORY ${PKG_BUILD_ROOT}
41  )
42endif()
43