################################################################################################ # Helper function to get all list items that begin with given prefix # Usage: # caffe_get_items_with_prefix( ) function(caffe_get_items_with_prefix prefix list_variable output_variable) set(__result "") foreach(__e ${${list_variable}}) if(__e MATCHES "^${prefix}.*") list(APPEND __result ${__e}) endif() endforeach() set(${output_variable} ${__result} PARENT_SCOPE) endfunction() ################################################################################################ # Function for generation Caffe build- and install- tree export config files # Usage: # caffe_generate_export_configs() function(caffe_generate_export_configs) set(install_cmake_suffix "share/Caffe") if(NOT HAVE_CUDA) set(HAVE_CUDA FALSE) endif() if(NOT HAVE_CUDNN) set(HAVE_CUDNN FALSE) endif() # ---[ Configure build-tree CaffeConfig.cmake file ]--- configure_file("cmake/Templates/CaffeConfig.cmake.in" "${PROJECT_BINARY_DIR}/CaffeConfig.cmake" @ONLY) # Add targets to the build-tree export set export(TARGETS caffe proto FILE "${PROJECT_BINARY_DIR}/CaffeTargets.cmake") export(PACKAGE Caffe) # ---[ Configure install-tree CaffeConfig.cmake file ]--- configure_file("cmake/Templates/CaffeConfig.cmake.in" "${PROJECT_BINARY_DIR}/cmake/CaffeConfig.cmake" @ONLY) # Install the CaffeConfig.cmake and export set to use with install-tree install(FILES "${PROJECT_BINARY_DIR}/cmake/CaffeConfig.cmake" DESTINATION ${install_cmake_suffix}) install(EXPORT CaffeTargets DESTINATION ${install_cmake_suffix}) # ---[ Configure and install version file ]--- # TODO: Lines below are commented because Caffe doesn't declare its version in headers. # When the declarations are added, modify `caffe_extract_caffe_version()` macro and uncomment # configure_file(cmake/Templates/CaffeConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/CaffeConfigVersion.cmake" @ONLY) # install(FILES "${PROJECT_BINARY_DIR}/CaffeConfigVersion.cmake" DESTINATION ${install_cmake_suffix}) endfunction()