CMake is used to control the software compilation process using simple
platform and compiler independent configuration files. CMake generates native
makefiles and workspaces that can be used in the compiler environment of your
choice. CMake is quite sophisticated: it is possible to support complex
environments requiring system configuration, pre-processor generation, code
generation, and template instantiation.
This port contains CMake core software used by projects depending on CMake
to build.
===> The following configuration options are available for cmake-core-3.31.12_3:
DOCS=on: Build and/or install documentation
===> Use 'make config' to modify these settings
devel/cmake-core: Drop now obsolete patch
This patch was added 16 years ago and now doesn't really make sense. There are
only a few consumers affected by this patch and it is better to fix consumers
rather than plague all FindSDL.cmake users with extra -I${LOCALBASE}
Approved by: makc (kde)
Pull Request: https://github.com/freebsd/freebsd-ports/pull/530
devel/cmake-core: Use fat LTO instead of thin LTO
As we hardcode thin LTO to one thread [1] without any resolve for more
than a year use fat which performs better
1: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=281765
PR: 292178
Approved by: timeout (no objections for 3+ weeks)
Exp-run by: antoine
devel/cmake-core: Remove FindBoost module
It breaks many other ports, for example multimedia/lms, math/curv, science/votca
cmake doesn't support Boost any more and doesn't know about
the latest boost versions.
Reported by: fallout
Approved by: portmgr (blanket unbreak)
devel/cmake-core: backport boost-1.88+ support from upstream (+)
Also track conversion Boost.system from library to header-only after 1.70
release
Prepare to boost-1.89 landing to the portstree
devel/cmake-core: Respect user CFLAGS/CXXFLAGS
CMake has set a few compiler optimization flags for ages, depending upon
the build type. For Debug and Release build types, especially, these
flags are overridden in Mk/Uses/cmake.mk for projects that use CMake,
including other CMake components, i.e., devel/cmake-(doc|gui|man), but
not cmake-core, since it has to bootstrap itself.
This change makes the core component build with the same flags as the
rest of the cmake ports. For most users, this just means that cmake-core
will now build with -O2 instead of -O3 by default.
Not bumping PORTREVISION since nobody has really cared about this for the
past 15 years. To be clear, all other CFLAGS/CXXFLAGS have been
respected. This just elimitates the -O3 flag that CMake internally adds
for Release builds of cmake-core.
Based upon work by former FreeBSD committer koobs. [1]
[1]
https://github.com/koobs/ports/commit/da342cfb3dd94f005e4a44d2ef9c863fc19b58e2
[1]
Co-authored-by: Daniel Engberg <diizzy@FreeBSD.org>
PR: 286494
devel/cmake*: Update to 3.31.7
kde@ is aware that CMake 4.0.x is out, but an update at this time would
likely entail fallout from 500+ ports, which we'd rather let upstream
projects deal with until fixing problems ourselves reaches a manageable
level. Most of these are easily fixable, but it's still a lot to clear
for a very small team with other projects to consider. See, for example:
https://build.opensuse.org/project/show/home:simotek:cmake4https://www.kitware.com/cmake-3-31-7-available-for-download/
devel/cmake-(core|gui): Fix build with curl 8.13
Add upstream patch to fix incompatibility with curl >= 8.13.0. This is fixed
in CMake 3.31.7 and newer.
/wrkdirs/usr/ports/devel/cmake-gui/work/cmake-3.31.6/Source/cmCurl.cxx:178:26:
error: assigning to 'CURL_NETRC_OPTION' from incompatible type 'long'
178 | curl_netrc_level = CURL_NETRC_OPTIONAL;
| ^~~~~~~~~~~~~~~~~~~
/usr/local/include/curl/curl.h:2355:29: note: expanded from macro
'CURL_NETRC_OPTIONAL'
2355 | #define CURL_NETRC_OPTIONAL 1L /* A user:password in the URL will be
preferred
| ^~
/wrkdirs/usr/ports/devel/cmake-gui/work/cmake-3.31.6/Source/cmCurl.cxx:180:26:
error: assigning to 'CURL_NETRC_OPTION' from incompatible type 'long'
180 | curl_netrc_level = CURL_NETRC_REQUIRED;
(Only the first 15 lines of the commit message are shown above )
devel/cmake-core: Remove CPACK option
This option has been a point of confusion several times. It was once an
experimental feature, but it has been on by default for many years and
there is really no point in disabling it anymore.
Make sure we are always linking to libarchive from base. This was
previously conditionalized to only happen if the CPACK option was
enabled, so if the user had the CPACK option disabled and had libarchive
from ports installed, the ports version would be linked to. [1]
Add missing dns/libidn2 dependency. This is an optional dependency that
didn't manifest itself in poudriere, but it gets linked to if previously
installed on a live system build.
Reported by: vvd on #freebsd-desktop [1]
devel/cmake-core: Fixup 76b8901dae25efc80678bb950
Despite switching to an out-of-source build, .bak and .orig files were
still being pattern matched and installed into STAGEDIR. These were never
packaged nor installed on the system, however, so this is a no-op to the
end-user.
MFH: 2024Q4
devel/cmake-core: Refactor
Move the update reminder to Uses/Mk/cmake.mk where the version has
been changed since after 7bdeb4414c22 and will be more likely noticed.
Switch to an out-of-source build. This eliminates the need to remove
certain unwanted files prior to install.
Define a sensible CONFIGURE_LOG for users to report as the default
doesn't exist.
Sort CONFIGURE_ARGS, not necessarily alphabetically, but to improve
readability.
Pet portclippy(1): hoist the post-patch target.
Settle on one sed(1) delimiter instead of three. Pipes (|) seems to
be the most readable here.
Remove cruft from ${FILESDIR}/InitialCache.cmake and convert to SUB_FILES
to take advantage of framework substitutions. archivers/lzmalib is gone,
so there is no need to patch for that. Remove the CPACK_OPTION_COMMENT
variable in favor of CMake logic.
devel/cmake*: Update to 3.28.3
Changes made since CMake 3.28.2:
- Tests: Add case covering PCH in a unity build
- Unity: Clarify source comments on unity build transformation
- cmGlobalGenerator: Add unity/pch sources after computing compile
features
- zlib 2022-10-12 (04f42cec)
- zlib: Fix 1.2.13 version and date notice
https://www.kitware.com/cmake-3-28-3-available-for-download/
devel/cmake*: Pet portclippy(1) and migrate to Qt6
Migrate towards Qt6:
- Switch the default flavor of devel/cmake-gui to qt6.
- Use qt6-tools instead of qt5-help in devel/cmake-doc to generate the Qt
help file.
Depend on the flavorized version of textproc/py-sphinx.
Pet portclippy(1) and portlint(1) and make Makefile order more consistent
within the devel/cmake* ports. Remove duplicate DISTINFO_FILE line from
devel/cmake-man. [1]
Make build of devel/cmake-core verbose [2] and respect WITH_CCACHE_BUILD
in bootstrapping phase.
(Only the first 15 lines of the commit message are shown above )
devel/cmake*: Update to 3.28.2
Install manpages in share/man.
Changes made since CMake 3.28.1:
- Autogen: Forward dependencies when both Makefile and DEPFILE are used
- CUDA/Clang: Record architectures supported by Clang 16
- CUDA/Clang: Update architectures supported by CUDA 12
- CUDAToolkit: Correctly search all include paths from compiler
- ExternalProject: revert `BYPRODUCTS` for download outputs
- FindBoost: Add support for Boost 1.84
- FindFreetype: Revert use of upstream freetype cmake package
- FindMatlab: Accept long ver in matlab_get_release_name_from_version
- FindMatlab: Document all registry paths for version lookup
- FindMatlab: Document that version mappings do not apply to MCR
(Only the first 15 lines of the commit message are shown above )
devel/cmake-*: Update to 3.27.9
Changes made since CMake 3.27.8:
- Help: Document that CMP0149 should be set before project()
- Help: Fix ctest(1) manual links to www.cdash.org
- Ninja: Revert exact collation dependencies for 3.27
- Ninja: depfile: keep rules without dependencies
- Tests/FortranModules: add test for TARGET_OBJECTS-as-sources module
usage
- Tests/FortranModules: add test for TARGET_OBJECTS-as-linked-items
module usage
- fileapi: Fix file sets' base directories relative to top source
https://www.kitware.com/cmake-3-27-9-available-for-download/
devel/cmake-*: Update to 3.27.8
Changes made since CMake 3.27.7:
- FindOpenMP: Add support for openmp 5.1 (llvm 17) and 5.2
- GetPrerequisites: Revert "Ignore relative paths printed by ldd"
- Fortran: Restore support for TARGET_OBJECTS providing modules
- Tests/ObjectLibrary: fix comment
- cmComputeLinkDepends: also copy the target from object link items
- cmComputeLinkInformation: skip over linking to items for object
purposes
- cmComputeLinkInformation: Track targets named by TARGET_OBJECTS
sources
- cmCommonTargetGenerator: Factor out GetLinkedTargetDirectories loop
body
- curl: Backport SOCKS5 heap buffer overflow fix from curl 8.4.0
https://www.kitware.com/cmake-3-27-8-available-for-download/
Security: d6c19e8c-6806-11ee-9464-b42e991fc52e
devel/cmake*: Update to 3.27.7 [1]
Add support for keywords like RUNTIME_DEPENDENCY_SET and
RUNTIME_DEPENDENCIES in the install() command and
GET_RUNTIME_DEPENDENCIES in the file() command. [2]
https://cmake.org/cmake/help/v3.27/release/3.27.html
PR: 274225 [1], 274275 [2]
Reported by: yuri [2]
Exp-run by: antoine [1]
devel/cmake-core: Fix build with non-base SSL
This is a just a hotfix to keep things building, but more investigation
is certaintly warranted.
PR: 274512
Reported by: Dean E. Weimer <dweimer@dweimer.net>
devel/cmake-core devel/cmake-gui misc/mbuffer: cope with librhash.so bump
Because rhash 1.4.4 updated the librhash.so symlink from .0 to .1,
build-time dependents such as cmake-core and cmake-gui need their
PORTREVISION bumped.
The other case is misc/mbuffer, which uses librhash only at runtime, but
hardcodes dlopen("librhash.so.0", RTLD_NOW). I changed this to just
"librhash.so", and it seems to work fine with light testing.
PR: 273775
Reported by: Tomoaki AOKI <junchoon@dec.sakura.ne.jp>
Fixes: e0acbd158ec9 security/rhash: update to 1.4.4 and fix build with lld 17
MFH: 2023Q3
devel/cmake-core: add patch for ZLIB 1.3
Add upstream patch (which is in 3.27.4, but we don't
have a CMake update going on right now) that fixes
finding ZLIB 1.3 -- which is necessary for FreeBSD 14.
PR: 273915
devel/cmake-core: remove outdated FindOpenMP.cmake patch
This patch broke the build of any armv6/armv7 package that tried to
use OpenMP. It was once appropriate, but is now no longer correct
or needed.
PR: 270954
MFH: 2023Q2
Approved by: ports-secteam (fluffy), adridg
Tested by: portmgr (antoine, exp-run)
devel/cmake-core: Fix build with libnghttp2 installed
While building the bundled curl, -I/usr/local/include appears too early
on the compiler command line causing the compiler to use headers from
an installed libnghttp2 instead of the bundled libnghttp2. Add
USES=localbase so CFLAGS contains -isystem /usr/local/include making
the compiler search the directory after all the -I flags.
PR: 269253
devel/cmake*: update to 3.25.1
While here, remove a stale patch (upstreamed in CMake 3.10 or so)
and repair the CPack FreeBSD pkg generator.
Prepared by lbartoletti@
Exp-runs by antoine@
PR: 267872, 267894
devel/cmake-core: drop dependency on some external libs to avoid a loop cycle
(+)
Switch to bundled libcurl+libnghttp2 to utilize fetch ability for cmake
Always use system libarchive/zlib
Discussed with: tcberner
devel/cmake*: bump to 3.24.0
Update the CMake ports to 3.24. A previous exp-run -- thanks
antoine@ -- showed up new failures. That is normal for a CMake
update. tcberner@ fixed most of them (in the linked PR) and
lang/zig just landed. The original patch for the update came
from tcberner@ as well, but I had to re-jig it after CMake
was reorganized into a metaport and -core package.
PR: 265652
devel/cmake: Create a meta-port for CMake
Create a meta-port for CMake to make it easier for the end user and
better handling of build dependencies.
This pushes devel/cmake into /devel/cmake-core and splits manpages and
its dependencies to /devel/cmake-man
Approved by: kde (tcberner)
Differential Revision: https://reviews.freebsd.org/D34957