YCM 0.10.0
YCM 0.10.0 (2019-04-01) Release Notes
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_DEPRECATED
- The
YCM_USE_CMAKE
can now be used to disable simultaneously all theYCM_USE_CMAKE_<VERSION>
,YCM_USE_CMAKE_NEXT
, andYCM_USE_CMAKE_PROPOSED
variables.
Modules
Generic Modules
- The
InstallBasicPackageFiles
module learned to forward theARCH_INDEPENDENT
option towrite_basic_package_version_file
. - The
IncludeUrl
module no longer uses locks. - The
InstallBasicPackageFiles
module no longer looks for theConfig.cmake.in
in the root directory, only current source directory is supported. - The
YCMDefaultDirs
module default dirs now useCMAKE_CURRENT_BINARY_DIR
instead ofCMAKE_BINARY_DIR
. - The
YCMDefaultDirs
module is now deprecated. - The
InstallBasicPackageFiles
module no longer needsFIRST_TARGET
when used withEXPORT
. UsingFIRST_TARGET
is deprecated. InstallBasicPackageFiles
: theTARGETS
,TARGETS_PROPERTY
, andTARGETS_PROPERTIES
arguments are deprecated.- The
AddUninstallTarget
module 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.txt
and include your project usingadd_subdirectory
(for example when using it withFetchContent
). - The
AddUninstallTarget
module no longer tries to add theuninstall
target if the target it already exists, instead it does nothing. InstallBasicPackageFiles
: The list of targets is no longer used to decide whetherPRIVATE_DEPENDENCIES
should be enabled or not (only theBUILD_SHARED_LIBS
variable is used).
Dependencies forSTATIC
,OBJECT
, andINTERFACE
libraries should be passed asDEPENDENCIES
instead.InstallBasicPackageFiles
: TheNO_COMPATIBILITY_VARS
option 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_VARS
option (deprecated) or define them using eitherINCLUDE_FILE
orINCLUDE_CONTENT
(recommended).InstallBasicPackageFiles
: Fixed malformedfind_package()
when a package dependency had a required version, for CMake older than 3.9.- The
InstallBasicPackageFiles
module now considers a relativeEXPORT_DESTINATION
as relative toCMAKE_CURRENT_BINARY_DIR
instead ofCURRENT_BINARY_DIR
. InstallBasicPackageFiles
: Fixed export destination whenEXPORT_DESTINATION
is an absolute path.
Superbuild Helper Modules
- The
YCMEPHelper
module now supports theCMAKE_CACHE_DEFAULT_ARGS
argument. - The
YCMEPHelper
module supports theSOURCE_SUBDIR
argument. TheCONFIGURE_SOURCE_DIR
argument is now deprecated in favour ofSOURCE_SUBDIR
. - The
YCMEPHelper
module now passes the variableCMAKE_TOOLCHAIN_FILE
to 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 usingUSE_SYSTEM_<package>
set toOFF
, the version installed by the superbuild is the one found by the other packages in the superbuild.- The
YCMEPHelper
module now adds subproject to the main install target, if they provide acmake_install.cmake
file 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 theinstall
folder inside the superbuild binary directory), not toCMAKE_INSTALL_PREFIX
.
Find Modules
- The
FindLibOVR
module now works properly with VS2015. - The
FindPortAudio
module should now detect the library installed by vcpkg. - The
FindPortAudio
module now handles debug and release libraries. - Import
FindI2C
module from YARP Git Repository. - The
FindACE
module now creates theACE::ACE
andACE::ACE_INLINE
imported targets. TheACE_ADDR_HAS_LOOPBACK_METHOD
andACE_COMPILES_WITHOUT_INLINE_<CONFIG>
are now deprecated. - The
FindQt3
module is deprecated in favour of one from CMake. - Added
Findassimp
module to locate the Open Asset Importer Library (assimp). - Added
FindGLM
module to locate the OpenGL Mathematics (GLM) library.
CMake Next
- Updated to CMake v3.14.0 + commit
e67e4dbaadf3583d665fb5409b425e1a238d9748
. - Imported
FindDoxygen
module from CMake 3.9. - Imported
WriteBasicConfigVersionFile
andCMakePackageConfigHelpers
modules from CMake master, to support theARCH_INDEPENDENT
option inwrite_basic_package_version_file
. - Imported
FetchContent
module from CMake 3.11. - Imported
FindOpenGL
module from CMake 3.10. - The
ExternalProject
module was updated from CMake next. All the customizations were removed, with the exception of thegit
deleting clones fix. - The
FindGlew
module is now dowloaded from CMake master.
3rd Party
- Imported
FindGObject
module from qt-gstreamer Git Repository + some unmerged changes from robotology-dependencies fork. - Imported
CMakeRC
module from CMakeRC Git Repository. - Update Catch2 Git Repository to commit
4902cd721586822ded795afe0c418c553137306a
+ some unmerged changes from robotology-dependencies fork. - Imported
UseLATEX
module from UseLATEX Git Repository.