<div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">A "CMAKE_JOB_POOLS" variable was added specify a value to use for</span><br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">  the "JOB_POOLS" property. This enables control over build</span><br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">  parallelism with command line configuration parameters when using</span><br style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">  the Ninja generator.</span><br></blockquote><div><br></div><div>Does this work with ExternalProject sub-builds? If not, I would suggest a big warning sign on the flag will save some headache...</div><div><br></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">(my limited understanding of ninja's job pool implementation leads me to think not -- that would need jobserver support, the PR for which has languished. Would be very happy to learn otherwise!)</span><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 28, 2018 at 2:14 PM, Robert Maynard <span dir="ltr"><<a href="mailto:robert.maynard@kitware.com" target="_blank">robert.maynard@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I am proud to announce that CMake 3.11.0 is now available for download at:<br>
<a href="https://cmake.org/download/" rel="noreferrer" target="_blank">https://cmake.org/download/</a><br>
<br>
Documentation is available at:<br>
  <a href="https://cmake.org/cmake/help/v3.11" rel="noreferrer" target="_blank">https://cmake.org/cmake/help/<wbr>v3.11</a><br>
<br>
Release notes appear below and are also published at<br>
  <a href="https://cmake.org/cmake/help/v3.11/release/3.11.html" rel="noreferrer" target="_blank">https://cmake.org/cmake/help/<wbr>v3.11/release/3.11.html</a><br>
<br>
Some of the more significant changes in CMake 3.11 are:<br>
<br>
* The Makefile Generators and the "Ninja" generator learned to add<br>
  compiler launcher tools along with the compiler for the "Fortran"<br>
  language ("C", "CXX", and "CUDA" were supported previously). See the<br>
  "CMAKE_<LANG>_COMPILER_<wbr>LAUNCHER" variable and<br>
  "<LANG>_COMPILER_LAUNCHER" target property for details.<br>
<br>
* Visual Studio Generators learned to support the "COMPILE_LANGUAGE"<br>
  "generator expression" in target-wide "COMPILE_DEFINITIONS",<br>
  "INCLUDE_DIRECTORIES", "COMPILE_OPTIONS", and "file(GENERATE)".  See<br>
  generator expression documentation for caveats.<br>
<br>
* The "Xcode" Generator learned to support the "COMPILE_LANGUAGE"<br>
  "generator expression" in target-wide "COMPILE_DEFINITIONS" and<br>
  "INCLUDE_DIRECTORIES".  It previously supported only<br>
  "COMPILE_OPTIONS" and "file(GENERATE)". See generator expression<br>
  documentation for caveats.<br>
<br>
* "add_library()" and "add_executable()" commands can now be called<br>
  without any sources and will not complain as long as sources are<br>
  added later via the "target_sources()" command.<br>
<br>
* The "target_compile_definitions()" command learned to set the<br>
  "INTERFACE_COMPILE_<wbr>DEFINITIONS" property on Imported Targets.<br>
<br>
* The "target_compile_features()" command learned to set the<br>
  "INTERFACE_COMPILE_FEATURES" property on Imported Targets.<br>
<br>
* The "target_compile_options()" command learned to set the<br>
  "INTERFACE_COMPILE_OPTIONS" property on Imported Targets.<br>
<br>
* The "target_include_directories()" command learned to set the<br>
  "INTERFACE_INCLUDE_<wbr>DIRECTORIES" property on Imported Targets.<br>
<br>
* The "target_sources()" command learned to set the<br>
  "INTERFACE_SOURCES" property on Imported Targets.<br>
<br>
* The "target_link_libraries()" command learned to set the<br>
  "INTERFACE_LINK_LIBRARIES" property on Imported Targets.<br>
<br>
* The "COMPILE_DEFINITIONS" source file property learned to support<br>
  "generator expressions".<br>
<br>
* A "COMPILE_OPTIONS" source file property was added to manage list<br>
  of options to pass to the compiler.<br>
<br>
* When using "AUTOMOC" or "AUTOUIC", CMake now starts multiple<br>
  parallel "moc" or "uic" processes to reduce the build time. A new<br>
  "CMAKE_AUTOGEN_PARALLEL" variable and "AUTOGEN_PARALLEL" target<br>
  property may be set to specify the number of parallel "moc" or "uic"<br>
  processes to start.  The default is derived from the number of CPUs<br>
  on the host.<br>
<br>
<br>
CMake 3.11 Release Notes<br>
************************<br>
<br>
Changes made since CMake 3.10 include the following.<br>
<br>
<br>
New Features<br>
============<br>
<br>
<br>
Platforms<br>
---------<br>
<br>
* TI C/C++ compilers are now supported by the "Ninja" generator.<br>
<br>
<br>
Generators<br>
----------<br>
<br>
* The "CodeBlocks" extra generator learned to check a<br>
  "CMAKE_CODEBLOCKS_COMPILER_ID" variable for a custom compiler<br>
  identification value to place in the project file.<br>
<br>
* The Makefile Generators and the "Ninja" generator learned to add<br>
  compiler launcher tools along with the compiler for the "Fortran"<br>
  language ("C", "CXX", and "CUDA" were supported previously). See the<br>
  "CMAKE_<LANG>_COMPILER_<wbr>LAUNCHER" variable and<br>
  "<LANG>_COMPILER_LAUNCHER" target property for details.<br>
<br>
* Visual Studio Generators learned to support the "COMPILE_LANGUAGE"<br>
  "generator expression" in target-wide "COMPILE_DEFINITIONS",<br>
  "INCLUDE_DIRECTORIES", "COMPILE_OPTIONS", and "file(GENERATE)".  See<br>
  generator expression documentation for caveats.<br>
<br>
* The "Xcode" generator learned to support the "COMPILE_LANGUAGE"<br>
  "generator expression" in target-wide "COMPILE_DEFINITIONS" and<br>
  "INCLUDE_DIRECTORIES".  It previously supported only<br>
  "COMPILE_OPTIONS" and "file(GENERATE)". See generator expression<br>
  documentation for caveats.<br>
<br>
<br>
Commands<br>
--------<br>
<br>
* "add_library()" and "add_executable()" commands can now be called<br>
  without any sources and will not complain as long as sources are<br>
  added later via the "target_sources()" command.<br>
<br>
* The "file(DOWNLOAD)" and "file(UPLOAD)" commands gained "NETRC"<br>
  and "NETRC_FILE" options to specify use of a ".netrc" file.<br>
<br>
* The "target_compile_definitions()" command learned to set the<br>
  "INTERFACE_COMPILE_<wbr>DEFINITIONS" property on Imported Targets.<br>
<br>
* The "target_compile_features()" command learned to set the<br>
  "INTERFACE_COMPILE_FEATURES" property on Imported Targets.<br>
<br>
* The "target_compile_options()" command learned to set the<br>
  "INTERFACE_COMPILE_OPTIONS" property on Imported Targets.<br>
<br>
* The "target_include_directories()" command learned to set the<br>
  "INTERFACE_INCLUDE_<wbr>DIRECTORIES" property on Imported Targets.<br>
<br>
* The "target_sources()" command learned to set the<br>
  "INTERFACE_SOURCES" property on Imported Targets.<br>
<br>
* The "target_link_libraries()" command learned to set the<br>
  "INTERFACE_LINK_LIBRARIES" property on Imported Targets.<br>
<br>
<br>
Variables<br>
---------<br>
<br>
* A "CMAKE_GENERATOR_INSTANCE" variable was introduced to hold the<br>
  selected instance of the generator's corresponding native tools if<br>
  multiple are available.  This is used by the "Visual Studio 15 2017"<br>
  generator to hold the selected instance of Visual Studio<br>
  persistently.<br>
<br>
* A "CMAKE_INSTALL_DEFAULT_<wbr>DIRECTORY_PERMISSIONS" variable was added<br>
  to enable setting of default permissions for directories created<br>
  implicitly during installation of files by "install()" and<br>
  "file(INSTALL)", e.g. during "make install".<br>
<br>
* A "CMAKE_JOB_POOLS" variable was added specify a value to use for<br>
  the "JOB_POOLS" property. This enables control over build<br>
  parallelism with command line configuration parameters when using<br>
  the Ninja generator.<br>
<br>
* The "CMAKE_NETRC" and "CMAKE_NETRC_FILE" variables were added to<br>
  specify use of a ".netrc" file by the "file(DOWNLOAD)" and<br>
  "file(UPLOAD)" commands and the "ExternalProject" module.<br>
<br>
* A "CMAKE_CUDA_SEPARABLE_<wbr>COMPILATION" variable was added to<br>
  initialize the "CUDA_SEPARABLE_COMPILATION" target property on<br>
  targets when they are created.<br>
<br>
<br>
Properties<br>
----------<br>
<br>
* The "COMPILE_DEFINITIONS" source file property learned to support<br>
  "generator expressions".<br>
<br>
* A "COMPILE_OPTIONS" source file property was added to manage list<br>
  of options to pass to the compiler.<br>
<br>
* An "IMPORTED_GLOBAL" target property was added to indicate whether<br>
  an IMPORTED target is globally visible. It is automatically set to a<br>
  true value for targets created with the "GLOBAL" option to<br>
  "add_library()" or "add_executable()". Additionally, project code<br>
  may now *promote* a local imported target to be globally visible by<br>
  setting this property to "TRUE".<br>
<br>
* An "INCLUDE_DIRECTORIES" source file property was added to specify<br>
  list of preprocessor include file search directories.<br>
<br>
* Source file properties "VS_SHADER_DISABLE_<wbr>OPTIMIZATIONS" and<br>
  "VS_SHADER_ENABLE_DEBUG" have been added to specify more details of<br>
  ".hlsl" sources with Visual Studio Generators.<br>
<br>
<br>
Modules<br>
-------<br>
<br>
* The "CheckIncludeFile" module "check_include_file" macro learned<br>
  to honor the "CMAKE_REQUIRED_LIBRARIES" variable.<br>
<br>
* The "CheckIncludeFileCXX" module "check_include_file_cxx" macro<br>
  learned to honor the "CMAKE_REQUIRED_LIBRARIES" variable.<br>
<br>
* The "CheckIncludeFiles" module "check_include_files" macro learned<br>
  to honor the "CMAKE_REQUIRED_LIBRARIES" variable.<br>
<br>
* The "CheckIncludeFiles" module "CHECK_INCLUDE_FILES()" command<br>
  gained a "LANGUAGE" option to specify whether to check using the "C"<br>
  or "CXX" compiler.<br>
<br>
* The "CMakePackageConfigHelpers" module<br>
  "write_basic_package_version_<wbr>file()" command learned a new<br>
  "SameMinorVersion" mode for the "COMPATIBILITY" argument.<br>
<br>
* The "ExternalProject" module learned to substitute<br>
  "<DOWNLOAD_DIR>" in comments, commands, working directory and<br>
  byproducts.<br>
<br>
* The "ExternalProject" module gained "NETRC" and "NETRC_FILE"<br>
  options to specify use of a ".netrc" file.<br>
<br>
* A new "FetchContent" module was added which supports populating<br>
  content at configure time using any of the download/update methods<br>
  supported by "ExternalProject_Add()".  This allows the content to be<br>
  used immediately during the configure stage, such as with<br>
  "add_subdirectory()", etc.  Hierarchical project structures are well<br>
  supported, allowing parent projects to override the content details<br>
  of child projects and ensuring content is not populated multiple<br>
  times throughout the whole project tree.<br>
<br>
* The "FindBLAS" and "FindLAPACK" modules learned to support FLAME<br>
  "blis" and "libflame".<br>
<br>
* The "FindDoxygen" module "doxygen_add_docs()" function now<br>
  supports a new "DOXYGEN_VERBATIM_VARS" list variable.  Any<br>
  "DOXYGEN_..." variable contained in that list will bypass the<br>
  automatic quoting logic, leaving its contents untouched when<br>
  transferring them to the output "Doxyfile".<br>
<br>
* A "FindIconv" module was added to locate iconv support.<br>
<br>
* The "GenerateExportHeader" module "GENERATE_EXPORT_HEADER" command<br>
  gained an "INCLUDE_GUARD_NAME" option to change the name of the<br>
  include guard symbol written to the generated export header.<br>
  Additionally, it now adds a comment after the closing "#endif" on<br>
  the generated export header's include guard.<br>
<br>
* The "UseJava" module "add_jar" command gained a<br>
  "GENERATE_NATIVE_HEADERS" option to generate native header files<br>
  using "javac -h" for "javac" 1.8 or above.  This supersedes<br>
  "create_javah", which no longer works with JDK 1.10 and above due to<br>
  removal of the "javah" tool by JEP 313.<br>
<br>
<br>
Autogen<br>
-------<br>
<br>
* When using "AUTOMOC" or "AUTOUIC", CMake now starts multiple<br>
  parallel "moc" or "uic" processes to reduce the build time. A new<br>
  "CMAKE_AUTOGEN_PARALLEL" variable and "AUTOGEN_PARALLEL" target<br>
  property may be set to specify the number of parallel "moc" or "uic"<br>
  processes to start.  The default is derived from the number of CPUs<br>
  on the host.<br>
<br>
<br>
CTest<br>
-----<br>
<br>
* The "ctest_start()" command no longer sets<br>
  "CTEST_RUN_CURRENT_SCRIPT" due to issues with scoping if it is<br>
  called from inside a function. Instead, it sets an internal variable<br>
  in CTest. However, setting "CTEST_RUN_CURRENT_SCRIPT" to 0 at the<br>
  global scope still prevents the script from being re-run at the end.<br>
<br>
<br>
CPack<br>
-----<br>
<br>
* "cpack(1)" gained "--trace" and "--trace-expand" options.<br>
<br>
* The "CPackIFW" module gained new<br>
  "CPACK_IFW_PACKAGE_REMOVE_<wbr>TARGET_DIR" variable to control if the<br>
  target directory should not be deleted when uninstalling.<br>
<br>
* The "CPackRPM" module learned to enable enforcing of execute<br>
  privileges on programs and shared libraries. See<br>
  "CPACK_RPM_INSTALL_WITH_EXEC" variable.<br>
<br>
* A "CPACK_INSTALL_DEFAULT_<wbr>DIRECTORY_PERMISSIONS" variable was added<br>
  which serves the same purpose during packaging (e.g. "make package")<br>
  as the "CMAKE_INSTALL_DEFAULT_<wbr>DIRECTORY_PERMISSIONS" variable serves<br>
  during installation (e.g. "make install").<br>
<br>
<br>
Other<br>
-----<br>
<br>
* Alias Targets may now alias Imported Targets that are created with<br>
  the "GLOBAL" option to "add_library()".<br>
<br>
* Interface Libraries may now have custom properties set on them if<br>
  they start with either an underscore ("_") or a lowercase ASCII<br>
  character. The original intention was to only allow properties which<br>
  made sense for "INTERFACE" libraries, but it also blocked usage of<br>
  custom properties.<br>
<br>
* The "cmake(1)" "--open <dir>" command-line option was added to<br>
  open generated IDE projects like Visual Studio solutions or Xcode<br>
  projects.<br>
<br>
<br>
Deprecated and Removed Features<br>
==============================<wbr>=<br>
<br>
* An explicit deprecation diagnostic was added for policies<br>
  "CMP0037" through "CMP0054" ("CMP0036" and below were already<br>
  deprecated). The "cmake-policies(7)" manual explains that the OLD<br>
  behaviors of all policies are deprecated and that projects should<br>
  port to the NEW behaviors.<br>
<br>
* The "KDevelop3" generator has been removed.<br>
<br>
<br>
Other Changes<br>
=============<br>
<br>
* Policy "CMP0037" no longer reserves target names associated with<br>
  optional features, such as "test" and "package", unless the<br>
  corresponding feature is enabled.<br>
<br>
* The "FindOpenGL" module now prefers GLVND libraries if available.<br>
  See policy "CMP0072".<br>
<br>
* The minimum deployment target set in the<br>
  "CMAKE_OSX_DEPLOYMENT_TARGET" variable used to be only applied for<br>
  macOS regardless of the selected SDK.  It is now properly set for<br>
  the target platform selected by "CMAKE_OSX_SYSROOT". For example, if<br>
  the sysroot variable specifies an iOS SDK then the value in<br>
  "CMAKE_OSX_DEPLOYMENT_TARGET" is interpreted as minimum iOS version.<br>
<br>
* The "Xcode" generator behavior of generating one project file per<br>
  "project()" command may now be controlled with the<br>
  "CMAKE_XCODE_GENERATE_TOP_<wbr>LEVEL_PROJECT_ONLY" variable. This could<br>
  be useful to speed up the CMake generation step for large projects<br>
  and to work-around a bug in the "ZERO_CHECK" logic.<br>
<br>
* Since the "CMakeCache.txt" format does not support newlines in<br>
  values, values containing newlines are now truncated before writing<br>
  to the file. In addition, a warning comment is written to the cache<br>
  file, and a warning message is displayed to the user on the console.<br>
<br>
------------------------------<wbr>------------------------------<wbr>----------------<br>
Changes made since CMake 3.11.0-rc4:<br>
<br>
Brad King (5):<br>
      Features: Record for SunPro 5.15<br>
      Revert "Remove CTestTestfile.cmake when BUILD_TESTING is OFF"<br>
      cmSystemTools: Fix ParseArguments out-of-bounds read<br>
      ctest_update: Fix crash when handling svn externals<br>
      CMake 3.11.0<br>
<br>
Roger Leigh (1):<br>
      FindBoost: Add support for Boost 1.67 with Python version suffixes<br>
--<br>
<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" rel="noreferrer" target="_blank">http://www.cmake.org/Wiki/<wbr>CMake_FAQ</a><br>
<br>
Kitware offers various services to support the CMake community. For more information on each offering, please visit:<br>
<br>
CMake Support: <a href="http://cmake.org/cmake/help/support.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/<wbr>support.html</a><br>
CMake Consulting: <a href="http://cmake.org/cmake/help/consulting.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/<wbr>consulting.html</a><br>
CMake Training Courses: <a href="http://cmake.org/cmake/help/training.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/<wbr>training.html</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/<wbr>opensource/opensource.html</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="https://cmake.org/mailman/listinfo/cmake" rel="noreferrer" target="_blank">https://cmake.org/mailman/<wbr>listinfo/cmake</a><br>
</blockquote></div><br></div>