-
Notifications
You must be signed in to change notification settings - Fork 73
/
FRI-Client-SDK_Cpp.patch
574 lines (574 loc) · 27 KB
/
FRI-Client-SDK_Cpp.patch
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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
diff -ruN FRI-Client-SDK_Cpp_base/BasisBootstrapping.cmake FRI-Client-SDK_Cpp_patched/BasisBootstrapping.cmake
--- FRI-Client-SDK_Cpp_base/BasisBootstrapping.cmake 1969-12-31 19:00:00.000000000 -0500
+++ FRI-Client-SDK_Cpp_patched/BasisBootstrapping.cmake 2015-02-23 23:49:58.000000000 -0500
@@ -0,0 +1,225 @@
+# ============================================================================
+# Copyright (c) 2014 <provider-name>
+# All rights reserved.
+#
+# See COPYING file for license information.
+# ============================================================================
+
+##############################################################################
+# @file BasisBootstrapping.cmake
+# @brief Auxiliary function to bootstrap the build of CMake BASIS.
+##############################################################################
+
+include (CMakeParseArguments)
+
+# ----------------------------------------------------------------------------
+## @brief Boostrap build of CMake BASIS during configuration of project.
+#
+# This function downloads, configures, and builds CMake BASIS. If the (cached)
+# variable @c BASIS_INSTALL_PREFIX is set, it also installs BASIS into the
+# specified directory. This is only required if the project uses the
+# BASIS Utilities. Otherwise, the BASIS build tree can be used directly to
+# build the software project which bootstrapped BASIS. It is not required
+# during runtime of the software.
+#
+# @param[in] ARGN The list of arguments is parsed as follows:
+# @par
+# <table border=0>
+# <tr>
+# @tp @b VERSION major.minor.patch|commit @endtp
+# <td>Release, commit, or branch of CMake BASIS to download.</td>
+# </tr>
+# <tr>
+# @tp @b DOWNLOAD_URL url @endtp
+# <td>URL from which to download the CMake BASIS source distribution package.
+# The given URL can be either a complete download URL which includes the
+# package name (which must end with .tar.gz or .zip), the path of
+# a remote directory which contains the CMake BASIS packages named
+# cmake-basis-version.zip (for Windows) and cmake-basis-version.tar.gz
+# (for Unix), or the URL of a Git repository.
+# (default: http://opensource.andreasschuh.com/cmake-basis/_downloads
+# or [email protected]:schuhschuh/cmake-basis.git)</td>
+# </tr>
+# <tr>
+# @tp @b INFORM_USER @endtp
+# <td>This option causes this function to abort the initial configure step
+# of CMake. It informs the user that this project required BASIS for
+# the build configuration and that it upon the next configure run it
+# will attempt to download and build BASIS automatically. It further
+# notes that the user can set the @c BASIS_DIR variable prior to the
+# next configure run in order to use an existing BASIS installation.
+# (default: off)</td>
+# </tr>
+# <tr>
+# @tp @b BASIS_VARIABLE_NAME value @endtp
+# <td>Adds a build configuration to the CMake command used to configure
+# the build of CMake BASIS using the -D option of @c cmake. The
+# @c BASIS_VARIABLE_NAME can be any CMake option or variable that
+# is normally used to configure a BASIS build using CMake. For example,
+# USE_PythonInterp, USE_BASH, USE_DOXYGEN.</td>
+# </tr>
+# </table>
+#
+# @returns Sets the @c BASIS_DIR variable to the bootstrapped BASIS build.
+function (basis_bootstrap)
+ # parse arguments -- unparsed arguments are passed on to CMake using -D
+ CMAKE_PARSE_ARGUMENTS (BASIS "INFORM_USER" "VERSION;DOWNLOAD_URL" "" ${ARGN})
+ if (NOT BASIS_VERSION)
+ message (FATAL_ERROR "No CMake BASIS version specified! Use 'VERSION 3.0.0', for example.")
+ endif ()
+ # abort the first time to give users a chance to specify where their
+ # CMake BASIS installation is located by setting BASIS_DIR in the GUI
+ if (BASIS_INFORM_USER)
+ if (DEFINED BASIS_DIR AND NOT DEFINED BASIS_INSTALL_PREFIX)
+ set (BASIS_INSTALL_PREFIX "" CACHE PATH "Installation prefix for CMake BASIS.")
+ message (FATAL_ERROR "Could not find an existing CMake BASIS installation!\n"
+ "This project uses CMake BASIS for the build configuration."
+ " Next time you configure this build by running CMake again,"
+ " BASIS version ${BASIS_VERSION} will be automatically downloaded"
+ " and build as part of the build configuration of this project."
+ " If you want to install this version permanently,"
+ " specify an installation prefix for CMake BASIS using"
+ " BASIS_INSTALL_PREFIX. Otherwise, leave it blank.\n"
+ "If you installed CMake BASIS already on your system, please"
+ " specify its location by setting the BASIS_DIR variable"
+ " before you re-configure the build system of this project.\n"
+ "Visit http://opensource.andreasschuh.com/cmake-basis for"
+ " more information about the CMake BASIS package.\n")
+ endif ()
+ endif ()
+
+ set (DOWNLOAD_PATH "${CMAKE_CURRENT_BINARY_DIR}")
+ if (BASIS_VERSION MATCHES "^[0-9]+\\.[0-9]+\\.[0-9]+(-[a-z]*)?$")
+ if (WIN32)
+ set (BASIS_ARCHIVE "cmake-basis-${BASIS_VERSION}.zip")
+ else ()
+ set (BASIS_ARCHIVE "cmake-basis-${BASIS_VERSION}.tar.gz")
+ endif ()
+ if (NOT BASIS_DOWNLOAD_URL)
+ set (BASIS_DOWNLOAD_URL "http://opensource.andreasschuh.com/cmake-basis/_downloads")
+ endif ()
+ if (NOT BASIS_DOWNLOAD_URL MATCHES "\\.(zip|tar\\.gz)$")
+ set (BASIS_DOWNLOAD_URL "${BASIS_DOWNLOAD_URL}/${BASIS_ARCHIVE}")
+ endif ()
+ else ()
+ set (BASIS_DOWNLOAD_URL "[email protected]:schuhschuh/cmake-basis.git")
+ endif ()
+ set (BASIS_SOURCE_DIR "${DOWNLOAD_PATH}/cmake-basis-${BASIS_VERSION}")
+ set (BASIS_BINARY_DIR "${DOWNLOAD_PATH}/cmake-basis-${BASIS_VERSION}/build")
+
+ # bootstrap BASIS build/installation only if not done before
+ # or when BASIS_INSTALL_PREFIX has changed
+ if ( NOT IS_DIRECTORY "${BASIS_BINARY_DIR}"
+ OR NOT DEFINED BASIS_INSTALL_PREFIX_CONFIGURED
+ OR NOT BASIS_INSTALL_PREFIX_CONFIGURED STREQUAL "${BASIS_INSTALL_PREFIX}")
+
+ # download and extract source code if not done before
+ if (NOT EXISTS "${BASIS_SOURCE_DIR}/BasisProject.cmake")
+
+ # clone Git repository and checkout specified commit/branch
+ if (BASIS_DOWNLOAD_URL MATCHES ".git$")
+
+ find_package (Git QUIET)
+ if (NOT GIT_FOUND)
+ set (ERRMSG "Git client not found: GIT_EXECUTABLE")
+ else ()
+ mark_as_advanced (GIT_EXECUTABLE)
+ message (STATUS "Cloning CMake BASIS repository...")
+ execute_process (
+ COMMAND "${GIT_EXECUTABLE}" clone "${BASIS_DOWNLOAD_URL}" "${BASIS_SOURCE_DIR}"
+ RESULT_VARIABLE RETVAL
+ ERROR_VARIABLE ERRMSG
+ )
+ if (RETVAL EQUAL 0)
+ execute_process (
+ COMMAND "${GIT_EXECUTABLE}" checkout --detach "${BASIS_VERSION}"
+ WORKING_DIRECTORY "${BASIS_SOURCE_DIR}"
+ RESULT_VARIABLE RETVAL
+ ERROR_VARIABLE ERRMSG
+ )
+ if (RETVAL EQUAL 0)
+ set (ERRMSG)
+ message (STATUS "Cloning CMake BASIS repository... - done")
+ endif ()
+ endif ()
+ endif ()
+ if (ERRMSG)
+ message (FATAL_ERROR "Failed to clone CMake BASIS ${BASIS_VERSION} from\n"
+ "\t${BASIS_DOWNLOAD_URL}\n"
+ "Error: ${ERRMSG}\n"
+ "Ensure GIT_EXECUTABLE is set and try again or follow the instructions at\n"
+ "\thttp://opensource.andreasschuh.com/cmake-basis/\n"
+ "to download and install it manually before configuring this project.\n")
+ endif ()
+
+ else ()
+
+ # download source code distribution package
+ if (NOT EXISTS "${DOWNLOAD_PATH}/${BASIS_ARCHIVE}")
+ message (STATUS "Downloading CMake BASIS v${BASIS_VERSION}...")
+ file (DOWNLOAD "${BASIS_DOWNLOAD_URL}" "${DOWNLOAD_PATH}/${BASIS_ARCHIVE}" STATUS RETVAL)
+ list (GET RETVAL 1 ERRMSG)
+ list (GET RETVAL 0 RETVAL)
+ if (NOT RETVAL EQUAL 0)
+ message (FATAL_ERROR "Failed to download CMake BASIS v${BASIS_VERSION} from\n"
+ "\t${BASIS_DOWNLOAD_URL}\n"
+ "Error: ${ERRMSG}\n"
+ "Either try again or follow the instructions at\n"
+ "\thttp://opensource.andreasschuh.com/cmake-basis/\n"
+ "to download and install it manually before configuring this project.\n")
+ endif ()
+ message (STATUS "Downloading CMake BASIS v${BASIS_VERSION}... - done")
+ endif ()
+ # extract source package
+ message (STATUS "Extracting CMake BASIS...")
+ execute_process (COMMAND ${CMAKE_COMMAND} -E tar -xvzf "${DOWNLOAD_PATH}/${BASIS_ARCHIVE}" RESULT_VARIABLE RETVAL)
+ if (NOT RETVAL EQUAL 0)
+ file (REMOVE_RECURSE "${BASIS_SOURCE_DIR}")
+ message (FATAL_ERROR "Failed to extract the downloaded archive file ${DOWNLOAD_PATH}/${BASIS_ARCHIVE}!")
+ endif ()
+ message (STATUS "Extracting CMake BASIS... - done")
+
+ endif ()
+ endif ()
+
+ # configure
+ file (MAKE_DIRECTORY "${BASIS_BINARY_DIR}")
+
+ set (CMAKE_ARGUMENTS "-DBASIS_REGISTER:BOOL=OFF") # do not register this BASIS build/installation
+ # as it should only be used by this project
+ if (BASIS_INSTALL_PREFIX)
+ list (APPEND CMAKE_ARGUMENTS "-DCMAKE_INSTALL_PREFIX=${BASIS_INSTALL_PREFIX}")
+ endif ()
+ list (LENGTH BASIS_UNPARSED_ARGUMENTS N)
+ while (N GREATER 0)
+ list (GET BASIS_UNPARSED_ARGUMENTS 0 VARIABLE_NAME)
+ list (GET BASIS_UNPARSED_ARGUMENTS 1 VARIABLE_VALUE)
+ list (APPEND CMAKE_ARGUMENTS "-D${VARIABLE_NAME}=${VARIABLE_VALUE}")
+ list (REMOVE_AT BASIS_UNPARSED_ARGUMENTS 0 1)
+ math (EXPR N "${N} - 2")
+ endwhile ()
+ execute_process (
+ COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" ${CMAKE_ARGUMENTS} "${BASIS_SOURCE_DIR}"
+ WORKING_DIRECTORY "${BASIS_BINARY_DIR}"
+ )
+ # build
+ execute_process (COMMAND "${CMAKE_COMMAND}" --build "${BASIS_BINARY_DIR}" --config Release)
+ # install
+ if (BASIS_INSTALL_PREFIX)
+ execute_process (COMMAND "${CMAKE_COMMAND}" --build "${BASIS_BINARY_DIR}" --config Release --target install)
+ set (BASIS_DIR "${BASIS_INSTALL_PREFIX}" PARENT_SCOPE)
+ else ()
+ set (BASIS_DIR "${BASIS_BINARY_DIR}" PARENT_SCOPE)
+ endif ()
+
+ # remember in which directory BASIS was installed to avoid re-running
+ # the bootstrapping every time the project needs to be re-configured
+ set (BASIS_INSTALL_PREFIX_CONFIGURED "${BASIS_INSTALL_PREFIX}" CACHE INTERNAL "" FORCE)
+
+ elseif (BASIS_INSTALL_PREFIX_CONFIGURED)
+ set (BASIS_DIR "${BASIS_INSTALL_PREFIX_CONFIGURED}" PARENT_SCOPE)
+ else ()
+ set (BASIS_DIR "${BASIS_BINARY_DIR}" PARENT_SCOPE)
+ endif ()
+
+endfunction (basis_bootstrap)
diff -ruN FRI-Client-SDK_Cpp_base/BasisProject.cmake FRI-Client-SDK_Cpp_patched/BasisProject.cmake
--- FRI-Client-SDK_Cpp_base/BasisProject.cmake 1969-12-31 19:00:00.000000000 -0500
+++ FRI-Client-SDK_Cpp_patched/BasisProject.cmake 2015-03-28 16:34:52.000000000 -0400
@@ -0,0 +1,120 @@
+# ===============================================================================
+# Copyright (c) 2015 <provider-name>
+# All rights reserved.
+#
+# See COPYING file for license information.
+# ===============================================================================
+
+#################################################################################
+# @file BasisProject.cmake
+# @brief Sets basic information about a BASIS Project and calls basis_project().
+#
+# This file defines basic information about a project by calling
+# the basis_project() function. This basic information, also known as metadata,
+# is used by BASIS to setup the project. Moreover, if the project is a module
+# of another BASIS project, the dependencies to other modules have to be specified
+# here such that the top-level project can analyze the inter-module dependencies.
+#
+# @sa http://opensource.andreasschuh.com/cmake-basis/standard/modules.html
+#
+# However, not only dependencies to other modules can be specified here,
+# but also dependencies on external packages. A more flexible alternative to
+# resolve external dependencies is to add the corresponding basis_find_package()
+# statements to the Depends.cmake file. This should, however, only be done
+# if specifying the dependencies as arguments to the basis_project() function
+# cannot be used to resolve the dependencies properly. If you only need to
+# make use of additional variables set by the package configuration file
+# of the external package or the corresponding Find<Package>.cmake module,
+# add the related CMake code to the Settings.cmake file instead.
+#
+# Example:
+# @code
+# basis_project (
+# # ------------------------------------------------------------------------
+# # meta-data
+# NAME MyProject
+# PACKAGE_VENDOR shortvname # Note: PACKAGE_VENDOR will also be part of the default installation path
+# VERSION 1.1.5
+# DESCRIPTION "This is the description of the project, which is useful for this"
+# " important thing and that important thing."
+# " MyProject follows the BASIS implementation standard."
+# AUTHOR "Ima Nauthor"
+# PROVIDER_NAME "Great Product Co"
+# PROVIDER_WEBSITE "http://www.greatproductcompany.com"
+# PROVIDER_LOGO "${PROJECT_SOURCE_DIR}/doc/logo.png"
+# DIVISION_NAME "Awesome App Division"
+# DIVISION_WEBSITE "http://www.awesomeapp.greatproductcompany.com"
+# DIVISION_LOGO ""${PROJECT_SOURCE_DIR}/doc/division_logo.png""
+# COPYRIGHT "Copyright (c) 2013 Great Product Co"
+# LICENSE "See COPYING file."
+# CONTACT "Contact <[email protected]>"
+# # ------------------------------------------------------------------------
+# # dependencies
+# DEPENDS
+# NiftiCLib
+# PythonInterp
+# OPTIONAL_DEPENDS
+# PythonInterp
+# JythonInterp
+# Perl
+# MATLAB{matlab}
+# BASH
+# Doxygen
+# Sphinx{build}
+# ITK # TODO required by basistest-driver, get rid of this dependency
+# TEST_DEPENDS
+# Perl
+# OPTIONAL_TEST_DEPENDS
+# MATLAB{mex}
+# MATLAB{mcc}
+# )
+# @endcode
+#
+# @ingroup BasisSettings
+##############################################################################
+
+# Note: The #<*> dependency patterns are required by the basisproject tool and
+# should be kept on a separate line as last commented argument of the
+# corresponding options of the basis_project() command. The TEMPLATE
+# option and set argument are also required by this tool and should not
+# be changed manually. The argument is updated by basisproject --update.
+
+basis_project (
+ # --------------------------------------------------------------------------
+ # meta-data
+ NAME "FRI-Client-SDK_Cpp"
+ VERSION "1.5.1"
+ AUTHORS "KUKA"
+ #<author>
+ DESCRIPTION "Kuka Fast Research Interface"
+ # Note: VENDOR will also be part of the default installation path
+ VENDOR #<vendor>
+ PROVIDER_NAME #<provider-name>
+ PROVIDER_LOGO #<provider-logo>
+ PROVIDER_WEBSITE "http://www.kuka.com/"
+ DIVISION_NAME #<division-name>
+ DIVISION_LOGO #<division-logo>
+ DIVISION_WEBSITE #<division-website>
+ COPYRIGHT "2015 KUKA"
+ LICENSE "See COPYING file for license information."
+ CONTACT "<provider-name> <[email protected]>"
+ TEMPLATE "basis/1.1"
+
+ # --------------------------------------------------------------------------
+ # dependencies
+ DEPENDS
+ #<dependency>
+ OPTIONAL_DEPENDS
+ #<optional-dependency>
+ Nanopb
+ TEST_DEPENDS
+ #<test-dependency>
+ OPTIONAL_TEST_DEPENDS
+ #<optional-test-dependency>
+ INCLUDE_DIRS
+ include
+ src/base
+ src/protobuf
+ src/protobuf_gen
+ src/nanopb-0.2.8
+)
diff -ruN FRI-Client-SDK_Cpp_base/CMakeLists.txt FRI-Client-SDK_Cpp_patched/CMakeLists.txt
--- FRI-Client-SDK_Cpp_base/CMakeLists.txt 1969-12-31 19:00:00.000000000 -0500
+++ FRI-Client-SDK_Cpp_patched/CMakeLists.txt 2015-03-28 17:09:14.000000000 -0400
@@ -0,0 +1,97 @@
+# ============================================================================
+# Copyright (c) 2015 <provider-name>
+# All rights reserved.
+#
+# See COPYING file for license information.
+# ============================================================================
+
+##############################################################################
+# @file CMakeLists.txt
+# @brief Root build configuration file.
+#
+# @note This package utilizes <a href="http://opensource.andreasschuh.com/cmake-basis">CMake BASIS</a>.
+#
+##############################################################################
+
+# ----------------------------------------------------------------------------
+# minimum required CMake version
+cmake_minimum_required (VERSION 2.8.4)
+
+# ----------------------------------------------------------------------------
+# include BASIS policies, settings, macros, and functions
+
+# circumvent issue with CMake's find_package() interpreting these variables
+# relative to the current binary directory instead of the top-level directory
+if (BASIS_DIR AND NOT IS_ABSOLUTE "${BASIS_DIR}")
+ set (BASIS_DIR "${CMAKE_BINARY_DIR}/${BASIS_DIR}")
+ get_filename_component (BASIS_DIR "${BASIS_DIR}" ABSOLUTE)
+endif ()
+
+# users tend to specify the directory where BASIS was installed
+# rather than the directory containing a BASISConfig.cmake,
+# so add a workaround to allow that to work as well
+if (IS_DIRECTORY "${BASIS_DIR}")
+ list (INSERT CMAKE_PREFIX_PATH 0 "${BASIS_DIR}")
+endif ()
+
+# look for an existing CMake BASIS installation and use it if found
+# otherwise, attempt to download and install it locally
+find_package (BASIS QUIET)
+if (NOT BASIS_FOUND)
+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/BasisBootstrapping.cmake")
+ include ("${CMAKE_CURRENT_SOURCE_DIR}/BasisBootstrapping.cmake")
+ else ()
+ message (FATAL_ERROR "Could not find an existing CMake BASIS installation!\n"
+ "This project uses CMake BASIS for the build configuration."
+ " Visit http://opensource.andreasschuh.com/cmake-basis for"
+ " more information about the CMake BASIS package.\n")
+ endif ()
+ # download and install BASIS in build tree of project
+ basis_bootstrap(
+ VERSION 3.1.0 # CMake BASIS version to download
+ USE_MATLAB FALSE # Enable/disable Matlab support
+ USE_PythonInterp FALSE # Enable/disable Python support
+ USE_JythonInterp FALSE # Enable/disable Jython support
+ USE_Perl FALSE # Enable/disalbe Perl support
+ USE_BASH FALSE # Enable/disable Bash support
+ USE_Doxygen FALSE # Enable/disable documentation generation using Doxygen
+ USE_Sphinx FALSE # Enable/disable documentation generation using Sphinx
+ USE_ITK FALSE # Enable/disable image processing regression testing
+ INFORM_USER # Inform user during first configure step
+ # that BASIS needs to be bootstrapped or installed manually
+ )
+ # look for local installation
+ find_package (BASIS QUIET)
+ if (NOT BASIS_FOUND)
+ message (FATAL_ERROR "CMake BASIS setup failed. Please take the following steps:\n"
+ "\t1. Clear the CMake cache and try from scratch\n"
+ "\t2. Check the CMake BASIS website:\n"
+ "\t\thttp://opensource.andreasschuh.com/cmake-basis/\n"
+ "\t3. Search for an existing issue:\n"
+ "\t\thttps://github.com/schuhschuh/cmake-basis/issues/\n"
+ "\t4. If this did not resolve the issue, please report your problem:\n"
+ "\t\thttps://github.com/schuhschuh/cmake-basis/issues/new\n"
+ "\t5. Try a manual build of CMake BASIS following the instructions at:\n"
+ "\t\thttp://opensource.andreasschuh.com/cmake-basis/quickstart.html"
+ )
+ endif ()
+else ()
+ set (BASIS_INSTALL_PREFIX "${BASIS_DIR}")
+endif ()
+
+# ----------------------------------------------------------------------------
+# configure build system
+basis_project_impl ()
+
+# raise error if project uses the BASIS Utilities,
+# but BASIS was not installed as part of the bootstrapping
+if (DEFINED BASIS_INSTALL_PREFIX_CONFIGURED AND NOT BASIS_INSTALL_PREFIX_CONFIGURED)
+ basis_get_project_uses_utilities (PROJECT_USES_BASIS_UTILITIES)
+ if (PROJECT_USES_BASIS_UTILITIES)
+ message (FATAL_ERROR "This project uses the BASIS Utilities. Therefore CMake BASIS"
+ " must be installed permanently. Please specify the location"
+ " where to install BASIS using the BASIS_INSTALL_PREFIX"
+ " variable and re-run CMake in order to first install BASIS"
+ " and then re-configure this project to use this installation.")
+ endif ()
+endif ()
diff -ruN FRI-Client-SDK_Cpp_base/example/CMakeLists.txt FRI-Client-SDK_Cpp_patched/example/CMakeLists.txt
--- FRI-Client-SDK_Cpp_base/example/CMakeLists.txt 1969-12-31 19:00:00.000000000 -0500
+++ FRI-Client-SDK_Cpp_patched/example/CMakeLists.txt 2015-03-28 00:20:11.000000000 -0400
@@ -0,0 +1,44 @@
+# ============================================================================
+# Copyright (c) 2015 <provider-name>
+# All rights reserved.
+#
+# See COPYING file for license information.
+# ============================================================================
+
+##############################################################################
+# @file CMakeLists.txt
+# @brief Build configuration of software.
+##############################################################################
+
+# ============================================================================
+# library target(s)
+# ============================================================================
+
+# Add library target for each library using basis_add_library().
+#
+# This command can not only be used to build libraries from C/C++, but also source
+# code written in other programming languages such as Java, Python, Perl,
+# MATLAB, and Bash. Note that here we consider modules written in a scripting
+# language which are no executables but to be included by other scripts written
+# in the particular language as libraries.
+#
+# Note: Public modules written in a scripting language such as Python, Perl,
+# MATLAB, or Bash which are intended for use by other packages should
+# be placed in the lib/[<lang>/]kuka_lwr_iiwa_fri/ directory,
+# where <lang> is the language name in lowercase and is optional.
+# BASIS will automatically add a library build target for these modules.
+
+# ============================================================================
+# executable target(s)
+# ============================================================================
+
+# Add executable target for each executable program using basis_add_executable().
+#
+# This command can not only be used to build executables from C/C++, but also
+# source code written in other programming languages such as Java, Python, Perl,
+# MATLAB, and Bash.
+
+#@TODO enable building the example
+#basis_include_directories(LBRJointSineOverlay)
+#basis_add_executable(LBRJointSineOverlay/LBRJointSineOverlayApp.cpp
+# LBRJointSineOverlay/LBRJointSineOverlayClient.cpp)
diff -ruN FRI-Client-SDK_Cpp_base/src/CMakeLists.txt FRI-Client-SDK_Cpp_patched/src/CMakeLists.txt
--- FRI-Client-SDK_Cpp_base/src/CMakeLists.txt 1969-12-31 19:00:00.000000000 -0500
+++ FRI-Client-SDK_Cpp_patched/src/CMakeLists.txt 2015-03-28 16:51:14.000000000 -0400
@@ -0,0 +1,68 @@
+# ============================================================================
+# Copyright (c) 2015 <provider-name>
+# All rights reserved.
+#
+# See COPYING file for license information.
+# ============================================================================
+
+##############################################################################
+# @file CMakeLists.txt
+# @brief Build configuration of software.
+##############################################################################
+
+# ============================================================================
+# library target(s)
+# ============================================================================
+
+# Add library target for each library using basis_add_library().
+#
+# This command can not only be used to build libraries from C/C++, but also source
+# code written in other programming languages such as Java, Python, Perl,
+# MATLAB, and Bash. Note that here we consider modules written in a scripting
+# language which are no executables but to be included by other scripts written
+# in the particular language as libraries.
+#
+# Note: Public modules written in a scripting language such as Python, Perl,
+# MATLAB, or Bash which are intended for use by other packages should
+# be placed in the lib/[<lang>/]FRI-Client-SDK_Cpp/ directory,
+# where <lang> is the language name in lowercase and is optional.
+# BASIS will automatically add a library build target for these modules.
+
+if(Nanopb_FOUND)
+ basis_include_directories(${NANOPB_INCLUDE_DIRS})
+else()
+ message(STATUS "Using internal nanopb, this should be ok. If you also use nanopb and there are linker errors set NANOPB_SRC_ROOT_FOLDER. Consult FRI-Client-SDK_Cpp/config/FindNanopb.cmake for details.")
+
+ basis_include_directories(nanopb-0.2.8)
+ basis_add_library(nanopb
+ nanopb-0.2.8/pb_encode.c
+ nanopb-0.2.8/pb_decode.c
+ )
+
+ set(Nanopb_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIRS/nanopb-0.2.8})
+ set(Nanopb_LIBRARIES nanopb)
+ basis_install_directory(nanopb-0.2.8)
+endif()
+
+basis_include_directories(protobuf protobuf_gen)
+basis_install_directory(protobuf)
+basis_install_directory(protobuf_gen)
+
+basis_add_library(KukaFRIClient
+ protobuf/friCommandMessageEncoder.cpp
+ protobuf/friMonitoringMessageDecoder.cpp
+ protobuf/pb_frimessages_callbacks.c
+ protobuf_gen/FRIMessages.pb.c
+ )
+
+# ============================================================================
+# executable target(s)
+# ============================================================================
+
+# Add executable target for each executable program using basis_add_executable().
+#
+# This command can not only be used to build executables from C/C++, but also
+# source code written in other programming languages such as Java, Python, Perl,
+# MATLAB, and Bash.
+
+