BasisProject.cmake
Go to the documentation of this file.
1 # ===============================================================================
2 # Copyright (c) 2015-2016 Andrew Hundt
3 # All rights reserved.
4 #
5 # See COPYING file for license information.
6 # ===============================================================================
7 
8 #################################################################################
9 # @file BasisProject.cmake
10 # @brief Sets basic information about a BASIS Project and calls basis_project().
11 #
12 # This file defines basic information about a project by calling
13 # the basis_project() function. This basic information, also known as metadata,
14 # is used by BASIS to setup the project. Moreover, if the project is a module
15 # of another BASIS project, the dependencies to other modules have to be specified
16 # here such that the top-level project can analyze the inter-module dependencies.
17 #
18 # @sa http://opensource.andreasschuh.com/cmake-basis/standard/modules.html
19 #
20 # However, not only dependencies to other modules can be specified here,
21 # but also dependencies on external packages. A more flexible alternative to
22 # resolve external dependencies is to add the corresponding basis_find_package()
23 # statements to the Depends.cmake file. This should, however, only be done
24 # if specifying the dependencies as arguments to the basis_project() function
25 # cannot be used to resolve the dependencies properly. If you only need to
26 # make use of additional variables set by the package configuration file
27 # of the external package or the corresponding Find<Package>.cmake module,
28 # add the related CMake code to the Settings.cmake file instead.
29 #
30 # Example:
31 # @code
32 # basis_project (
33 # # ------------------------------------------------------------------------
34 # # meta-data
35 # NAME MyProject
36 # PACKAGE_VENDOR shortvname # Note: PACKAGE_VENDOR will also be part of the default installation path
37 # VERSION 1.1.5
38 # DESCRIPTION "This is the description of the project, which is useful for this"
39 # " important thing and that important thing."
40 # " MyProject follows the BASIS implementation standard."
41 # AUTHOR "Ima Nauthor"
42 # PROVIDER_NAME "Great Product Co"
43 # PROVIDER_WEBSITE "http://www.greatproductcompany.com"
44 # PROVIDER_LOGO "${PROJECT_SOURCE_DIR}/doc/logo.png"
45 # DIVISION_NAME "Awesome App Division"
46 # DIVISION_WEBSITE "http://www.awesomeapp.greatproductcompany.com"
47 # DIVISION_LOGO ""${PROJECT_SOURCE_DIR}/doc/division_logo.png""
48 # COPYRIGHT "Copyright (c) 2013 Great Product Co"
49 # LICENSE "See COPYING file."
50 # CONTACT "Contact <info@greatproductcompany.com>"
51 # # ------------------------------------------------------------------------
52 # # dependencies
53 # DEPENDS
54 # NiftiCLib
55 # PythonInterp
56 # OPTIONAL_DEPENDS
57 # PythonInterp
58 # JythonInterp
59 # Perl
60 # MATLAB{matlab}
61 # BASH
62 # Doxygen
63 # Sphinx{build}
64 # ITK # TODO required by basistest-driver, get rid of this dependency
65 # TEST_DEPENDS
66 # Perl
67 # OPTIONAL_TEST_DEPENDS
68 # MATLAB{mex}
69 # MATLAB{mcc}
70 # )
71 # @endcode
72 #
73 # @ingroup BasisSettings
74 ##############################################################################
75 
76 # Note: The #<*> dependency patterns are required by the basisproject tool and
77 # should be kept on a separate line as last commented argument of the
78 # corresponding options of the basis_project() command. The TEMPLATE
79 # option and set argument are also required by this tool and should not
80 # be changed manually. The argument is updated by basisproject --update.
81 
82 basis_project (
83  # --------------------------------------------------------------------------
84  # meta-data
85  NAME "grl"
86  VERSION "4.0.0"
87  AUTHORS "Andrew Hundt"
88  #<author>
89  DESCRIPTION "Generic Robotics Library - Robotics software and drivers aiming to be implemented using generic programming"
90  # Note: VENDOR will also be part of the default installation path
91  VENDOR #<vendor>
92  PROVIDER_NAME #<provider-name>
93  PROVIDER_LOGO #<provider-logo>
94  PROVIDER_WEBSITE "http://www.github.com/ahundt/grl"
95  DIVISION_NAME #<division-name>
96  DIVISION_LOGO #<division-logo>
97  DIVISION_WEBSITE "http://www.github.com/ahundt/grl"
98  COPYRIGHT "2015-2016 Andrew Hundt et al"
99  LICENSE "BSD license, See COPYING file for license information."
100  CONTACT "Andrew Hundt <ATHundt@gmail.com>"
101  TEMPLATE "basis/1.1"
102 
103  # --------------------------------------------------------------------------
104  # dependencies
105  DEPENDS
106  # libsodium https://github.com/jedisct1/libsodium # todo: test this dependency
107  ZeroMQ # zeromq.org https://github.com/zeromq/libzmq
108  FlatBuffers # google flatbuffers https://github.com/google/flatbuffers
109  Boost{program_options,filesystem,unit_test_framework,system,regex,coroutine,log,chrono}
110  #<dependency>
111  OPTIONAL_DEPENDS
112  #<optional-dependency>
113  Threads # pthreads, see CMake documentation
114  Eigen3 # Linear Algebra eigen.tuxfamily.com
115  Nanopb # Used in Kuka Fast Robot Interface
116  FRI_Client_SDK_Cpp # Kuka Fast Robot Interface (FRI) Client SDK
117  ur_modern_driver # Universal Robots Arm Device Driver https://github.com/ThomasTimm/ur_modern_driver/
118  CisstNetlib # https://github.com/jhu-cisst/cisstNetlib used for inverse kinematics plugin
119  cisst{cisstNumerical,cisstOSAbstraction,cisstVector,cisstCommon} # https://github.com/jhu-cisst/cisst used for inverse kinematics plugin
120  sawConstraintController # used for inverse kinematics plugin https://github.com/jhu-saw/sawConstraintController
121  Ceres # http://ceres-solver.org/ used in arm hand eye calibration
122  CAMODOCAL # used for hand eye calibration plugin https://github.com/hengli/camodocal
123  PCL # point cloud library, for vision components >=1.7 recommended https://github.com/PointCloudLibrary/pcl
124  freenect2 # kinect v2 drivers, for vision components https://github.com/OpenKinect/libfreenect2
125  ROS # Robot Operating System http://ROS.org
126  TRTK # Transform Registration Toolkit, for pivot calibration https://github.com/RWTHmediTEC/TRTK
127  SpaceVecAlg # Implementation of Roy Featherstone's Spatial Vector Algebra https://github.com/jrl-umi3218/SpaceVecAlg
128  sch-core # Algorithms for convex hulls https://github.com/jrl-umi3218/sch-core used for inverse kinematics
129  RBDyn # Models the dynamics of rigid body system https://github.com/jrl-umi3218/RBDyn used for inverse kinematics
130  Tasks # Real time control of Kinematic Trees https://github.com/jrl-umi3218/Tasks used for inverse kinematics
131  AZMQ # (Deprecated) Boost Asio implementation of ZeroMQ https://github.com/zeromq/azmq
132  TEST_DEPENDS
133  #<test-dependency>
134  OPTIONAL_TEST_DEPENDS
135  #<optional-test-dependency>
136  INCLUDE_DIRS
137  include
138  include/thirdparty/vrep/include
139 )