set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-sign-compare") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-reorder") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch") if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-uninitialized -Wno-deprecated-declarations \ -Wno-delete-non-abstract-non-virtual-dtor \ -Wno-unused-comparison -Wno-constant-conversion \ -Wno-unknown-warning-option -Wno-macro-redefined") else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-maybe-uninitialized") endif() # fix for GCC8.0 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-class-memaccess -Wno-stringop-truncation") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-format") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes") ############################# Options ################################ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") add_definitions(-D _CRT_RAND_S) endif() if(ENABLE_ACL) add_definitions(-D ENABLE_ACL) message(STATUS "ACL module is enabled") endif() if(ENABLE_GPUQUE) add_definitions(-D ENABLE_GPUQUE) message(STATUS "GPU queue is enabled") endif() if(ENABLE_TDTQUE) add_definitions(-D ENABLE_TDTQUE) message(STATUS "TDT queue is enabled") endif() if(MS_BUILD_GRPC) set(ENABLE_CACHE true) add_definitions(-D ENABLE_CACHE) message(STATUS "Cache is enabled") endif() # conde coverage # option(ENABLE_COVERAGE "Enable code coverage report" OFF) # if(ENABLE_COVERAGE) # include(${CMAKE_SOURCE_DIR}/cmake/CodeCoverage.cmake) # append_coverage_compiler_flags() # endif() ########### Set up the include directories ########################### include_directories(${CMAKE_SOURCE_DIR}/mindspore/ccsrc) include_directories(${CMAKE_SOURCE_DIR}/mindspore/ccsrc/runtime/device/ascend/platform) include_directories(${CMAKE_BINARY_DIR}) # for protobuf generated .h include_directories(${CMAKE_SOURCE_DIR}/mindspore) include_directories(${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/mindrecord/include) include_directories(${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset) include_directories(${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/kernels/image) ###################################################################### ####################### Flags ######################################## # compile flags set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=default") if(CMAKE_SYSTEM_NAME MATCHES "Darwin") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-delete-abstract-non-virtual-dtor") else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-rpath,$ORIGIN:$ORIGIN/lib") endif() ################## Include sub-modules ############################### add_subdirectory(util) add_subdirectory(core) add_subdirectory(kernels) add_subdirectory(engine) add_subdirectory(api) add_subdirectory(audio) add_subdirectory(text) add_subdirectory(callback) add_subdirectory(plugin) ###################################################################### add_dependencies(utils core) add_dependencies(kernels-image core) add_dependencies(kernels-data core) add_dependencies(kernels-soft-dvpp-image core soft-dvpp-utils) add_dependencies(kernels core) add_dependencies(engine-datasetops-source core) add_dependencies(engine-datasetops-source-sampler core) add_dependencies(engine-datasetops core) add_dependencies(engine-datasetops-mapop core) add_dependencies(engine-opt core) add_dependencies(engine-gnn core) add_dependencies(engine core) add_dependencies(callback core) add_dependencies(audio-kernels core) add_dependencies(audio-ir core) add_dependencies(audio-ir-kernels core) add_dependencies(text core) add_dependencies(text-kernels core) add_dependencies(text-ir core) add_dependencies(text-ir-kernels core) add_dependencies(cpp-API core) add_dependencies(engine-ir-datasetops core) add_dependencies(engine-ir-datasetops-source core) add_dependencies(engine-ir-datasetops-source-samplers core) add_dependencies(engine-ir-cache core) add_dependencies(kernels-ir core) add_dependencies(kernels-ir-data core) add_dependencies(kernels-ir-vision core) if(ENABLE_ACL) add_dependencies(kernels-dvpp-image core dvpp-utils) endif() if(ENABLE_PYTHON) add_dependencies(APItoPython core) endif() if(NOT ENABLE_SECURITY) add_dependencies(engine-perf core) endif() if(ENABLE_TDTQUE) add_dependencies(engine-tdt core) endif() if(ENABLE_CACHE) add_dependencies(APItoPython engine-cache-client) add_dependencies(cpp-API engine-cache-client) add_dependencies(engine-ir-cache engine-cache-client) add_dependencies(engine-ir-datasetops engine-cache-client) add_dependencies(engine-ir-datasetops-source engine-cache-client) add_dependencies(engine-opt engine-cache-client) add_dependencies(engine-datasetops engine-cache-client) if(NOT ENABLE_SECURITY) add_dependencies(engine-perf engine-cache-client) endif() add_dependencies(engine-cache-client core) add_dependencies(engine-cache-server core) endif() ################### Create _c_dataengine Library ###################### set(submodules $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ) if(ENABLE_ACL) set(submodules ${submodules} $ $) endif() if(ENABLE_PYTHON) set(submodules ${submodules} $) endif() if(ENABLE_TDTQUE) if(NOT ENABLE_SECURITY) add_library(_c_dataengine SHARED ${submodules} $ $) else() add_library(_c_dataengine SHARED ${submodules} $) endif() else() if(NOT ENABLE_SECURITY) add_library(_c_dataengine SHARED ${submodules} $) else() add_library(_c_dataengine SHARED ${submodules}) endif() endif() if(ENABLE_PYTHON) set_target_properties(_c_dataengine PROPERTIES PREFIX "${PYTHON_MODULE_PREFIX}" SUFFIX "${PYTHON_MODULE_EXTENSION}" ) endif() ###################################################################### ################# Link with external libraries ######################## target_link_libraries(_c_dataengine PRIVATE mindspore mindspore_gvar) if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") if(ENABLE_PYTHON) target_link_libraries(_c_dataengine PRIVATE mindspore::pybind11_module ${PYTHON_LIBRARIES} ${SECUREC_LIBRARY}) else() target_link_libraries(_c_dataengine PRIVATE ${SECUREC_LIBRARY}) endif() target_link_options(_c_dataengine PRIVATE -Wl,--allow-multiple-definition) else() set(ICU_LIB mindspore::icuuc mindspore::icudata mindspore::icui18n) if(ENABLE_PYTHON) target_link_libraries(_c_dataengine PRIVATE mindspore::pybind11_module -ldl ${SECUREC_LIBRARY}) else() target_link_libraries(_c_dataengine PRIVATE -ldl ${SECUREC_LIBRARY}) endif() target_link_libraries(_c_dataengine PUBLIC mindspore::sentencepiece) endif() target_link_libraries(_c_dataengine PUBLIC mindspore::jpeg_turbo mindspore::turbojpeg mindspore::opencv_core mindspore::opencv_imgcodecs mindspore::opencv_imgproc mindspore::tinyxml2 mindspore::sentencepiece_train ${ICU_LIB}) if(ENABLE_GPUQUE) target_link_libraries(_c_dataengine PRIVATE gpu_queue ${CUDNN_LIBRARY_PATH} ${CUDA_PATH}/lib64/libcudart.so ${CUDA_PATH}/lib64/stubs/libcuda.so) endif() if(ENABLE_TDTQUE) target_link_libraries(_c_dataengine PRIVATE ${ACL} ${ACL_TDT_CHANNEL}) endif() add_dependencies(_c_dataengine _c_mindrecord) if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") set(MINDRECORD_LINK_OBJECT ${CMAKE_BINARY_DIR}/mindspore/ccsrc/minddata/mindrecord/CMakeFiles/_c_mindrecord.dir/objects.a) target_link_libraries(_c_dataengine PRIVATE _c_mindrecord ${MINDRECORD_LINK_OBJECT} mindspore::sqlite) else() target_link_libraries(_c_dataengine PRIVATE _c_mindrecord) if(ENABLE_CPU AND NOT WIN32) if(${ENABLE_IBVERBS} STREQUAL "ON") target_link_libraries(_c_dataengine PRIVATE ibverbs rdmacm) endif() target_link_libraries(_c_dataengine PRIVATE ps_cache) endif() endif() target_link_libraries(_c_dataengine PRIVATE mindspore_core mindspore_shared_lib) if(USE_GLOG) target_link_libraries(_c_dataengine PRIVATE mindspore::glog) else() if(CMAKE_SYSTEM_NAME MATCHES "Linux") target_link_options(_c_dataengine PRIVATE -Wl,-init,mindspore_log_init) elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") set_target_properties(_c_dataengine PROPERTIES MACOSX_RPATH ON) endif() endif() if(MS_BUILD_GRPC) if(NOT CMAKE_SYSTEM_NAME MATCHES "Darwin") target_link_libraries(_c_dataengine PRIVATE -Wl,--no-as-needed mindspore::grpc++) else() target_link_libraries(_c_dataengine PRIVATE mindspore::grpc++) endif() endif() if(NOT CMAKE_SYSTEM_NAME MATCHES "Darwin") set_target_properties(_c_dataengine PROPERTIES INSTALL_RPATH ${MINDSPORE_RPATH}) endif() if(CMAKE_SYSTEM_NAME MATCHES "Darwin") include(${CMAKE_SOURCE_DIR}/cmake/change_rpath.cmake) set(LINK_SOS libtinyxml libicuuc libicudata libicui18n) changerpath($ _c_dataengine "${LINK_SOS}") endif()