]> sigrok.org Git - pulseview.git/blob - CMakeLists.txt
0ed74e444af5e5284b767753f75bb897ebfde534
[pulseview.git] / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.6)
2 include(FindPkgConfig)
3
4 project(pulseview)
5
6 find_package(PkgConfig)
7 pkg_check_modules(PKGDEPS REQUIRED
8         libsigrokdecode>=0.1.0
9         libsigrok>=0.2.0
10 )
11
12 find_package(Qt4 REQUIRED)
13 find_package(Boost 1.46 COMPONENTS unit_test_framework REQUIRED)
14
15 set(VERSION 0.1.0)
16
17 set(pulseview_SOURCES
18         about.cpp
19         datasnapshot.cpp
20         logicdata.cpp
21         logicdatasnapshot.cpp
22         logicsignal.cpp
23         main.cpp
24         mainwindow.cpp
25         samplingbar.cpp
26         signaldata.cpp
27         sigsession.cpp
28         signal.cpp
29         pv/view/header.cpp
30         pv/view/ruler.cpp
31         pv/view/view.cpp
32         pv/view/viewport.cpp
33 )
34
35 set(pulseview_HEADERS
36         about.h
37         mainwindow.h
38         samplingbar.h
39         sigsession.h
40         pv/view/header.h
41         pv/view/ruler.h
42         pv/view/view.h
43         pv/view/viewport.h
44 )
45
46 set(pulseview_FORMS
47         about.ui
48 )
49
50 set(pulseview_RESOURCES
51         pulseview.qrc
52 )
53
54 set(pulseview_TEST_SOURCES
55         test/logicdatasnapshot.cpp
56         test/test.cpp
57         datasnapshot.cpp
58         logicdatasnapshot.cpp
59 )
60
61 qt4_wrap_cpp(pulseview_HEADERS_MOC ${pulseview_HEADERS})
62 qt4_wrap_ui(pulseview_FORMS_HEADERS ${pulseview_FORMS})
63 qt4_add_resources(pulseview_RESOURCES_RCC ${pulseview_RESOURCES})
64
65 include(${QT_USE_FILE})
66
67 add_definitions(${QT_DEFINITIONS})
68 add_definitions(-DAPP_VERSION="${VERSION}")
69
70 # On Windows/MinGW we need PKGDEPS_STATIC_INCLUDE_DIRS.
71 if(WIN32)
72 include_directories(
73         ${include_directories}
74         ${Boost_INCLUDE_DIRS}
75         ${PKGDEPS_STATIC_INCLUDE_DIRS}
76 )
77 else(WIN32)
78 include_directories(
79         ${include_directories}
80         ${Boost_INCLUDE_DIRS}
81         ${PKGDEPS_INCLUDE_DIRS}
82 )
83 endif(WIN32)
84
85 # On Windows/MinGW we need PKGDEPS_STATIC_LIBRARY_DIRS.
86 if(WIN32)
87 link_directories(
88         ${Boost_LIBRARY_DIRS}
89         ${PKGDEPS_STATIC_LIBRARY_DIRS}
90 )
91 else(WIN32)
92 link_directories(
93         ${Boost_LIBRARY_DIRS}
94         ${PKGDEPS_LIBRARY_DIRS}
95 )
96 endif(WIN32)
97
98 add_executable(pulseview
99         ${pulseview_SOURCES}
100         ${pulseview_HEADERS_MOC}
101         ${pulseview_FORMS_HEADERS}
102         ${pulseview_RESOURCES_RCC}
103 )
104
105 # On Windows/MinGW we need PKGDEPS_STATIC_LIBRARIES.
106 if(WIN32)
107 target_link_libraries(pulseview
108         ${Boost_LIBRARIES}
109         ${PKGDEPS_STATIC_LIBRARIES}
110         ${QT_LIBRARIES}
111 )
112 else(WIN32)
113 target_link_libraries(pulseview
114         ${Boost_LIBRARIES}
115         ${PKGDEPS_LIBRARIES}
116         ${QT_LIBRARIES}
117 )
118 endif(WIN32)
119
120 add_definitions(-DBOOST_TEST_DYN_LINK)
121
122 add_executable(pulseview-test
123         ${pulseview_TEST_SOURCES}
124 )
125
126 # On Windows/MinGW we need PKGDEPS_STATIC_LIBRARIES.
127 if(WIN32)
128 target_link_libraries(pulseview-test
129         ${Boost_LIBRARIES}
130         ${PKGDEPS_STATIC_LIBRARIES}
131         ${QT_LIBRARIES}
132 )
133 else(WIN32)
134 target_link_libraries(pulseview-test
135         ${Boost_LIBRARIES}
136         ${PKGDEPS_LIBRARIES}
137         ${QT_LIBRARIES}
138 )
139 endif(WIN32)
140
141 enable_testing()
142 add_test(test ${CMAKE_CURRENT_BINARY_DIR}/pulseview-test)