YCM 0.2.0 (2016-11-17) Release Notes ************************************ .. only:: html .. contents:: Changes made since YCM 0.1 include the following. Build System ============ * Use the ``INSTALL_PREFIX`` argument for :cmake:module:`CMakePackageConfigHelpers`. This simplifies a lot the creation of the ``YCMConfig.cmake`` file for the binary tree. * Fixed warnings with CMake 3.2. * Added RunCMake unit tests. * Added :variable:`YCM_CMAKE_DOWNLOAD_URL` variable and use github as default download url. * Try to download the files up to 3 times in order to avoid common network issues. * ``YCMBootstrap``: Fix env variables list truncated to first element in Windows (#100). Modules ======= Generic Modules --------------- * :module:`StandardFindModule`: Add QUIET argument. * New module :module:`GitInfo`. * :module:`IncludeUrl`: Several bug fixes and improvement. * New module :module:`ReplaceImportedTargets`. * :module:`StandardFindModule`: handle the new ``TARGET`` and ``REPLACE_TARGETS`` arguments, to create automatically the specified imported target and to replace the known targets paths with the relative target name (in pkg-config mode only). If any of the ``STANDARD_FIND_MODULE_USE_IMPORTED_TARGET`` or ``STANDARD_FIND_MODULE_USE_IMPORTED_TARGET_`` are specified, and the ``TARGET`` argument is given, the ``_LIBRARIES`` variable content is replaced with the corresponding imported target. * :module:`StandardFindModule`: Ensure that include directories exists. * :module:`StandardFindModule`: Fix `INTERFACE_COMPILE_{DEFINITIONS,OPTIONS}` properties. * New module :module:`GetAllCMakeProperties`. * :module:`StandardFindModule` Fix QUIET argument. Packaging Helper Modules ------------------------ * :module:`InstallBasicPackageFiles`: Use the new ``INSTALL_PREFIX`` argument for :cmake:module:`CMakePackageConfigHelpers`. * New module :module:`AddInstallRPATHSupport`: Add RPATH support when building executables or shared libraries. * :module:`AddInstallRPATHSupport`: Accept multiple conditions for the DEPENDS argument. This makes the DEPENDS argument similar to the :cmake:module:`CMakeDependentOptions` module. * fix :module:`AddInstallRPATHSupport` for installation in system path Superbuild Helper Modules ------------------------- * :module:`YCMEPHelper` now handles tests for sub-projects. * :module:`YCMEPHelper`: Pass ``PKG_CONFIG_USE_CMAKE_PREFIX_PATH`` to subprojects. * :module:`YCMEPHelper`: Prepare for ``CMAKE_CACHE_DEFAULT_ARGS``. The argument is accepted, but not yet passed to :command:`ExternalProject_Add` * :module:`YCMEPHelper`: Pass ``PKG_CONFIG_PATH`` to non CMake subprojects. * :cmake:module:`ExternalProject`: Fix :cmake:policy:`CMP0054` warnings. * :module:`YCMEPHelper`: Move ``CMAKE_PREFIX_PATH`` to command line arguments. This fixes pkg-config not able to detect packages built by YCM. * :module:`YCMEPHelper`: Fix .dot files generation for modules containing the ``-`` character in the name. * :module:`YCMEPHelper`: Do not force CMake cache default arguments that are not set in the main project. * :module:`FindOrBuildPackage`: Extract version argument from ARGN. * :module:`YCMEPHelper`: variables in commands are no longer replaced. Instead of passing variables that are internal to YCMEPHelper, the user should use ````, ````, ````, and ```` that are automatically replaced by ExternalProject. * :module:`YCMEPHelper`: Handle and use CONFIGURE_SOURCE_DIR argument in order to support projects in a subdirectory. * :module:`YCMEPHelper`: Propagate CMAKE_SKIP_INSTALL_RPATH flag to all sub-projects. Find Package Modules -------------------- * New module :module:`FindqpOASES`. * Import :module:`FindFreenect` new module from `YARP Git Repository`_. * Import :module:`FindFTDI` new module from `YARP Git Repository`_. * Import :module:`FindLibusb1` new module from `YARP Git Repository`_. * Import :module:`FindOpenNI` new module from `YARP Git Repository`_. * Import :module:`FindReadline` new module from `YARP Git Repository`_. * Import :module:`FindStage` new module from `YARP Git Repository`_. * New module :module:`FindLibdc1394`. * :module:`FindFFMPEG`: Fix for recent ffmpeg version on debian * Import :module:`FindFuse` new module from `YARP Git Repository`_. * Import :module:`FindGLFW3` new module from `YARP Git Repository`_. * Import :module:`FindLibOVR` new module from `YARP Git Repository`_. * :module:`FindODE`: Use double precision by default when available. * :module:`FindESDCANAPI`: Fixed find library procedure. * :module:`FindIPOPT`: Improvements and restored required IPOPT_LINK_FLAGS variable. * Import :module:`FindLibv4l2` new module from `iCub Git Repository`_. * Import :module:`FindLibv4lconvert` new module from `iCub Git Repository`_. * Create imported targets in :module:`FindGooCanvas`, :module:`FindGooCanvasMM`, :module:`FindGtkDatabox`, and :module:`FindGtkDataboxMM` modules. * :module:`FindIPOPT` supports IPOPT from new binary releases of the `iCub Git Repository`_. * :module:`FindIPOPT` supports IPOPT from the coinor-libipopt-dev debian package. * :module:`FindGLFW3` improves detection on windows. * Fixed :module:`FindGLUT` module on Window 64 bit. * Fixed stray `;` character in :module:`FindODE`. * New module :module:`FindLibedit`. * New module :module:`FindNVIDIACg`. Build Package Modules --------------------- * New module :module:`BuildqpOASES`. * :module:`BuildGooCanvas`: Change command variable style. * New modules :module:`BuildGooCanvasMM` :module:`BuildGtkDatabox` :module:`BuildGtkDataboxMM`. * :module:`BuildYARP`: Build and use GooCanvasMM and GtkDataboxMM as dependencies. * :module:`BuildICUB`: Do not build canBus devices. CMake Proposed Modules ---------------------- * :cmake:module:`ExternalProject`: Init only selected git submodules. * :cmake:module:`ExternalProject`: Handle CONFIGURE_SOURCE_DIR argument. This argument can be used when the the main CMakeLists.txt file is not in the source directory, but in a subdirectory. CMake Next ---------- * Updated to CMake v3.7.0 + commit :cmake-commit:`ab4a9a98266fb29008cecc9649a91fc844c541f5`). * :cmake:module:`CMakePackageConfigHelpers` module imported from CMake 3.1. * :cmake:module:`FindLua` module imported from CMake 3.0. * :cmake:module:`FindMatlab` module imported from CMake 3.7. * :cmake:module:`FindArmadillo` module removed (available in CMake 2.8.9). * :module:`FindGLEW` module imported with patch applied to improve detection on windows. * :module:`ExternalProject`: Handle CONFIGURE_SOURCE_DIR argument in order to support projects in a subdirectory. * :cmake:module:`CMakeFindDependencyMacro` module imported from CMake 3.0. * :cmake:module:`FindSWIG` and :cmake:module:`UseSWIG` modules imported from CMake master. 3rd Party --------- * Updated to `Eigen Mercurial Repository`_ commit 00094bd * :module:`FindOctave` imported from https://cmake.org/Wiki/CMakeUserFindOctave * :module:`FindQCustomPlot` imported from `OVITO Git Repository`_. Variables ========= * Update :variable:`YCM_USE_CMAKE_`: variables and relative documentation.