diff --git a/cmake/external/eigen.cmake b/cmake/external/eigen.cmake index d49c8d601102cf865287c33349bff5eee6a90f6d..eb6c0cef5746e9cc7328a39d2699fbc8ea0d7f57 100644 --- a/cmake/external/eigen.cmake +++ b/cmake/external/eigen.cmake @@ -29,8 +29,10 @@ add_dependencies(eigen3 extern_eigen3) LIST(APPEND external_project_dependencies eigen3) -IF(NOT WITH_C_API AND WITH_FLUID) - INSTALL(FILES ${EIGEN_INCLUDE_DIR}/Eigen/Core DESTINATION third_party/eigen3/Eigen) - INSTALL(DIRECTORY ${EIGEN_INCLUDE_DIR}/Eigen/src DESTINATION third_party/eigen3/Eigen) - INSTALL(DIRECTORY ${EIGEN_INCLUDE_DIR}/unsupported/Eigen DESTINATION third_party/eigen3/unsupported) -ENDIF() +set(lib_dir "${CMAKE_INSTALL_PREFIX}/third_party/eigen3") +add_custom_target(eigen3_lib + COMMAND mkdir -p "${lib_dir}/Eigen" "${lib_dir}/unsupported" + COMMAND cp "${EIGEN_INCLUDE_DIR}/Eigen/Core" "${lib_dir}/Eigen" + COMMAND cp -r "${EIGEN_INCLUDE_DIR}/Eigen/src" "${lib_dir}/Eigen" + COMMAND cp -r "${EIGEN_INCLUDE_DIR}/unsupported/Eigen" "${lib_dir}/unsupported" +) diff --git a/cmake/external/gflags.cmake b/cmake/external/gflags.cmake index 60946304541a20809276c3e665d8524baf209006..9cbc376ba0edc3535b480a4adb6e0fee8ba112ce 100644 --- a/cmake/external/gflags.cmake +++ b/cmake/external/gflags.cmake @@ -52,7 +52,7 @@ ADD_DEPENDENCIES(gflags extern_gflags) LIST(APPEND external_project_dependencies gflags) -IF(WITH_C_API OR WITH_FLUID) +IF(WITH_C_API) INSTALL(DIRECTORY ${GFLAGS_INCLUDE_DIR} DESTINATION third_party/gflags) IF(ANDROID) INSTALL(FILES ${GFLAGS_LIBRARIES} DESTINATION third_party/gflags/lib/${ANDROID_ABI}) @@ -60,3 +60,10 @@ IF(WITH_C_API OR WITH_FLUID) INSTALL(FILES ${GFLAGS_LIBRARIES} DESTINATION third_party/gflags/lib) ENDIF() ENDIF() + +set(lib_dir "${CMAKE_INSTALL_PREFIX}/third_party/install/gflags") +add_custom_target(gflags_lib + COMMAND mkdir -p "${lib_dir}/lib" + COMMAND cp -r "${GFLAGS_INCLUDE_DIR}" "${lib_dir}" + COMMAND cp "${GFLAGS_LIBRARIES}" "${lib_dir}/lib" +) diff --git a/cmake/external/glog.cmake b/cmake/external/glog.cmake index 382fbda3b5cfeba893f03871cf65498d20804f36..0031225a6cb633c2ade0366bf3fdb17194ebd56c 100644 --- a/cmake/external/glog.cmake +++ b/cmake/external/glog.cmake @@ -68,7 +68,7 @@ LINK_LIBRARIES(glog gflags) LIST(APPEND external_project_dependencies glog) -IF(WITH_C_API OR WITH_FLUID) +IF(WITH_C_API) INSTALL(DIRECTORY ${GLOG_INCLUDE_DIR} DESTINATION third_party/glog) IF(ANDROID) INSTALL(FILES ${GLOG_LIBRARIES} DESTINATION third_party/glog/lib/${ANDROID_ABI}) @@ -76,3 +76,10 @@ IF(WITH_C_API OR WITH_FLUID) INSTALL(FILES ${GLOG_LIBRARIES} DESTINATION third_party/glog/lib) ENDIF() ENDIF() + +set(lib_dir "${CMAKE_INSTALL_PREFIX}/third_party/install/glog") +add_custom_target(glog_lib + COMMAND mkdir -p "${lib_dir}/lib" + COMMAND cp -r "${GLOG_INCLUDE_DIR}" "${lib_dir}" + COMMAND cp "${GLOG_LIBRARIES}" "${lib_dir}/lib" +) diff --git a/cmake/external/protobuf.cmake b/cmake/external/protobuf.cmake index 365a370a9cfb708379bcff18ae6aa0725d420ae1..ff3d38a691a99d51671e22ba82371371f2a6ed8e 100644 --- a/cmake/external/protobuf.cmake +++ b/cmake/external/protobuf.cmake @@ -250,7 +250,7 @@ IF(NOT PROTOBUF_FOUND) SET(PROTOBUF_PROTOC_LIBRARY ${extern_protobuf_PROTOC_LIBRARY} CACHE FILEPATH "protoc library." FORCE) - IF(WITH_C_API OR WITH_FLUID) + IF(WITH_C_API) INSTALL(DIRECTORY ${PROTOBUF_INCLUDE_DIR} DESTINATION third_party/protobuf) IF(ANDROID) INSTALL(FILES ${PROTOBUF_LITE_LIBRARY} DESTINATION third_party/protobuf/lib/${ANDROID_ABI}) @@ -259,6 +259,13 @@ IF(NOT PROTOBUF_FOUND) ENDIF() ENDIF() + set(lib_dir "${CMAKE_INSTALL_PREFIX}/third_party/install/protobuf") + add_custom_target(protobuf_lib + COMMAND mkdir -p "${lib_dir}/lib" + COMMAND cp -r "${PROTOBUF_INCLUDE_DIR}" "${lib_dir}" + COMMAND cp "${PROTOBUF_LITE_LIBRARY}" "${lib_dir}/lib" + ) + IF(CMAKE_CROSSCOMPILING) PROMPT_PROTOBUF_LIB(protobuf_host extern_protobuf) ELSE() diff --git a/paddle/framework/CMakeLists.txt b/paddle/framework/CMakeLists.txt index 8c28709a68bec4fca5acaf2ec74b6d02402a6139..d394fa5d10d502d8fadbb48b6b85e4884f20b70d 100644 --- a/paddle/framework/CMakeLists.txt +++ b/paddle/framework/CMakeLists.txt @@ -92,11 +92,12 @@ cc_test(init_test SRCS init_test.cc DEPS init) cc_test(op_kernel_type_test SRCS op_kernel_type_test.cc DEPS place device_context framework_proto) cc_test(cow_ptr_tests SRCS details/cow_ptr_test.cc) -if(NOT WITH_C_API AND WITH_FLUID) - file(GLOB FRAMEWORK_HEADERS *.h) - install(FILES ${FRAMEWORK_HEADERS} DESTINATION include/paddle/framework) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/framework.pb.h DESTINATION include/paddle/framework) - install(FILES details/cow_ptr.h details/op_registry.h DESTINATION include/paddle/framework/details) -endif() +set(lib_dir "${CMAKE_INSTALL_PREFIX}/paddle/framework") +add_custom_target(framework_lib DEPENDS framework_py_proto + COMMAND mkdir -p "${lib_dir}/details" + COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/*.h" "${lib_dir}" + COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/details/*.h" "${lib_dir}/details" + COMMAND cp "${CMAKE_CURRENT_BINARY_DIR}/framework.pb.h" "${lib_dir}" +) cc_test(channel_test SRCS channel_test.cc) diff --git a/paddle/inference/CMakeLists.txt b/paddle/inference/CMakeLists.txt index 683aaee42a4f03d29c739bfeca688593bcc360f2..58c0c59380e7153d7a54f4be13d547c6dd1e3c0f 100644 --- a/paddle/inference/CMakeLists.txt +++ b/paddle/inference/CMakeLists.txt @@ -19,10 +19,15 @@ target_circle_link_libraries(paddle_fluid_shared SET_TARGET_PROPERTIES(paddle_fluid_shared PROPERTIES OUTPUT_NAME paddle_fluid) # install library & headers -if(NOT WITH_C_API AND WITH_FLUID) - install(FILES io.h DESTINATION include/paddle/inference) - install(TARGETS paddle_fluid_shared DESTINATION lib) -endif() +set(lib_dir "${CMAKE_INSTALL_PREFIX}/paddle/inference") +add_custom_target(inference_lib DEPENDS paddle_fluid_shared + COMMAND mkdir -p "${lib_dir}" + COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/*.h" "${lib_dir}" + COMMAND cp "${CMAKE_CURRENT_BINARY_DIR}/libpaddle_fluid.so" "${lib_dir}" +) +add_custom_target(inference_lib_dist DEPENDS + inference_lib framework_lib memory_lib platform_lib string_lib + gflags_lib glog_lib protobuf_lib eigen3_lib) add_executable(example example.cc) if(APPLE) diff --git a/paddle/memory/CMakeLists.txt b/paddle/memory/CMakeLists.txt index 496098f80423854be62dc99b8601209ff6a6b182..fad49346f2318be6413a259c9194bfcd757b7539 100644 --- a/paddle/memory/CMakeLists.txt +++ b/paddle/memory/CMakeLists.txt @@ -15,9 +15,9 @@ cc_library(paddle_memory cc_test(memory_test SRCS memory_test.cc DEPS place paddle_memory) -if(NOT WITH_C_API AND WITH_FLUID) - file(GLOB MEMORY_HEADERS *.h) - file(GLOB MEMORY_DETAIL_HEADERS detail/*.h) - install(FILES ${MEMORY_HEADERS} DESTINATION include/paddle/memory) - install(FILES ${MEMORY_DETAIL_HEADERS} DESTINATION include/paddle/memory/detail) -endif() +set(lib_dir "${CMAKE_INSTALL_PREFIX}/paddle/memory") +add_custom_target(memory_lib + COMMAND mkdir -p "${lib_dir}/detail" + COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/*.h" "${lib_dir}" + COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/detail/*.h" "${lib_dir}/detail" +) diff --git a/paddle/platform/CMakeLists.txt b/paddle/platform/CMakeLists.txt index d68caea99719b37816391f9bddcc5cac051025b2..d70530aadb8d2e0dac62081e8253667174d4a95c 100644 --- a/paddle/platform/CMakeLists.txt +++ b/paddle/platform/CMakeLists.txt @@ -40,10 +40,10 @@ nv_test(nccl_test SRCS nccl_test.cu DEPS dynload_cuda gpu_info device_context) cc_library(profiler SRCS profiler.cc DEPS device_context) cc_test(profiler_test SRCS profiler_test.cc DEPS profiler) -if(NOT WITH_C_API AND WITH_FLUID) - file(GLOB PLATFORM_HEADERS *.h) - file(GLOB PLATFORM_dynload_HEADERS dynload/*.h) - install(FILES ${PLATFORM_HEADERS} DESTINATION include/paddle/platform) - install(FILES ${PLATFORM_HEADERS} DESTINATION include/paddle/platform/dynload) - install(FILES details/device_ptr_cast.h DESTINATION include/paddle/platform/details) -endif() +set(lib_dir "${CMAKE_INSTALL_PREFIX}/paddle/platform") +add_custom_target(platform_lib + COMMAND mkdir -p "${lib_dir}/dynload" "${lib_dir}/details" + COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/*.h" "${lib_dir}" + COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/dynload/*.h" "${lib_dir}/dynload" + COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/details/*.h" "${lib_dir}/details" +) diff --git a/paddle/string/CMakeLists.txt b/paddle/string/CMakeLists.txt index 751776dbb5c00972c0b6893fcfb2e710f3f082d7..234a9a6d036fbb544a29f3eb4efa52a37188403f 100644 --- a/paddle/string/CMakeLists.txt +++ b/paddle/string/CMakeLists.txt @@ -3,8 +3,9 @@ cc_test(stringpiece_test SRCS piece_test.cc DEPS stringpiece glog gflags) cc_test(stringprintf_test SRCS printf_test.cc DEPS glog gflags) cc_test(to_string_test SRCS to_string_test.cc) -if(NOT WITH_C_API AND WITH_FLUID) - file(GLOB STRING_HEADERS *.h) - install(FILES ${STRING_HEADERS} DESTINATION include/paddle/string) - install(FILES tinyformat/tinyformat.h DESTINATION include/paddle/string/tinyformat) -endif() +set(lib_dir "${CMAKE_INSTALL_PREFIX}/paddle/string") +add_custom_target(string_lib + COMMAND mkdir -p "${lib_dir}/tinyformat" + COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/*.h" "${lib_dir}" + COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/tinyformat/*.h" "${lib_dir}/tinyformat" +)