MNN/test/CMakeLists.txt

45 lines
1.5 KiB
CMake

set(TEST_DEPS ${MNN_DEPS})
if(MNN_WITH_PLUGIN)
include(${CMAKE_CURRENT_LIST_DIR}/plugin/CMakeLists.txt)
list(APPEND TEST_DEPS plugin_matmul)
endif()
if(APPLE)
file(GLOB_RECURSE Files ${CMAKE_CURRENT_LIST_DIR}/*.cpp ${CMAKE_CURRENT_LIST_DIR}/*.mm)
else()
file(GLOB_RECURSE Files ${CMAKE_CURRENT_LIST_DIR}/*.cpp)
endif()
if(NOT MNN_BUILD_TRAIN)
file(GLOB_RECURSE GradTestFiles ${CMAKE_CURRENT_LIST_DIR}/grad/*.cpp)
file(GLOB_RECURSE NNTestFiles ${CMAKE_CURRENT_LIST_DIR}/nn/*.cpp)
list(REMOVE_ITEM Files ${GradTestFiles} ${NNTestFiles})
endif()
add_executable(run_test.out ${Files})
target_link_libraries(run_test.out ${MNN_DEPS})
if (WIN32)
target_compile_options(run_test.out PRIVATE /bigobj)
endif()
if (MNN_SUPPORT_BF16)
target_compile_options(run_test.out PRIVATE -DMNN_SUPPORT_BF16)
endif()
if (NOT MNN_BUILD_SHARED_LIBS)
if(APPLE)
set(TEST_DEPS -Wl,-all_load ${TEST_DEPS} -Wl,-noall_load)
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(TEST_DEPS -Wl,--whole-archive ${TEST_DEPS} -Wl,--no-whole-archive)
elseif(MSVC)
foreach (DEPEND ${TEST_DEPS})
target_link_options(run_test.out PRIVATE /WHOLEARCHIVE:$<TARGET_FILE:${DEPEND}>)
endforeach ()
endif()
else()
target_link_libraries(run_test.out ${TEST_DEPS})
endif()
target_include_directories(run_test.out PRIVATE ${CMAKE_CURRENT_LIST_DIR}/)
if (APPLE)
find_library(FOUNDATION Foundation REQUIRED)
target_link_libraries(run_test.out ${FOUNDATION})
endif()