forked from JiaoXianjun/LTE-Cell-Scanner
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
96 lines (79 loc) · 2.79 KB
/
CMakeLists.txt
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
CMAKE_MINIMUM_REQUIRED( VERSION 2.8.4 )
# allow more human readable "if then else" constructs
#SET( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE )
# Add the local Find*.cmake scripts
LIST (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
PROJECT( CellSearch )
ENABLE_TESTING()
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb -Wall")
SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Werror -ggdb -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC")
# Set default build type
IF( NOT CMAKE_BUILD_TYPE )
SET( CMAKE_BUILD_TYPE "release" )
ENDIF()
# Find needed packages.
IF (USE_OPENCL MATCHES NOTFOUND)
set(USE_OPENCL 1)
ENDIF (USE_OPENCL MATCHES NOTFOUND)
IF (USE_OPENCL MATCHES 0)
MESSAGE(STATUS "Avoid OPENCL")
SET(OPENCL_FOUND "NO")
SET( USE_OPENCL "NO_OPENCL")
ELSE (USE_OPENCL MATCHES 0)
MESSAGE(STATUS "Try to find and use OPENCL")
FIND_PACKAGE( OPENCL )
IF ( OPENCL_FOUND )
# MESSAGE(STATUS "Found OpenCL: ${OPENCL_LIBRARIES}")
INCLUDE_DIRECTORIES("${OPENCL_INCLUDE_DIR}")
SET( USE_OPENCL "USE_OPENCL")
ELSE ( OPENCL_FOUND )
SET( USE_OPENCL "NO_OPENCL")
ENDIF ( OPENCL_FOUND )
ENDIF (USE_OPENCL MATCHES 0)
FIND_PACKAGE( OpenMP )
if (OPENMP_FOUND)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()
FIND_PACKAGE( Boost COMPONENTS thread system REQUIRED )
INCLUDE_DIRECTORIES("${Boost_INCLUDE_DIRS}")
FIND_PACKAGE( ITPP REQUIRED )
INCLUDE_DIRECTORIES("${ITPP_INCLUDE_DIR}")
FIND_PACKAGE( BLAS REQUIRED )
FIND_PACKAGE( LAPACK REQUIRED )
FIND_PACKAGE( FFTW REQUIRED )
INCLUDE_DIRECTORIES("${FFTW_INCLUDE_DIR}")
FIND_PACKAGE( RTLSDR REQUIRED )
INCLUDE_DIRECTORIES("${RTLSDR_INCLUDE_DIR}")
FIND_PACKAGE( HACKRF )
IF ( HACKRF_FOUND )
INCLUDE_DIRECTORIES("${HACKRF_INCLUDE_DIR}")
MESSAGE(STATUS "Found HACKRF: ${HACKRF_LIBRARIES}")
SET( HAVE_HACKRF "HAVE_HACKRF")
ELSE ( HACKRF_FOUND )
MESSAGE(STATUS "HACKRF not found")
SET( HAVE_HACKRF "NO_HACKRF")
ENDIF ( HACKRF_FOUND )
FIND_PACKAGE( Curses REQUIRED )
INCLUDE_DIRECTORIES("${CURSES_INCLUDE_DIR}")
# Add version information to build
SET( ${PROJECT_NAME}_MAJOR_VERSION 1 )
SET( ${PROJECT_NAME}_MINOR_VERSION 1 )
SET( ${PROJECT_NAME}_PATCH_LEVEL 0 )
CONFIGURE_FILE (
"${PROJECT_SOURCE_DIR}/include/common.h.in"
"${PROJECT_BINARY_DIR}/include/common.h"
)
# Where .h files are located
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/include")
INCLUDE_DIRECTORIES("${PROJECT_BINARY_DIR}/include")
# Descend into subdirectories
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(test)
# Uninstall target
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake)