cmake_minimum_required(VERSION 2.8.7) if(POLICY CMP0046) cmake_policy(SET CMP0046 NEW) endif() if(POLICY CMP0054) cmake_policy(SET CMP0054 NEW) endif() # ---[ cnis project project(cnis CXX) ####################################################################### # -- Build Flags option(CNIS_RECORD_PERF "Enable record performance" ON) option(CNIS_WITH_CONTRIB "Build contrib content" ON) option(CNIS_WITH_CURL "Build infer server with curl" ON) option(CNIS_USE_MAGICMIND "Build infer server with magicmind" OFF) ####################################################################### set(CNIS_VERSION_MAJOR 1) set(CNIS_VERSION_MINOR 0) set(CNIS_VERSION_PATCH 0) set(CNIS_VERSION "${CNIS_VERSION_MAJOR}.${CNIS_VERSION_MINOR}.${CNIS_VERSION_PATCH}") configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/include/cnis/config.h) find_package(MLU) # set runtime path set(CMAKE_BUILD_RPATH "$ORIGIN;${NEUWARE_HOME}/lib64;") # ---[ Google-glog find_package(Glog) find_package(Gflags) if (CNIS_WITH_CONTRIB) file(GLOB_RECURSE contrib_srcs ${CMAKE_CURRENT_SOURCE_DIR}/src/contrib/*.cpp) endif() file(GLOB_RECURSE infer_server_srcs ${CMAKE_CURRENT_SOURCE_DIR}/src/core/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/model/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/processor/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/util/*.cpp) message(STATUS "@@@@@@@@@@@ Target : cnis") add_library(cnis SHARED ${infer_server_srcs} ${contrib_srcs}) if (CNIS_WITH_CURL) find_package(CURL REQUIRED) target_compile_definitions(cnis PRIVATE CNIS_HAVE_CURL) target_include_directories(cnis PRIVATE ${CURL_INCLUDE_DIR}) target_link_libraries(cnis PUBLIC ${CURL_LIBRARIES}) endif() if (CNIS_USE_MAGICMIND) target_link_libraries(cnis PUBLIC ${MAGICMIND_RUNTIME_LIBS}) endif() if (CNIS_RECORD_PERF) target_compile_definitions(cnis PRIVATE CNIS_RECORD_PERF) endif() # ---[ cncv if (CNIS_WITH_CONTRIB AND CNCV_LIBS) target_compile_definitions(cnis PRIVATE CNIS_HAVE_CNCV) target_link_libraries(cnis PUBLIC ${CNCV_LIBS}) endif() target_include_directories(cnis PRIVATE ${NEUWARE_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../include ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/src ${GLOG_INCLUDE_DIRS} ${GFLAGS_INCLUDE_DIRS}) target_link_libraries(cnis PUBLIC ${CNDRV_LIBS} ${CNRT_LIBS} ${GLOG_LIBRARIES} ${GFLAGS_LIBRARIES} easydk) set_target_properties(cnis PROPERTIES VERSION ${CNIS_VERSION}) set_target_properties(cnis PROPERTIES SOVERSION ${CNIS_VERSION_MAJOR}) if(BUILD_TESTS) add_subdirectory(tests) endif() if(BUILD_SAMPLES) add_subdirectory(samples) endif() if (CNIS_WITH_CONTRIB) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/cnis DESTINATION include) else() install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/cnis DESTINATION include PATTERN "contrib" EXCLUDE) endif() install(TARGETS cnis LIBRARY DESTINATION lib)