自动化构建系统 CMake 3.11 现已支持 TI C/C++ 编译器 - 开源中国社区
Float_left Icon_close
自动化构建系统 CMake 3.11 现已支持 TI C/C++ 编译器
clouddyy 2018年03月29日

自动化构建系统 CMake 3.11 现已支持 TI C/C++ 编译器

clouddyy clouddyy 发布于2018年03月29日 收藏 2

自动化构建系统 CMake 3.11 已发布,该版本添加了对 TI C/C++ 编译器的支持。更新内容较多,详情:

Platforms

  • TI C/C++ compilers are now supported by the Ninja generator.

Generators

Commands

Variables

Properties

Modules

  • The CheckIncludeFile module check_include_file macro learned to honor the CMAKE_REQUIRED_LIBRARIESvariable.

  • The CheckIncludeFileCXX module check_include_file_cxx macro learned to honor the CMAKE_REQUIRED_LIBRARIESvariable.

  • The CheckIncludeFiles module check_include_files macro learned to honor the CMAKE_REQUIRED_LIBRARIESvariable.

  • The CheckIncludeFiles module CHECK_INCLUDE_FILES() command gained a LANGUAGE option to specify whether to check using the C or CXX compiler.

  • The CMakePackageConfigHelpers module write_basic_package_version_file() command learned a newSameMinorVersion mode for the COMPATIBILITY argument.

  • The ExternalProject module learned to substitute <DOWNLOAD_DIR> in comments, commands, working directory and byproducts.

  • The ExternalProject module gained NETRC and NETRC_FILE options to specify use of a .netrc file.

  • A new FetchContent module was added which supports populating content at configure time using any of the download/update methods supported by ExternalProject_Add(). This allows the content to be used immediately during the configure stage, such as with add_subdirectory(), etc. Hierarchical project structures are well supported, allowing parent projects to override the content details of child projects and ensuring content is not populated multiple times throughout the whole project tree.

  • The FindBLAS and FindLAPACK modules learned to support FLAME blis and libflame.

  • The FindDoxygen module doxygen_add_docs() function now supports a new DOXYGEN_VERBATIM_VARS list variable. Any DOXYGEN_... variable contained in that list will bypass the automatic quoting logic, leaving its contents untouched when transferring them to the output Doxyfile.

  • FindIconv module was added to locate iconv support.

  • The GenerateExportHeader module GENERATE_EXPORT_HEADER command gained an INCLUDE_GUARD_NAME option to change the name of the include guard symbol written to the generated export header. Additionally, it now adds a comment after the closing #endif on the generated export header’s include guard.

  • The UseJava module add_jar command gained a GENERATE_NATIVE_HEADERS option to generate native header files using javac -h for javac 1.8 or above. This supersedes create_javah, which no longer works with JDK 1.10 and above due to removal of the javah tool by JEP 313.

Autogen

  • When using AUTOMOC or AUTOUIC, CMake now starts multiple parallel moc or uic processes to reduce the build time. A new CMAKE_AUTOGEN_PARALLEL variable and AUTOGEN_PARALLEL target property may be set to specify the number of parallel moc or uic processes to start. The default is derived from the number of CPUs on the host.

CTest

  • The ctest_start() command no longer sets CTEST_RUN_CURRENT_SCRIPT due to issues with scoping if it is called from inside a function. Instead, it sets an internal variable in CTest. However, setting CTEST_RUN_CURRENT_SCRIPT to 0 at the global scope still prevents the script from being re-run at the end.

CPack

Other

  • Alias Targets may now alias Imported Targets that are created with the GLOBAL option to add_library().

  • Interface Libraries may now have custom properties set on them if they start with either an underscore (_) or a lowercase ASCII character. The original intention was to only allow properties which made sense for INTERFACE libraries, but it also blocked usage of custom properties.

  • The cmake(1) --open <dir> command-line option was added to open generated IDE projects like Visual Studio solutions or Xcode projects.

Deprecated and Removed Features

  • An explicit deprecation diagnostic was added for policies CMP0037 through CMP0054 (CMP0036 and below were already deprecated). The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that projects should port to the NEW behaviors.

  • The KDevelop3 generator has been removed.

Other Changes

  • Policy CMP0037 no longer reserves target names associated with optional features, such as test and package, unless the corresponding feature is enabled.

  • The FindOpenGL module now prefers GLVND libraries if available. See policy CMP0072.

  • The minimum deployment target set in the CMAKE_OSX_DEPLOYMENT_TARGET variable used to be only applied for macOS regardless of the selected SDK. It is now properly set for the target platform selected by CMAKE_OSX_SYSROOT. For example, if the sysroot variable specifies an iOS SDK then the value in CMAKE_OSX_DEPLOYMENT_TARGET is interpreted as minimum iOS version.

  • The Xcode generator behavior of generating one project file per project() command may now be controlled with the CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY variable. This could be useful to speed up the CMake generation step for large projects and to work-around a bug in the ZERO_CHECK logic.

  • Since the CMakeCache.txt format does not support newlines in values, values containing newlines are now truncated before writing to the file. In addition, a warning comment is written to the cache file, and a warning message is displayed to the user on the console.

发布说明:https://blog.kitware.com/cmake-3-11-0-available-for-download/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:自动化构建系统 CMake 3.11 现已支持 TI C/C++ 编译器
分享
评论(4)
精彩评论
3
比写 Makefile 还复杂,已经没有用的必要了。
最新评论
0
试试xmake吧
0
因为它太复杂,所以我们用dlang写了自己的轮子
3
比写 Makefile 还复杂,已经没有用的必要了。
0
这么一弄的话,是不是就可以用CMake构建单片机程序了?在Qt Creator中建纯C/C++项目就可以将Qt Creator作为嵌入式单片机的IDE了?脱离用破解盗版IAR的节奏。
顶部