cmake: updated to 3.16.0
3.16.0:
New Features
============
Languages
---------
* CMake learned to support the Objective C ("OBJC") and Objective
C++ ("OBJCXX") languages. They may be enabled via the "project()"
and "enable_language()" commands. When "OBJC" or "OBJCXX" is
enabled, source files with the ".m" or ".mm", respectively, will be
compiled as Objective C or C++. Otherwise they will be treated as
plain C++ sources as they were before.
Compilers
---------
* The "Clang" compiler is now supported on "Solaris".
Platforms
---------
* On AIX, executables using the "ENABLE_EXPORTS" target property now
produce a linker import file with a ".imp" extension in addition to
the executable file. Plugins (created via "add_library()" with the
"MODULE" option) that use "target_link_libraries()" to link to the
executable for its symbols are now linked using the import file. The
"install(TARGETS)" command now installs the import file as an
"ARCHIVE" artifact.
* On AIX, runtime linking is no longer enabled by default. CMake
provides the linker enough information to resolve all symbols up
front. One may manually enable runtime linking for shared libraries
and/or loadable modules by adding "-Wl,-G" to their link flags (e.g.
in the "CMAKE_SHARED_LINKER_FLAGS" or "CMAKE_MODULE_LINKER_FLAGS"
variable). One may manually enable runtime linking for executables
by adding "-Wl,-brtl" to their link flags (e.g. in the
"CMAKE_EXE_LINKER_FLAGS" variable).
Command-Line
------------
* "cmake(1)" "-E" now supports "true" and "false" commands, which do
nothing while returning exit codes of 0 and 1, respectively.
* "cmake(1)" gained a "--trace-redirect=" command line option
that can be used to redirect "--trace" output to a file instead of
"stderr".
* The "cmake(1)" "--loglevel" command line option has been renamed
to "--log-level" to make it consistent with the naming of other
command line options. The "--loglevel" option is still supported to
preserve backward compatibility.
Commands
--------
* The "add_test()" command learned the option "COMMAND_EXPAND_LISTS"
which causes lists in the "COMMAND" argument to be expanded,
including lists created by generator expressions.
* The "file()" command learned a new sub-command,
"GET_RUNTIME_DEPENDENCIES", which allows you to recursively get the
list of libraries linked by an executable or library. This sub-
command is intended as a replacement for "GetPrerequisites".
* The "find_file()", "find_library()", "find_path()",
"find_package()", and "find_program()" commands have learned to
check the following variables to control searching
* "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH" - Controls the searching
the cmake-specific environment variables.
* "CMAKE_FIND_USE_CMAKE_PATH" - Controls the searching the cmake-
specific cache variables.
* "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH" - Controls the searching
cmake platform specific variables.
* "CMAKE_FIND_USE_PACKAGE_ROOT_PATH" - Controls the searching of
"_ROOT" variables.
* "CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH" - Controls the
searching the standard system environment variables.
* The "find_package()" command has learned to check the following
variables to control searching
* "CMAKE_FIND_USE_PACKAGE_REGISTRY" - Controls the searching the
cmake user registry.
* The "message()" command learned indentation control with the new
"CMAKE_MESSAGE_INDENT" variable.
* The "target_precompile_headers()" command was added to specify a
list of headers to precompile for faster compilation times.
Variables
---------
* The "CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS" variable has been
introduced to optionally initialize the
"CUDA_RESOLVE_DEVICE_SYMBOLS" target property.
* The "CMAKE_ECLIPSE_RESOURCE_ENCODING" variable was added to
specify the resource encoding for the the "Eclipse CDT4" extra
generator.
Properties
----------
* The "BUILD_RPATH" and "INSTALL_RPATH" target properties now
support "generator expressions".
* The "INSTALL_REMOVE_ENVIRONMENT_RPATH" target property was added
to remove compiler-defined "RPATH" entries from a target. This
property is initialized by the
"CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH" variable.
* The "PRECOMPILE_HEADERS" target property was added to specify a
list of headers to precompile for faster compilation times. Set it
using the "target_precompile_headers()" command.
* The "UNITY_BUILD" target property was added to tell generators to
batch include source files for faster compilation times.
* The "VS_CONFIGURATION_TYPE" target property now supports
"generator expressions".
* The "VS_DPI_AWARE" target property was added to tell Visual Studio
Generators to set the "EnableDpiAwareness" property in ".vcxproj"
files.
* The "XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING" target property was
added to tell the "Xcode" generator to set the value of the "Allow
debugging when using document Versions Browser" schema option.
Modules
-------
* The "FindDoxygen" module "doxygen_add_docs()" command gained a new
"USE_STAMP_FILE" option. When this option present, the custom
target created by the command will only re-run Doxygen if any of the
source files have changed since the last successful run.
* The "FindGnuTLS" module now provides an imported target.
* The "FindPackageHandleStandardArgs" module
"find_package_handle_standard_args()" command gained a new
"REASON_FAILURE_MESSAGE" option to specify a message giving the
reason for the failure.
* The "FindPkgConfig" module "pkg_search_module()" macro now defines
a "_MODULE_NAME" result variable containing the first
matching module name.
* The "FindPython3" and "FindPython" modules gained options to
control which "ABIs" will be searched.
* The "FindPython3", "FindPython2", and "FindPython" modules now
support direct specification of artifacts via cache entries.
Autogen
-------
* When using "AUTOMOC", CMake now generates the "-p" path prefix
option for "moc". This ensures that "moc" output files are
identical on different build setups (given, that the headers
compiled by "moc" are in an "include directory"). Also it ensures
that "moc" output files will compile correctly when the source
and/or build directory is a symbolic link.
The "moc" path prefix generation behavior can be configured by
setting the new "CMAKE_AUTOMOC_PATH_PREFIX" variable and/or
"AUTOMOC_PATH_PREFIX" target property.
CTest
-----
* "ctest(1)" now has the ability to serialize tests based on
resource requirements for each test. See Resource Allocation for
details.
* A new test property, "SKIP_REGULAR_EXPRESSION", has been added.
This property is similar to "FAIL_REGULAR_EXPRESSION" and
"PASS_REGULAR_EXPRESSION", but with the same meaning as
"SKIP_RETURN_CODE". This is useful, for example, in cases where the
user has no control over the return code of the test. For example,
in Catch2, the return value is the number of assertion failed,
therefore it is impossible to use it for "SKIP_RETURN_CODE".
CPack
-----
* "cpack(1)" learned support for multiple configurations for "-C"
option.
* The "CPack DEB Generator" is now able to format generic text
(usually used as the description for multiple CPack generators)
according to the Debian Policy Manual. See the
"CPACK_PACKAGE_DESCRIPTION_FILE" and
"CPACK_DEBIAN__DESCRIPTION" variables.
* The "CPack Archive Generator" learned to generate ".tar.zst"
packages with Zstandard compression.
Deprecated and Removed Features
===============================
* An explicit deprecation diagnostic was added for policy "CMP0067"
("CMP0066" 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 "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" variable has been
deprecated. Use the "CMAKE_FIND_USE_PACKAGE_REGISTRY" variable
instead.
* The "GetPrerequisites" module has been deprecated, as it has been
superceded by "file(GET_RUNTIME_DEPENDENCIES)".
* The "CPACK_INSTALL_SCRIPT" variable has been deprecated in favor
of the new, more accurately named "CPACK_INSTALL_SCRIPTS" variable.
Other Changes
=============
* The "cmake(1)" "-C " option now evaluates the
initial cache script with "CMAKE_SOURCE_DIR" and "CMAKE_BINARY_DIR"
set to the top-level source and build trees.
* The "cmake(1)" "-E remove_directory" command-line tool, when given
the path to a symlink to a directory, now removes just the symlink.
It no longer removes content of the linked directory.
* The "ctest(1)" "--build-makeprogram" command-line option now
specifies the make program used when configuring a project with the
"Ninja" generator or the Makefile Generators.
* The "ExternalProject" module "ExternalProject_Add()" command has
been updated so that "GIT_SUBMODULES """ initializes no submodules.
See policy "CMP0097".
* The "FindGTest" module has been updated to recognize MSVC build
trees generated by GTest 1.8.1.
* The "project()" command no longer strips leading zeros in version
components. See policy "CMP0096".
* The Qt Compressed Help file is now named "CMake.qch", which no
longer contains the release version in the file name. When CMake is
upgraded in-place, the name and location of this file will remain
constant. Tools such as IDEs, help viewers, etc. should now be able
to refer to this file at a fixed location that remains valid across
CMake upgrades.
* "RPATH" entries are properly escaped in the generated CMake
scripts used for installation. See policy "CMP0095".
* When using "CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS" on Windows the auto-
generated exports are now updated only when the object files
providing the symbols are updated.
2019-11-27 23:32:27 +01:00
|
|
|
# $NetBSD: Makefile,v 1.168 2019/11/27 22:32:27 adam Exp $
|
import cmake-1.6.6
CMake is an extensible, open-source system that manages the build
process in an operating system and compiler independent manner. Unlike
many cross-platform systems, CMake is designed to be used in
conjunction with the native build environment. Simple configuration
files placed in each source directory (called CMakeLists.txt files)
are used to generate standard build files (e.g., makefiles on Unix and
projects/workspaces in Windows MSVC) which are used in the usual
way. CMake can compile source code, create libraries, generate
wrappers, and build executables in arbitrary combinations. CMake
supports in-place and out-of-place builds, and can therefore support
multiple builds from a single source tree. CMake also supports static
and dynamic library builds. Another nice feature of CMake is that it
generates a cache file that is designed to be used with a graphical
editor. For example, when CMake runs, it locates include files,
libraries, and executable, and may encounter optional build
directives. This information is gathered into the cache, which may be
changed by the user prior to the generation of the native build files.
2003-05-07 13:55:03 +02:00
|
|
|
|
cmake: updated to 3.16.0
3.16.0:
New Features
============
Languages
---------
* CMake learned to support the Objective C ("OBJC") and Objective
C++ ("OBJCXX") languages. They may be enabled via the "project()"
and "enable_language()" commands. When "OBJC" or "OBJCXX" is
enabled, source files with the ".m" or ".mm", respectively, will be
compiled as Objective C or C++. Otherwise they will be treated as
plain C++ sources as they were before.
Compilers
---------
* The "Clang" compiler is now supported on "Solaris".
Platforms
---------
* On AIX, executables using the "ENABLE_EXPORTS" target property now
produce a linker import file with a ".imp" extension in addition to
the executable file. Plugins (created via "add_library()" with the
"MODULE" option) that use "target_link_libraries()" to link to the
executable for its symbols are now linked using the import file. The
"install(TARGETS)" command now installs the import file as an
"ARCHIVE" artifact.
* On AIX, runtime linking is no longer enabled by default. CMake
provides the linker enough information to resolve all symbols up
front. One may manually enable runtime linking for shared libraries
and/or loadable modules by adding "-Wl,-G" to their link flags (e.g.
in the "CMAKE_SHARED_LINKER_FLAGS" or "CMAKE_MODULE_LINKER_FLAGS"
variable). One may manually enable runtime linking for executables
by adding "-Wl,-brtl" to their link flags (e.g. in the
"CMAKE_EXE_LINKER_FLAGS" variable).
Command-Line
------------
* "cmake(1)" "-E" now supports "true" and "false" commands, which do
nothing while returning exit codes of 0 and 1, respectively.
* "cmake(1)" gained a "--trace-redirect=" command line option
that can be used to redirect "--trace" output to a file instead of
"stderr".
* The "cmake(1)" "--loglevel" command line option has been renamed
to "--log-level" to make it consistent with the naming of other
command line options. The "--loglevel" option is still supported to
preserve backward compatibility.
Commands
--------
* The "add_test()" command learned the option "COMMAND_EXPAND_LISTS"
which causes lists in the "COMMAND" argument to be expanded,
including lists created by generator expressions.
* The "file()" command learned a new sub-command,
"GET_RUNTIME_DEPENDENCIES", which allows you to recursively get the
list of libraries linked by an executable or library. This sub-
command is intended as a replacement for "GetPrerequisites".
* The "find_file()", "find_library()", "find_path()",
"find_package()", and "find_program()" commands have learned to
check the following variables to control searching
* "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH" - Controls the searching
the cmake-specific environment variables.
* "CMAKE_FIND_USE_CMAKE_PATH" - Controls the searching the cmake-
specific cache variables.
* "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH" - Controls the searching
cmake platform specific variables.
* "CMAKE_FIND_USE_PACKAGE_ROOT_PATH" - Controls the searching of
"_ROOT" variables.
* "CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH" - Controls the
searching the standard system environment variables.
* The "find_package()" command has learned to check the following
variables to control searching
* "CMAKE_FIND_USE_PACKAGE_REGISTRY" - Controls the searching the
cmake user registry.
* The "message()" command learned indentation control with the new
"CMAKE_MESSAGE_INDENT" variable.
* The "target_precompile_headers()" command was added to specify a
list of headers to precompile for faster compilation times.
Variables
---------
* The "CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS" variable has been
introduced to optionally initialize the
"CUDA_RESOLVE_DEVICE_SYMBOLS" target property.
* The "CMAKE_ECLIPSE_RESOURCE_ENCODING" variable was added to
specify the resource encoding for the the "Eclipse CDT4" extra
generator.
Properties
----------
* The "BUILD_RPATH" and "INSTALL_RPATH" target properties now
support "generator expressions".
* The "INSTALL_REMOVE_ENVIRONMENT_RPATH" target property was added
to remove compiler-defined "RPATH" entries from a target. This
property is initialized by the
"CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH" variable.
* The "PRECOMPILE_HEADERS" target property was added to specify a
list of headers to precompile for faster compilation times. Set it
using the "target_precompile_headers()" command.
* The "UNITY_BUILD" target property was added to tell generators to
batch include source files for faster compilation times.
* The "VS_CONFIGURATION_TYPE" target property now supports
"generator expressions".
* The "VS_DPI_AWARE" target property was added to tell Visual Studio
Generators to set the "EnableDpiAwareness" property in ".vcxproj"
files.
* The "XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING" target property was
added to tell the "Xcode" generator to set the value of the "Allow
debugging when using document Versions Browser" schema option.
Modules
-------
* The "FindDoxygen" module "doxygen_add_docs()" command gained a new
"USE_STAMP_FILE" option. When this option present, the custom
target created by the command will only re-run Doxygen if any of the
source files have changed since the last successful run.
* The "FindGnuTLS" module now provides an imported target.
* The "FindPackageHandleStandardArgs" module
"find_package_handle_standard_args()" command gained a new
"REASON_FAILURE_MESSAGE" option to specify a message giving the
reason for the failure.
* The "FindPkgConfig" module "pkg_search_module()" macro now defines
a "_MODULE_NAME" result variable containing the first
matching module name.
* The "FindPython3" and "FindPython" modules gained options to
control which "ABIs" will be searched.
* The "FindPython3", "FindPython2", and "FindPython" modules now
support direct specification of artifacts via cache entries.
Autogen
-------
* When using "AUTOMOC", CMake now generates the "-p" path prefix
option for "moc". This ensures that "moc" output files are
identical on different build setups (given, that the headers
compiled by "moc" are in an "include directory"). Also it ensures
that "moc" output files will compile correctly when the source
and/or build directory is a symbolic link.
The "moc" path prefix generation behavior can be configured by
setting the new "CMAKE_AUTOMOC_PATH_PREFIX" variable and/or
"AUTOMOC_PATH_PREFIX" target property.
CTest
-----
* "ctest(1)" now has the ability to serialize tests based on
resource requirements for each test. See Resource Allocation for
details.
* A new test property, "SKIP_REGULAR_EXPRESSION", has been added.
This property is similar to "FAIL_REGULAR_EXPRESSION" and
"PASS_REGULAR_EXPRESSION", but with the same meaning as
"SKIP_RETURN_CODE". This is useful, for example, in cases where the
user has no control over the return code of the test. For example,
in Catch2, the return value is the number of assertion failed,
therefore it is impossible to use it for "SKIP_RETURN_CODE".
CPack
-----
* "cpack(1)" learned support for multiple configurations for "-C"
option.
* The "CPack DEB Generator" is now able to format generic text
(usually used as the description for multiple CPack generators)
according to the Debian Policy Manual. See the
"CPACK_PACKAGE_DESCRIPTION_FILE" and
"CPACK_DEBIAN__DESCRIPTION" variables.
* The "CPack Archive Generator" learned to generate ".tar.zst"
packages with Zstandard compression.
Deprecated and Removed Features
===============================
* An explicit deprecation diagnostic was added for policy "CMP0067"
("CMP0066" 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 "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" variable has been
deprecated. Use the "CMAKE_FIND_USE_PACKAGE_REGISTRY" variable
instead.
* The "GetPrerequisites" module has been deprecated, as it has been
superceded by "file(GET_RUNTIME_DEPENDENCIES)".
* The "CPACK_INSTALL_SCRIPT" variable has been deprecated in favor
of the new, more accurately named "CPACK_INSTALL_SCRIPTS" variable.
Other Changes
=============
* The "cmake(1)" "-C " option now evaluates the
initial cache script with "CMAKE_SOURCE_DIR" and "CMAKE_BINARY_DIR"
set to the top-level source and build trees.
* The "cmake(1)" "-E remove_directory" command-line tool, when given
the path to a symlink to a directory, now removes just the symlink.
It no longer removes content of the linked directory.
* The "ctest(1)" "--build-makeprogram" command-line option now
specifies the make program used when configuring a project with the
"Ninja" generator or the Makefile Generators.
* The "ExternalProject" module "ExternalProject_Add()" command has
been updated so that "GIT_SUBMODULES """ initializes no submodules.
See policy "CMP0097".
* The "FindGTest" module has been updated to recognize MSVC build
trees generated by GTest 1.8.1.
* The "project()" command no longer strips leading zeros in version
components. See policy "CMP0096".
* The Qt Compressed Help file is now named "CMake.qch", which no
longer contains the release version in the file name. When CMake is
upgraded in-place, the name and location of this file will remain
constant. Tools such as IDEs, help viewers, etc. should now be able
to refer to this file at a fixed location that remains valid across
CMake upgrades.
* "RPATH" entries are properly escaped in the generated CMake
scripts used for installation. See policy "CMP0095".
* When using "CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS" on Windows the auto-
generated exports are now updated only when the object files
providing the symbols are updated.
2019-11-27 23:32:27 +01:00
|
|
|
.include "Makefile.common"
|
Update cmake to 3.6.1
CMake 3.6 Release Notes
***********************
Changes made since CMake 3.5 include the following.
New Features
============
Generators
----------
* The :generator:`Ninja` generator learned to produce phony targets
of the form ``sub/dir/all`` to drive the build of a subdirectory.
This is equivalent to ``cd sub/dir; make all`` with
:ref:`Makefile Generators`.
* The :generator:`Ninja` generator now includes system header files in build
dependencies to ensure correct re-builds when system packages are updated.
* The :generator:`Visual Studio 14 2015` generator learned to support the
Clang/C2 toolsets, e.g. with the ``-T v140_clang_3_7`` option.
This feature is experimental.
Commands
--------
* The :command:`add_custom_command` and :command:`add_custom_target` commands
learned how to use the :prop_tgt:`CROSSCOMPILING_EMULATOR` executable
target property.
* The :command:`install` command learned a new ``EXCLUDE_FROM_ALL`` option
to leave installation rules out of the default installation.
* The :command:`list` command gained a ``FILTER`` sub-command to filter
list elements by regular expression.
* The :command:`string(TIMESTAMP)` and :command:`file(TIMESTAMP)`
commands gained support for the ``%s`` placeholder. This is
the number of seconds since the UNIX Epoch.
Variables
---------
* A :variable:`CMAKE_DEPENDS_IN_PROJECT_ONLY` variable was introduced
to tell :ref:`Makefile Generators` to limit dependency scanning only
to files in the project source and build trees.
* A new :variable:`CMAKE_HOST_SOLARIS` variable was introduced to
indicate when CMake is running on an Oracle Solaris host.
* A :variable:`CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` variable was
added for use by toolchain files to specify system include directories
to be appended to all compiler command lines.
* The :variable:`CMAKE_<LANG>_STANDARD_LIBRARIES` variable is now documented.
It is intended for use by toolchain files to specify system libraries to be
added to all linker command lines.
* A :variable:`CMAKE_NINJA_OUTPUT_PATH_PREFIX` variable was introduced
to tell the :generator:`Ninja` generator to configure the generated
``build.ninja`` file for use as a ``subninja``.
* A :variable:`CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable was
added for use by toolchain files to specify platform-specific
variables that must be propagated by the :command:`try_compile`
command into test projects.
* A :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable was added
to optionally tell the :command:`try_compile` command to build
a static library instead of an executable. This is useful for
cross-compiling toolchains that cannot link binaries without
custom flags or scripts.
Properties
----------
* A :prop_tgt:`DEPLOYMENT_REMOTE_DIRECTORY` target property was introduced
to tell the :generator:`Visual Studio 9 2008` and
:generator:`Visual Studio 8 2005` generators to generate the "remote
directory" for WinCE project deployment and debugger settings.
* A :prop_tgt:`<LANG>_CLANG_TIDY` target property and supporting
:variable:`CMAKE_<LANG>_CLANG_TIDY` variable were introduced to tell the
:ref:`Makefile Generators` and the :generator:`Ninja` generator to run
``clang-tidy`` along with the compiler for ``C`` and ``CXX`` languages.
* A :prop_test:`TIMEOUT_AFTER_MATCH` test property was introduced to
optionally tell CTest to enforce a secondary timeout after matching
certain output from a test.
* A :prop_tgt:`VS_CONFIGURATION_TYPE` target property was introduced
to specify a custom project file type for :ref:`Visual Studio Generators`
supporting VS 2010 and above.
* A :prop_dir:`VS_STARTUP_PROJECT` directory property was introduced
to specify for :ref:`Visual Studio Generators` the default startup
project for generated solutions (``.sln`` files).
Modules
-------
* The :module:`CMakePushCheckState` module now pushes/pops/resets the variable
``CMAKE_EXTRA_INCLUDE_FILE`` used in :module:`CheckTypeSize`.
* The :module:`ExternalProject` module leared the ``GIT_SHALLOW 1``
option to perform a shallow clone of a Git repository.
* The :module:`ExternalProject` module learned to initialize Git submodules
recursively and also to initialize new submodules on updates. Use the
``GIT_SUBMODULES`` option to restrict which submodules are initalized and
updated.
* The :module:`ExternalProject` module leared the ``DOWNLOAD_NO_EXTRACT 1``
argument to skip extracting the file that is downloaded (e.g., for
self-extracting shell installers or ``.msi`` files).
* The :module:`ExternalProject` module now uses ``TLS_VERIFY`` when fetching
from git repositories.
* The :module:`FindBLAS` and :module:`FindLAPACK` modules learned to
support `OpenBLAS <http://www.openblas.net>`__.
* The :module:`FindCUDA` module learned to find the ``cublas_device`` library.
* The :module:`FindGTest` module ``gtest_add_tests`` function now causes
CMake to automatically re-run when test sources change so that they
can be re-scanned.
* The :module:`FindLTTngUST` module was introduced to find the LTTng-UST
library.
* The :module:`FindPkgConfig` module learned to optionally create imported
targets for the libraries it has found.
* The :module:`FindProtobuf` module learned to provide a ``Protobuf_VERSION``
variable and check the version number requested in a :command:`find_package`
call.
* The :module:`InstallRequiredSystemLibraries` module learned a new
``CMAKE_INSTALL_UCRT_LIBRARIES`` option to enable app-local deployment
of the Windows Universal CRT libraries with Visual Studio 2015.
Platforms
---------
* The Clang compiler is now supported on CYGWIN.
* Support was added for the Bruce C Compiler with compiler id ``Bruce``.
CTest
-----
* The :command:`ctest_update` command now looks at the
:variable:`CTEST_GIT_INIT_SUBMODULES` variable to determine whether
submodules should be updated or not before updating.
* The :command:`ctest_update` command will now synchronize submodules on an
update. Updates which add submodules or change a submodule's URL will now be
pulled properly.
CPack
-----
* The :module:`CPackDeb` module learned how to handle ``$ORIGIN``
in ``CMAKE_INSTALL_RPATH`` when :variable:`CPACK_DEBIAN_PACKAGE_SHLIBDEPS`
is used for dependency auto detection.
* The :module:`CPackDeb` module learned how to generate ``DEBIAN/shlibs``
contorl file when package contains shared libraries.
* The :module:`CPackDeb` module learned how to generate ``DEBIAN/postinst`` and
``DEBIAN/postrm`` files if the package installs libraries in
ldconfig-controlled locations (e.g. ``/lib/``, ``/usr/lib/``).
* The :module:`CPackDeb` module learned how to generate dependencies between
Debian packages if multi-component setup is used and
:variable:`CPACK_COMPONENT_<compName>_DEPENDS` variables are set.
For backward compatibility this feature is disabled by default.
See :variable:`CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS`.
* The :module:`CPackDeb` module learned how to set custom package file names
including how to generate properly-named Debian packages::
<PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
For backward compatibility this feature is disabled by default. See
:variable:`CPACK_DEBIAN_FILE_NAME` and
:variable:`CPACK_DEBIAN_<COMPONENT>_FILE_NAME`.
* The :module:`CPackDeb` module learned how to set the package release number
(``DebianRevisionNumber`` in package file name when used in combination with
``DEB-DEFAULT`` value set by :variable:`CPACK_DEBIAN_FILE_NAME`). See
:variable:`CPACK_DEBIAN_PACKAGE_RELEASE`.
* The :module:`CPackDeb` module learned how to set the package architecture
per-component. See :variable:`CPACK_DEBIAN_<COMPONENT>_PACKAGE_ARCHITECTURE`.
* The :module:`CPackDMG` module learned a new option to tell the CPack
``DragNDrop`` generaor to skip the ``/Applications`` symlink.
See the :variable:`CPACK_DMG_DISABLE_APPLICATIONS_SYMLINK` variable.
* The :module:`CPackIFW` module gained a new
:command:`cpack_ifw_update_repository` command to update a QtIFW-specific
repository from a remote repository.
* The :module:`CPackRPM` module learned how to set RPM ``dist`` tag as part of
RPM ``Release:`` tag when enabled (mandatory on some Linux distributions for
e.g. on Fedora).
See :variable:`CPACK_RPM_PACKAGE_RELEASE_DIST`.
* The :module:`CPackRPM` module learned how to set default values for owning
user/group and file/directory permissions of package content.
See :variable:`CPACK_RPM_DEFAULT_USER`, :variable:`CPACK_RPM_DEFAULT_GROUP`,
:variable:`CPACK_RPM_DEFAULT_FILE_PERMISSIONS`,
:variable:`CPACK_RPM_DEFAULT_DIR_PERMISSIONS` and their per component
counterparts.
* The :module:`CPackRPM` module learned how to set user defined package file
names, how to specify that rpmbuild should decide on file name format as
well as handling of multiple rpm packages generated by a single user defined
spec file.
See :variable:`CPACK_RPM_PACKAGE_NAME` and
:variable:`CPACK_RPM_<component>_PACKAGE_NAME`.
* The :module:`CPackRPM` module learned how to correctly handle symlinks
that are pointing outside generated packages.
Other
-----
* The :manual:`Compile Features <cmake-compile-features(7)>` functionality
is now aware of features supported by Intel C++ compilers versions 12.1
through 16.0 on UNIX platforms.
Deprecated and Removed Features
===============================
* The :module:`CMakeForceCompiler` module and its macros are now deprecated.
See module documentation for an explanation.
* The :command:`find_library`, :command:`find_path`, and :command:`find_file`
commands no longer search in installation prefixes derived from the ``PATH``
environment variable on non-Windows platforms. This behavior was added in
CMake 3.3 to support Windows hosts but has proven problematic on UNIX hosts.
Users that keep some ``<prefix>/bin`` directories in the ``PATH`` just for
their tools do not necessarily want any supporting ``<prefix>/lib``
directories searched. One may set the ``CMAKE_PREFIX_PATH`` environment
variable with a :ref:`;-list <CMake Language Lists>` of prefixes that are
to be searched.
* The :generator:`Visual Studio 7 .NET 2003` generator is now
deprecated and will be removed in a future version of CMake.
* The :generator:`Visual Studio 7` generator (for VS .NET 2002) has been
removed. It had been deprecated since CMake 3.3.
* The :generator:`Visual Studio 6` generator has been removed.
It had been deprecated since CMake 3.3.
Other Changes
=============
* The precompiled OS X binary provided on ``cmake.org`` now requires
OS X 10.7 or newer.
* On Linux and FreeBSD platforms, when building CMake itself from source and
not using a system-provided libcurl, OpenSSL is now used by default if it is
found on the system. This enables SSL/TLS support for commands supporting
network communication via ``https``, such as :command:`file(DOWNLOAD)`,
:command:`file(UPLOAD)`, and :command:`ctest_submit`.
* The :manual:`cmake(1)` ``--build`` command-line tool now rejects multiple
``--target`` options with an error instead of silently ignoring all but the
last one.
* :prop_tgt:`AUTOMOC` now diagnoses name collisions when multiple source
files in different directories use ``#include <moc_foo.cpp>`` with the
same name (because the generated ``moc_foo.cpp`` files would collide).
* The :module:`FindBISON` module ``BISON_TARGET`` macro now supports
special characters by passing the ``VERBATIM`` option to internal
:command:`add_custom_command` calls. This may break clients that
added escaping manually to work around the bug.
* The :module:`FindFLEX` module ``FLEX_TARGET`` macro now supports
special characters by passing the ``VERBATIM`` option to internal
:command:`add_custom_command` calls. This may break clients that
added escaping manually to work around the bug.
* The :module:`FindProtobuf` module input and output variables were all renamed
from ``PROTOBUF_`` to ``Protobuf_`` for consistency with other find modules.
Input variables of the old case will be honored if provided, and output
variables of the old case are always provided.
* The :module:`CPackRPM` module now supports upper cased component
names in per component CPackRPM specific variables.
E.g. component named ``foo`` now expects component specific
variable to be ``CPACK_RPM_FOO_PACKAGE_NAME`` while before
it expected ``CPACK_RPM_foo_PACKAGE_NAME``.
Upper cased component name part in variables is compatible
with convention used for other CPack variables.
For back compatibility old format of variables is still valid
and preferred if both versions of variable are set, but the
preferred future use is upper cased component names in variables.
New variables that will be added to CPackRPM in later versions
will only support upper cased component variable format.
* The CPack NSIS generator's configuration file template was fixed to
quote the path to the uninstaller tool used by the
:variable:`CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL` option.
This avoids depending on an insecure Windows feature to run an
uninstaller tool with a space in the path.
2016-07-28 19:44:43 +02:00
|
|
|
|
2004-08-02 15:08:09 +02:00
|
|
|
COMMENT= Cross platform make
|
import cmake-1.6.6
CMake is an extensible, open-source system that manages the build
process in an operating system and compiler independent manner. Unlike
many cross-platform systems, CMake is designed to be used in
conjunction with the native build environment. Simple configuration
files placed in each source directory (called CMakeLists.txt files)
are used to generate standard build files (e.g., makefiles on Unix and
projects/workspaces in Windows MSVC) which are used in the usual
way. CMake can compile source code, create libraries, generate
wrappers, and build executables in arbitrary combinations. CMake
supports in-place and out-of-place builds, and can therefore support
multiple builds from a single source tree. CMake also supports static
and dynamic library builds. Another nice feature of CMake is that it
generates a cache file that is designed to be used with a graphical
editor. For example, when CMake runs, it locates include files,
libraries, and executable, and may encounter optional build
directives. This information is gathered into the cache, which may be
changed by the user prior to the generation of the native build files.
2003-05-07 13:55:03 +02:00
|
|
|
|
2005-05-22 22:07:36 +02:00
|
|
|
USE_TOOLS+= gmake
|
2018-04-12 10:40:27 +02:00
|
|
|
GCC_REQD+= 4.8
|
2010-11-11 09:34:01 +01:00
|
|
|
HAS_CONFIGURE= yes
|
|
|
|
CONFIGURE_SCRIPT= bootstrap
|
2008-08-25 04:44:05 +02:00
|
|
|
|
|
|
|
BUILD_TARGET= default_target
|
|
|
|
|
2005-10-24 17:15:25 +02:00
|
|
|
CONFIGURE_HAS_MANDIR= no
|
|
|
|
CONFIGURE_ARGS+= --mandir=/${PKGMANDIR}
|
2008-08-25 04:44:05 +02:00
|
|
|
CONFIGURE_ARGS+= --docdir=/share/doc/cmake-${CMAKE_API}
|
2019-05-15 11:06:10 +02:00
|
|
|
CONFIGURE_ARGS+= --parallel=${MAKE_JOBS:U1}
|
2010-11-11 09:34:01 +01:00
|
|
|
CONFIGURE_ARGS+= --prefix=${PREFIX}
|
Update to 2.4.6:
Changes in CMake 2.4.6
* Remove svn test in ctestctest3
* Fix for FIND_* order and framworks with PREFIX usage.
* Fix for FindDoxygen and quiet mode.
* Find JavaVM as well as jvm
* Look for ruby1.8 and ruby
* Fix for cpack .tgz.sh and dash
* Fix for finding custom commands from a full path with CMAKE_CFG_INTDIR.
* Fix for Borland make and custom commands that do nothing
Changes in CMake 2.4.5
* Fix for seg fault when a macro runs a bad command BUG# 3815
* Fix fix for foo.dll.lib that does not brea -L/usr/lib in link names
* Fix problem with LIBRARY_OUTPUT_PATH and linking to a dll foo.dll.lib
instead of foo.lib
* Do not depend on optimized libraries for a debug build and visa versa.
* Fix target name matching custom command output conflict.
* Fix FindQt3 so that it does not find qt4
* Fix FindKDE4 so that it only looks for kde4-config
Changes in CMake 2.4.4
* CMake Version numbers on module directory
* elseif added
* Fix docs in CheckCSourceCompiles CheckCXXSourceCompiles and diagnostic
output.
* added Check(C/CXX)SourceRuns.cmake, CheckCXXCompilerFlag.cmake, Check
* add static and shared flags to make sure the specified versions of
libraries are used with -static -lfoo -shared -lbar
* Search for the compiler only once and store a full path. avoids problems
with PATH changes in cmake re-runs.
* make sure manifest files are generated with VS 8
* added FindASPELL.cmake, FindBZip2.cmake FindHPELL.cmake, FindJasper.cmake
FindLibXml2.cmake, FindLibXslt.cmake, FindOpenSSL.cmake
* fix for bug#3646 GLUT not Glut for framework name
* many fixes for FindKDE3.cmake
* Better FindPNG that honors REQUIRED and looks in more places.
* Support to find python 2.5
* Find Qt3 better
* Find Qt4 better and work with qmake and qmake-qt4 on the same machine.
* Much better FindRuby.cmake
* More stuff marked as advanced in FindTcl and FindSDL
* FindwxWidgets runs shell script wx-config with sh
* Support for cpack and vs8 install libraries
* Darwin shared library create and Fortran now work
* Support for isystem directories INCLUDE_DIRECTORIES (SYSTEM)
* Targets in makefiles to create pre-processed files and assembly files
can be turned off with these variables:
CMAKE_SKIP_PREPROCESSED_SOURCE_RULES CMAKE_SKIP_ASSEMBLY_SOURCE_RULES
* Support for QNX
* Better default search paths for unix and FIND_* stuff
* Use link /lib and not lib to create static libraries with MS
* Useqt4 works with static qt4 and other fixes
* UseSwig.cmake interface to add extra dependencies.
* Added APPEND option to ADD_CUSTOM_COMMAND, Added VERBATIM option to
ADD_CUSTOM_COMMAND and ADD_CUSTOM_TARGET
* add EXCLUDE_FROM_ALL option for ADD_LIBRARY and ADD_EXECUTABLE
* Fix automatic computation of binary path to work for subdirectories of out
of source directories. This addresses bug#3592.
* --debug-ouput to cmake that gives stack trace to message send error commands.
The stack trace is no longer there without it.
* + can be in a variable
* Do not replace @VAR@ syntax in list files. This addresses bug #2722
* much faster depend scanning
* do depends on system include directories
* Permission and install directory fixes
* New target property <CONFIG>_LOCATION (Debug, Release, etc)
* fix exclude from all in VS
* fix code completion problem in KDevelop
* Define MSYS when using msys generator
* fix referencece to projects outside the build tree VS 7,8
* Fix ZERO_CHECK to not always try and rebuild
* Fix Xcode universal binary rebuild problem
* add FILE_IS_NEWER to if command
* Add OPTIONAL to INSTALL command fix bug@2922
* add SORT and REVERSE to LIST command
* fix for seg fault bug #3815
* add SYBOLIC as a source file property see SET_SOURCE_FILES_PROPERTIES
* fix ctest valgrind if no coverage is done
* better message if bogus generator is specified.
* Better FindJava and FindJNI
* Fix doxygen.config for CMake
* add CPACK_MODULE_PATH
* Fix configuration for ctest dashboard targets Experimental, Nightly, etc
* Fix FindDoxygen for mac and app-bundles
* Fix CPack simple install test with NSIS
* Allow EXECUTE_PROCESS to strip trailing white space
* Fix mingw echo in makefiles
* Fix Xcode to not mess up -gdwarf-2
* Fix crash when "linking" to custom targets.
* Allow HEADER_FILE_ONLY to not compile the file in VS 7 and 8
* Fix mingw out of binary with spaces in the path.
* Fix for sudo make install (partial)
* Allow installed zlib, curl, expat, xmlrpc to be used.
* Add CMakeDependentOption.cmake module
* Allow projects to set install prefix default
* improved Find/Use wxWidgets
* add support for windows dll version numbers
* Fix message for -G when generator does not exist
* Fix html references in help
* Fix version on .exe cygwin
* allow global timeout in ctest
* Fix some odd cases with custom commands in VS 6
* Fix path suffix stuff with lib64 in FIND_* stuff.
* Fix delete in CMakeSetup to not change the current position in the list
* Fix debug stl run of ctest on Mac
* Use #2 for manifest nt command on dll and #1 on exe
* Add depends from files inside qrc files in qt
* Fix explort_library_depends to work with optimized and debug
Changes in CMake 2.4.3
* fix for 3557 - Under MSVC8 hardcoded TargetEnvironment for MIDL Compiler
* Fix for Xcode all projects to prevent -fvisibility=hidden flags. This is
needed to make RTTI work by default.
* better prototype for main in try compile of c programs avoids warnings in
logs.
* with visual studio do not use incremental linking for release builds by
default.
* fix bootstrap to use more ansi c main it test compiler
* fix import build settings to do case insensitive match on windows
* fix building in root directory c:/
* Add support for CXX only projects
* Better FindWxWidgets
* Added FindBoose.cmake
* add more fortran file extensions
* Cpack supports multiple packages at the same time
* Fix to FindKDE4 to look for kde4-config first
* Support for env var CMAKE_CONFIG_TYPE in ctest
* Fix for -DVAR=foo on the command line not saving to the cache
* ENH: Added creation of XXX_FIND_COMPONENTS list of all components requested
withREQUIRED option. This addresses the feature request in bug#3494.
* Object files get safe names
* progress is now reported with makefiles
* location of CMakeTmp changed to a varible
* CMAKE_COLOR_MAKEFILE cache variable available to turn off color output
* fixes for FindQt4 on mac.
* Better search paths for finding VTK
* Fix relative path problems in ADD_SUBDIRECTORY
* Fix long link commands on UNIX shells
* Fix depend file names in makefiles for generated headers
* CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS allows for if/endif without variable
* Xcode multiple custom command problem fixed.
* INSTALL_RPATH_USE_LINK_PATH when true will add the link path to the rpath
* Add target/fast rules in the sub directories
* Fix Visual stuido C and C++ targets to not add /TP and /TC
* print a context when cmake errors occur
* add rxvt-unicode, cygwin, and screen terminal support for color output
* Fix crash in CMakeSetup when status line is long
* make sure try compile files have a newline at the end
* fix for hp itanium build
2007-02-23 12:48:18 +01:00
|
|
|
CONFIGURE_ARGS+= --system-libs
|
Changes 3.2.1:
* CMake learned to support unicode characters *encoded as UTF-8* on
Windows. This was already supported on platforms whose system APIs
accept UTF-8 encoded strings. Unicode characters may now be used in
CMake code, paths to source files, configured files such as ".h.in"
files, and other files read and written by CMake. Note that because
CMake interoperates with many other tools, there may still be some
limitations when using certain unicode characters.
* The "Compile Features" functionality is now aware of features
supported by more compilers, including:
* Apple Clang ("AppleClang") for Xcode versions 4.4 though 6.1.
* GNU compiler versions 4.4 through 5.0 on UNIX and Apple ("GNU").
* Microsoft Visual Studio ("MSVC") for versions 2010 through 2015.
* Oracle SolarisStudio ("SunPro") version 12.4.
* The "add_custom_command()" and "add_custom_target()" commands
learned a new "BYPRODUCTS" option to specify files produced as side
effects of the custom commands. These are not outputs because they
do not always have to be newer than inputs.
* The "file(GENERATE)" command can now generate files which are used
as source files for buildsystem targets. Generated files
automatically get their "GENERATED" property set to "TRUE".
Deprecated and Removed Features:
* Files written in the "cmake-language(7)", such as "CMakeLists.txt"
or "*.cmake" files, are now expected to be encoded as UTF-8. If
files are already ASCII, they will be compatible. If files were in
a different encoding, including Latin 1, they will need to be
converted.
* The "FindOpenGL" module no longer explicitly searches for any
dependency on X11 libraries with the "FindX11" module. Such
dependencies should not need to be explicit. Applications using X11
APIs themselves should find and link to X11 libraries explicitly.
2015-04-07 22:53:48 +02:00
|
|
|
# jsoncpp requires cmake to build, so use the one provided with cmake
|
|
|
|
CONFIGURE_ARGS+= --no-system-jsoncpp
|
2008-08-25 04:44:05 +02:00
|
|
|
|
2018-04-02 21:36:44 +02:00
|
|
|
LDFLAGS.Darwin+= -framework CoreServices # for LSOpenCFURLRef()
|
2013-10-19 10:04:34 +02:00
|
|
|
LDFLAGS.SunOS+= -lsocket -lnsl
|
|
|
|
|
2008-08-25 04:44:05 +02:00
|
|
|
PLIST_SUBST+= CMAKE_API=${CMAKE_API}
|
import cmake-1.6.6
CMake is an extensible, open-source system that manages the build
process in an operating system and compiler independent manner. Unlike
many cross-platform systems, CMake is designed to be used in
conjunction with the native build environment. Simple configuration
files placed in each source directory (called CMakeLists.txt files)
are used to generate standard build files (e.g., makefiles on Unix and
projects/workspaces in Windows MSVC) which are used in the usual
way. CMake can compile source code, create libraries, generate
wrappers, and build executables in arbitrary combinations. CMake
supports in-place and out-of-place builds, and can therefore support
multiple builds from a single source tree. CMake also supports static
and dynamic library builds. Another nice feature of CMake is that it
generates a cache file that is designed to be used with a graphical
editor. For example, when CMake runs, it locates include files,
libraries, and executable, and may encounter optional build
directives. This information is gathered into the cache, which may be
changed by the user prior to the generation of the native build files.
2003-05-07 13:55:03 +02:00
|
|
|
|
2008-02-03 03:12:11 +01:00
|
|
|
# for Source/cmDependsJavaParser.cxx
|
|
|
|
UNLIMIT_RESOURCES= datasize
|
|
|
|
|
Update to 2.4.6:
Changes in CMake 2.4.6
* Remove svn test in ctestctest3
* Fix for FIND_* order and framworks with PREFIX usage.
* Fix for FindDoxygen and quiet mode.
* Find JavaVM as well as jvm
* Look for ruby1.8 and ruby
* Fix for cpack .tgz.sh and dash
* Fix for finding custom commands from a full path with CMAKE_CFG_INTDIR.
* Fix for Borland make and custom commands that do nothing
Changes in CMake 2.4.5
* Fix for seg fault when a macro runs a bad command BUG# 3815
* Fix fix for foo.dll.lib that does not brea -L/usr/lib in link names
* Fix problem with LIBRARY_OUTPUT_PATH and linking to a dll foo.dll.lib
instead of foo.lib
* Do not depend on optimized libraries for a debug build and visa versa.
* Fix target name matching custom command output conflict.
* Fix FindQt3 so that it does not find qt4
* Fix FindKDE4 so that it only looks for kde4-config
Changes in CMake 2.4.4
* CMake Version numbers on module directory
* elseif added
* Fix docs in CheckCSourceCompiles CheckCXXSourceCompiles and diagnostic
output.
* added Check(C/CXX)SourceRuns.cmake, CheckCXXCompilerFlag.cmake, Check
* add static and shared flags to make sure the specified versions of
libraries are used with -static -lfoo -shared -lbar
* Search for the compiler only once and store a full path. avoids problems
with PATH changes in cmake re-runs.
* make sure manifest files are generated with VS 8
* added FindASPELL.cmake, FindBZip2.cmake FindHPELL.cmake, FindJasper.cmake
FindLibXml2.cmake, FindLibXslt.cmake, FindOpenSSL.cmake
* fix for bug#3646 GLUT not Glut for framework name
* many fixes for FindKDE3.cmake
* Better FindPNG that honors REQUIRED and looks in more places.
* Support to find python 2.5
* Find Qt3 better
* Find Qt4 better and work with qmake and qmake-qt4 on the same machine.
* Much better FindRuby.cmake
* More stuff marked as advanced in FindTcl and FindSDL
* FindwxWidgets runs shell script wx-config with sh
* Support for cpack and vs8 install libraries
* Darwin shared library create and Fortran now work
* Support for isystem directories INCLUDE_DIRECTORIES (SYSTEM)
* Targets in makefiles to create pre-processed files and assembly files
can be turned off with these variables:
CMAKE_SKIP_PREPROCESSED_SOURCE_RULES CMAKE_SKIP_ASSEMBLY_SOURCE_RULES
* Support for QNX
* Better default search paths for unix and FIND_* stuff
* Use link /lib and not lib to create static libraries with MS
* Useqt4 works with static qt4 and other fixes
* UseSwig.cmake interface to add extra dependencies.
* Added APPEND option to ADD_CUSTOM_COMMAND, Added VERBATIM option to
ADD_CUSTOM_COMMAND and ADD_CUSTOM_TARGET
* add EXCLUDE_FROM_ALL option for ADD_LIBRARY and ADD_EXECUTABLE
* Fix automatic computation of binary path to work for subdirectories of out
of source directories. This addresses bug#3592.
* --debug-ouput to cmake that gives stack trace to message send error commands.
The stack trace is no longer there without it.
* + can be in a variable
* Do not replace @VAR@ syntax in list files. This addresses bug #2722
* much faster depend scanning
* do depends on system include directories
* Permission and install directory fixes
* New target property <CONFIG>_LOCATION (Debug, Release, etc)
* fix exclude from all in VS
* fix code completion problem in KDevelop
* Define MSYS when using msys generator
* fix referencece to projects outside the build tree VS 7,8
* Fix ZERO_CHECK to not always try and rebuild
* Fix Xcode universal binary rebuild problem
* add FILE_IS_NEWER to if command
* Add OPTIONAL to INSTALL command fix bug@2922
* add SORT and REVERSE to LIST command
* fix for seg fault bug #3815
* add SYBOLIC as a source file property see SET_SOURCE_FILES_PROPERTIES
* fix ctest valgrind if no coverage is done
* better message if bogus generator is specified.
* Better FindJava and FindJNI
* Fix doxygen.config for CMake
* add CPACK_MODULE_PATH
* Fix configuration for ctest dashboard targets Experimental, Nightly, etc
* Fix FindDoxygen for mac and app-bundles
* Fix CPack simple install test with NSIS
* Allow EXECUTE_PROCESS to strip trailing white space
* Fix mingw echo in makefiles
* Fix Xcode to not mess up -gdwarf-2
* Fix crash when "linking" to custom targets.
* Allow HEADER_FILE_ONLY to not compile the file in VS 7 and 8
* Fix mingw out of binary with spaces in the path.
* Fix for sudo make install (partial)
* Allow installed zlib, curl, expat, xmlrpc to be used.
* Add CMakeDependentOption.cmake module
* Allow projects to set install prefix default
* improved Find/Use wxWidgets
* add support for windows dll version numbers
* Fix message for -G when generator does not exist
* Fix html references in help
* Fix version on .exe cygwin
* allow global timeout in ctest
* Fix some odd cases with custom commands in VS 6
* Fix path suffix stuff with lib64 in FIND_* stuff.
* Fix delete in CMakeSetup to not change the current position in the list
* Fix debug stl run of ctest on Mac
* Use #2 for manifest nt command on dll and #1 on exe
* Add depends from files inside qrc files in qt
* Fix explort_library_depends to work with optimized and debug
Changes in CMake 2.4.3
* fix for 3557 - Under MSVC8 hardcoded TargetEnvironment for MIDL Compiler
* Fix for Xcode all projects to prevent -fvisibility=hidden flags. This is
needed to make RTTI work by default.
* better prototype for main in try compile of c programs avoids warnings in
logs.
* with visual studio do not use incremental linking for release builds by
default.
* fix bootstrap to use more ansi c main it test compiler
* fix import build settings to do case insensitive match on windows
* fix building in root directory c:/
* Add support for CXX only projects
* Better FindWxWidgets
* Added FindBoose.cmake
* add more fortran file extensions
* Cpack supports multiple packages at the same time
* Fix to FindKDE4 to look for kde4-config first
* Support for env var CMAKE_CONFIG_TYPE in ctest
* Fix for -DVAR=foo on the command line not saving to the cache
* ENH: Added creation of XXX_FIND_COMPONENTS list of all components requested
withREQUIRED option. This addresses the feature request in bug#3494.
* Object files get safe names
* progress is now reported with makefiles
* location of CMakeTmp changed to a varible
* CMAKE_COLOR_MAKEFILE cache variable available to turn off color output
* fixes for FindQt4 on mac.
* Better search paths for finding VTK
* Fix relative path problems in ADD_SUBDIRECTORY
* Fix long link commands on UNIX shells
* Fix depend file names in makefiles for generated headers
* CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS allows for if/endif without variable
* Xcode multiple custom command problem fixed.
* INSTALL_RPATH_USE_LINK_PATH when true will add the link path to the rpath
* Add target/fast rules in the sub directories
* Fix Visual stuido C and C++ targets to not add /TP and /TC
* print a context when cmake errors occur
* add rxvt-unicode, cygwin, and screen terminal support for color output
* Fix crash in CMakeSetup when status line is long
* make sure try compile files have a newline at the end
* fix for hp itanium build
2007-02-23 12:48:18 +01:00
|
|
|
# as of 2.4.6, x11 and fortran tests fail in pkgsrc
|
|
|
|
TEST_TARGET= test
|
|
|
|
|
2006-05-19 23:32:52 +02:00
|
|
|
SUBST_CLASSES+= cmake
|
2010-11-11 09:34:01 +01:00
|
|
|
SUBST_STAGE.cmake= pre-configure
|
2011-09-14 19:54:48 +02:00
|
|
|
SUBST_MESSAGE.cmake= Fixing LOCALBASE and X11 paths.
|
|
|
|
SUBST_FILES.cmake+= Modules/FindX11.cmake
|
|
|
|
SUBST_FILES.cmake+= Modules/Platform/UnixPaths.cmake
|
|
|
|
SUBST_VARS.cmake= LOCALBASE X11BASE
|
2005-10-29 17:57:48 +02:00
|
|
|
|
2010-11-11 09:34:01 +01:00
|
|
|
pre-configure:
|
2019-02-27 14:18:01 +01:00
|
|
|
${CP} ${FILESDIR}/Source_Checks_cm_cxx_cbegin.cxx ${WRKSRC}/Source/Checks/cm_cxx_cbegin.cxx
|
|
|
|
${CP} ${FILESDIR}/Source_Checks_cm_cxx_cend.cxx ${WRKSRC}/Source/Checks/cm_cxx_cend.cxx
|
|
|
|
${CP} ${FILESDIR}/Source_Checks_cm_cxx_size_t.cxx ${WRKSRC}/Source/Checks/cm_cxx_size_t.cxx
|
add CMAKE_PKGSRC_BUILD_FLAGS for pkgsrc build to set opts
With pkgsrc built packages, the goal is to have the user's compiler
optimization flags set by the user using CFLAGS, etc. To that end,
the cmake Makefile has subst.mk code to "sed -e 's,-O.,,'" out opt.
flags in Modules/Compiler/*.cmake for cmake compiles with the
CMAKE_BUILD_TYPE set (e.g. to Release).
Unfortunately, this sed-based approach has two drawbacks: First, it
gets applied to packages build with cmake outside of pkgsrc (changing
the semantics of -DCMAKE_BUILD_TYPE=Release in an unexpected way by
remove -O flags from it). Second, the sed expression damages some
of the Modules/Compiler/*.cmake as not all opt flags match the "-O."
regular expression.
To address this we:
1. remove the subst.mk sed operation on Modules/Compiler/*.cmake
2. add a new config variable CMAKE_PKGSRC_BUILD_FLAGS that should
be set for pkgsrc-based cmake builds (e.g. in mk/configure/cmake.mk)
3. we add a patch for Modules/Compiler/GNU.cmake to look for
CMAKE_PKGSRC_BUILD_FLAGS and choose a set of non-opt compiler
flags when this is set (to provide the desired behavior under pksrc).
note that the GNU.cmake file is also used by clang. We can
make the corresponding changes to other compilers if desired.
The result is that cmake compiles under pkgsrc set CMAKE_PKGSRC_BUILD_FLAGS
and follow CFLAGS, etc. (bypassing CMAKE_BUILD_TYPE), but cmake compiles
outside of pkgsrc follow the standard cmake semantics for CMAKE_BUILD_TYPE.
Also, we no longer damage Modules/Compiler/*.cmake with sed.
2018-04-08 21:09:45 +02:00
|
|
|
${RM} -f ${WRKSRC}/Modules/*.orig ${WRKSRC}/Modules/Compiler/*.orig ${WRKSRC}/Modules/Platform/*.orig
|
2013-12-19 15:29:07 +01:00
|
|
|
${LN} -f ${WRKSRC}/Modules/Platform/OpenBSD.cmake ${WRKSRC}/Modules/Platform/MirBSD.cmake
|
2015-10-27 10:04:38 +01:00
|
|
|
.for lang in C CXX Fortran
|
|
|
|
${LN} -f ${WRKSRC}/Modules/Platform/SunOS-GNU-${lang}.cmake \
|
|
|
|
${WRKSRC}/Modules/Platform/SunOS-Clang-${lang}.cmake
|
|
|
|
.endfor
|
2010-06-14 00:43:46 +02:00
|
|
|
|
2018-10-16 18:37:21 +02:00
|
|
|
USE_CURSES= wsyncup
|
2015-09-15 15:08:37 +02:00
|
|
|
|
2019-09-05 10:39:09 +02:00
|
|
|
BUILDLINK_API_DEPENDS.libarchive+= libarchive>=3.3.3
|
2010-11-11 09:34:01 +01:00
|
|
|
.include "../../archivers/libarchive/buildlink3.mk"
|
2014-03-14 23:47:44 +01:00
|
|
|
.include "../../devel/libexecinfo/buildlink3.mk"
|
Some of the more significant changes in CMake 3.7 are:
CMake now supports Cross Compiling for Android with simple toolchain files.
The “Ninja” generator learned to conditionally support Fortran when using a “ninja” tool that has the necessary features. See generator documentation for details.
The “if()” command gained new boolean comparison operations “LESS_EQUAL”, “GREATER_EQUAL”, “STRLESS_EQUAL”, “STRGREATER_EQUAL”, “VERSION_LESS_EQUAL”, and “VERSION_GREATER_EQUAL”.
The “try_compile()” command source file signature now honors configuration-specific flags (e.g. “CMAKE_<LANG>_FLAGS_DEBUG”) in the generated test project. Previously only the default such flags for the current toolchain were used. See policy “CMP0066”.
“Toolchain files” may now set “CMAKE_EXE_LINKER_FLAGS_INIT”, “CMAKE_SHARED_LINKER_FLAGS_INIT”, and “CMAKE_MODULE_LINKER_FLAGS_INIT” variables to initialize the “CMAKE_EXE_LINKER_FLAGS”, “CMAKE_SHARED_LINKER_FLAGS”, and “CMAKE_MODULE_LINKER_FLAGS” cache entries the first time a language is enabled in a build tree.
CTest now supports test fixtures through the new “FIXTURES_SETUP”, “FIXTURES_CLEANUP” and “FIXTURES_REQUIRED” test properties. When using regular expressions or “–rerun-failed” to limit the tests to be run, a fixture’s setup and cleanup tests will automatically be added to the execution set if any test requires that fixture.
We no longer provide Linux i386 binaries for download from “cmake.org” for new versions of CMake.
Vim support files “cmake-indent.vim”, “cmake-syntax.vim”, and “cmake-help.vim” have been removed in favor of the files now provided from the vim-cmake-syntax project.
Support for building CMake itself with some compilers was dropped:
Visual Studio 7.1 and 2005 — superseded by VS 2008 and above
MinGW.org mingw32 — superseded by MSYS2 mingw32 and mingw64
CMake still supports generating build systems for other projects using these compilers.
2016-11-12 08:49:18 +01:00
|
|
|
.include "../../devel/libuv/buildlink3.mk"
|
2017-04-11 22:18:54 +02:00
|
|
|
.include "../../misc/rhash/buildlink3.mk"
|
Update to 2.4.6:
Changes in CMake 2.4.6
* Remove svn test in ctestctest3
* Fix for FIND_* order and framworks with PREFIX usage.
* Fix for FindDoxygen and quiet mode.
* Find JavaVM as well as jvm
* Look for ruby1.8 and ruby
* Fix for cpack .tgz.sh and dash
* Fix for finding custom commands from a full path with CMAKE_CFG_INTDIR.
* Fix for Borland make and custom commands that do nothing
Changes in CMake 2.4.5
* Fix for seg fault when a macro runs a bad command BUG# 3815
* Fix fix for foo.dll.lib that does not brea -L/usr/lib in link names
* Fix problem with LIBRARY_OUTPUT_PATH and linking to a dll foo.dll.lib
instead of foo.lib
* Do not depend on optimized libraries for a debug build and visa versa.
* Fix target name matching custom command output conflict.
* Fix FindQt3 so that it does not find qt4
* Fix FindKDE4 so that it only looks for kde4-config
Changes in CMake 2.4.4
* CMake Version numbers on module directory
* elseif added
* Fix docs in CheckCSourceCompiles CheckCXXSourceCompiles and diagnostic
output.
* added Check(C/CXX)SourceRuns.cmake, CheckCXXCompilerFlag.cmake, Check
* add static and shared flags to make sure the specified versions of
libraries are used with -static -lfoo -shared -lbar
* Search for the compiler only once and store a full path. avoids problems
with PATH changes in cmake re-runs.
* make sure manifest files are generated with VS 8
* added FindASPELL.cmake, FindBZip2.cmake FindHPELL.cmake, FindJasper.cmake
FindLibXml2.cmake, FindLibXslt.cmake, FindOpenSSL.cmake
* fix for bug#3646 GLUT not Glut for framework name
* many fixes for FindKDE3.cmake
* Better FindPNG that honors REQUIRED and looks in more places.
* Support to find python 2.5
* Find Qt3 better
* Find Qt4 better and work with qmake and qmake-qt4 on the same machine.
* Much better FindRuby.cmake
* More stuff marked as advanced in FindTcl and FindSDL
* FindwxWidgets runs shell script wx-config with sh
* Support for cpack and vs8 install libraries
* Darwin shared library create and Fortran now work
* Support for isystem directories INCLUDE_DIRECTORIES (SYSTEM)
* Targets in makefiles to create pre-processed files and assembly files
can be turned off with these variables:
CMAKE_SKIP_PREPROCESSED_SOURCE_RULES CMAKE_SKIP_ASSEMBLY_SOURCE_RULES
* Support for QNX
* Better default search paths for unix and FIND_* stuff
* Use link /lib and not lib to create static libraries with MS
* Useqt4 works with static qt4 and other fixes
* UseSwig.cmake interface to add extra dependencies.
* Added APPEND option to ADD_CUSTOM_COMMAND, Added VERBATIM option to
ADD_CUSTOM_COMMAND and ADD_CUSTOM_TARGET
* add EXCLUDE_FROM_ALL option for ADD_LIBRARY and ADD_EXECUTABLE
* Fix automatic computation of binary path to work for subdirectories of out
of source directories. This addresses bug#3592.
* --debug-ouput to cmake that gives stack trace to message send error commands.
The stack trace is no longer there without it.
* + can be in a variable
* Do not replace @VAR@ syntax in list files. This addresses bug #2722
* much faster depend scanning
* do depends on system include directories
* Permission and install directory fixes
* New target property <CONFIG>_LOCATION (Debug, Release, etc)
* fix exclude from all in VS
* fix code completion problem in KDevelop
* Define MSYS when using msys generator
* fix referencece to projects outside the build tree VS 7,8
* Fix ZERO_CHECK to not always try and rebuild
* Fix Xcode universal binary rebuild problem
* add FILE_IS_NEWER to if command
* Add OPTIONAL to INSTALL command fix bug@2922
* add SORT and REVERSE to LIST command
* fix for seg fault bug #3815
* add SYBOLIC as a source file property see SET_SOURCE_FILES_PROPERTIES
* fix ctest valgrind if no coverage is done
* better message if bogus generator is specified.
* Better FindJava and FindJNI
* Fix doxygen.config for CMake
* add CPACK_MODULE_PATH
* Fix configuration for ctest dashboard targets Experimental, Nightly, etc
* Fix FindDoxygen for mac and app-bundles
* Fix CPack simple install test with NSIS
* Allow EXECUTE_PROCESS to strip trailing white space
* Fix mingw echo in makefiles
* Fix Xcode to not mess up -gdwarf-2
* Fix crash when "linking" to custom targets.
* Allow HEADER_FILE_ONLY to not compile the file in VS 7 and 8
* Fix mingw out of binary with spaces in the path.
* Fix for sudo make install (partial)
* Allow installed zlib, curl, expat, xmlrpc to be used.
* Add CMakeDependentOption.cmake module
* Allow projects to set install prefix default
* improved Find/Use wxWidgets
* add support for windows dll version numbers
* Fix message for -G when generator does not exist
* Fix html references in help
* Fix version on .exe cygwin
* allow global timeout in ctest
* Fix some odd cases with custom commands in VS 6
* Fix path suffix stuff with lib64 in FIND_* stuff.
* Fix delete in CMakeSetup to not change the current position in the list
* Fix debug stl run of ctest on Mac
* Use #2 for manifest nt command on dll and #1 on exe
* Add depends from files inside qrc files in qt
* Fix explort_library_depends to work with optimized and debug
Changes in CMake 2.4.3
* fix for 3557 - Under MSVC8 hardcoded TargetEnvironment for MIDL Compiler
* Fix for Xcode all projects to prevent -fvisibility=hidden flags. This is
needed to make RTTI work by default.
* better prototype for main in try compile of c programs avoids warnings in
logs.
* with visual studio do not use incremental linking for release builds by
default.
* fix bootstrap to use more ansi c main it test compiler
* fix import build settings to do case insensitive match on windows
* fix building in root directory c:/
* Add support for CXX only projects
* Better FindWxWidgets
* Added FindBoose.cmake
* add more fortran file extensions
* Cpack supports multiple packages at the same time
* Fix to FindKDE4 to look for kde4-config first
* Support for env var CMAKE_CONFIG_TYPE in ctest
* Fix for -DVAR=foo on the command line not saving to the cache
* ENH: Added creation of XXX_FIND_COMPONENTS list of all components requested
withREQUIRED option. This addresses the feature request in bug#3494.
* Object files get safe names
* progress is now reported with makefiles
* location of CMakeTmp changed to a varible
* CMAKE_COLOR_MAKEFILE cache variable available to turn off color output
* fixes for FindQt4 on mac.
* Better search paths for finding VTK
* Fix relative path problems in ADD_SUBDIRECTORY
* Fix long link commands on UNIX shells
* Fix depend file names in makefiles for generated headers
* CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS allows for if/endif without variable
* Xcode multiple custom command problem fixed.
* INSTALL_RPATH_USE_LINK_PATH when true will add the link path to the rpath
* Add target/fast rules in the sub directories
* Fix Visual stuido C and C++ targets to not add /TP and /TC
* print a context when cmake errors occur
* add rxvt-unicode, cygwin, and screen terminal support for color output
* Fix crash in CMakeSetup when status line is long
* make sure try compile files have a newline at the end
* fix for hp itanium build
2007-02-23 12:48:18 +01:00
|
|
|
.include "../../textproc/expat/buildlink3.mk"
|
|
|
|
.include "../../www/curl/buildlink3.mk"
|
Some of the more significant changes in CMake 3.7 are:
CMake now supports Cross Compiling for Android with simple toolchain files.
The “Ninja” generator learned to conditionally support Fortran when using a “ninja” tool that has the necessary features. See generator documentation for details.
The “if()” command gained new boolean comparison operations “LESS_EQUAL”, “GREATER_EQUAL”, “STRLESS_EQUAL”, “STRGREATER_EQUAL”, “VERSION_LESS_EQUAL”, and “VERSION_GREATER_EQUAL”.
The “try_compile()” command source file signature now honors configuration-specific flags (e.g. “CMAKE_<LANG>_FLAGS_DEBUG”) in the generated test project. Previously only the default such flags for the current toolchain were used. See policy “CMP0066”.
“Toolchain files” may now set “CMAKE_EXE_LINKER_FLAGS_INIT”, “CMAKE_SHARED_LINKER_FLAGS_INIT”, and “CMAKE_MODULE_LINKER_FLAGS_INIT” variables to initialize the “CMAKE_EXE_LINKER_FLAGS”, “CMAKE_SHARED_LINKER_FLAGS”, and “CMAKE_MODULE_LINKER_FLAGS” cache entries the first time a language is enabled in a build tree.
CTest now supports test fixtures through the new “FIXTURES_SETUP”, “FIXTURES_CLEANUP” and “FIXTURES_REQUIRED” test properties. When using regular expressions or “–rerun-failed” to limit the tests to be run, a fixture’s setup and cleanup tests will automatically be added to the execution set if any test requires that fixture.
We no longer provide Linux i386 binaries for download from “cmake.org” for new versions of CMake.
Vim support files “cmake-indent.vim”, “cmake-syntax.vim”, and “cmake-help.vim” have been removed in favor of the files now provided from the vim-cmake-syntax project.
Support for building CMake itself with some compilers was dropped:
Visual Studio 7.1 and 2005 — superseded by VS 2008 and above
MinGW.org mingw32 — superseded by MSYS2 mingw32 and mingw64
CMake still supports generating build systems for other projects using these compilers.
2016-11-12 08:49:18 +01:00
|
|
|
.include "../../mk/curses.buildlink3.mk"
|
2016-11-25 14:36:37 +01:00
|
|
|
|
|
|
|
.if !exists(${BUILDLINK_INCDIRS.curses}/form.h) && \
|
|
|
|
exists(${BUILDLINK_INCDIRS.curses}/ncurses/form.h)
|
|
|
|
CFLAGS+= -I${BUILDLINK_INCDIRS.curses}/ncurses
|
|
|
|
CXXFLAGS+= -I${BUILDLINK_INCDIRS.curses}/ncurses
|
|
|
|
.endif
|
|
|
|
|
2018-12-02 04:01:39 +01:00
|
|
|
.include "../../mk/pthread.buildlink3.mk"
|
import cmake-1.6.6
CMake is an extensible, open-source system that manages the build
process in an operating system and compiler independent manner. Unlike
many cross-platform systems, CMake is designed to be used in
conjunction with the native build environment. Simple configuration
files placed in each source directory (called CMakeLists.txt files)
are used to generate standard build files (e.g., makefiles on Unix and
projects/workspaces in Windows MSVC) which are used in the usual
way. CMake can compile source code, create libraries, generate
wrappers, and build executables in arbitrary combinations. CMake
supports in-place and out-of-place builds, and can therefore support
multiple builds from a single source tree. CMake also supports static
and dynamic library builds. Another nice feature of CMake is that it
generates a cache file that is designed to be used with a graphical
editor. For example, when CMake runs, it locates include files,
libraries, and executable, and may encounter optional build
directives. This information is gathered into the cache, which may be
changed by the user prior to the generation of the native build files.
2003-05-07 13:55:03 +02:00
|
|
|
.include "../../mk/bsd.pkg.mk"
|