Skip to content

Commit

Permalink
[Fix Patch Error] Fix patch error in cmake (#53321)
Browse files Browse the repository at this point in the history
  • Loading branch information
jiahy0825 authored Apr 26, 2023
1 parent 37489df commit aed9a75
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 10 deletions.
5 changes: 3 additions & 2 deletions cmake/external/eigen.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,10 @@ if(CMAKE_COMPILER_IS_GNUCC)
if(GCC_VERSION GREATER_EQUAL "12.0")
file(TO_NATIVE_PATH ${PADDLE_SOURCE_DIR}/patches/eigen/Complex.h.patch
complex_header)
# See: [Why calling some `git` commands before `patch`?]
set(EIGEN_PATCH_COMMAND
patch -Nd ${EIGEN_SOURCE_DIR}/Eigen/src/Core/arch/SSE/ <
${complex_header})
git checkout -- . && git checkout ${EIGEN_TAG} && patch -Nd
${EIGEN_SOURCE_DIR}/Eigen/src/Core/arch/SSE/ < ${complex_header})
endif()
endif()

Expand Down
11 changes: 7 additions & 4 deletions cmake/external/gloo.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,9 @@ if(WITH_GPU)
VERSION_GREATER 12.0)
file(TO_NATIVE_PATH ${PADDLE_SOURCE_DIR}/patches/gloo/device.cc.patch
native_dst)
set(GLOO_PATCH_COMMAND patch -d ${GLOO_SOURCE_DIR}/gloo/transport/tcp <
${native_dst})
set(GLOO_PATCH_COMMAND
git checkout -- . && git checkout ${GLOO_TAG} &&patch -Nd
${GLOO_SOURCE_DIR}/gloo/transport/tcp < ${native_dst})
endif()
endif()

Expand All @@ -54,9 +55,11 @@ if(CMAKE_COMPILER_IS_GNUCC)
native_dst)
file(TO_NATIVE_PATH ${PADDLE_SOURCE_DIR}/patches/gloo/types.h.patch
types_header)
# See: [Why calling some `git` commands before `patch`?]
set(GLOO_PATCH_COMMAND
patch -Nd ${GLOO_SOURCE_DIR}/gloo/transport/tcp < ${native_dst} &&
patch -Nd ${GLOO_SOURCE_DIR}/gloo/ < ${types_header})
git checkout -- . && git checkout ${GLOO_TAG} && patch -Nd
${GLOO_SOURCE_DIR}/gloo/transport/tcp < ${native_dst} && patch -Nd
${GLOO_SOURCE_DIR}/gloo/ < ${types_header})
endif()
endif()
include_directories(${GLOO_INCLUDE_DIR})
Expand Down
6 changes: 4 additions & 2 deletions cmake/external/gtest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,10 @@ endif()
if(NOT WIN32 AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 12.0)
file(TO_NATIVE_PATH
${PADDLE_SOURCE_DIR}/patches/gtest/gtest-death-test.cc.patch native_src)
set(GTEST_PATCH_COMMAND patch -Nd ${GTEST_SOURCE_DIR}/googletest/src <
${native_src})
# See: [Why calling some `git` commands before `patch`?]
set(GTEST_PATCH_COMMAND
git checkout -- . && git checkout ${GTEST_TAG} && patch -Nd
${GTEST_SOURCE_DIR}/googletest/src < ${native_src})
endif()
if(WIN32)
ExternalProject_Add(
Expand Down
9 changes: 7 additions & 2 deletions cmake/external/pybind11.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,13 @@ set(PYBIND_PATCH_COMMAND "")
if(NOT WIN32)
file(TO_NATIVE_PATH ${PADDLE_SOURCE_DIR}/patches/pybind/cast.h.patch
native_dst)
set(PYBIND_PATCH_COMMAND patch -d ${PYBIND_INCLUDE_DIR}/pybind11 <
${native_dst})
# Note: [Why calling some `git` commands before `patch`?]
# Paddle's CI uses cache to accelarate the make process. However, error might raise when patch codes in two scenarios:
# 1. Patch to the wrong version: the tag version of CI's cache falls behind PYBIND_TAG, use `git checkout ${PYBIND_TAG}` to solve this.
# 2. Patch twice: the tag version of cache == PYBIND_TAG, but patch has already applied to cache.
set(PYBIND_PATCH_COMMAND
git checkout -- . && git checkout ${PYBIND_TAG} && patch -Nd
${PYBIND_INCLUDE_DIR}/pybind11 < ${native_dst})
endif()

ExternalProject_Add(
Expand Down

0 comments on commit aed9a75

Please sign in to comment.