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

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter")
  2. set(MGB_TEST_DIR ${PROJECT_SOURCE_DIR}/test/src)
  3. file(GLOB_RECURSE SOURCES ../src/test/*.cpp ../src/impl/*.cpp ${MGB_TEST_DIR}/*.cpp)
  4. # disable distributed tests
  5. if(NOT MGE_WITH_DISTRIBUTED)
  6. list(FILTER SOURCES EXCLUDE REGEX ".*test/collective_comm.cpp")
  7. list(FILTER SOURCES EXCLUDE REGEX ".*test/io_remote.cpp")
  8. endif()
  9. # TODO: turn python binding into a static/object library
  10. add_executable(imperative_test ${SOURCES} ${SRCS})
  11. add_dependencies(imperative_test mgb_opdef)
  12. target_include_directories(imperative_test PRIVATE ${MGB_TEST_DIR}/include ../src/include ${MGB_OPDEF_OUT_DIR} ${CPP_REDIS_INCLUDES})
  13. # Python binding
  14. target_include_directories(imperative_test PRIVATE ${MODULE_SRC_INCLUDE} ${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIR})
  15. target_compile_definitions(imperative_test PRIVATE MODULE_NAME=C)
  16. target_compile_options(imperative_test PRIVATE -Wno-unused-parameter)
  17. set(LINK_LIBS megbrain megdnn ${MGE_CUDA_LIBS} gtest gmock pybind11::embed range-v3 nlohmann_json::nlohmann_json)
  18. if(MGE_WITH_CUDA)
  19. list(APPEND LINK_LIBS cudart)
  20. endif()
  21. if(MGE_WITH_DISTRIBUTED)
  22. list(APPEND LINK_LIBS megray)
  23. endif()
  24. target_link_libraries(imperative_test ${LINK_LIBS})
  25. if(CXX_SUPPORT_WCLASS_MEMACCESS)
  26. if(MGE_WITH_CUDA)
  27. target_compile_options(imperative_test PRIVATE "$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=-Wno-class-memaccess>"
  28. "$<$<NOT:$<COMPILE_LANGUAGE:CUDA>>:-Wno-class-memaccess>")
  29. else()
  30. target_compile_options(imperative_test PRIVATE "-Wno-class-memaccess")
  31. endif()
  32. endif()
  33. if(UNIX)
  34. if(APPLE OR ANDROID)
  35. target_link_libraries(imperative_test dl)
  36. else()
  37. target_link_libraries(imperative_test dl rt)
  38. endif()
  39. endif()
  40. install(TARGETS imperative_test RUNTIME DESTINATION test)