CMakeLists.txt 2.2 KB
Newer Older
1 2 3 4 5 6 7
include_directories("..")

file(GLOB_RECURSE SOURCES common/*.cpp naive/*.cpp dispatcher/*.cpp)
file(GLOB SOURCES_ *.cpp)
list(APPEND SOURCES ${SOURCES_})

if(NOT ${MGE_ARCH} STREQUAL "naive")
8 9 10 11 12 13 14 15
  file(GLOB_RECURSE SOURCES_ fallback/*.cpp)
  list(APPEND SOURCES ${SOURCES_})
  file(GLOB_RECURSE SOURCES_ cpu/*.cpp)
  list(APPEND SOURCES ${SOURCES_})
  if(${MGE_ARCH} STREQUAL "fallback")
    message(WARNING "build only with fallback")
  elseif(${MGE_ARCH} STREQUAL "x86_64" OR ${MGE_ARCH} STREQUAL "i386")
    file(GLOB_RECURSE SOURCES_ x86/*.cpp)
16
    list(APPEND SOURCES ${SOURCES_})
17
  endif()
18 19 20
endif()

if(MGE_WITH_CUDA)
21 22
  file(GLOB_RECURSE SOURCES_ cuda/*.cpp)
  list(APPEND SOURCES ${SOURCES_})
23

24 25
  file(GLOB_RECURSE CUSOURCES cuda/*.cu)
  list(APPEND SOURCES ${CUSOURCES})
26 27
endif()

28
if(MGE_WITH_MIDOUT_PROFILE)
29
  list(APPEND SOURCES ${PROJECT_SOURCE_DIR}/third_party/midout/src/midout.cpp)
30
endif()
31

32
if(MGE_WITH_ATLAS)
33 34
  file(GLOB_RECURSE SOURCES_ atlas/*.cpp)
  list(APPEND SOURCES ${SOURCES_})
35 36
endif()

37 38 39
if(MGE_WITH_ROCM)
  file(GLOB_RECURSE SOURCES_ rocm/*.cpp)
  list(APPEND SOURCES ${SOURCES_})
40 41
endif()

42
add_executable(megdnn_test ${SOURCES})
43
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-narrowing")
44
target_link_libraries(megdnn_test gtest)
45
target_link_libraries(megdnn_test megdnn ${MGE_BLAS_LIBS} ${MGE_CUDA_LIBS})
46

47 48 49
if(MGE_WITH_CUDA)
  target_link_libraries(megdnn_test cutlass)
  target_include_directories(megdnn_test PRIVATE ${CUDNN_INCLUDE_DIR})
50
endif()
51
if(MGE_WITH_ATLAS)
52
  target_link_libraries(megdnn_test atlas-stub)
53
endif()
54

55
target_include_directories(megdnn_test
56
                           PRIVATE ${PROJECT_SOURCE_DIR}/third_party/midout/src)
57

58
if(APPLE OR ANDROID)
59
  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
60
else()
61 62
  set(CMAKE_EXE_LINKER_FLAGS
      "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++")
63 64 65
endif()

if(MGE_ENABLE_COVERAGE)
66
  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
67 68
endif()

69 70 71
if(MEG_WITH_ROCM)
  target_link_libraries(megdnn_test ${MGE_ROCM_LIBS})
endif()
72

73
if(UNIX)
74 75 76 77 78
  if(APPLE OR ANDROID)
    target_link_libraries(megdnn_test dl)
  else()
    target_link_libraries(megdnn_test dl rt)
  endif()
79
endif()
80 81 82 83 84

install(
  TARGETS megdnn_test
  EXPORT ${MGE_EXPORT_TARGETS}
  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})