pkgsrc/devel/cmake/Makefile

71 lines
2.3 KiB
Makefile
Raw Normal View History

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 $
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
COMMENT= Cross platform make
USE_TOOLS+= gmake
GCC_REQD+= 4.8
HAS_CONFIGURE= yes
CONFIGURE_SCRIPT= bootstrap
BUILD_TARGET= default_target
CONFIGURE_HAS_MANDIR= no
CONFIGURE_ARGS+= --mandir=/${PKGMANDIR}
CONFIGURE_ARGS+= --docdir=/share/doc/cmake-${CMAKE_API}
CONFIGURE_ARGS+= --parallel=${MAKE_JOBS:U1}
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
cmake: updated to 3.11.0 Some of the more significant changes in CMake 3.11 are: The Makefile Generators and the “Ninja” generator learned to add compiler launcher tools along with the compiler for the “Fortran” language (“C”, “CXX”, and “CUDA” were supported previously). See the “CMAKE_<LANG>_COMPILER_LAUNCHER” variable and “<LANG>_COMPILER_LAUNCHER” target property for details. Visual Studio Generators learned to support the “COMPILE_LANGUAGE” “generator expression” in target-wide “COMPILE_DEFINITIONS”, “INCLUDE_DIRECTORIES”, “COMPILE_OPTIONS”, and “file(GENERATE)”. See generator expression documentation for caveats. The “Xcode” Generator learned to support the “COMPILE_LANGUAGE” “generator expression” in target-wide “COMPILE_DEFINITIONS” and “INCLUDE_DIRECTORIES”. It previously supported only “COMPILE_OPTIONS” and “file(GENERATE)”. See generator expression documentation for caveats. “add_library()” and “add_executable()” commands can now be called without any sources and will not complain as long as sources are added later via the “target_sources()” command. The “target_compile_definitions()” command learned to set the “INTERFACE_COMPILE_DEFINITIONS” property on Imported Targets. The “target_compile_features()” command learned to set the “INTERFACE_COMPILE_FEATURES” property on Imported Targets. The “target_compile_options()” command learned to set the “INTERFACE_COMPILE_OPTIONS” property on Imported Targets. The “target_include_directories()” command learned to set the “INTERFACE_INCLUDE_DIRECTORIES” property on Imported Targets. The “target_sources()” command learned to set the “INTERFACE_SOURCES” property on Imported Targets. The “target_link_libraries()” command learned to set the “INTERFACE_LINK_LIBRARIES” property on Imported Targets. The “COMPILE_DEFINITIONS” source file property learned to support “generator expressions”. A “COMPILE_OPTIONS” source file property was added to manage list of options to pass to the compiler. When using “AUTOMOC” or “AUTOUIC”, CMake now starts multiple parallel “moc” or “uic” processes to reduce the build time. A new “CMAKE_AUTOGEN_PARALLEL” variable and “AUTOGEN_PARALLEL” target property may be set to specify the number of parallel “moc” or “uic” processes to start. The default is derived from the number of CPUs on the host.
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
PLIST_SUBST+= CMAKE_API=${CMAKE_API}
# 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
SUBST_CLASSES+= cmake
SUBST_STAGE.cmake= pre-configure
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
pre-configure:
${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
${LN} -f ${WRKSRC}/Modules/Platform/OpenBSD.cmake ${WRKSRC}/Modules/Platform/MirBSD.cmake
.for lang in C CXX Fortran
${LN} -f ${WRKSRC}/Modules/Platform/SunOS-GNU-${lang}.cmake \
${WRKSRC}/Modules/Platform/SunOS-Clang-${lang}.cmake
.endfor
USE_CURSES= wsyncup
BUILDLINK_API_DEPENDS.libarchive+= libarchive>=3.3.3
.include "../../archivers/libarchive/buildlink3.mk"
.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"
Changes 3.8.0: CMake learned to support CSharp (C#) as a first-class language that can be enabled via the project() and enable_language() commands. It is currently supported by the Visual Studio Generators for VS 2010 and above. C# assemblies and programs can be added just like common C++ targets using the add_library() and add_executable() commands. References between C# targets in the same source tree may be specified by target_link_libraries() like for C++. References to system or 3rd-party assemblies may be specified by the target properties VS_DOTNET_REFERENCE_<refname> and VS_DOTNET_REFERENCES. More fine tuning of C# targets may be done using target and source file properties. Specifically the target properties related to Visual Studio (VS_*) are worth a look (for setting toolset versions, root namespaces, assembly icons, ...). CMake learned to support CUDA as a first-class language that can be enabled via the project() and enable_language() commands. CUDA is currently supported by the Makefile Generators and the Ninja generator on Linux, macOS, and Windows. Support for the Visual Studio IDE is under development but not included in this release. The NVIDIA CUDA Toolkit compiler (nvcc) is supported. The Compile Features functionality now offers meta-features that request compiler modes for specific language standard levels (e.g. cxx_std_11). See CMAKE_C_KNOWN_FEATURES and CMAKE_CXX_KNOWN_FEATURES. The Compile Features functionality is now aware of C++ 17. No specific features are yet enumerated besides the cxx_std_17 meta-feature. The Compile Features functionality is now aware of the availability of C99 in gcc since version 3.4. A new minimal platform file for Fuchsia was added. The CodeBlocks extra generator may now be used to generate with NMake Makefiles JOM. The Visual Studio Generators for VS 2013 and above learned to support a host=x64 option in the CMAKE_GENERATOR_TOOLSET value (e.g. via the cmake(1) -T option) to request use of a VS 64-bit toolchain on 64-bit hosts. The Visual Studio Generators learned to treat files passed to target_link_libraries() whose names end in .targets as MSBuild “targets” files to be imported into generated project files. ...more...
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"
.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
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"