--- /dev/null
+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()