summaryrefslogtreecommitdiff
path: root/src/caffe/CMakeLists.txt
blob: dda072688f8c8e6066447536c532cb5547097b40 (plain)
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
project( CaffeSrc )


add_subdirectory(proto)

#    Recursively find source files
##    test sources
file(GLOB_RECURSE TEST_CPP_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test_*.cpp)

##    all cpp sources
file(GLOB_RECURSE CPP_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)

##    remove test sources from cpp sources
list(REMOVE_ITEM CPP_SOURCES ${TEST_CPP_SOURCES})

add_library(caffe ${CPP_SOURCES})
# both depend on proto
add_dependencies(caffe proto)

#    cuda sources
if(NOT CPU_ONLY)
    file(GLOB_RECURSE CU_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cu)
    file(GLOB_RECURSE TEST_CU_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test_*.cu)
    list(REMOVE_ITEM CU_SOURCES ${TEST_CU_SOURCES})
    cuda_add_library(caffe_cu ${CU_SOURCES})
    add_dependencies(caffe_cu proto)
    target_link_libraries(caffe caffe_cu
        ${CUDA_CUBLAS_LIBRARIES}
        ${CUDA_curand_LIBRARY}
    )
endif()

target_link_libraries(caffe proto
        ${BLAS_LIBRARIES}
        ${Boost_LIBRARIES}
        ${GFLAGS_LIBRARIES}
        ${GLOG_LIBRARIES}
        ${HDF5_LIBRARIES}
        ${LEVELDB_LIBS}
        ${LMDB_LIBRARIES}
        ${OpenCV_LIBS}
        ${CMAKE_THREAD_LIBS_INIT}
)

#set output directory
set_target_properties(caffe PROPERTIES
        ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
        LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
)

add_subdirectory(test)

###    Install    #################################################################################

install(TARGETS caffe DESTINATION lib)