fix(cmake/whl): reduce wheel size
as some reason: some version of trt/cudnn need
-Wl,--whole-archive attribute to fix cuda issue,
target A(CMAKE OBJECT,eg megbrain/megdnn): -Wl,--whole-archive depend on trt/cudnn
target B(SHARED LIBS,eg libmegengine.so) --> A with `PUBLIC` depends
target C(SHARED LIBS,eg _impertive.so) --> B with `PUBLIC` depends,
then ld will force link fatbin section into C, which will be undesired
what`s more, attribute PUBLIC/PRIVATE do not take effect
to OBJECT library(megbrain/megdnn)
what`s more, megengine/megengine_export have to PUBLIC for
mgb/imperative target, as SRC/include depends
so we pull cudalib depend from megbrain/megdnn to
megengine/megengine_export on linux os, to finall
target at windows os, for example lar on windows
GitOrigin-RevId: b278a69e1cdcc17cfd22da80247af3fe30f6d4e8
4 years ago |
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- 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")
- 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)
- list(APPEND SOURCES ${SOURCES_})
- endif()
- endif()
-
- if(MGE_WITH_CUDA)
- file(GLOB_RECURSE SOURCES_ cuda/*.cpp)
- list(APPEND SOURCES ${SOURCES_})
-
- file(GLOB_RECURSE CUSOURCES cuda/*.cu)
- list(APPEND SOURCES ${CUSOURCES})
- endif()
-
- if(MGE_WITH_MIDOUT_PROFILE)
- list(APPEND SOURCES ${PROJECT_SOURCE_DIR}/third_party/midout/src/midout.cpp)
- endif()
-
- if(MGE_WITH_ATLAS)
- file(GLOB_RECURSE SOURCES_ atlas/*.cpp)
- list(APPEND SOURCES ${SOURCES_})
- endif()
-
- if(MGE_WITH_ROCM)
- file(GLOB_RECURSE SOURCES_ rocm/*.cpp)
- list(APPEND SOURCES ${SOURCES_})
- endif()
-
- add_executable(megdnn_test ${SOURCES})
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-narrowing")
- target_link_libraries(megdnn_test gtest)
- target_link_libraries(megdnn_test megdnn ${MGE_BLAS_LIBS} ${MGE_CUDA_LIBS})
-
- if(MGE_WITH_CUDA)
- target_link_libraries(megdnn_test cutlass)
- target_include_directories(megdnn_test PRIVATE ${CUDNN_INCLUDE_DIR})
- endif()
- if(MGE_WITH_ATLAS)
- target_link_libraries(megdnn_test atlas-stub)
- endif()
-
- target_include_directories(megdnn_test
- PRIVATE ${PROJECT_SOURCE_DIR}/third_party/midout/src)
-
- if(APPLE OR ANDROID)
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
- else()
- set(CMAKE_EXE_LINKER_FLAGS
- "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++")
- endif()
-
- if(MGE_ENABLE_COVERAGE)
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
- endif()
-
- if(MEG_WITH_ROCM)
- target_link_libraries(megdnn_test ${MGE_ROCM_LIBS})
- endif()
-
- if(UNIX)
- if(APPLE OR ANDROID)
- target_link_libraries(megdnn_test dl)
- else()
- target_link_libraries(megdnn_test dl rt)
- endif()
- endif()
|