From: 박종현/동작제어Lab(SR)/Senior Engineer/삼성전자 Date: Fri, 4 May 2018 06:00:17 +0000 (+0900) Subject: Add 'Caffe' as an external module (#195) X-Git-Tag: nncc_backup~2710 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9c4fc590950226beb405fffa339a2c5e76f919bb;p=platform%2Fcore%2Fml%2Fnnfw.git Add 'Caffe' as an external module (#195) This commit adds 'Caffe' external module which builds libcaffe.so from Caffe source (with CPU_ONLY flag). Signed-off-by: Jonghyun Park --- diff --git a/cmake/packages/CaffeConfig.cmake b/cmake/packages/CaffeConfig.cmake new file mode 100644 index 0000000..026720e --- /dev/null +++ b/cmake/packages/CaffeConfig.cmake @@ -0,0 +1,76 @@ +function(_Caffe_import) + nncc_find_package(CaffeSource QUIET) + + if(NOT CaffeSource_FOUND) + set(Caffe_FOUND FALSE PARENT_SCOPE) + return() + endif(NOT CaffeSource_FOUND) + + nncc_find_package(CaffeProto QUIET) + + if(NOT CaffeProto_FOUND) + set(Caffe_FOUND FALSE PARENT_SCOPE) + return() + endif() + + find_package(Boost 1.54 COMPONENTS system thread filesystem) + + if(NOT Boost_FOUND) + set(Caffe_FOUND FALSE PARENT_SCOPE) + return() + endif() + + find_package(HDF5 COMPONENTS HL) + + if(NOT HDF5_FOUND) + set(Caffe_FOUND FALSE PARENT_SCOPE) + return() + endif() + + list(APPEND CMAKE_MODULE_PATH ${CaffeSource_DIR}/cmake/Modules) + + find_package(Atlas) + + if(NOT ATLAS_FOUND) + set(Caffe_FOUND FALSE PARENT_SCOPE) + return() + endif() + + find_package(Glog) + + if(NOT GLOG_FOUND) + set(Caffe_FOUND FALSE PARENT_SCOPE) + return() + endif() + + find_package(GFlags) + + if(NOT GFLAGS_FOUND) + set(Caffe_FOUND FALSE PARENT_SCOPE) + return() + endif() + + if(NOT TARGET caffe) + file(GLOB CORE_SOURCES "${CaffeSource_DIR}/src/caffe/*.cpp" "${CaffeSource_DIR}/src/caffe/util/*.cpp") + file(GLOB LAYER_SOURCES "${CaffeSource_DIR}/src/caffe/layers/*.cpp") + + add_library(caffe SHARED ${CORE_SOURCES} ${LAYER_SOURCES}) + target_compile_definitions(caffe PUBLIC CPU_ONLY) + target_include_directories(caffe PUBLIC ${CaffeSource_DIR}/include) + target_include_directories(caffe PRIVATE ${Boost_INCLUDE_DIRS}) + target_include_directories(caffe PRIVATE ${GLOG_INCLUDE_DIRS}) + target_include_directories(caffe PRIVATE ${GFLAGS_INCLUDE_DIRS}) + target_include_directories(caffe PRIVATE ${HDF5_INCLUDE_DIRS}) + target_include_directories(caffe PRIVATE ${Atlas_INCLUDE_DIRS}) + target_link_libraries(caffe caffeproto) + target_link_libraries(caffe ${GLOG_LIBRARIES}) + target_link_libraries(caffe ${GFLAGS_LIBRARIES}) + target_link_libraries(caffe ${Boost_LIBRARIES}) + target_link_libraries(caffe ${HDF5_LIBRARIES} ${HDF5_HL_LIBRARIES}) + target_link_libraries(caffe ${Atlas_LIBRARIES}) + endif(NOT TARGET caffe) + + set(Caffe_FOUND TRUE PARENT_SCOPE) +endfunction(_Caffe_import) + +_Caffe_import()