Update release_notes.md
[platform/upstream/caffeonacl.git] / python / CMakeLists.txt
1 if(NOT HAVE_PYTHON)
2   message(STATUS "Python interface is disabled or not all required dependencies found. Building without it...")
3   return()
4 endif()
5
6 file(GLOB_RECURSE python_srcs ${PROJECT_SOURCE_DIR}/python/*.cpp)
7
8 add_library(pycaffe SHARED ${python_srcs})
9 caffe_default_properties(pycaffe)
10 set_target_properties(pycaffe PROPERTIES PREFIX "" OUTPUT_NAME "_caffe")
11 target_include_directories(pycaffe PUBLIC ${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIR})
12 target_link_libraries(pycaffe PUBLIC ${Caffe_LINK} ${PYTHON_LIBRARIES})
13
14 if(UNIX OR APPLE)
15     set(__linkname "${PROJECT_SOURCE_DIR}/python/caffe/_caffe.so")
16     add_custom_command(TARGET pycaffe POST_BUILD
17                        COMMAND ln -sf $<TARGET_LINKER_FILE:pycaffe> "${__linkname}"
18                        COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/python/caffe/proto
19                        COMMAND touch ${PROJECT_SOURCE_DIR}/python/caffe/proto/__init__.py
20                        COMMAND cp ${proto_gen_folder}/*.py ${PROJECT_SOURCE_DIR}/python/caffe/proto/
21                        COMMENT "Creating symlink ${__linkname} -> ${PROJECT_BINARY_DIR}/lib/_caffe${Caffe_POSTFIX}.so")
22 endif()
23
24 # ---[ Install
25 # scripts
26 file(GLOB python_files *.py requirements.txt)
27 install(FILES ${python_files} DESTINATION python)
28
29 # module
30 install(DIRECTORY caffe
31     DESTINATION python
32     FILES_MATCHING
33     PATTERN "*.py"
34     PATTERN "ilsvrc_2012_mean.npy"
35     PATTERN "test" EXCLUDE
36     )
37
38 # _caffe.so
39 install(TARGETS pycaffe  DESTINATION python/caffe)
40