summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Kosiorek <a.kosiorek@samsung.com>2014-07-23 09:41:36 +0200
committerJeff Donahue <jeff.donahue@gmail.com>2014-08-17 01:07:16 -0700
commita2a4d636c9cb4a8f071b1703acfe0aeb6f8d7771 (patch)
tree8f7f015a3aae6676a2f5a9160a7659909bf21565
parentc357810c2eed2f677c2a9b22416460a4bca14470 (diff)
downloadcaffeonacl-a2a4d636c9cb4a8f071b1703acfe0aeb6f8d7771.tar.gz
caffeonacl-a2a4d636c9cb4a8f071b1703acfe0aeb6f8d7771.tar.bz2
caffeonacl-a2a4d636c9cb4a8f071b1703acfe0aeb6f8d7771.zip
cmake build configuration for travis-ci
-rw-r--r--.travis.yml47
-rw-r--r--CMakeLists.txt5
-rw-r--r--CMakeScripts/FindSnappy.cmake33
-rw-r--r--python/CMakeLists.txt2
-rw-r--r--src/caffe/CMakeLists.txt10
-rw-r--r--src/caffe/proto/CMakeLists.txt4
-rw-r--r--src/caffe/test/CMakeLists.txt1
7 files changed, 81 insertions, 21 deletions
diff --git a/.travis.yml b/.travis.yml
index 7721de11..e5969764 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,8 +17,12 @@ before_install:
- sudo apt-get -y install wget git curl python-dev python-numpy libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler libatlas-dev libatlas-base-dev bc
install:
+ # CMake 2.8.12
+ - wget http://www.cmake.org/files/v2.8/cmake-2.8.12.tar.gz -O /tmp/cmake.tar.gz && tar -C /tmp -xvf /tmp/cmake.tar.gz && rm /tmp/cmake.tar.gz
+ - cd /tmp/cmake-2.8.12 && ./bootstrap --prefix=/usr && make -j4 && sudo make install -j4 && cd - #&& rm -r /tmp/cmake-2.8.12
+ #
- wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz -O /tmp/glog-0.3.3.tar.gz && tar -C /tmp -xzvf /tmp/glog-0.3.3.tar.gz && rm /tmp/glog-0.3.3.tar.gz
- - cd /tmp/glog-0.3.3 && ./configure && make && sudo make install && cd -
+ - cd /tmp/glog-0.3.3 && ./configure && make -j4 && sudo make install -j4 && cd -
- wget https://github.com/schuhschuh/gflags/archive/master.zip -O /tmp/gflags-master.zip && pushd /tmp/ && unzip gflags-master.zip && cd gflags-master && mkdir build && cd build && export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1 && sudo make install && popd
- curl http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1204/x86_64/cuda-repo-ubuntu1204_6.0-37_amd64.deb -o /tmp/cuda_install.deb && sudo dpkg -i /tmp/cuda_install.deb && rm /tmp/cuda_install.deb
- sudo apt-get -y update
@@ -30,7 +34,7 @@ install:
# manually since we did a partial installation.)
- sudo ln -s /usr/local/cuda-6.0 /usr/local/cuda
- curl https://gitorious.org/mdb/mdb/archive/7f038d0f15bec57b4c07aa3f31cd5564c88a1897.tar.gz -o /tmp/mdb.tar.gz && tar -C /tmp -xzvf /tmp/mdb.tar.gz && rm /tmp/mdb.tar.gz
- - cd /tmp/mdb-mdb/libraries/liblmdb/ && make && sudo make install && cd -
+ - cd /tmp/mdb-mdb/libraries/liblmdb/ && make -j4 && sudo make install -j4 && cd -
before_script:
- mv Makefile.config.example Makefile.config
@@ -38,19 +42,34 @@ before_script:
- export NUM_THREADS=4
script:
- # CPU-GPU: build only.
- - export CPU_ONLY=0
- - make --keep-going --jobs=$NUM_THREADS all
+ # CMake build.
+ - mkdir build
+ - cd build
+ ## CPU-only build
+ #- cmake -DBUILD_PYTHON=ON -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=Release -DCPU_ONLY=ON ..
+ #- make --keep-going --jobs=$NUM_THREADS
+ #- make clean
+ #- rm -rf *
+ ## GPU + CPU build
+ - cmake -DBUILD_PYTHON=ON -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=Release ..
+ - make --keep-going --jobs=$NUM_THREADS
- make clean
- # CPU-only: comprehensive.
- - export CPU_ONLY=1
- - make --keep-going --jobs=$NUM_THREADS all test warn lint
- - make runtest
- - make --jobs=$NUM_THREADS all
- - make --jobs=$NUM_THREADS test
- - make --jobs=$NUM_THREADS warn
- - make --jobs=$NUM_THREADS lint
- - make --jobs=$NUM_THREADS pycaffe
+ - cd ..
+ - rm -r build
+
+# # CPU-GPU: build only.
+# - export CPU_ONLY=0
+# - make --keep-going --jobs=$NUM_THREADS all
+# - make clean
+# # CPU-only: comprehensive.
+# - export CPU_ONLY=1
+# - make --keep-going --jobs=$NUM_THREADS all test warn lint
+# - make runtest
+# - make --jobs=$NUM_THREADS all
+# - make --jobs=$NUM_THREADS test
+# - make --jobs=$NUM_THREADS warn
+# - make --jobs=$NUM_THREADS lint
+# - make --jobs=$NUM_THREADS pycaffe
notifications:
# Emails are sent to the committer's git-configured email address by default,
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cc50a3a1..f65046d6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 2.8.8)
project( Caffe )
### Build Options ##########################################################################
@@ -29,7 +29,7 @@ enable_testing()
# Compiler Flags
set(CMAKE_CXX_COMPILER_FLAGS ${CMAKE_CXX_COMPILER_FLAGS} -Wall)
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -fPIC)
-set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE} -O3)
+set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE} )#-O3)
# Include Directories
set(${PROJECT_NAME}_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/include)
@@ -43,7 +43,6 @@ set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/CMakeScripts)
find_package(CUDA 5.5 REQUIRED)
include_directories(${CUDA_INCLUDE_DIRS})
-
### Subdirectories ##########################################################################
add_subdirectory(src/gtest)
diff --git a/CMakeScripts/FindSnappy.cmake b/CMakeScripts/FindSnappy.cmake
new file mode 100644
index 00000000..d769b442
--- /dev/null
+++ b/CMakeScripts/FindSnappy.cmake
@@ -0,0 +1,33 @@
+# Find the Snappy libraries
+#
+# The following variables are optionally searched for defaults
+# Snappy_ROOT_DIR: Base directory where all Snappy components are found
+#
+# The following are set after configuration is done:
+# Snappy_FOUND
+# Snappy_INCLUDE_DIRS
+# Snappy_LIBS
+
+find_path(SNAPPY_INCLUDE_DIR
+ NAMES snappy.h
+ HINTS ${SNAPPY_ROOT_DIR}
+ ${SNAPPY_ROOT_DIR}/include
+)
+
+find_library(SNAPPY_LIBS
+ NAMES snappy
+ HINTS ${SNAPPY_ROOT_DIR}
+ ${SNAPPY_ROOT_DIR}/lib
+)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Snappy
+ DEFAULT_MSG
+ SNAPPY_LIBS
+ SNAPPY_INCLUDE_DIR
+)
+
+mark_as_advanced(
+ SNAPPY_LIBS
+ SNAPPY_INCLUDE_DIR
+)
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index e09257c5..8642c393 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -5,7 +5,7 @@ find_package(PythonLibs REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
# Boost.Python
-find_package(Boost 1.49 COMPONENTS python REQUIRED)
+find_package(Boost 1.46 COMPONENTS python REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
file(GLOB_RECURSE Python_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
diff --git a/src/caffe/CMakeLists.txt b/src/caffe/CMakeLists.txt
index d953d0b2..300188e5 100644
--- a/src/caffe/CMakeLists.txt
+++ b/src/caffe/CMakeLists.txt
@@ -47,6 +47,14 @@ include_directories(${OpenCV_INCLUDE_DIRS})
# LevelDB
find_package(LevelDB REQUIRED)
include_directories(${LEVELDB_INCLUDE})
+if(LEVELDB_FOUND)
+ find_package(Snappy REQUIRED)
+ include_directories(${SNAPPY_INCLUDE_DIR})
+ set(LEVELDB_LIBS
+ ${LEVELDB_LIBS}
+ ${SNAPPY_LIBS}
+ )
+endif()
# LMDB
find_package(LMDB REQUIRED)
@@ -82,12 +90,12 @@ add_dependencies(caffe_cu proto)
target_link_libraries(caffe caffe_cu proto
${GLOG_LIBRARIES}
- ${CUDA_curand_LIBRARY}
${HDF5_LIBRARIES}
${OpenCV_LIBS}
${LEVELDB_LIBS}
${LMDB_LIBRARIES}
${CUDA_CUBLAS_LIBRARIES}
+ ${CUDA_curand_LIBRARY}
${BLAS_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
)
diff --git a/src/caffe/proto/CMakeLists.txt b/src/caffe/proto/CMakeLists.txt
index a4b2c00e..186a8565 100644
--- a/src/caffe/proto/CMakeLists.txt
+++ b/src/caffe/proto/CMakeLists.txt
@@ -1,4 +1,3 @@
-cmake_minimum_required(VERSION 2.8)
project( Proto )
# Google Protocol Buffers
@@ -23,6 +22,9 @@ add_library(proto
target_link_libraries(proto ${PROTOBUF_LIBRARIES})
+# Create proto include directory
+file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/include/caffe/proto)
+
# Copy proto headers to include/caffe/proto/
foreach(header ${ProtoHeaders})
diff --git a/src/caffe/test/CMakeLists.txt b/src/caffe/test/CMakeLists.txt
index f64d5da0..4eb9aa30 100644
--- a/src/caffe/test/CMakeLists.txt
+++ b/src/caffe/test/CMakeLists.txt
@@ -3,7 +3,6 @@
# All test files' names must begin with a "test_" prefix
#
#
-cmake_minimum_required(VERSION 2.8)
project( Test )
# Set CUDA Device number and CMAKE_SOURCE_DIR