blob: a5708cb0cc86e588e14b0c397b5ae834749e21d6 (
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
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
# ---------------------------------------------------------------------------
# Copyright (c) 2013-2014 Kyle Lutz <kyle.r.lutz@gmail.com>
#
# Distributed under the Boost Software License, Version 1.0
# See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt
#
# ---------------------------------------------------------------------------
include_directories(../include)
set(EXAMPLES
amd_cpp_kernel
black_scholes
copy_data
fizz_buzz
hello_world
host_sort
inline_ptx
longest_vector
list_devices
mapped_view
memory_limits
monte_carlo
point_centroid
price_cross
print_vector
sort_vector
simple_kernel
time_copy
transform_sqrt
vector_addition
simple_moving_average
matrix_transpose
)
# boost library link dependencies
set(EXAMPLE_BOOST_COMPONENTS program_options)
if (${BOOST_COMPUTE_USE_OFFLINE_CACHE})
set(EXAMPLE_BOOST_COMPONENTS ${EXAMPLE_BOOST_COMPONENTS} system filesystem)
endif()
if(${BOOST_COMPUTE_THREAD_SAFE} AND NOT ${BOOST_COMPUTE_USE_CPP11})
set(EXAMPLE_BOOST_COMPONENTS ${EXAMPLE_BOOST_COMPONENTS} system thread)
endif()
if(MSVC AND EXAMPLE_BOOST_COMPONENTS)
set(EXAMPLE_BOOST_COMPONENTS ${EXAMPLE_BOOST_COMPONENTS} chrono)
endif()
if(EXAMPLE_BOOST_COMPONENTS)
list(REMOVE_DUPLICATES EXAMPLE_BOOST_COMPONENTS)
endif()
find_package(Boost 1.54 REQUIRED COMPONENTS ${EXAMPLE_BOOST_COMPONENTS})
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
foreach(EXAMPLE ${EXAMPLES})
add_executable(${EXAMPLE} ${EXAMPLE}.cpp)
target_link_libraries(${EXAMPLE} ${OpenCL_LIBRARIES} ${Boost_LIBRARIES})
# add example program to list of tests (if testing is enabled)
if(${BOOST_COMPUTE_BUILD_TESTS})
add_test("example.${EXAMPLE}" ${EXAMPLE})
endif()
endforeach()
# opencl test example
add_executable(opencl_test opencl_test.cpp)
target_link_libraries(opencl_test ${OpenCL_LIBRARIES})
# eigen examples
if(${BOOST_COMPUTE_HAVE_EIGEN})
find_package(Eigen REQUIRED)
include_directories(SYSTEM ${EIGEN_INCLUDE_DIRS})
add_executable(batched_determinant batched_determinant.cpp)
target_link_libraries(batched_determinant ${OpenCL_LIBRARIES} ${Boost_LIBRARIES})
endif()
# opencv examples
if(${BOOST_COMPUTE_HAVE_OPENCV})
find_package(OpenCV REQUIRED)
include_directories(SYSTEM ${OpenCV_INCLUDE_DIRS})
set(OPENCV_EXAMPLES
k_means
opencv_flip
random_walk
opencv_optical_flow
opencv_convolution
opencv_sobel_filter
opencv_histogram
)
foreach(EXAMPLE ${OPENCV_EXAMPLES})
add_executable(${EXAMPLE} ${EXAMPLE}.cpp)
target_link_libraries(${EXAMPLE} ${OpenCL_LIBRARIES} ${Boost_LIBRARIES} ${OpenCV_LIBS})
endforeach()
endif()
# opengl/vtk examples
if(${BOOST_COMPUTE_HAVE_VTK})
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
add_executable(opengl_sphere opengl_sphere.cpp)
target_link_libraries(opengl_sphere ${OpenCL_LIBRARIES} ${Boost_LIBRARIES} ${VTK_LIBRARIES})
if(APPLE)
target_link_libraries(opengl_sphere "-framework OpenGL")
elseif(UNIX)
target_link_libraries(opengl_sphere GL)
endif()
endif()
# qt examples
if(${BOOST_COMPUTE_HAVE_QT})
# look for Qt4 in the first place
find_package(Qt4 QUIET)
if(${QT4_FOUND})
# build with Qt4
find_package(Qt4 REQUIRED COMPONENTS QtCore QtGui QtOpenGL)
set(QT_USE_QTOPENGL TRUE)
include(${QT_USE_FILE})
else()
# look for Qt5
find_package(Qt5Widgets QUIET)
if(${Qt5Widgets_FOUND})
# build with Qt5
find_package(Qt5Core REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5OpenGL REQUIRED)
include_directories(${Qt5OpenGL_INCLUDE_DIRS})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5OpenGL_EXECUTABLE_COMPILE_FLAGS}")
set(QT_LIBRARIES ${Qt5OpenGL_LIBRARIES})
else()
# no valid Qt framework found
message(FATAL_ERROR "Error: Did not find Qt4 or Qt5")
endif()
endif()
# required by both versions
set(CMAKE_AUTOMOC TRUE)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
# add examples
add_executable(qimage_blur qimage_blur.cpp)
target_link_libraries(qimage_blur ${OpenCL_LIBRARIES} ${Boost_LIBRARIES} ${QT_LIBRARIES})
set(QT_OPENGL_EXAMPLES
mandelbrot
nbody
resize_image
)
foreach(EXAMPLE ${QT_OPENGL_EXAMPLES})
add_executable(${EXAMPLE} ${EXAMPLE}.cpp)
target_link_libraries(${EXAMPLE} ${OpenCL_LIBRARIES} ${Boost_LIBRARIES} ${QT_LIBRARIES})
if(APPLE)
target_link_libraries(${EXAMPLE} "-framework OpenGL")
elseif(UNIX)
target_link_libraries(${EXAMPLE} GL)
endif()
endforeach()
endif()
|