diff --git a/CMakeLists.txt b/CMakeLists.txt
index b429b65..93a3f2f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,31 +2,47 @@
# Authors: Juan G. Victores & Raul de Santos Rico
# CopyPolicy: Released under the terms of the GNU GPL v2.0.
-cmake_minimum_required(VERSION 2.8.9)
+cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
-project(TEO_CONFIGURATION_FILES)
+# Define a project.
+project(TEO_CONFIGURATION_FILES LANGUAGES NONE)
-list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+# Find dependencies
+find_package(YCM 0.8 REQUIRED)
-find_package(YARP REQUIRED)
-list(APPEND CMAKE_MODULE_PATH ${YARP_MODULE_PATH})
-include(YarpInstallationHelpers)
+# https://github.com/roboticslab-uc3m/questions-and-answers/issues/65
+find_package(YARP 3.0 QUIET)
+if(NOT YARP_FOUND)
+ find_package(YARP 2.3.70 REQUIRED)
+endif()
+
+# Set some useful variables - paths relative to the installation prefix.
yarp_configure_external_installation(teo-configuration-files)
+# Traverse subdirectories.
add_subdirectory(share)
add_subdirectory(scripts)
+# Store this package in the user registry.
+export(PACKAGE ${PROJECT_NAME})
+
+# Define CMAKE_INSTALL_
and CMAKE_INSTALL_FULL_ variables.
include(GNUInstallDirs)
-if(WIN32 AND NOT CYGWIN)
- set(_cmake_destination CMake)
+# Set installation path for CMake files.
+if(WIN32)
+ set(${PROJECT_NAME}_CMAKE_DESTINATION "CMake")
else()
- set(_cmake_destination ${CMAKE_INSTALL_LIBDIR}/cmake/TEO_CONFIGURATION_FILES)
+ set(${PROJECT_NAME}_CMAKE_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
endif()
-export(PACKAGE TEO_CONFIGURATION_FILES)
+# Create dummy CMake configuration export file.
+file(WRITE ${CMAKE_BINARY_DIR}/${PROJECT_NAME}Config.cmake
+ "# Dummy CMake configuration export file.")
-file(WRITE ${CMAKE_BINARY_DIR}/TEO_CONFIGURATION_FILESConfig.cmake "# Dummy CMake configuration export file.")
-install(FILES ${CMAKE_BINARY_DIR}/TEO_CONFIGURATION_FILESConfig.cmake DESTINATION ${_cmake_destination})
+# Install CMake configuration file.
+install(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}Config.cmake
+ DESTINATION ${${PROJECT_NAME}_CMAKE_DESTINATION})
+# Add uninstall rule.
include(AddUninstallTarget)
diff --git a/cmake/AddUninstallTarget.cmake b/cmake/AddUninstallTarget.cmake
deleted file mode 100644
index fefef2d..0000000
--- a/cmake/AddUninstallTarget.cmake
+++ /dev/null
@@ -1,70 +0,0 @@
-#.rst:
-# AddUninstallTarget
-# ------------------
-#
-# Add the "uninstall" target for your project::
-#
-# include(AddUninstallTarget)
-#
-#
-# will create a file cmake_uninstall.cmake in the build directory and add a
-# custom target uninstall that will remove the files installed by your package
-# (using install_manifest.txt)
-
-#=============================================================================
-# Copyright 2008-2013 Kitware, Inc.
-# Copyright 2013 Istituto Italiano di Tecnologia (IIT)
-# Authors: Daniele E. Domenichelli
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-# (To distribute this file outside of CMake, substitute the full
-# License text for the above reference.)
-
-
-if(DEFINED __ADD_UNINSTALL_TARGET_INCLUDED)
- return()
-endif()
-set(__ADD_UNINSTALL_TARGET_INCLUDED TRUE)
-
-
-set(_filename ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
-
-file(WRITE ${_filename}
-"if(NOT EXISTS \"${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt\")
- message(WARNING \"Cannot find install manifest: \\\"${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt\\\"\")
- return()
-endif()
-
-file(READ \"${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt\" files)
-string(STRIP \"\${files}\" files)
-string(REGEX REPLACE \"\\n\" \";\" files \"\${files}\")
-list(REVERSE files)
-foreach(file \${files})
- message(STATUS \"Uninstalling: \$ENV{DESTDIR}\${file}\")
- if(EXISTS \"\$ENV{DESTDIR}\${file}\")
- execute_process(
- COMMAND \${CMAKE_COMMAND} -E remove \"\$ENV{DESTDIR}\${file}\"
- OUTPUT_VARIABLE rm_out
- RESULT_VARIABLE rm_retval)
- if(NOT \"\${rm_retval}\" EQUAL 0)
- message(FATAL_ERROR \"Problem when removing \\\"\$ENV{DESTDIR}\${file}\\\"\")
- endif()
- else()
- message(STATUS \"File \\\"\$ENV{DESTDIR}\${file}\\\" does not exist.\")
- endif()
-endforeach(file)
-")
-
-if("${CMAKE_GENERATOR}" MATCHES "^(Visual Studio|Xcode)")
- set(_uninstall "UNINSTALL")
-else()
- set(_uninstall "uninstall")
-endif()
-add_custom_target(${_uninstall} COMMAND "${CMAKE_COMMAND}" -P "${_filename}")
-set_property(TARGET ${_uninstall} PROPERTY FOLDER "CMakePredefinedTargets")
diff --git a/cmake/Copyright.txt b/cmake/Copyright.txt
deleted file mode 100644
index b18e0aa..0000000
--- a/cmake/Copyright.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-YCM - Extra CMake Modules for YARP and friends
-Copyright 2013-2014 Istituto Italiano di Tecnologia (IIT)
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-* Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-* Neither the names of Istituto Italiano di Tecnologia (IIT),
- nor the names of their contributors may be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-------------------------------------------------------------------------------
-
-The above copyright and license notice applies to distributions of
-YCM in source and binary form. Some source files contain additional
-notices of original copyright by their contributors; see each source
-for details. Third-party software packages supplied with YCM under
-compatible licenses provide their own copyright notices documented in
-corresponding subdirectories.
-
-------------------------------------------------------------------------------
-
-YCM is being developed by the iCub Facility, Istituto Italiano di
-Tecnologia.
-
-Additional support to YCM was received from the FP7 EU project
-WALK-MAN (http://walk-man.eu/)