/
CMakeLists.txt
100 lines (83 loc) · 2.46 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
96
97
98
99
cmake_minimum_required(VERSION 2.8)
project(vsudoku)
find_file(TRAINING_SET_PATH training_set ${CMAKE_CURRENT_SOURCE_DIR})
add_definitions(-std=c++11
-pedantic
-O3
-DTRAINING_DATA_DIR="${TRAINING_SET_PATH}/"
-DUSE_SVM_CLASSIFIER)
set(CMAKE_BUILD_TYPE "RELEASE")
macro(add_sources)
file(RELATIVE_PATH _relPath "${CMAKE_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
foreach(_src ${ARGN})
if(_relPath)
list(APPEND SOURCES "${_relPath}/${_src}")
else()
list(APPEND SOURCES "${_src}")
endif()
endforeach()
if(_relPath)
# propagate SRCS to parent directory
set(SOURCES ${SOURCES} PARENT_SCOPE)
endif()
endmacro()
macro(add_headers)
file(RELATIVE_PATH _relPath "${CMAKE_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
foreach(_src ${ARGN})
if(_relPath)
list(APPEND HEADERS "${_relPath}/${_src}")
else()
list(APPEND HEADERS "${_src}")
endif()
endforeach()
if(_relPath)
# propagate SRCS to parent directory
set(HEADERS ${HEADERS} PARENT_SCOPE)
endif()
endmacro()
macro(add_qtforms)
file(RELATIVE_PATH _relPath "${CMAKE_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
foreach(_src ${ARGN})
if(_relPath)
list(APPEND QT_FORMS "${_relPath}/${_src}")
else()
list(APPEND QT_FORMS "${_src}")
endif()
endforeach()
if(_relPath)
# propagate SRCS to parent directory
set(QT_FORMS ${QT_FORMS} PARENT_SCOPE)
endif()
endmacro()
macro(forward_vars)
set(SOURCES ${SOURCES} PARENT_SCOPE)
set(HEADERS ${HEADERS} PARENT_SCOPE)
set(QT_FORMS ${QT_FORMS} PARENT_SCOPE)
endmacro()
add_subdirectory(source)
add_subdirectory(include)
add_subdirectory(ui)
include_directories(include)
find_package(OpenCV REQUIRED)
set(LIBS ${OpenCV_LIBS})
if(${USE_QT_5} MATCHES "1")
message("Using Qt5")
find_package(Qt5Widgets REQUIRED)
qt5_wrap_ui(QT_FORMS_HEADERS ${QT_FORMS})
else()
message("Using Qt4")
find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})
qt4_wrap_ui(QT_FORMS_HEADERS ${QT_FORMS})
set(LIBS ${LIBS} ${QT_LIBRARIES})
endif()
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_executable(vsudoku
${SOURCES}
${HEADERS}
${QT_FORMS_HEADERS})
if(${USE_QT_5} MATCHES "1")
qt5_use_modules(vsudoku Widgets)
endif()
target_link_libraries(vsudoku ${LIBS})