diff --git a/cmake/cinn.cmake b/cmake/cinn.cmake index ff3731f380540b85ad25ded1837c98cdeb247c5c..de13f71526c8a36e7e32cf995908a69137b1f47a 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 466d5317807369a0e2b648d8df93c8c34f0bbeb0..051a83c956882048aa7cc2998df80721d72e8fbc 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}