From 988b252ab8bfdd85b9fd822863e52c8ddc88b051 Mon Sep 17 00:00:00 2001 From: gouzil <66515297+gouzil@users.noreply.github.com> Date: Thu, 10 Aug 2023 20:32:37 +0800 Subject: [PATCH] [cmake] add absl third_party cache (#55549) * add absl to third_party * fix * ci test * ci test * ci test * rollback --- cmake/cinn.cmake | 4 ---- cmake/cinn/external/absl.cmake | 27 ++++++++++++++++++++++----- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/cmake/cinn.cmake b/cmake/cinn.cmake index ff3731f380540b..de13f71526c8a3 100644 --- a/cmake/cinn.cmake +++ b/cmake/cinn.cmake @@ -326,10 +326,6 @@ set(CINN_LIB "${CINN_LIB_LOCATION}/${CINN_LIB_NAME}") # Add CINN's dependencies header files ###################################### -# Add absl -set(ABSL_INCLUDE_DIR "${CMAKE_BINARY_DIR}/dist/third_party/absl/include") -include_directories(${ABSL_INCLUDE_DIR}) - # Add isl set(ISL_INCLUDE_DIR "${CMAKE_BINARY_DIR}/third_party/install/isl/include") include_directories(${ISL_INCLUDE_DIR}) diff --git a/cmake/cinn/external/absl.cmake b/cmake/cinn/external/absl.cmake index 466d5317807369..051a83c9568820 100644 --- a/cmake/cinn/external/absl.cmake +++ b/cmake/cinn/external/absl.cmake @@ -1,13 +1,31 @@ include(ExternalProject) -set(ABSL_SOURCES_DIR ${THIRD_PARTY_PATH}/absl) +set(ABSL_SOURCES_DIR ${PADDLE_SOURCE_DIR}/third_party/absl) set(ABSL_INSTALL_DIR ${THIRD_PARTY_PATH}/install/absl) - +set(ABSL_PREFIX_DIR ${THIRD_PARTY_PATH}/absl) set(ABSL_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) set(ABSL_REPOSITORY "https://github.com/abseil/abseil-cpp.git") set(ABSL_TAG "20210324.2") +if(NOT EXISTS ${ABSL_SOURCES_DIR}) + message( + STATUS "Download absl source from ${ABSL_REPOSITORY} to ABSL_SOURCES_DIR") + execute_process(COMMAND ${GIT_EXECUTABLE} clone -b ${ABSL_TAG} + ${ABSL_REPOSITORY} ${ABSL_SOURCES_DIR}) +else() + # check git tag + execute_process( + COMMAND ${GIT_EXECUTABLE} -C ${ABSL_SOURCES_DIR} describe --tags + OUTPUT_VARIABLE CURRENT_TAG + OUTPUT_STRIP_TRAILING_WHITESPACE) + if(NOT ${CURRENT_TAG} STREQUAL ${ABSL_TAG}) + message(STATUS "Checkout absl to ${ABSL_TAG}") + execute_process(COMMAND ${GIT_EXECUTABLE} -C ${ABSL_SOURCES_DIR} checkout + -q ${ABSL_TAG}) + endif() +endif() + set(OPTIONAL_ARGS "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}" "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" @@ -22,9 +40,8 @@ ExternalProject_Add( external_absl ${EXTERNAL_PROJECT_LOG_ARGS} DEPENDS gflags - GIT_REPOSITORY ${ABSL_REPOSITORY} - GIT_TAG ${ABSL_TAG} - PREFIX ${ABSL_SOURCES_DIR} + PREFIX ${ABSL_PREFIX_DIR} + SOURCE_DIR ${ABSL_SOURCES_DIR} UPDATE_COMMAND "" CMAKE_ARGS ${OPTIONAL_ARGS} -DCMAKE_INSTALL_PREFIX=${ABSL_INSTALL_DIR}