YCM 0.10.0 (2019-04-01) Release Notes¶
Contents
Changes made since YCM 0.9 include the following.
Build System¶
YCM can now be included safely in another project using
FetchContent.
Variables¶
The following varibales are no longer cached, since they should be set from the project maintainer, and not by the user: *
YCM_USE_CMAKE_<VERSION>*YCM_USE_CMAKE_NEXT*YCM_USE_CMAKE_PROPOSED*YCM_USE_3RDPARTY*YCM_USE_DEPRECATEDThe
YCM_USE_CMAKEcan now be used to disable simultaneously all theYCM_USE_CMAKE_<VERSION>,YCM_USE_CMAKE_NEXT, andYCM_USE_CMAKE_PROPOSEDvariables.
Modules¶
Generic Modules¶
The
InstallBasicPackageFilesmodule learned to forward theARCH_INDEPENDENToption towrite_basic_package_version_file().The
IncludeUrlmodule no longer uses locks.The
InstallBasicPackageFilesmodule no longer looks for theConfig.cmake.inin the root directory, only current source directory is supported.The
YCMDefaultDirsmodule default dirs now useCMAKE_CURRENT_BINARY_DIRinstead ofCMAKE_BINARY_DIR.The
YCMDefaultDirsmodule is now deprecated.The
InstallBasicPackageFilesmodule no longer needsFIRST_TARGETwhen used withEXPORT. UsingFIRST_TARGETis deprecated.InstallBasicPackageFiles: theTARGETS,TARGETS_PROPERTY, andTARGETS_PROPERTIESarguments are deprecated.The
AddUninstallTargetmodule must now be included in your mainCMakeLists.txt. If included in a subdirectory it does nothing. This allows you to use it safely in your mainCMakeLists.txtand include your project usingadd_subdirectory(for example when using it withFetchContent).The
AddUninstallTargetmodule no longer tries to add theuninstalltarget if the target it already exists, instead it does nothing.InstallBasicPackageFiles: The list of targets is no longer used to decide whetherPRIVATE_DEPENDENCIESshould be enabled or not (only theBUILD_SHARED_LIBSvariable is used). Dependencies forSTATIC,OBJECT, andINTERFACElibraries should be passed asDEPENDENCIESinstead.InstallBasicPackageFiles: TheNO_COMPATIBILITY_VARSoption is deprecated. The compatibility variables are no longer generated by default, and their generation is broken when usingEXPORT. If required, it is possible to re-enable it using theENABLE_COMPATIBILITY_VARSoption (deprecated) or define them using eitherINCLUDE_FILEorINCLUDE_CONTENT(recommended).InstallBasicPackageFiles: Fixed malformed find_package() when a package dependency had a required version, for CMake older than 3.9.The
InstallBasicPackageFilesmodule now considers a relativeEXPORT_DESTINATIONas relative toCMAKE_CURRENT_BINARY_DIRinstead ofCURRENT_BINARY_DIR.InstallBasicPackageFiles: Fixed export destination whenEXPORT_DESTINATIONis an absolute path.
Superbuild Helper Modules¶
The
YCMEPHelpermodule now supports theCMAKE_CACHE_DEFAULT_ARGSargument.The
YCMEPHelpermodule supports theSOURCE_SUBDIRargument. TheCONFIGURE_SOURCE_DIRargument is now deprecated in favour ofSOURCE_SUBDIR.The
YCMEPHelpermodule now passes the variableCMAKE_TOOLCHAIN_FILEto the children projects.YCMEPHelper: TheCMAKE_PREFIX_PATH` list passed to the subproject now has the first element the installation directory of the superbuild. This is to ensure that if a package is available in the system but it is disabled using ``USE_SYSTEM_<package>set toOFF, the version installed by the superbuild is the one found by the other packages in the superbuild.The
YCMEPHelpermodule now adds subproject to the main install target, if they provide acmake_install.cmakefile in their build directory. This file is automatically provided by CMake for projects installing at least one file. This feature should be considered experimental and might be modified or removed in the future. Please note that non-relocatable file will contain the path for the project installation (i.e. the path to theinstallfolder inside the superbuild binary directory), not toCMAKE_INSTALL_PREFIX.
Find Modules¶
The
FindLibOVRmodule now works properly with VS2015.The
FindPortAudiomodule should now detect the library installed by vcpkg.The
FindPortAudiomodule now handles debug and release libraries.Import
FindI2Cmodule from YARP Git Repository.The
FindACEmodule now creates theACE::ACEandACE::ACE_INLINEimported targets. TheACE_ADDR_HAS_LOOPBACK_METHODandACE_COMPILES_WITHOUT_INLINE_<CONFIG>are now deprecated.The
FindQt3module is deprecated in favour of one from CMake.Added
Findassimpmodule to locate the Open Asset Importer Library (assimp).Added
FindGLMmodule to locate the OpenGL Mathematics (GLM) library.
CMake Next¶
Updated to CMake v3.14.0 + commit e67e4dbaadf3583d665fb5409b425e1a238d9748.
Imported
FindDoxygenmodule from CMake 3.9.Imported
WriteBasicConfigVersionFileandCMakePackageConfigHelpersmodules from CMake master, to support theARCH_INDEPENDENToption inwrite_basic_package_version_file().Imported
FetchContentmodule from CMake 3.11.Imported
FindOpenGLmodule from CMake 3.10.The
ExternalProjectmodule was updated from CMake next. All the customizations were removed, with the exception of thegitdeleting clones fix.The
FindGlewmodule is now dowloaded from CMake master.
3rd Party¶
Imported
FindGObjectmodule from qt-gstreamer Git Repository + some unmerged changes from robotology-dependencies fork.Imported
CMakeRCmodule from CMakeRC Git Repository.Update Catch2 Git Repository to commit
4902cd721586822ded795afe0c418c553137306a+ some unmerged changes from robotology-dependencies fork.Imported
UseLATEXmodule from UseLATEX Git Repository.