YCM 0.2.0 (2016-11-17) Release Notes

Changes made since YCM 0.1 include the following.

Build System

  • Use the INSTALL_PREFIX argument for 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 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

  • StandardFindModule: Add QUIET argument.

  • New module GitInfo.

  • IncludeUrl: Several bug fixes and improvement.

  • New module ReplaceImportedTargets.

  • 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_<NAME> are specified, and the TARGET argument is given, the <NAME>_LIBRARIES variable content is replaced with the corresponding imported target.

  • StandardFindModule: Ensure that include directories exists.

  • StandardFindModule: Fix INTERFACE_COMPILE_{DEFINITIONS,OPTIONS} properties.

  • New module GetAllCMakeProperties.

  • StandardFindModule Fix QUIET argument.

Packaging Helper Modules

Superbuild Helper Modules

  • YCMEPHelper now handles tests for sub-projects.

  • YCMEPHelper: Pass PKG_CONFIG_USE_CMAKE_PREFIX_PATH to subprojects.

  • YCMEPHelper: Prepare for CMAKE_CACHE_DEFAULT_ARGS. The argument is accepted, but not yet passed to ExternalProject_Add()

  • YCMEPHelper: Pass PKG_CONFIG_PATH to non CMake subprojects.

  • ExternalProject: Fix CMP0054 warnings.

  • YCMEPHelper: Move CMAKE_PREFIX_PATH to command line arguments. This fixes pkg-config not able to detect packages built by YCM.

  • YCMEPHelper: Fix .dot files generation for modules containing the - character in the name.

  • YCMEPHelper: Do not force CMake cache default arguments that are not set in the main project.

  • FindOrBuildPackage: Extract version argument from ARGN.

  • YCMEPHelper: variables in commands are no longer replaced. Instead of passing variables that are internal to YCMEPHelper, the user should use <SOURCE_DIR>, <BINARY_DIR>, <INSTALL_DIR>, and <TMP_DIR> that are automatically replaced by ExternalProject.

  • YCMEPHelper: Handle and use CONFIGURE_SOURCE_DIR argument in order to support projects in a subdirectory.

  • YCMEPHelper: Propagate CMAKE_SKIP_INSTALL_RPATH flag to all sub-projects.

Find Package Modules

Build Package Modules

CMake Proposed Modules

  • ExternalProject: Init only selected git submodules.

  • 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 ab4a9a98266fb29008cecc9649a91fc844c541f5).

  • CMakePackageConfigHelpers module imported from CMake 3.1.

  • FindLua module imported from CMake 3.0.

  • FindMatlab module imported from CMake 3.7.

  • FindArmadillo module removed (available in CMake 2.8.9).

  • FindGLEW module imported with patch applied to improve detection on windows.

  • ExternalProject: Handle CONFIGURE_SOURCE_DIR argument in order to support projects in a subdirectory.

  • CMakeFindDependencyMacro module imported from CMake 3.0.

  • FindSWIG and UseSWIG modules imported from CMake master.

3rd Party

Variables