]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - jacinto-ai/caffe-jacinto.git/blob - CMakeLists.txt
Merge pull request #3132 from bwilbertz/LastIterationLoss
[jacinto-ai/caffe-jacinto.git] / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.8.7)
2 if(POLICY CMP0046)
3   cmake_policy(SET CMP0046 NEW)
4 endif()
5 if(POLICY CMP0054)
6   cmake_policy(SET CMP0054 NEW)
7 endif()
9 # ---[ Caffe project
10 project(Caffe C CXX)
12 # ---[ Caffe version
13 set(CAFFE_TARGET_VERSION "1.0.0-rc3")
14 set(CAFFE_TARGET_SOVERSION "1.0.0-rc3")
15 add_definitions(-DCAFFE_VERSION=${CAFFE_TARGET_VERSION})
17 # ---[ Using cmake scripts and modules
18 list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules)
20 include(ExternalProject)
22 include(cmake/Utils.cmake)
23 include(cmake/Targets.cmake)
24 include(cmake/Misc.cmake)
25 include(cmake/Summary.cmake)
26 include(cmake/ConfigGen.cmake)
28 # ---[ Options
29 caffe_option(CPU_ONLY  "Build Caffe without CUDA support" OFF) # TODO: rename to USE_CUDA
30 caffe_option(USE_CUDNN "Build Caffe with cuDNN library support" ON IF NOT CPU_ONLY)
31 caffe_option(BUILD_SHARED_LIBS "Build shared libraries" ON)
32 caffe_option(BUILD_python "Build Python wrapper" ON)
33 set(python_version "2" CACHE STRING "Specify which Python version to use")
34 caffe_option(BUILD_matlab "Build Matlab wrapper" OFF IF UNIX OR APPLE)
35 caffe_option(BUILD_docs   "Build documentation" ON IF UNIX OR APPLE)
36 caffe_option(BUILD_python_layer "Build the Caffe Python layer" ON)
37 caffe_option(USE_OPENCV "Build with OpenCV support" ON)
38 caffe_option(USE_LEVELDB "Build with levelDB" ON)
39 caffe_option(USE_LMDB "Build with lmdb" ON)
40 caffe_option(ALLOW_LMDB_NOLOCK "Allow MDB_NOLOCK when reading LMDB files (only if necessary)" OFF)
42 # ---[ Dependencies
43 include(cmake/Dependencies.cmake)
45 # ---[ Flags
46 if(UNIX OR APPLE)
47   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wall")
48 endif()
50 if(USE_libstdcpp)
51   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libstdc++")
52   message("-- Warning: forcing libstdc++ (controlled by USE_libstdcpp option in cmake)")
53 endif()
55 add_definitions(-DGTEST_USE_OWN_TR1_TUPLE)
57 # ---[ Warnings
58 caffe_warnings_disable(CMAKE_CXX_FLAGS -Wno-sign-compare -Wno-uninitialized)
60 # ---[ Config generation
61 configure_file(cmake/Templates/caffe_config.h.in "${PROJECT_BINARY_DIR}/caffe_config.h")
63 # ---[ Includes
64 set(Caffe_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include)
65 include_directories(${Caffe_INCLUDE_DIR} ${PROJECT_BINARY_DIR})
66 include_directories(BEFORE src) # This is needed for gtest.
68 # ---[ Subdirectories
69 add_subdirectory(src/gtest)
70 add_subdirectory(src/caffe)
71 add_subdirectory(tools)
72 add_subdirectory(examples)
73 add_subdirectory(python)
74 add_subdirectory(matlab)
75 add_subdirectory(docs)
77 # ---[ Linter target
78 add_custom_target(lint COMMAND ${CMAKE_COMMAND} -P ${PROJECT_SOURCE_DIR}/cmake/lint.cmake)
80 # ---[ pytest target
81 if(BUILD_python)
82   add_custom_target(pytest COMMAND python${python_version} -m unittest discover -s caffe/test WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/python )
83   add_dependencies(pytest pycaffe)
84 endif()
86 # ---[ Configuration summary
87 caffe_print_configuration_summary()
89 # ---[ Export configs generation
90 caffe_generate_export_configs()