blob: e16da0ee492926158ad9a4f6ead3ec41cac97785 [file] [log] [blame]
cmake_policy(SET CMP0069 NEW) # suppress cmake warning about IPO
set(TVM_RPC_SOURCES
main.cc
rpc_env.cc
rpc_server.cc
)
set(TVM_RPC_LINKER_LIBS "")
if(WIN32)
list(APPEND TVM_RPC_SOURCES win32_process.cc)
endif()
# Set output to same directory as the other TVM libs
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
add_executable(tvm_rpc ${TVM_RPC_SOURCES})
include(CheckIPOSupported)
check_ipo_supported(RESULT result OUTPUT output)
if(result)
set_property(TARGET tvm_rpc PROPERTY INTERPROCEDURAL_OPTIMIZATION_RELEASE TRUE)
endif()
if(WIN32)
target_compile_definitions(tvm_rpc PUBLIC -DNOMINMAX)
endif()
if (OS)
if (OS STREQUAL "Linux")
set_property(TARGET tvm_rpc PROPERTY LINK_FLAGS -lpthread)
endif()
endif()
if(USE_OPENCL)
if (ANDROID_ABI)
if(DEFINED ENV{ANDROID_NDK_MAJOR})
if($ENV{ANDROID_NDK_MAJOR} VERSION_LESS "23")
set_property(TARGET tvm_rpc PROPERTY LINK_FLAGS -fuse-ld=gold)
endif()
endif()
endif()
endif()
target_include_directories(
tvm_rpc
PUBLIC "../../include"
PUBLIC DLPACK_PATH
PUBLIC DMLC_PATH
)
if (BUILD_FOR_ANDROID AND USE_HEXAGON)
get_hexagon_sdk_property("${USE_HEXAGON_SDK}" "${USE_HEXAGON_ARCH}"
DSPRPC_LIB DSPRPC_LIB_DIRS
)
if(DSPRPC_LIB_DIRS)
link_directories(${DSPRPC_LIB_DIRS})
else()
message(WARNING "Could not locate some Hexagon SDK components")
endif()
list(APPEND TVM_RPC_LINKER_LIBS cdsprpc log)
endif()
if(BUILD_STATIC_RUNTIME)
list(APPEND TVM_RPC_LINKER_LIBS -Wl,--whole-archive tvm_runtime -Wl,--no-whole-archive)
else()
list(APPEND TVM_RPC_LINKER_LIBS tvm_runtime)
endif()
target_link_libraries(tvm_rpc ${TVM_RPC_LINKER_LIBS})