1SUMMARY="A cross-platform build system"
2DESCRIPTION="CMake is a family of tools designed to build, test and package \
3software. It is used to control the software compilation process using \
4simple platform and compiler independent configuration files. CMake generates \
5native makefiles and workspaces that can be used in the compiler environment \
6of your choice."
7HOMEPAGE="https://cmake.org/"
8COPYRIGHT="2002-2023 Kitware, Inc., Insight Consortium"
9LICENSE="CMake"
10REVISION="1"
11SOURCE_URI="https://cmake.org/files/v${portVersion%.*}/cmake-$portVersion.tar.gz"
12CHECKSUM_SHA256="72b7570e5c8593de6ac4ab433b73eab18c5fb328880460c86ce32608141ad5c1"
13PATCHES="cmake-$portVersion.patchset"
14ADDITIONAL_FILES="cmake.rdef.in"
15
16ARCHITECTURES="all !x86_gcc2 ?x86 ?arm"
17SECONDARY_ARCHITECTURES="x86"
18
19portVersionCompat="$portVersion compat >= ${portVersion%%.*}"
20
21PROVIDES="
22	cmake$secondaryArchSuffix = $portVersionCompat
23	cmd:ccmake = $portVersionCompat
24	cmd:cmake = $portVersionCompat
25	cmd:cpack = $portVersionCompat
26	cmd:ctest = $portVersionCompat
27	"
28REQUIRES="
29	haiku$secondaryArchSuffix
30	lib:libcppdap$secondaryArchSuffix
31	lib:libcurl$secondaryArchSuffix
32	lib:libjsoncpp$secondaryArchSuffix
33	lib:libncurses$secondaryArchSuffix
34	lib:librhash$secondaryArchSuffix
35	lib:libstdc++$secondaryArchSuffix
36	lib:libuv$secondaryArchSuffix
37	lib:libz$secondaryArchSuffix
38	"
39
40SUMMARY_gui="$SUMMARY (gui)"
41DESCRIPTION_gui="$DESCRIPTION (gui)"
42
43PROVIDES_gui="
44	cmake${secondaryArchSuffix}_gui = $portVersion
45	cmd:cmake_gui = $portVersionCompat
46	"
47REQUIRES_gui="
48	haiku$secondaryArchSuffix
49	cmake$secondaryArchSuffix == $portVersion base
50	lib:libcppdap$secondaryArchSuffix
51	lib:libcurl$secondaryArchSuffix
52	lib:libjsoncpp$secondaryArchSuffix
53	lib:libQt5Core$secondaryArchSuffix
54	lib:libQt5Gui$secondaryArchSuffix
55	lib:libQt5Widgets$secondaryArchSuffix
56	lib:librhash$secondaryArchSuffix
57	lib:libstdc++$secondaryArchSuffix
58	lib:libuv$secondaryArchSuffix
59	lib:libz$secondaryArchSuffix
60	"
61
62BUILD_REQUIRES="
63	haiku${secondaryArchSuffix}_devel
64	devel:libcurl$secondaryArchSuffix
65	devel:libcppdap$secondaryArchSuffix
66	devel:libjsoncpp$secondaryArchSuffix >= 25
67	devel:libncurses$secondaryArchSuffix
68	devel:libQt5Core$secondaryArchSuffix
69	devel:libQt5Gui$secondaryArchSuffix
70	devel:libQt5Widgets$secondaryArchSuffix
71	devel:librhash$secondaryArchSuffix
72	devel:libuv$secondaryArchSuffix
73	devel:libz$secondaryArchSuffix
74	devel:nlohmann_json
75	"
76BUILD_PREREQUIRES="
77	cmd:gcc$secondaryArchSuffix
78	cmd:grep
79	cmd:ld$secondaryArchSuffix
80	cmd:libtoolize$secondaryArchSuffix
81	cmd:make
82	cmd:sed
83	"
84
85defineDebugInfoPackage cmake$secondaryArchSuffix \
86	$prefix/bin/ccmake \
87	$prefix/bin/cmake \
88	$prefix/bin/cpack \
89	$prefix/bin/ctest \
90	"$(getPackagePrefix gui)/bin"/cmake-gui
91
92BUILD()
93{
94	# not an autotools configure
95	./configure --prefix=$prefix \
96		--datadir=/$relativeDataDir/cmake \
97		--docdir=/$relativeDocDir \
98		--mandir=/$relativeManDir \
99		--xdgdatadir=/$relativeDataDir \
100		--no-system-libs \
101		--system-cppdap \
102		--system-curl \
103		--system-jsoncpp \
104		--system-librhash \
105		--system-libuv \
106		--qt-gui \
107		--parallel=${jobArgs#-j}
108
109	make $jobArgs
110}
111
112INSTALL()
113{
114	make install
115
116	# No way to tell this to configure...
117	rm -rf $dataDir/{applications,emacs,icons,mime,vim}
118
119	local MAJOR="`echo "$portVersion" | cut -d. -f1`"
120	local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
121	local MINOR="`echo "$portVersion" | cut -d. -f3`"
122	local APP_NAME="CMake-GUI"
123	local LONG_INFO="$SUMMARY"
124	local APP_SIGNATURE="application/x-vnd.cmake-gui"
125	sed \
126		-e "s|@MAJOR@|$MAJOR|" \
127		-e "s|@MIDDLE@|$MIDDLE|" \
128		-e "s|@MINOR@|$MINOR|" \
129		-e "s|@LONG_INFO@|$LONG_INFO|" \
130		-e "s|@APP_NAME@|$APP_NAME|" \
131		-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
132		$portDir/additional-files/cmake.rdef.in > cmake.rdef
133
134	addResourcesToBinaries cmake.rdef $prefix/bin/cmake-gui
135
136	addAppDeskbarSymlink $prefix/bin/cmake-gui CMake-GUI
137
138	# GUI
139	packageEntries "gui" \
140		$prefix/bin/cmake-gui \
141		$dataDir/deskbar
142}
143
144TEST()
145{
146#x86_64
147#72% tests passed, 183 tests failed out of 664
148#          6 - kwsys.testSystemTools (Failed)
149#         26 - FindPackageTest (Failed)
150#         58 - ExportImport (Failed)
151#         66 - StagingPrefix (Failed)
152#         81 - Module.ExternalData (Failed)
153#        142 - InstallMode-COPY (Failed)
154#        143 - InstallMode-REL_SYMLINK (Failed)
155#        144 - InstallMode-REL_SYMLINK_OR_COPY (Failed)
156#        145 - InstallMode-ABS_SYMLINK (Failed)
157#        146 - InstallMode-ABS_SYMLINK_OR_COPY (Failed)
158#        147 - InstallMode-SYMLINK (Failed)
159#        148 - InstallMode-SYMLINK_OR_COPY (Failed)
160#        249 - CTestTestTimeout (Failed)
161#        280 - CMakeLib.testUVProcessChain (Failed)
162#        318 - RunCMake.CMP0019 (Failed)
163#        319 - RunCMake.CMP0022 (Failed)
164#        320 - RunCMake.CMP0026 (Failed)
165#        322 - RunCMake.CMP0037 (Failed)
166#        323 - RunCMake.CMP0038 (Failed)
167#        324 - RunCMake.CMP0039 (Failed)
168#        325 - RunCMake.CMP0040 (Failed)
169#        326 - RunCMake.CMP0041 (Failed)
170#        327 - RunCMake.CMP0043 (Failed)
171#        328 - RunCMake.CMP0045 (Failed)
172#        329 - RunCMake.CMP0046 (Failed)
173#        330 - RunCMake.CMP0049 (Failed)
174#        331 - RunCMake.CMP0050 (Failed)
175#        332 - RunCMake.CMP0051 (Failed)
176#        333 - RunCMake.CMP0053 (Failed)
177#        334 - RunCMake.CMP0054 (Failed)
178#        335 - RunCMake.CMP0055 (Failed)
179#        336 - RunCMake.CMP0057 (Failed)
180#        337 - RunCMake.CMP0059 (Failed)
181#        338 - RunCMake.CMP0060 (Failed)
182#        339 - RunCMake.CMP0064 (Failed)
183#        340 - RunCMake.CMP0069 (Failed)
184#        341 - RunCMake.CMP0081 (Failed)
185#        342 - RunCMake.CMP0102 (Failed)
186#        343 - RunCMake.CMP0106 (Failed)
187#        344 - RunCMake.CMP0111 (Failed)
188#        345 - RunCMake.CMP0115 (Failed)
189#        346 - RunCMake.CMP0118 (Failed)
190#        347 - RunCMake.CMP0119 (Failed)
191#        348 - RunCMake.CMP0121 (Failed)
192#        351 - RunCMake.CMP0135 (Failed)
193#        352 - RunCMake.CMP0139 (Failed)
194#        353 - RunCMake.CMP0152 (Failed)
195#        354 - RunCMake.CMP0153 (Failed)
196#        355 - RunCMake.CMP0065 (Failed)
197#        356 - RunCMake.Make (Failed)
198#        357 - RunCMake.CTest (Failed)
199#        359 - RunCMake.ABI (Failed)
200#        361 - RunCMake.AutogenQt5 (Failed)
201#        362 - RunCMake.BuildDepends (Timeout)
202#        364 - RunCMake.CMakeDependentOption (Failed)
203#        368 - RunCMake.CompilerChange (Failed)
204#        369 - RunCMake.CompilerNotFound (Failed)
205#        371 - RunCMake.Configure (Failed)
206#        372 - RunCMake.DisallowedCommands (Failed)
207#        376 - RunCMake.ExternalData (Failed)
208#        378 - RunCMake.FPHSA (Failed)
209#        379 - RunCMake.FileAPI (Failed)
210#        380 - RunCMake.FindBoost (Failed)
211#        382 - RunCMake.FindOpenGL (Failed)
212#        387 - RunCMake.GenEx-LINK_LANGUAGE (Failed)
213#        388 - RunCMake.GenEx-LINK_LANG_AND_ID (Failed)
214#        391 - RunCMake.GenEx-LINK_LIBRARY (Failed)
215#        392 - RunCMake.GenEx-LINK_GROUP (Failed)
216#        393 - RunCMake.GenEx-TARGET_FILE (Failed)
217#        395 - RunCMake.GenEx-GENEX_EVAL (Failed)
218#        396 - RunCMake.GenEx-TARGET_PROPERTY (Failed)
219#        399 - RunCMake.GenEx-PATH_EQUAL (Failed)
220#        401 - RunCMake.GeneratorExpression (Failed)
221#        403 - RunCMake.GeneratorInstance (Failed)
222#        404 - RunCMake.GeneratorPlatform (Failed)
223#        405 - RunCMake.GeneratorToolset (Failed)
224#        406 - RunCMake.GetPrerequisites (Failed)
225#        407 - RunCMake.GNUInstallDirs (Failed)
226#        410 - RunCMake.Languages (Failed)
227#        411 - RunCMake.LinkItemValidation (Failed)
228#        413 - RunCMake.ObjectLibrary (Failed)
229#        416 - RunCMake.RuntimePath (Failed)
230#        418 - RunCMake.Swift (Failed)
231#        420 - RunCMake.TargetObjects (Failed)
232#        421 - RunCMake.TargetProperties (Failed)
233#        422 - RunCMake.ToolchainFile (Failed)
234#        423 - RunCMake.find_dependency (Failed)
235#        424 - RunCMake.CompileDefinitions (Failed)
236#        426 - RunCMake.CompileFeatures (Failed)
237#        428 - RunCMake.PolicyScope (Failed)
238#        430 - RunCMake.WriteCompilerDetectionHeader (Failed)
239#        433 - RunCMake.VisibilityPreset (Failed)
240#        434 - RunCMake.CompatibleInterface (Failed)
241#        435 - RunCMake.Syntax (Failed)
242#        437 - RunCMake.MaxRecursionDepth (Failed)
243#        438 - RunCMake.add_custom_command (Failed)
244#        439 - RunCMake.add_custom_target (Failed)
245#        441 - RunCMake.add_executable (Failed)
246#        442 - RunCMake.add_library (Failed)
247#        443 - RunCMake.add_subdirectory (Failed)
248#        444 - RunCMake.add_test (Failed)
249#        445 - RunCMake.build_command (Failed)
250#        446 - RunCMake.execute_process (Failed)
251#        447 - RunCMake.export (Failed)
252#        448 - RunCMake.cmake_host_system_information (Failed)
253#        449 - RunCMake.cmake_language (Failed)
254#        450 - RunCMake.cmake_minimum_required (Failed)
255#        451 - RunCMake.cmake_parse_arguments (Failed)
256#        467 - RunCMake.define_property (Failed)
257#        468 - RunCMake.file (Failed)
258#        469 - RunCMake.file-CHMOD (Failed)
259#        470 - RunCMake.file-DOWNLOAD (Failed)
260#        471 - RunCMake.file-RPATH (Failed)
261#        472 - RunCMake.find_file (Failed)
262#        473 - RunCMake.find_library (Failed)
263#        474 - RunCMake.find_package (Failed)
264#        475 - RunCMake.find_path (Failed)
265#        476 - RunCMake.find_program (Failed)
266#        477 - RunCMake.foreach (Failed)
267#        480 - RunCMake.get_filename_component (Failed)
268#        481 - RunCMake.get_property (Failed)
269#        482 - RunCMake.if (Failed)
270#        483 - RunCMake.include (Failed)
271#        484 - RunCMake.include_directories (Failed)
272#        486 - RunCMake.list (Failed)
273#        487 - RunCMake.load_cache (Failed)
274#        488 - RunCMake.math (Failed)
275#        489 - RunCMake.message (Failed)
276#        490 - RunCMake.option (Failed)
277#        492 - RunCMake.project (Failed)
278#        493 - RunCMake.project_injected (Failed)
279#        497 - RunCMake.separate_arguments (Failed)
280#        498 - RunCMake.set_property (Failed)
281#        499 - RunCMake.string (Failed)
282#        501 - RunCMake.BundleUtilities (Failed)
283#        502 - RunCMake.try_compile (Failed)
284#        503 - RunCMake.try_run (Failed)
285#        504 - RunCMake.set (Failed)
286#        505 - RunCMake.variable_watch (Failed)
287#        506 - RunCMake.while (Failed)
288#        509 - RunCMake.alias_targets (Failed)
289#        510 - RunCMake.InterfaceLibrary (Failed)
290#        511 - RunCMake.no_install_prefix (Failed)
291#        512 - RunCMake.configure_file (Failed)
292#        513 - RunCMake.CTestTimeout (Failed)
293#        516 - RunCMake.CXXModules (Failed)
294#        519 - RunCMake.File_Archive (Failed)
295#        520 - RunCMake.File_Configure (Failed)
296#        521 - RunCMake.File_Generate (Failed)
297#        522 - RunCMake.ExportWithoutLanguage (Failed)
298#        524 - RunCMake.target_link_libraries (Failed)
299#        528 - RunCMake.target_link_libraries-LINK_LIBRARY (Failed)
300#        529 - RunCMake.target_link_libraries-LINK_GROUP (Failed)
301#        534 - RunCMake.target_compile_features (Failed)
302#        535 - RunCMake.target_compile_options (Failed)
303#        537 - RunCMake.target_sources (Failed)
304#        539 - RunCMake.CheckSourceCompiles (Failed)
305#        540 - RunCMake.CheckSourceRuns (Failed)
306#        541 - RunCMake.CheckModules (Failed)
307#        542 - RunCMake.CheckIPOSupported (Failed)
308#        543 - RunCMake.CommandLine (Failed)
309#        545 - RunCMake.install (Failed)
310#        546 - RunCMake.file-GET_RUNTIME_DEPENDENCIES (Failed)
311#        548 - RunCMake.CPackConfig (Failed)
312#        550 - RunCMake.ExternalProject (Failed)
313#        553 - RunCMake.CTestCommandLine (Failed)
314#        556 - RunCMake.IfacePaths_INCDIRS (Failed)
315#        568 - RunCMake.CPack_7Z (Failed)
316#        569 - RunCMake.CPack_TBZ2 (Failed)
317#        570 - RunCMake.CPack_TGZ (Failed)
318#        571 - RunCMake.CPack_TXZ (Failed)
319#        572 - RunCMake.CPack_TZ (Failed)
320#        573 - RunCMake.CPack_ZIP (Failed)
321#        574 - RunCMake.CPack_STGZ (Failed)
322#        575 - RunCMake.CPack_External (Failed)
323#        580 - RunCMake.UnityBuild (Failed)
324#        581 - RunCMake.CMakePresets (Failed)
325#        582 - RunCMake.CMakePresetsBuild (Failed)
326#        583 - RunCMake.CMakePresetsTest (Failed)
327#        584 - RunCMake.CMakePresetsPackage (Failed)
328#        585 - RunCMake.CMakePresetsWorkflow (Failed)
329#        586 - RunCMake.VerifyHeaderSets (Failed)
330#        587 - RunCMake.set_tests_properties (Failed)
331	cp bin/ctest Bootstrap.cmk/
332	make test VERBOSE=1 ARGS="$jobArgs"
333}
334