if(NOT HAVE_PYTHON) message(STATUS "Python interface is disabled or not all required dependencies found. Building without it...") return() endif() file(GLOB_RECURSE python_srcs ${PROJECT_SOURCE_DIR}/python/*.cpp) add_library(pycaffe SHARED ${python_srcs}) caffe_default_properties(pycaffe) set_target_properties(pycaffe PROPERTIES PREFIX "" OUTPUT_NAME "_caffe") target_include_directories(pycaffe PUBLIC ${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIR}) target_link_libraries(pycaffe PUBLIC ${Caffe_LINK} ${PYTHON_LIBRARIES}) if(UNIX OR APPLE) set(__linkname "${PROJECT_SOURCE_DIR}/python/caffe/_caffe.so") add_custom_command(TARGET pycaffe POST_BUILD COMMAND ln -sf $ "${__linkname}" COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/python/caffe/proto COMMAND touch ${PROJECT_SOURCE_DIR}/python/caffe/proto/__init__.py COMMAND cp ${proto_gen_folder}/*.py ${PROJECT_SOURCE_DIR}/python/caffe/proto/ COMMENT "Creating symlink ${__linkname} -> ${PROJECT_BINARY_DIR}/lib/_caffe${Caffe_POSTFIX}.so") endif() # ---[ Install # scripts file(GLOB python_files *.py requirements.txt) install(FILES ${python_files} DESTINATION python) # module install(DIRECTORY caffe DESTINATION python FILES_MATCHING PATTERN "*.py" PATTERN "ilsvrc_2012_mean.npy" PATTERN "test" EXCLUDE ) # _caffe.so install(TARGETS pycaffe DESTINATION python/caffe)