CMakeLists.txt 1.8 KB
Newer Older
Z
zhangjinchao01 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
set(API_SOURCES
    Arguments.cpp
    ConfigParser.cpp
    GradientMachine.cpp
    Matrix.cpp
    Parameter.cpp
    ParameterOptimizer.cpp
    SequenceGenerator.cpp
    Trainer.cpp
    Util.cpp
    Vector.cpp)
set(API_HEADER
    PaddleAPI.h
    Internal.h)

add_library(paddle_api STATIC
        ${API_SOURCES})
add_dependencies(paddle_api gen_proto_cpp)


if(WITH_GFLAGS)
  list(LENGTH "${GFLAGS_LIBRARIES}" GFLAGS_LIBRARIES_LENGTH)

  if(${GFLAGS_LIBRARIES_LENGTH} EQUAL 0 AND TARGET "${GFLAGS_LIBRARIES}")
    # Because gflags compiled by cmake, so it is imported by cmake target,
    # not a real library path. Get the real library path here.
    message(STATUS "GFLAGS Libraries is ${GFLAGS_LIBRARIES}")
    get_target_property(GFLAGS_LOCATION ${GFLAGS_LIBRARIES} LOCATION)
    message(STATUS "GFLAGS Target location is ${GFLAGS_LOCATION}")
  else()
    set(GFLAGS_LOCATION ${GFLAGS_LIBRARIES})
  endif()
endif()


configure_file(
    paddle_api_config.py.in
    ${PROJ_ROOT}/paddle/api/paddle_api_config.py
)

generate_python_api(python_swig_sources)

set(PY_PADDLE_WHEEL_NAME
${PROJ_ROOT}/paddle/py_paddle-0.1.1a10-cp27-none-linux_x86_64.whl)

# TODO(yuyang18) : make wheel name calculated by cmake
add_custom_command(OUTPUT ${PY_PADDLE_WHEEL_NAME}
    COMMAND ${PYTHON_EXECUTABLE} setup.py  bdist_wheel &&
            cp dist/*.whl . &&
            rm -rf dist py_paddle.egg-info build
    WORKING_DIRECTORY ${PROJ_ROOT}/paddle
    DEPENDS python_swig_sources
            paddle_parameter
            paddle_math
            paddle_utils
            paddle_gserver
            paddle_pserver
            paddle_trainer
            paddle_api
            paddle_cuda
)

install(FILES ${PY_PADDLE_WHEEL_NAME}
    DESTINATION opt/paddle/share/wheels)

add_custom_target(python_api_wheel ALL DEPENDS
  ${PY_PADDLE_WHEEL_NAME})

if(WITH_TESTING)
    add_subdirectory(test)
endif()