diff --git a/cmake/external/numpy.cmake b/cmake/external/numpy.cmake index 9d686ecaac9818be34915da783dd73d927d45542..d01cff9722b84c7365b722983d5dd0e43c4ed1d5 100644 --- a/cmake/external/numpy.cmake +++ b/cmake/external/numpy.cmake @@ -59,6 +59,8 @@ IF(NOT ${NUMPY_FOUND}) DEPENDS python setuptools cython ) + LIST(APPEND external_project_dependencies numpy) + # find numpy include directory FILE(WRITE ${PROJECT_BINARY_DIR}/FindNumpyPath.py "try: import numpy; print(numpy.get_include())\nexcept:pass\n") diff --git a/cmake/external/protobuf.cmake b/cmake/external/protobuf.cmake index 0138f082d942c4917aaeeafe0650c18c84e2e099..efd07eb807a170a1401f62728cc4004e0b76bf2f 100644 --- a/cmake/external/protobuf.cmake +++ b/cmake/external/protobuf.cmake @@ -42,10 +42,16 @@ IF(WIN32) "${PROTOBUF_INSTALL_DIR}/lib/libprotoc.lib" CACHE FILEPATH "protobuf libraries." FORCE) SET(PROTOBUF_PROTOC_EXECUTABLE "${PROTOBUF_INSTALL_DIR}/bin/protoc.exe" CACHE FILEPATH "protobuf executable." FORCE) ELSE(WIN32) + FIND_PATH(PROTOBUF_LIBS_DIR libprotoc.a + PATHS + ${PROTOBUF_INSTALL_DIR}/lib64 + ${PROTOBUF_INSTALL_DIR}/lib + NO_DEFAULT_PATH + ) SET(PROTOBUF_LIBRARIES - "${PROTOBUF_INSTALL_DIR}/lib/libprotobuf-lite.a" - "${PROTOBUF_INSTALL_DIR}/lib/libprotobuf.a" - "${PROTOBUF_INSTALL_DIR}/lib/libprotoc.a" CACHE FILEPATH "protobuf libraries." FORCE) + "${PROTOBUF_LIBS_DIR}/libprotobuf-lite.a" + "${PROTOBUF_LIBS_DIR}/libprotobuf.a" + "${PROTOBUF_LIBS_DIR}/libprotoc.a" CACHE FILEPATH "protobuf libraries." FORCE) SET(PROTOBUF_PROTOC_EXECUTABLE "${PROTOBUF_INSTALL_DIR}/bin/protoc" CACHE FILEPATH "protobuf executable." FORCE) ENDIF(WIN32) diff --git a/cmake/external/python.cmake b/cmake/external/python.cmake index 7b66cb44e4f9f804a244fe7c3f685557fca66845..d6cdf535fee4eaad8d2f97c3d851243198612049 100644 --- a/cmake/external/python.cmake +++ b/cmake/external/python.cmake @@ -87,6 +87,9 @@ IF((NOT ${PYTHONINTERP_FOUND}) OR (NOT ${PYTHONLIBS_FOUND})) MESSAGE(FATAL_ERROR "Unknown system !") ENDIF() +LIST(APPEND external_project_dependencies python) + ENDIF() INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIR}) + diff --git a/cmake/external/swig.cmake b/cmake/external/swig.cmake index 1ec61660bc0698f74cde024e35ab2a6a9ef4012a..2da826d37500305c0a101e19d33c921ee7c1b436 100644 --- a/cmake/external/swig.cmake +++ b/cmake/external/swig.cmake @@ -70,6 +70,9 @@ IF(NOT ${SWIG_FOUND}) set(SWIG_DIR ${SWIG_INSTALL_DIR}/share/swig/${SWIG_TARGET_VERSION} CACHE FILEPATH "SWIG Directory" FORCE) set(SWIG_EXECUTABLE ${SWIG_INSTALL_DIR}/bin/swig CACHE FILEPATH "SWIG Executable" FORCE) ENDIF(WIN32) + + LIST(APPEND external_project_dependencies swig) + ENDIF() FUNCTION(generate_python_api target_name) @@ -80,10 +83,12 @@ FUNCTION(generate_python_api target_name) && mv ${PROJ_ROOT}/paddle/swig_paddle.py ${PROJ_ROOT}/paddle/py_paddle/swig_paddle.py DEPENDS ${PROJ_ROOT}/paddle/api/Paddle.swig ${PROJ_ROOT}/paddle/api/PaddleAPI.h + ${external_project_dependencies} WORKING_DIRECTORY ${PROJ_ROOT}/paddle COMMENT "Generate Python API from swig") ADD_CUSTOM_TARGET(${target_name} ALL DEPENDS ${PROJ_ROOT}/paddle/Paddle_wrap.cxx ${PROJ_ROOT}/paddle/Paddle_wrap.h - ${PROJ_ROOT}/paddle/py_paddle/swig_paddle.py) + ${PROJ_ROOT}/paddle/py_paddle/swig_paddle.py + ${external_project_dependencies}) ENDFUNCTION(generate_python_api) diff --git a/cmake/external/warpctc.cmake b/cmake/external/warpctc.cmake index d59e5e9c3af48c8cce197c287f28abfb1ed7afa7..2e678aadcf91b7ff4c1b396da8ba237c567c7dd3 100644 --- a/cmake/external/warpctc.cmake +++ b/cmake/external/warpctc.cmake @@ -40,8 +40,14 @@ IF(WIN32) SET(WARPCTC_LIBRARIES "${WARPCTC_INSTALL_DIR}/lib/warpctc.dll" CACHE FILEPATH "Warp-ctc Library" FORCE) ELSE(WIN32) + IF(APPLE) + SET(_warpctc_SHARED_SUFFIX dylib) + ELSE(APPLE) + SET(_warpctc_SHARED_SUFFIX so) + ENDIF(APPLE) + SET(WARPCTC_LIBRARIES - "${WARPCTC_INSTALL_DIR}/lib/libwarpctc.dylib" CACHE FILEPATH "Warp-ctc Library" FORCE) + "${WARPCTC_INSTALL_DIR}/lib/libwarpctc.${_warpctc_SHARED_SUFFIX}" CACHE FILEPATH "Warp-ctc Library" FORCE) ENDIF(WIN32) LIST(APPEND external_project_dependencies warpctc)