Opened 8 years ago

Closed 8 years ago

#7135 closed enhancement (fixed)

cmake-3.4.0

Reported by: Fernando de Oliveira Owned by: Fernando de Oliveira
Priority: normal Milestone: 7.9
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

http://www.cmake.org/files/v3.4/cmake-3.4.0.tar.gz

http://www.cmake.org/files/v3.4/cmake-3.4.0-SHA-256.txt

a5b82bf6ace6c481cdb911fd5d372a302740cbefd387e05297cb37f7468d1cea

http://www.cmake.org/files/v3.4/cmake-3.4.0-SHA-256.txt.asc

3.4.0 https://cmake.org/pipermail/cmake/2015-November/061998.html

[CMake] [ANNOUNCE] CMake 3.4.0 Released
Robert Maynard robert.maynard at kitware.com
Thu Nov 12 13:56:05 EST 2015

I am proud to announce that CMake 3.4.0 is now available for download
at:
  https://cmake.org/download/

Documentation is available at:
  https://cmake.org/cmake/help/v3.4

Release notes appear below and are also published at
  https://cmake.org/cmake/help/v3.4/release/3.4.html

Some of the more significant features of CMake 3.4 are:

* The "if()" command learned a new "TEST" operator that evaluates to
  true if a given test name has been defined by the "add_test()"
  command.  See policy "CMP0064".

* The "install(DIRECTORY)" command "DESTINATION" option learned to
  support "generator expressions".

* The "install(FILES)" command "DESTINATION" option learned to
  support "generator expressions".

* CMake learned to honor "*.manifest" source files with MSVC tools.
  Manifest files named as sources of ".exe" and ".dll" targets will be
  merged with linker-generated manifests and embedded in the binary.


Deprecated and Removed Features:

* The "CMakeExpandImportedTargets" module is now documented as
  deprecated.  See module documentation for an explanation.

* The "CMAKE_USE_RELATIVE_PATHS" variable no longer has any effect.
  Previously it was partially implemented and unreliable.


CMake 3.4 Release Notes
***********************

Changes made since CMake 3.3 include the following.


New Features
============


Generators
----------

* The "Visual Studio 14 2015" generator learned to select a Windows
  10 SDK based on the value of the "CMAKE_SYSTEM_VERSION" variable and
  the SDKs available on the host.

* CMake learned rudimentary support for the Apple Swift language.
  When using the "Xcode" generator with Xcode 6.1 or higher, one may
  enable the "Swift" language with the "enable_language()" command or
  the "project()" command (this is an error with other generators or
  when Xcode is too old).  Then one may list ".swift" source files in
  targets for compilation.


Commands
--------

* The "find_program()" command learned a "NAMES_PER_DIR" option to
  consider all given "NAMES" in each directory before moving on to the
  next directory.

* The "get_filename_component()" command learned a new "BASE_DIR"
  subcommand.  This is used to specify a base directory when
  calculating an absolute path from a relative path.

* The "if()" command learned a new "TEST" operator that evaluates to
  true if a given test name has been defined by the "add_test()"
  command.  See policy "CMP0064".

* The "install(DIRECTORY)" command "DESTINATION" option learned to
  support "generator expressions".

* The "install(FILES)" command "DESTINATION" option learned to
  support "generator expressions".

* The "string()" command learned a new "APPEND" subcommand.


Variables
---------

* The Makefile Generators and the "Ninja" generator learned to add
  compiler launcher tools like distcc and ccache along with the
  compiler for "C" and "CXX" languages.  See the
  "CMAKE_<LANG>_COMPILER_LAUNCHER" variable and
  "<LANG>_COMPILER_LAUNCHER" target property for details.

* New "CMAKE_LINK_SEARCH_START_STATIC" and
  "CMAKE_LINK_SEARCH_END_STATIC" variables were introduced to
  initialize the "LINK_SEARCH_START_STATIC" and
  "LINK_SEARCH_END_STATIC" target properties, respectively.


Properties
----------

* Visual Studio Generators learned to support additonal target
  properties to customize projects for NVIDIA Nsight Tegra Visual
  Studio Edition:

  * "ANDROID_ANT_ADDITIONAL_OPTIONS"

  * "ANDROID_ARCH"

  * "ANDROID_ASSETS_DIRECTORIES"

  * "ANDROID_JAR_DEPENDENCIES"

  * "ANDROID_JAR_DIRECTORIES"

  * "ANDROID_JAVA_SOURCE_DIR"

  * "ANDROID_NATIVE_LIB_DEPENDENCIES"

  * "ANDROID_NATIVE_LIB_DIRECTORIES"

  * "ANDROID_PROCESS_MAX"

  * "ANDROID_PROGUARD"

  * "ANDROID_PROGUARD_CONFIG_PATH"

  * "ANDROID_SECURE_PROPS_PATH"

  * "ANDROID_SKIP_ANT_STEP"

  * "ANDROID_STL_TYPE"

* The "ARCHIVE_OUTPUT_DIRECTORY", "LIBRARY_OUTPUT_DIRECTORY", and
  "RUNTIME_OUTPUT_DIRECTORY" target properties learned to support
  "generator expressions".

* The "SOURCE_DIR" and "BINARY_DIR" target properties were
  introduced to allow project code to query where a target is defined.

* The "OUTPUT_NAME" target property and its variants learned to
  support "generator expressions".

* A "TARGET_MESSAGES" global property was added to tell the Makefile
  Generators whether to generate commands to print output after each
  target is completed.

* On Windows with MS-compatible tools, CMake learned to optionally
  generate a module definition (".def") file for "SHARED" libraries.
  See the "WINDOWS_EXPORT_ALL_SYMBOLS" target property.


Modules
-------

* The "ExternalProject" module "ExternalProject_Add()" function
  "GIT_SUBMODULES" option now also limits the set of submodules that
  are initialized in addition to the prior behavior of limiting the
  set of submodules that are updated.

* The "ExternalProject" module learned new "USES_TERMINAL" arguments
  for giving steps exclusive terminal access.  This is useful with the
  "Ninja" generator to monitor CMake superbuild progress and prevent
  CPU oversubscription.

* The "FindBISON" module "BISON_TARGET" macro learned a new
  "DEFINES_FILE" option to specify a custom output header to be
  generated.

* The "FindHDF5" module learend a new "HDF5_PREFER_PARALLEL" option
  allowing users to specify that a parallel HDF5 tool is preferred if
  both are available.

* The "FindIce" module now provides imported targets.

* The "FindJava" module learned to optionally find the "idlj" and
  "jarsigner" tools.

* The "FindOpenSSL" module now provides imported targets.

* The "FindOpenSSL" module learned a new "OPENSSL_USE_STATIC_LIBS"
  option to search only for static libraries.

* The "FindPkgConfig" learned a new "pkg_get_variable()" command
  which may be used to query for arbitrary variables from a package
  (such as for related tools or data and plugin install paths).

* The "FindProtobuf" module gained a new
  "protobuf_generate_python()" function to generate python sources
  from ".proto" files.

* The "FindTIFF" module learned to search separately for debug and
  release variants.

* The "FindwxWidgets" module learned to support version requests.

* The "FindXercesC" module learned to search separately for debug
  and release variants.

* The "FindZLIB" module learned to search separately for debug and
  release variants.

* The "GNUInstallDirs" module learned special default values for
  certain installation prefixes according to the GNU Coding Standards
  and the Filesystem Hierarchy Standard.

* The "UseJava" module "add_jar" function learned to support
  response files (e.g. "@srcs.txt") for source specification.

* The "UseJava" module "install_jar" function learned new
  "DESTINATION" and "COMPONENT" options to specify the corresponding
  "install()" command options.

* The "UseJava" module gained a new "create_javah" function to
  create C headers from Java classes.


Generator Expressions
---------------------

* A new "$<SHELL_PATH:...>" "generator expression" has been added.


CTest
-----

* CTest learned to optionally measure the CPU load during parallel
  testing and avoid starting tests that may cause the load to exceed a
  given threshold.  See the "ctest(1)" command "--test-load" option,
  the "TestLoad" setting of the CTest Test Step, the "CTEST_TEST_LOAD"
  variable, and the "TEST_LOAD" option of the "ctest_test()" command.

* "ctest(1)" learned options "--test-output-size-passed" and "--
  test-output-size-failed" to customize the limit on test output size
  submitted when running as a Dashboard Client.


CPack
-----

* The "CPackDeb" module learned to set package dependencies per
  component.  See variables:

  * "CPACK_DEBIAN_<COMPONENT>_PACKAGE_BREAKS"

  * "CPACK_DEBIAN_<COMPONENT>_PACKAGE_CONFLICTS"

  * "CPACK_DEBIAN_<COMPONENT>_PACKAGE_ENHANCES"

  * "CPACK_DEBIAN_<COMPONENT>_PACKAGE_PREDEPENDS"

  * "CPACK_DEBIAN_<COMPONENT>_PACKAGE_PROVIDES"

  * "CPACK_DEBIAN_<COMPONENT>_PACKAGE_RECOMMENDS"

  * "CPACK_DEBIAN_<COMPONENT>_PACKAGE_REPLACES"

  * "CPACK_DEBIAN_<COMPONENT>_PACKAGE_SUGGESTS"

* The "CPack" module learned to package empty directories.

* The "CPack" module gained a new setting,
  "CPACK_VERBATIM_VARIABLES", which can be used to ensure the cpack
  program receives the settings' values exactly as they were set, even
  if they contain CMake-special characters. For compatibility, it's
  off by default.


Other
-----

* The "Compile Features" functionality is now aware of features
  supported by GNU C compilers on Windows.

* CMake learned to honor "*.manifest" source files with MSVC tools.
  Manifest files named as sources of ".exe" and ".dll" targets will be
  merged with linker-generated manifests and embedded in the binary.

* The Concurrent Fortran 77 compiler is now supported. Its "compiler
  id" is "CCur".

* "cmake(1)" gained a new "--trace-expand" command line option that
  is like "--trace" but expands variable references in the output.


Deprecated and Removed Features
===============================

* The "CMakeExpandImportedTargets" module is now documented as
  deprecated.  See module documentation for an explanation.

* The "CMAKE_USE_RELATIVE_PATHS" variable no longer has any effect.
  Previously it was partially implemented and unreliable.


Other Changes
=============

* The "CheckFunctionExists", "CheckLibraryExists",
  "CheckSymbolExists", and "FindThreads" modules learned to work in
  environments where only CXX is enabled.

* The "CPackDeb" module now correctly excludes symlinks during
  package checksum calculation.

* The "CPackDeb" no longer uses fakeroot and system tar program for
  packaging.

* The "CPack" module no longer mangles settings with CMake-special
  characters when they're used as defaults for other settings. The
  macro "cpack_set_if_not_set", which was responsible for this, is now
  deprecated.

* CMake no longer links executables with flags to export symbols
  unless the "ENABLE_EXPORTS" target property is set. See policy
  "CMP0065".

* The "SONAME" field is no longer set for "MODULE" libraries created
  with the "add_library()" command.  "MODULE" libraries are meant for
  explicit dynamic loading at runtime. They cannot be linked so
  "SONAME" is not useful.

* The internal "CMAKE__COMPILE_OBJECT" rule variable now
  substitutes compiler include flags in a separate "<INCLUDES>"
  placeholder instead of the main "<FLAGS>" placeholder.

--------------------------------------------------------------------
Changes made since CMake 3.4.0-rc3:

Brad King (1):
      CMake 3.4.0

Stephen Kelly (1):
      Install: Move SetHaveInstallRule to a more-obvious place

Change History (9)

comment:1 by Fernando de Oliveira, 8 years ago

Owner: changed from blfs-book@… to Fernando de Oliveira
Status: newassigned

comment:2 by Fernando de Oliveira, 8 years ago

Problems with the tests, apparently I can explain.

98% tests passed, 9 tests failed out of 447

Label Time Summary:
Label1    =   0.20 sec (1 test)
Label2    =   0.20 sec (1 test)

Total Test time (real) = 345.92 sec

The following tests FAILED:
	141 - Qt4And5AutomocReverse (Failed)
	395 - GTK2Components.gtkmm (Failed)
	410 - GTK2Targets.sigc++ (Failed)
	412 - GTK2Targets.giomm (Failed)
	413 - GTK2Targets.atkmm (Failed)
	414 - GTK2Targets.cairomm (Failed)
	415 - GTK2Targets.pangomm (Failed)
	416 - GTK2Targets.gdkmm (Failed)
	417 - GTK2Targets.gtkmm (Failed)
Errors while running CTest

98% tests passed, 9 tests failed out of 447 is not bad.

Error in 141 - Qt4And5AutomocReverse: I verified that the directory is empty:

141: Change Dir: /tmp/cmake-3.4.0/Tests/Qt4And5AutomocReverse
141: 
141: Run Clean Command:"/usr/bin/make" "clean"
141: make: *** No rule to make target 'clean'.  Stop.
141: 
141: Run Build Command:"/usr/bin/make"
141: make: *** No targets specified and no makefile found.  Stop

For the other tests, failure cause is typically (I've broken the lines):

395:                  from
/tmp/cmake-3.4.0/Tests/FindGTK2/gtkmm/main.cpp:1:
395: /usr/include/c++/5.2.0/bits/c++0x_warning.h:32:2: error: #error
This file requires compiler and library support for the ISO C++ 2011
standard. This support is currently experimental, and must be enabled
with the -std=c++11 or -std=gnu++11 compiler options.

Built with CXXFLAGS="-g -O2 -std=c++11" ./bootstrap ..., but the results were the same.

comment:3 by Pierre Labastie, 8 years ago

maybe (just a guess, I have not tried) CXXFLAGS needs to be passed to make too ("bootstap" is not "configure"), or to the test command.

comment:4 by Fernando de Oliveira, 8 years ago

I've tried already to the test command, and it didn't pick it up. With bootstrap was included in the compilation, with g++, before "alone", now followed by the flags.

comment:5 by bdubbs@…, 8 years ago

I downloaded cmake-3.4.0 and ran the instructions in the book: bin/ctest -O ../cmake-3.3.2-test.log

100% tests passed, 0 tests failed out of 442

Label Time Summary:
Label1    =   0.03 sec (1 test)
Label2    =   0.03 sec (1 test)

Total Test time (real) = 775.73 sec

This is on my almost complete BLFS 7.8 + some -dev packages system.

comment:6 by Fernando de Oliveira, 8 years ago

I was trying all combinations, before this comment and your post to -book, after Pierre's comment. Have made the build and tests at least 9 times (sometimes I delete the logs).

Not for me:

99% tests passed, 1 tests failed out of 447

Label Time Summary:
Label1    =   0.05 sec (1 test)
Label2    =   0.05 sec (1 test)

Total Test time (real) = 450.45 sec

The following tests FAILED:
	141 - Qt4And5AutomocReverse (Failed)
Errors while running CTest

This is with export CXXFLAGS="-std=c++11" or with the CXXFLAGS"-std=c++11" passed to all three stages.

Total test time varies from 397.81 sec to the value above.

Label times vary from above to 0.30 sec.

Now what? At the moment, I'm tired, and stopping.

But very disappointed. It seems that everything is going wrong with me, each time I think that I'm ready again for full work, the ball runs down the mountain again, to start everything in the next day... My aka seems to be holding in all senses.

comment:7 by Fernando de Oliveira, 8 years ago

Owner: changed from Fernando de Oliveira to blfs-book@…
Status: assignednew

Remember that libinput needs to be included in Qt5 dependencies.

comment:8 by Fernando de Oliveira, 8 years ago

Owner: changed from blfs-book@… to Fernando de Oliveira
Status: newassigned

Will try again

comment:9 by Fernando de Oliveira, 8 years ago

Resolution: fixed
Status: assignedclosed

Fixed at r16671.

Bruce, perhaps you would like to improve the discussion about the test suite.

Note: See TracTickets for help on using tickets.