11cmake_minimum_required (VERSION 2.8)
22
33project (paddle CXX C)
4- set (PADDLE_MAJOR_VERSION 0)
5- set (PADDLE_MINOR_VERSION 9)
6- set (PADDLE_PATCH_VERSION 0a0)
7- set (PADDLE_VERSION ${PADDLE_MAJOR_VERSION} .${PADDLE_MINOR_VERSION} .${PADDLE_PATCH_VERSION} )
84
95set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR} /cmake" )
106set (PROJ_ROOT ${CMAKE_SOURCE_DIR} )
117include (package)
128find_package (SWIG 2.0)
139find_package (CUDA QUIET )
1410find_package (Protobuf REQUIRED)
11+
12+ # Check protobuf library version.
13+ execute_process (COMMAND ${PROTOBUF_PROTOC_EXECUTABLE} --version
14+ OUTPUT_VARIABLE PROTOBUF_VERSION)
15+ string (REPLACE "libprotoc " "" PROTOBUF_VERSION ${PROTOBUF_VERSION} )
16+
17+ set (PROTOBUF_3 OFF )
18+ if (${PROTOBUF_VERSION} VERSION_GREATER "3.0.0" OR ${PROTOBUF_VERSION} VERSION_EQUAL "3.0.0" )
19+ set (PROTOBUF_3 ON )
20+ endif ()
21+
1522find_package (PythonLibs 2.7 REQUIRED)
1623find_package (PythonInterp 2.7 REQUIRED)
1724find_package (ZLIB REQUIRED)
@@ -36,6 +43,7 @@ option(WITH_RDMA "Compile PaddlePaddle with rdma support" OFF)
3643option (WITH_GLOG "Compile PaddlePaddle use glog, otherwise use a log implement internally" ${LIBGLOG_FOUND} )
3744option (WITH_GFLAGS "Compile PaddlePaddle use gflags, otherwise use a flag implement internally" ${GFLAGS_FOUND} )
3845option (WITH_TIMER "Compile PaddlePaddle use timer" OFF )
46+ option (WITH_PROFILER "Compile PaddlePaddle use gpu profiler" OFF )
3947option (WITH_TESTING "Compile and run unittest for PaddlePaddle" ${GTEST_FOUND} )
4048option (WITH_DOC "Compile PaddlePaddle with documentation" OFF )
4149option (WITH_SWIG_PY "Compile PaddlePaddle with py PaddlePaddle prediction api" ${SWIG_FOUND} )
@@ -44,7 +52,7 @@ option(ON_COVERALLS "Generating code coverage data on coveralls or not." OFF)
4452option (COVERALLS_UPLOAD "Uploading the generated coveralls json." ON )
4553
4654if (NOT CMAKE_BUILD_TYPE )
47- set (CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
55+ set (CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING
4856 "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel"
4957 FORCE)
5058endif ()
@@ -63,36 +71,16 @@ include(check_packages)
6371include (swig)
6472include (coveralls)
6573
66- # add PaddlePaddle version
67- if (DEFINED ENV{PADDLE_VERSION})
68- add_definitions (-DPADDLE_VERSION=\"$ENV{PADDLE_VERSION} \")
69- else ()
70- if (EXISTS ${PROJ_ROOT} /.svn/)
71- find_package (Subversion REQUIRED)
72- if (SUBVERSION_FOUND)
73- Subversion_WC_INFO(${PROJ_ROOT} Project)
74- add_definitions (-DPADDLE_VERSION=${Project_WC_REVISION} )
75- endif ()
76- elseif (EXISTS ${PROJ_ROOT} /.git/)
77- find_package (Git REQUIRED)
78- execute_process (
79- COMMAND ${GIT_EXECUTABLE} log -1 --format=%H
80- WORKING_DIRECTORY ${PROJ_ROOT}
81- OUTPUT_VARIABLE GIT_SHA1
82- RESULT_VARIABLE GIT_RESULT
83- ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
84- if (NOT ${GIT_RESULT} )
85- add_definitions (-DPADDLE_VERSION=\"${GIT_SHA1} \")
86- else ()
87- message (WARNING "Cannot add paddle version from git tag" )
88- endif ()
89- endif ()
90- endif ()
91-
74+ # Set PaddlePaddle version to Git tag name or Git commit ID.
75+ find_package (Git REQUIRED)
76+ # version.cmake will get the current PADDLE_VERSION
77+ include (version )
78+ add_definitions (-DPADDLE_VERSION=\"${PADDLE_VERSION} \")
9279
9380if (NOT WITH_GPU)
9481 add_definitions (-DPADDLE_ONLY_CPU)
9582 add_definitions (-DHPPL_STUB_FUNC)
83+
9684 list (APPEND CMAKE_CXX_SOURCE_FILE_EXTENSIONS cu)
9785else ()
9886 if (${CUDA_VERSION_MAJOR} GREATER 6)
@@ -114,16 +102,15 @@ else()
114102 set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler ${SSE3_FLAG} " )
115103 endif (WITH_AVX)
116104
117- if (WITH_DSO)
118- set (CUDA_LIBRARIES "" )
119- add_definitions (-DPADDLE_USE_DSO)
120- endif (WITH_DSO)
121-
122105 # Include cuda and cudnn
123106 include_directories (${CUDNN_INCLUDE_DIR} )
124107 include_directories (${CUDA_TOOLKIT_INCLUDE} )
125108endif (NOT WITH_GPU)
126109
110+ if (WITH_DSO)
111+ add_definitions (-DPADDLE_USE_DSO)
112+ endif (WITH_DSO)
113+
127114if (WITH_DOUBLE)
128115 add_definitions (-DPADDLE_TYPE_DOUBLE)
129116 set (ACCURACY double)
@@ -135,6 +122,10 @@ if(NOT WITH_TIMER)
135122 add_definitions (-DPADDLE_DISABLE_TIMER)
136123endif (NOT WITH_TIMER)
137124
125+ if (NOT WITH_PROFILER)
126+ add_definitions (-DPADDLE_DISABLE_PROFILER)
127+ endif (NOT WITH_PROFILER)
128+
138129if (WITH_AVX)
139130 set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${AVX_FLAG} " )
140131 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${AVX_FLAG} " )
0 commit comments