132 lines
3.4 KiB
Bash
132 lines
3.4 KiB
Bash
SUMMARY="A cross-platform build system"
|
|
DESCRIPTION="CMake is a family of tools designed to build, test and package \
|
|
software. It 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."
|
|
HOMEPAGE="https://cmake.org/"
|
|
COPYRIGHT="2002-2021 Kitware, Inc., Insight Consortium"
|
|
LICENSE="CMake"
|
|
REVISION="2"
|
|
SOURCE_URI="https://cmake.org/files/v3.21/cmake-$portVersion.tar.gz"
|
|
CHECKSUM_SHA256="d14d06df4265134ee42c4d50f5a60cb8b471b7b6a47da8e5d914d49dd783794f"
|
|
SOURCE_DIR="cmake-$portVersion"
|
|
PATCHES="cmake-$portVersion.patchset"
|
|
|
|
ARCHITECTURES="all !x86_gcc2 ?x86 ?arm"
|
|
SECONDARY_ARCHITECTURES="x86"
|
|
|
|
portVersionCompat="$portVersion compat >= ${portVersion%%.*}"
|
|
|
|
PROVIDES="
|
|
cmake$secondaryArchSuffix = $portVersionCompat
|
|
cmd:ccmake = $portVersionCompat
|
|
cmd:cmake = $portVersionCompat
|
|
cmd:cpack = $portVersionCompat
|
|
cmd:ctest = $portVersionCompat
|
|
"
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix
|
|
lib:libcurl$secondaryArchSuffix
|
|
lib:libncurses$secondaryArchSuffix
|
|
lib:librhash$secondaryArchSuffix
|
|
lib:libuv$secondaryArchSuffix
|
|
lib:libz$secondaryArchSuffix
|
|
"
|
|
|
|
SUMMARY_gui="$SUMMARY (gui)"
|
|
DESCRIPTION_gui="$DESCRIPTION (gui)"
|
|
|
|
PROVIDES_gui="
|
|
cmake${secondaryArchSuffix}_gui = $portVersion
|
|
cmd:cmake_gui = $portVersionCompat
|
|
"
|
|
REQUIRES_gui="
|
|
haiku$secondaryArchSuffix
|
|
lib:libcurl$secondaryArchSuffix
|
|
lib:libQt5Core$secondaryArchSuffix
|
|
lib:libQt5Gui$secondaryArchSuffix
|
|
lib:libQt5Widgets$secondaryArchSuffix
|
|
lib:librhash$secondaryArchSuffix
|
|
lib:libuv$secondaryArchSuffix
|
|
lib:libz$secondaryArchSuffix
|
|
"
|
|
|
|
BUILD_REQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
devel:libcurl$secondaryArchSuffix
|
|
devel:libncurses$secondaryArchSuffix
|
|
devel:libQt5Core$secondaryArchSuffix
|
|
devel:libQt5Gui$secondaryArchSuffix
|
|
devel:libQt5Widgets$secondaryArchSuffix
|
|
devel:librhash$secondaryArchSuffix
|
|
devel:libuv$secondaryArchSuffix
|
|
devel:libz$secondaryArchSuffix
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:gcc$secondaryArchSuffix
|
|
cmd:grep
|
|
cmd:ld$secondaryArchSuffix
|
|
cmd:libtoolize$secondaryArchSuffix
|
|
cmd:make
|
|
cmd:sed
|
|
"
|
|
|
|
defineDebugInfoPackage cmake$secondaryArchSuffix \
|
|
$prefix/bin/ccmake \
|
|
$prefix/bin/cmake \
|
|
$prefix/bin/cpack \
|
|
$prefix/bin/ctest \
|
|
"$(getPackagePrefix gui)/bin"/cmake-gui
|
|
|
|
BUILD()
|
|
{
|
|
# not an autotools configure
|
|
./configure --prefix=$prefix \
|
|
--datadir=/$relativeDataDir/cmake \
|
|
--docdir=/$relativeDocDir \
|
|
--mandir=/$relativeManDir \
|
|
--no-system-libs \
|
|
--system-curl \
|
|
--system-librhash \
|
|
--system-libuv \
|
|
--qt-gui \
|
|
--parallel=${jobArgs#-j}
|
|
|
|
make $jobArgs
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
make install
|
|
|
|
# No way to tell this to configure...
|
|
rm -rf $dataDir/{emacs,vim}
|
|
|
|
# GUI
|
|
packageEntries "gui" \
|
|
$prefix/bin/cmake-gui
|
|
}
|
|
|
|
TEST()
|
|
{
|
|
#x86_64
|
|
#98% tests passed, 13 tests failed out of 594
|
|
# 5 - kwsys.testSystemTools (Failed)
|
|
# 26 - FindPackageTest (Failed)
|
|
# 58 - ExportImport (Failed)
|
|
# 66 - StagingPrefix (Failed)
|
|
# 244 - CTestTestTimeout (Failed)
|
|
# 274 - CMakeLib.testUVProcessChain (Failed)
|
|
# 279 - CMakeLib.testCMFilesystemPath (Signal 21)
|
|
# 332 - RunCMake.Make (Failed)
|
|
# 422 - RunCMake.file (Failed)
|
|
# 459 - RunCMake.no_install_prefix (Failed)
|
|
# 487 - RunCMake.CommandLine (Failed)
|
|
# 521 - RunCMake.PrecompileHeaders (Failed)
|
|
# 523 - RunCMake.CMakePresets (Failed)
|
|
|
|
cp bin/ctest Bootstrap.cmk/
|
|
make test VERBOSE=1
|
|
}
|