You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

CMakeLists.txt 3.8 kB

5 years ago
5 years ago
5 years ago
5 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. cmake_minimum_required(VERSION 3.14.0)
  2. project(MindSpore)
  3. if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3.0)
  4. message(FATAL_ERROR "GCC version ${CMAKE_CXX_COMPILER_VERSION} must not be less than 7.3.0")
  5. endif()
  6. include(${CMAKE_SOURCE_DIR}/cmake/options.cmake)
  7. include(${CMAKE_SOURCE_DIR}/cmake/check_requirements.cmake)
  8. set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
  9. if(NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
  10. add_compile_definitions(_GLIBCXX_USE_CXX11_ABI=0)
  11. endif()
  12. if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
  13. set(CMAKE_OSX_SYSROOT "")
  14. set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O2 -Winconsistent-missing-override -Wuser-defined-warnings \
  15. -Wno-return-std-move -Wno-unused-private-field -Wno-unused-lambda-capture -Wno-sign-compare \
  16. -Wno-overloaded-virtual -Wno-unneeded-internal-declaration -Wno-unused-variable -Wno-pessimizing-move \
  17. -Wno-inconsistent-missing-override -DHALF_ENABLE_CPP11_USER_LITERALS=0 -D_FORTIFY_SOURCE=2")
  18. else()
  19. set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O2 -Wl,--allow-shlib-undefined \
  20. -DHALF_ENABLE_CPP11_USER_LITERALS=0 -D_FORTIFY_SOURCE=2")
  21. endif()
  22. if(ENABLE_PYTHON)
  23. add_compile_definitions(ENABLE_PYTHON)
  24. endif()
  25. set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -g2 -ggdb -fno-inline-functions -fno-omit-frame-pointer \
  26. -Wl,--allow-shlib-undefined -D_LIBCPP_INLINE_VISIBILITY='' -D_LIBCPP_DISABLE_EXTERN_TEMPLATE=1 \
  27. -DHALF_ENABLE_CPP11_USER_LITERALS=0 -D_FORTIFY_SOURCE=2 -Wno-cpp")
  28. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/local/include -std=c++17 \
  29. -Werror -Wall -Wno-deprecated-declarations -fPIC")
  30. set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
  31. set(PYBIND11_CPP_STANDARD -std=c++17)
  32. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OPTION_CXX_FLAGS}")
  33. if(ENABLE_AKG AND (ENABLE_D OR ENABLE_GPU))
  34. add_subdirectory("${CMAKE_SOURCE_DIR}/akg")
  35. endif()
  36. include(${CMAKE_SOURCE_DIR}/cmake/mind_expression.cmake)
  37. include_directories(${CMAKE_CURRENT_SOURCE_DIR})
  38. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third_party/securec/include)
  39. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third_party/flatbuffers/include)
  40. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third_party/flatbuffers/include/flatbuffers)
  41. include(${CMAKE_SOURCE_DIR}/cmake/dependency_utils.cmake)
  42. find_package(Python3 3.7 COMPONENTS Interpreter Development)
  43. if(Python3_FOUND)
  44. set(PYTHON_INCLUDE_DIRS "${Python3_INCLUDE_DIRS}")
  45. set(PYTHON_LIBRARIES "${Python3_LIBRARIES}")
  46. if(WIN32)
  47. if(Python3_DIR)
  48. message("Python3_DIR set already: " ${Python3_DIR})
  49. else()
  50. string(LENGTH ${PYTHON_LIBRARIES} PYTHON_LIBRARIES_LEN)
  51. string(LENGTH "libpythonxx.a" Python3_NAME_LEN)
  52. math(EXPR Python3_DIR_LEN ${PYTHON_LIBRARIES_LEN}-${Python3_NAME_LEN})
  53. string(SUBSTRING ${Python3_LIBRARIES} 0 ${Python3_DIR_LEN} Python3_DIR)
  54. message("Python3_DIR: " ${Python3_DIR})
  55. endif()
  56. link_directories(${Python3_DIR})
  57. endif()
  58. else()
  59. find_python_package(py_inc py_lib)
  60. set(PYTHON_INCLUDE_DIRS "${py_inc}")
  61. set(PYTHON_LIBRARIES "${py_lib}")
  62. endif()
  63. message("PYTHON_INCLUDE_DIRS = ${PYTHON_INCLUDE_DIRS}")
  64. message("PYTHON_LIBRARIES = ${PYTHON_LIBRARIES}")
  65. include_directories(${PYTHON_INCLUDE_DIRS})
  66. set(MS_CCSRC_PATH ${CMAKE_SOURCE_DIR}/mindspore/ccsrc)
  67. set(MS_CCSRC_BUILD_PATH ${BUILD_PATH}/mindspore/mindspore/ccsrc)
  68. if(ENABLE_D OR ENABLE_ACL OR ENABLE_TESTCASES)
  69. include(${CMAKE_SOURCE_DIR}/cmake/dependency_graphengine.cmake)
  70. endif()
  71. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
  72. add_subdirectory(mindspore/ccsrc)
  73. add_subdirectory(mindspore/core)
  74. if(ENABLE_TESTCASES OR ENABLE_CPP_ST)
  75. add_subdirectory(tests)
  76. endif()
  77. include(cmake/package.cmake)