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 7.5 kB

5 years ago
5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-sign-compare")
  2. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-reorder")
  3. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch")
  4. if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
  5. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-uninitialized")
  6. else()
  7. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-maybe-uninitialized")
  8. endif()
  9. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-format")
  10. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes")
  11. ############################# Options ################################
  12. if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
  13. add_definitions(-D _CRT_RAND_S)
  14. endif ()
  15. if (ENABLE_GPUQUE)
  16. add_definitions(-D ENABLE_GPUQUE)
  17. message(STATUS "GPU queue is enabled")
  18. endif ()
  19. if (ENABLE_TDTQUE)
  20. add_definitions(-D ENABLE_TDTQUE)
  21. message(STATUS "TDT queue is enabled")
  22. endif ()
  23. if (MS_BUILD_GRPC)
  24. set (ENABLE_CACHE true)
  25. add_definitions(-D ENABLE_CACHE)
  26. message(STATUS "Cache is enabled")
  27. endif()
  28. # conde coverage
  29. # option(ENABLE_COVERAGE "Enable code coverage report" OFF)
  30. # if (ENABLE_COVERAGE)
  31. # include(${CMAKE_SOURCE_DIR}/cmake/CodeCoverage.cmake)
  32. # append_coverage_compiler_flags()
  33. # endif ()
  34. ########### Set up the include directories ###########################
  35. include_directories(${CMAKE_SOURCE_DIR}/mindspore/ccsrc)
  36. include_directories(${CMAKE_SOURCE_DIR}/mindspore/ccsrc/runtime/device/ascend/platform)
  37. include_directories(${CMAKE_BINARY_DIR}) # for protobuf generated .h
  38. include_directories(${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/mindrecord/include)
  39. include_directories(${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include)
  40. include_directories(${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/kernels/image)
  41. ######################################################################
  42. ####################### Flags ########################################
  43. # compile flags
  44. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-rpath,$ORIGIN:$ORIGIN/lib")
  45. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=default")
  46. ################## Include sub-modules ###############################
  47. add_subdirectory(util)
  48. add_subdirectory(core)
  49. add_subdirectory(kernels)
  50. add_subdirectory(engine)
  51. add_subdirectory(api)
  52. add_subdirectory(text)
  53. add_subdirectory(callback)
  54. ######################################################################
  55. add_dependencies(utils core)
  56. add_dependencies(kernels-image core)
  57. add_dependencies(kernels-data core)
  58. add_dependencies(kernels-soft-dvpp-image core soft-dvpp-utils)
  59. add_dependencies(kernels core)
  60. add_dependencies(engine-datasetops-source core)
  61. add_dependencies(engine-datasetops-source-sampler core)
  62. add_dependencies(engine-datasetops core)
  63. add_dependencies(engine-datasetops-mapop core)
  64. add_dependencies(engine-opt core)
  65. add_dependencies(engine-perf core)
  66. add_dependencies(engine-gnn core)
  67. add_dependencies(engine core)
  68. add_dependencies(callback core)
  69. add_dependencies(text core)
  70. add_dependencies(text-kernels core)
  71. add_dependencies(cpp-API core)
  72. add_dependencies(engine-ir-datasetops core)
  73. add_dependencies(engine-ir-datasetops-source core)
  74. add_dependencies(engine-ir-cache core)
  75. if (ENABLE_PYTHON)
  76. add_dependencies(APItoPython core)
  77. endif()
  78. if (ENABLE_TDTQUE)
  79. add_dependencies(engine-tdt core)
  80. endif ()
  81. if (ENABLE_CACHE)
  82. add_dependencies(engine-datasetops engine-cache-client)
  83. add_dependencies(engine-cache-client core)
  84. add_dependencies(engine-cache-server core)
  85. endif ()
  86. ################### Create _c_dataengine Library ######################
  87. set(submodules
  88. $<TARGET_OBJECTS:core>
  89. $<TARGET_OBJECTS:callback>
  90. $<TARGET_OBJECTS:utils>
  91. $<TARGET_OBJECTS:kernels>
  92. $<TARGET_OBJECTS:kernels-image>
  93. $<TARGET_OBJECTS:lite-cv>
  94. $<TARGET_OBJECTS:kernels-data>
  95. $<TARGET_OBJECTS:cpp-API>
  96. $<TARGET_OBJECTS:engine-ir-datasetops>
  97. $<TARGET_OBJECTS:engine-ir-datasetops-source>
  98. $<TARGET_OBJECTS:engine-ir-cache>
  99. $<TARGET_OBJECTS:kernels-soft-dvpp-image>
  100. $<TARGET_OBJECTS:soft-dvpp-utils>
  101. $<TARGET_OBJECTS:engine-datasetops-source>
  102. $<TARGET_OBJECTS:engine-datasetops-source-sampler>
  103. $<TARGET_OBJECTS:engine-datasetops-mapop>
  104. $<TARGET_OBJECTS:engine-gnn>
  105. $<TARGET_OBJECTS:engine-perf>
  106. $<TARGET_OBJECTS:engine-datasetops>
  107. $<TARGET_OBJECTS:engine-opt>
  108. $<TARGET_OBJECTS:engine-cache-client>
  109. $<TARGET_OBJECTS:engine>
  110. $<TARGET_OBJECTS:text>
  111. $<TARGET_OBJECTS:text-kernels>
  112. )
  113. if (ENABLE_PYTHON)
  114. set(submodules
  115. ${submodules}
  116. $<TARGET_OBJECTS:APItoPython>)
  117. endif()
  118. if (ENABLE_TDTQUE)
  119. add_library(_c_dataengine SHARED ${submodules} $<TARGET_OBJECTS:engine-tdt>)
  120. else ()
  121. add_library(_c_dataengine SHARED ${submodules})
  122. endif ()
  123. if (ENABLE_PYTHON)
  124. set_target_properties(_c_dataengine PROPERTIES
  125. PREFIX "${PYTHON_MODULE_PREFIX}"
  126. SUFFIX "${PYTHON_MODULE_EXTENSION}"
  127. )
  128. endif()
  129. ######################################################################
  130. ################# Link with external libraries ########################
  131. target_link_libraries(_c_dataengine PRIVATE mindspore mindspore_gvar)
  132. if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
  133. if (ENABLE_PYTHON)
  134. target_link_libraries(_c_dataengine PRIVATE mindspore::pybind11_module ${PYTHON_LIBRARIES} ${SECUREC_LIBRARY})
  135. else()
  136. target_link_libraries(_c_dataengine PRIVATE ${SECUREC_LIBRARY})
  137. endif()
  138. else()
  139. set(ICU_LIB mindspore::icuuc mindspore::icudata mindspore::icui18n)
  140. if (ENABLE_PYTHON)
  141. target_link_libraries(_c_dataengine PRIVATE mindspore::pybind11_module -ldl ${SECUREC_LIBRARY})
  142. else()
  143. target_link_libraries(_c_dataengine PRIVATE -ldl ${SECUREC_LIBRARY})
  144. endif()
  145. target_link_libraries(_c_dataengine PUBLIC mindspore::sentencepiece)
  146. endif()
  147. target_link_libraries(_c_dataengine PUBLIC mindspore::jpeg_turbo mindspore::turbojpeg mindspore::opencv_core mindspore::opencv_imgcodecs
  148. mindspore::opencv_imgproc mindspore::tinyxml2 mindspore::sentencepiece_train ${ICU_LIB})
  149. if (ENABLE_GPUQUE)
  150. target_link_libraries(_c_dataengine PRIVATE gpu_queue
  151. ${CUDNN_LIBRARY_PATH}
  152. ${CUDA_PATH}/lib64/libcudart.so
  153. ${CUDA_PATH}/lib64/stubs/libcuda.so)
  154. endif ()
  155. if (ENABLE_TDTQUE)
  156. target_link_libraries(_c_dataengine PRIVATE ${TSDCLIENT})
  157. endif ()
  158. add_dependencies(_c_dataengine _c_mindrecord)
  159. if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
  160. set(MINDRECORD_LINK_OBJECT ${CMAKE_BINARY_DIR}/mindspore/ccsrc/minddata/mindrecord/CMakeFiles/_c_mindrecord.dir/objects.a)
  161. target_link_libraries(_c_dataengine PRIVATE _c_mindrecord ${MINDRECORD_LINK_OBJECT} mindspore::sqlite)
  162. else()
  163. target_link_libraries(_c_dataengine PRIVATE _c_mindrecord)
  164. if (ENABLE_CPU AND (ENABLE_D OR ENABLE_GPU))
  165. target_link_libraries(_c_dataengine PRIVATE mindspore::pslite ${zeromq_DIRPATH}/zmq_install/lib/libzmq.a)
  166. if (${ENABLE_IBVERBS} STREQUAL "ON")
  167. target_link_libraries(_c_dataengine PRIVATE ibverbs rdmacm)
  168. endif()
  169. endif()
  170. endif()
  171. if (USE_GLOG)
  172. target_link_libraries(_c_dataengine PRIVATE mindspore::glog)
  173. else()
  174. if (CMAKE_SYSTEM_NAME MATCHES "Linux")
  175. target_link_options(_c_dataengine PRIVATE -Wl,-init,mindspore_log_init)
  176. elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin")
  177. set_target_properties(_c_dataengine PROPERTIES MACOSX_RPATH ON)
  178. endif ()
  179. endif()
  180. if (MS_BUILD_GRPC)
  181. target_link_libraries(_c_dataengine PRIVATE mindspore::grpc++)
  182. endif()