1set(SECURE_CXX_FLAGS "") 2if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") 3 if(WIN32) 4 set(SECURE_CXX_FLAGS "-fstack-protector-all") 5 else() 6 set(SECURE_CXX_FLAGS "-fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack") 7 endif() 8endif() 9set(_ms_tmp_CMAKE_CXX_FLAGS_F ${CMAKE_CXX_FLAGS}) 10 11if(NOT MSVC) 12 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") 13endif() 14 15set(TOP_DIR ${CMAKE_SOURCE_DIR}) 16 17include(cmake/utils.cmake) 18include(${CMAKE_SOURCE_DIR}/cmake/external_libs/robin.cmake) 19include(${CMAKE_SOURCE_DIR}/cmake/external_libs/eigen.cmake) 20include(${CMAKE_SOURCE_DIR}/cmake/external_libs/json.cmake) 21include(${CMAKE_SOURCE_DIR}/cmake/dependency_securec.cmake) 22include(${CMAKE_SOURCE_DIR}/cmake/external_libs/protobuf.cmake) 23 24if(MS_BUILD_GRPC) 25 # build dependencies of gRPC 26 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/openssl.cmake) 27 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/absl.cmake) 28 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/c-ares.cmake) 29 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/zlib.cmake) 30 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/re2.cmake) 31 # build gRPC 32 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/grpc.cmake) 33 # build event 34 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/libevent.cmake) 35endif() 36 37include(${CMAKE_SOURCE_DIR}/cmake/external_libs/pybind11.cmake) 38MESSAGE("go to link flatbuffers") 39include(${CMAKE_SOURCE_DIR}/cmake/external_libs/flatbuffers.cmake) 40if(USE_GLOG) 41 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/glog.cmake) 42endif() 43 44find_package(Python3) 45include_directories(${Python3_INCLUDE_DIRS}) 46include_directories(${CMAKE_SOURCE_DIR}/third_party) 47if(ENABLE_MPI) 48 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/ompi.cmake) 49endif() 50 51if(ENABLE_CPU) 52 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/mkl_dnn.cmake) 53endif() 54 55if(MSVC) 56 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/dirent.cmake) 57endif() 58 59if(ENABLE_GPU AND GPU_BACKEND_CUDA) 60 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/cub.cmake) 61 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/cucollections.cmake) 62 if(ENABLE_MPI) 63 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/nccl.cmake) 64 endif() 65endif() 66 67if(ENABLE_MINDDATA) 68 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/icu4c.cmake) 69 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/opencv.cmake) 70 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/sqlite.cmake) 71 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/tinyxml2.cmake) 72 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/cppjieba.cmake) 73 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/sentencepiece.cmake) 74 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/jemalloc.cmake) 75 if(ENABLE_FFMPEG) 76 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/ffmpeg.cmake) 77 endif() 78endif() 79 80if(ENABLE_MINDDATA) 81 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/jpeg_turbo.cmake) 82endif() 83 84if(ENABLE_TESTCASES OR ENABLE_CPP_ST) 85 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/gtest.cmake) 86 include(${CMAKE_SOURCE_DIR}/cmake/external_libs/mockcpp.cmake) 87endif() 88 89set(CMAKE_CXX_FLAGS ${_ms_tmp_CMAKE_CXX_FLAGS_F}) 90