From 956fca97c540f11a8741094a5b630caf64dc2f58 Mon Sep 17 00:00:00 2001 From: Schrijvers Luc Date: Sat, 28 Jun 2025 11:28:49 +0200 Subject: [PATCH] cmake, add RC 4.1.0-rc1, 64bit for testing (#12529) --- dev-build/cmake/cmake4-4.1.0~rc1.recipe | 166 +++++++++ dev-build/cmake/cmake4_gui-4.1.0~rc1.recipe | 135 +++++++ .../cmake/patches/cmake-4.1.0~rc1.patchset | 328 ++++++++++++++++++ 3 files changed, 629 insertions(+) create mode 100644 dev-build/cmake/cmake4-4.1.0~rc1.recipe create mode 100644 dev-build/cmake/cmake4_gui-4.1.0~rc1.recipe create mode 100644 dev-build/cmake/patches/cmake-4.1.0~rc1.patchset diff --git a/dev-build/cmake/cmake4-4.1.0~rc1.recipe b/dev-build/cmake/cmake4-4.1.0~rc1.recipe new file mode 100644 index 000000000..5622a0f0c --- /dev/null +++ b/dev-build/cmake/cmake4-4.1.0~rc1.recipe @@ -0,0 +1,166 @@ +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-2025 Kitware, Inc., Insight Consortium" +LICENSE="CMake" +REVISION="1" +SOURCE_URI="https://github.com/Kitware/CMake/releases/download/v4.1.0-rc1/cmake-4.1.0-rc1.tar.gz" +CHECKSUM_SHA256="dfe019949335b80d258d4b4f24d6cbf9d730b396ecdefc033d955641ff056ab1" +SOURCE_DIR="cmake-4.1.0-rc1" +PATCHES="cmake-$portVersion.patchset" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="?x86" + +portVersionCompat="$portVersion compat >= ${portVersion%%.*}" + +PROVIDES=" + cmake4$secondaryArchSuffix = $portVersionCompat + cmd:ccmake = $portVersionCompat + cmd:cmake = $portVersionCompat + cmd:cpack = $portVersionCompat + cmd:ctest = $portVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libarchive$secondaryArchSuffix +# lib:libcppdap$secondaryArchSuffix # use the embedded copy to avoid circular deps. + lib:libcurl$secondaryArchSuffix + lib:libexpat$secondaryArchSuffix + lib:libjsoncpp$secondaryArchSuffix + lib:libform$secondaryArchSuffix # from ncurses. + lib:libncurses$secondaryArchSuffix + lib:librhash$secondaryArchSuffix + lib:libstdc++$secondaryArchSuffix + lib:libuv$secondaryArchSuffix + lib:libz$secondaryArchSuffix + # Theres are never linked to the resulting "cmds:"s. See note on BUILD_REQUIRES. +# lib:libbz2$secondaryArchSuffix +# lib:liblzma$secondaryArchSuffix +# lib:libnghttp2$secondaryArchSuffix +# lib:libzstd$secondaryArchSuffix + " +CONFLICTS=" + cmake$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libarchive$secondaryArchSuffix +# devel:libcppdap$secondaryArchSuffix # use the embedded copy to avoid circular deps. + devel:libcurl$secondaryArchSuffix + devel:libexpat$secondaryArchSuffix + devel:libjsoncpp$secondaryArchSuffix >= 25 + devel:libncurses$secondaryArchSuffix + devel:librhash$secondaryArchSuffix + devel:libuv$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:nlohmann_json + # The following do not appear to be used, nor with --system-libs, nor by enabling them + # individually. Leaving them here just because they are mentioned in ./configure --help + # and during the build process' output. +# devel:libbz2$secondaryArchSuffix +# devel:liblzma$secondaryArchSuffix +# devel:libnghttp2$secondaryArchSuffix +# devel:libzstd$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:grep + cmd:ld$secondaryArchSuffix + cmd:libtoolize$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + cmd:sed + cmd:which + " + +defineDebugInfoPackage cmake4$secondaryArchSuffix \ + $prefix/bin/ccmake \ + $prefix/bin/cmake \ + $prefix/bin/cpack \ + $prefix/bin/ctest + +BUILD() +{ + export LDFLAGS="-lbsd" + + # not an autotools configure + # --system-libs doesn't allow --no-system-* overrides + ./configure --prefix=$prefix \ + --datadir=/$relativeDataDir/cmake \ + --docdir=/$relativeDocDir \ + --mandir=/$relativeManDir \ + --xdgdatadir=/$relativeDataDir \ + --no-system-libs \ + --system-curl \ + --system-expat \ + --system-jsoncpp \ + --system-libarchive \ + --system-librhash \ + --system-libuv \ + --system-zlib \ + --bootstrap-system-libuv \ + --bootstrap-system-jsoncpp \ + --bootstrap-system-librhash \ + --parallel=${jobArgs#-j} + # These do not seem to be used anyway (libarchive at least links to libz/libzstd): + # --system-bzip2 --system-liblzma --system-zstd, --system-nghttp2 + + make $jobArgs +} + +INSTALL() +{ + make install +} + +# For reference: version 3.30.3 +# x86_32 (for a build with cmake-gui). Took around 140 minutes. +# 72% tests passed, 189 tests failed out of 676 +# +# version 4.1.0-rc1: x86_64. +# 95% tests passed, 31 tests failed out of 628 +# The following tests FAILED: +# 5 - kwsys.testSystemTools (Failed) +# 24 - FindPackageCMakeTest (Failed) +# 25 - FindPackageCpsTest (Failed) +# 57 - ExportImport (Failed) CUDA +# 66 - StagingPrefix (Failed) +# 80 - Module.ExternalData (Failed) +# 137 - ExternalProjectLocal (Failed) +# 140 - InstallMode-COPY (Failed) +# 141 - InstallMode-REL_SYMLINK (Failed) +# 142 - InstallMode-REL_SYMLINK_OR_COPY (Failed) +# 143 - InstallMode-ABS_SYMLINK (Failed) +# 144 - InstallMode-ABS_SYMLINK_OR_COPY (Failed) +# 145 - InstallMode-SYMLINK (Failed) +# 146 - InstallMode-SYMLINK_OR_COPY (Failed) +# 179 - CTestCoverageCollectGCOV (Failed) +# 221 - CTestTestTimeout (Failed) +# 259 - CMakeLib.testUVProcessChain (Failed) +# 409 - RunCMake.ParseImplicitLinkInfo (Failed) +# 420 - RunCMake.find_dependency (Failed) +# 469 - RunCMake.file (Failed) +# 471 - RunCMake.file-DOWNLOAD (Failed) +# 476 - RunCMake.find_library (Failed) +# 477 - RunCMake.find_package (Failed) +# 516 - RunCMake.no_install_prefix (Failed) +# 518 - RunCMake.CTestTimeout (Failed) +# 524 - RunCMake.FindPkgConfig (Failed) +# 527 - RunCMake.File_Archive (Failed) +# 546 - RunCMake.target_sources (Failed) +# 552 - RunCMake.CommandLine (Failed) +# 553 - RunCMake.CommandLineTar (Failed) +# 554 - RunCMake.install (Failed) ISPC +TEST() +{ + # 2 tests crash (1 test case has 5 crashes, but passes the test?), exclude with -E + ./bin/ctest --output-on-failure -E "(CMakeLib.testUVProcessChain|RunCMake.execute_process)" + # run individual failing test(s) with -R +# ./bin/ctest -R "(kwsys.testSystemTools|FindPackageCMakeTest)" --output-on-failure +} diff --git a/dev-build/cmake/cmake4_gui-4.1.0~rc1.recipe b/dev-build/cmake/cmake4_gui-4.1.0~rc1.recipe new file mode 100644 index 000000000..a5eb4afdd --- /dev/null +++ b/dev-build/cmake/cmake4_gui-4.1.0~rc1.recipe @@ -0,0 +1,135 @@ +SUMMARY="A cross-platform build system (GUI version)" +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. + +This package provides the GUI version of CMake (cmake-gui). It must be \ +installed in the same prefix as the main cmake package." +HOMEPAGE="https://cmake.org/" +COPYRIGHT="2002-2025 Kitware, Inc., Insight Consortium" +LICENSE="CMake" +REVISION="1" +SOURCE_URI="https://github.com/Kitware/CMake/releases/download/v4.1.0-rc1/cmake-4.1.0-rc1.tar.gz" +CHECKSUM_SHA256="dfe019949335b80d258d4b4f24d6cbf9d730b396ecdefc033d955641ff056ab1" +SOURCE_DIR="cmake-4.1.0-rc1" +PATCHES="cmake-$portVersion.patchset" +ADDITIONAL_FILES="cmake.rdef.in" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="?x86" + +portVersionCompat="$portVersion compat >= ${portVersion%%.*}" + +PROVIDES=" + cmake4_gui$secondaryArchSuffix = $portVersion + cmd:cmake_gui = $portVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + cmake4$secondaryArchSuffix + lib:libarchive$secondaryArchSuffix + lib:libcppdap$secondaryArchSuffix + lib:libcurl$secondaryArchSuffix + lib:libexpat$secondaryArchSuffix + lib:libGL$secondaryArchSuffix + lib:libjsoncpp$secondaryArchSuffix + lib:libQt6Core$secondaryArchSuffix + lib:libQt6Gui$secondaryArchSuffix + lib:libQt6Widgets$secondaryArchSuffix + lib:librhash$secondaryArchSuffix + lib:libstdc++$secondaryArchSuffix + lib:libuv$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +# Earlier versions of the gui package came from just one recipe named "cmake". +if [ -n "$secondaryArchSuffix" ]; then + REPLACES="cmake${secondaryArchSuffix}_gui" +fi + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libarchive$secondaryArchSuffix + devel:libcppdap$secondaryArchSuffix + devel:libcurl$secondaryArchSuffix + devel:libncurses$secondaryArchSuffix + devel:libexpat$secondaryArchSuffix + devel:libjsoncpp$secondaryArchSuffix >= 25 + devel:libQt6Core$secondaryArchSuffix + devel:libQt6Gui$secondaryArchSuffix + devel:libQt6Widgets$secondaryArchSuffix + devel:librhash$secondaryArchSuffix + devel:libuv$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:nlohmann_json + " +BUILD_PREREQUIRES=" + cmake4$secondaryArchSuffix == $portVersion + cmd:gcc$secondaryArchSuffix + cmd:grep + cmd:ld$secondaryArchSuffix + cmd:libtoolize$secondaryArchSuffix + cmd:make + cmd:sed + " + +defineDebugInfoPackage cmake4_gui$secondaryArchSuffix \ + $prefix/bin/cmake-gui + +BUILD() +{ + # the CMAKE_*_DIR variables should match the definitions in the cmake recipe + cmake -Bbuild-gui -S. $cmakeDirArgs \ + -DCMAKE_INSTALL_BINDIR=bin \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DBUILD_CursesDialog=OFF \ + -DBUILD_QtDialog=ON \ + -DCMAKE_DATA_DIR=/$relativeDataDir/cmake \ + -DCMAKE_DOC_DIR=/$relativeDocumentationDir/packages/cmake \ + -DCMAKE_MAN_DIR=/$relativeManDir \ + -DCMAKE_XDGDATA_DIR=/$relativeDataDir \ + -DCMAKE_USE_SYSTEM_BZIP2=ON \ + -DCMAKE_USE_SYSTEM_CPPDAP=ON \ + -DCMAKE_USE_SYSTEM_CURL=ON \ + -DCMAKE_USE_SYSTEM_EXPAT=ON \ + -DCMAKE_USE_SYSTEM_FORM=ON \ + -DCMAKE_USE_SYSTEM_JSONCPP=ON \ + -DCMAKE_USE_SYSTEM_LIBARCHIVE=ON \ + -DCMAKE_USE_SYSTEM_LIBLZMA=ON \ + -DCMAKE_USE_SYSTEM_LIBRHASH=ON \ + -DCMAKE_USE_SYSTEM_LIBUV=ON \ + -DCMAKE_USE_SYSTEM_NGHTTP2=ON \ + -DCMAKE_USE_SYSTEM_ZLIB=ON \ + -DCMAKE_USE_SYSTEM_ZSTD=ON + + make -Cbuild-gui/Source/QtDialog $jobArgs +} + +INSTALL() +{ + # make install tries to use a local cmake, which isn't built, use the system version instead + ln -sf /boot/system/bin/cmake build-gui/bin + + make -Cbuild-gui/Source/QtDialog install + + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3 | cut -d~ -f1`" + local APP_NAME="CMake-GUI" + local LONG_INFO="$SUMMARY" + local APP_SIGNATURE="application/x-vnd.cmake-gui" + + sed \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + -e "s|@APP_NAME@|$APP_NAME|" \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + $portDir/additional-files/cmake.rdef.in > cmake.rdef + + addResourcesToBinaries cmake.rdef $prefix/bin/cmake-gui + addAppDeskbarSymlink $prefix/bin/cmake-gui CMake-GUI +} diff --git a/dev-build/cmake/patches/cmake-4.1.0~rc1.patchset b/dev-build/cmake/patches/cmake-4.1.0~rc1.patchset new file mode 100644 index 000000000..2a643eb81 --- /dev/null +++ b/dev-build/cmake/patches/cmake-4.1.0~rc1.patchset @@ -0,0 +1,328 @@ +From e02bb888e518ca5961c8a7d2f10d9903469c19fb Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sat, 7 Sep 2019 17:29:56 +0200 +Subject: links against libnetwork + + +diff --git a/bootstrap b/bootstrap +index 2ec6aac..bcdc2e2 100755 +--- a/bootstrap ++++ b/bootstrap +@@ -1792,6 +1792,9 @@ else + uv_c_flags="${uv_c_flags} -D_XOPEN_SOURCE=700" + libs="${libs} -lsocket" + ;; ++ *Haiku*) ++ libs="${libs} -lnetwork" ++ ;; + esac + fi + if test "x${bootstrap_system_libuv}" = "x"; then +-- +2.48.1 + + +From 4d0b6bcc23d37a10be5eb29e72ec6833c2f5c9e8 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sat, 7 Sep 2019 23:46:47 +0200 +Subject: bootstrap uses cmlibuv + + +diff --git a/Utilities/cmlibuv/src/unix/core.c b/Utilities/cmlibuv/src/unix/core.c +index 83e8b61..314f239 100644 +--- a/Utilities/cmlibuv/src/unix/core.c ++++ b/Utilities/cmlibuv/src/unix/core.c +@@ -1440,7 +1440,9 @@ int uv_os_getpriority(uv_pid_t pid, int* priority) { + return UV_EINVAL; + + errno = 0; ++#ifndef __HAIKU__ + r = getpriority(PRIO_PROCESS, (int) pid); ++#endif + + if (r == -1 && errno != 0) + return UV__ERR(errno); +@@ -1454,8 +1456,10 @@ int uv_os_setpriority(uv_pid_t pid, int priority) { + if (priority < UV_PRIORITY_HIGHEST || priority > UV_PRIORITY_LOW) + return UV_EINVAL; + ++#ifndef __HAIKU__ + if (setpriority(PRIO_PROCESS, (int) pid, priority) != 0) + return UV__ERR(errno); ++#endif + + return 0; + } +-- +2.48.1 + + +From 5db1afb3792bb3a9c13ba535ee62a41bb6c0a3e5 Mon Sep 17 00:00:00 2001 +From: Augustin Cavalier +Date: Fri, 21 Feb 2020 15:38:39 -0500 +Subject: Modules/Haiku: Set CMAKE_SYSTEM_FRAMEWORK_PATH. + + +diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake +index 3610389..9ba64b0 100644 +--- a/Modules/Platform/Haiku.cmake ++++ b/Modules/Platform/Haiku.cmake +@@ -117,6 +117,9 @@ list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES + + list(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES}) + ++# This is needed for find_package to search develop/lib/cmake/. ++list(APPEND CMAKE_SYSTEM_FRAMEWORK_PATH /boot/system/develop /boot/system/non-packaged/develop) ++ + if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "/boot/system" CACHE PATH + "Install path prefix, prepended onto install directories." FORCE) +-- +2.48.1 + + +From 209801edd862e01620a2ed121b616ab010ca8ada Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Thu, 15 Apr 2021 21:09:12 +0200 +Subject: disable dependency tracking for older GNU compilers + + +diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake +index 141838e..1c90942 100644 +--- a/Modules/Compiler/GNU.cmake ++++ b/Modules/Compiler/GNU.cmake +@@ -51,7 +51,9 @@ macro(__compiler_gnu lang) + # distcc does not transform -o to -MT when invoking the preprocessor + # internally, as it ought to. Work around this bug by setting -MT here + # even though it isn't strictly necessary. +- set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT -MF ") ++ if(NOT CMAKE_${lang}_COMPILER_ID STREQUAL "GNU" OR NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.0) ++ set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT -MF ") ++ endif() + endif() + + # Initial configuration flags. +-- +2.48.1 + + +From a24ea705e2a097f25488f3cd15ef7bcbcd82589d Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 20 Oct 2021 14:28:22 +0200 +Subject: Haiku: fix install dirs, let FindPackage search in data/ + + +diff --git a/Source/CMakeInstallDestinations.cmake b/Source/CMakeInstallDestinations.cmake +index e82bec3..0f8a620 100644 +--- a/Source/CMakeInstallDestinations.cmake ++++ b/Source/CMakeInstallDestinations.cmake +@@ -1,11 +1,11 @@ + # Keep formatting here consistent with bootstrap script expectations. + if(BEOS) + set(CMAKE_BIN_DIR_DEFAULT "bin") # HAIKU +- set(CMAKE_DATA_DIR_DEFAULT "share/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") # HAIKU ++ set(CMAKE_DATA_DIR_DEFAULT "data/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") # HAIKU + set(CMAKE_DOC_DIR_DEFAULT "documentation/doc/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") # HAIKU + set(CMAKE_INFO_DIR_DEFAULT "documentation/info") # HAIKU + set(CMAKE_MAN_DIR_DEFAULT "documentation/man") # HAIKU +- set(CMAKE_XDGDATA_DIR_DEFAULT "share") # HAIKU ++ set(CMAKE_XDGDATA_DIR_DEFAULT "data") # HAIKU + elseif(CYGWIN) + set(CMAKE_BIN_DIR_DEFAULT "bin") # CYGWIN + set(CMAKE_DATA_DIR_DEFAULT "share/cmake-${CMake_VERSION}") # CYGWIN +diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx +index 6201894..c06e7ad 100644 +--- a/Source/cmFindPackageCommand.cxx ++++ b/Source/cmFindPackageCommand.cxx +@@ -3294,7 +3294,11 @@ bool cmFindPackageCommand::SearchPrefix(std::string const& prefix) + common.emplace_back("libx32"_s); + } + common.emplace_back("lib"_s); ++#ifdef __HAIKU__ ++ common.emplace_back("data"_s); ++#else + common.emplace_back("share"_s); ++#endif + + auto commonGen = cmEnumPathSegmentsGenerator{ common }; + auto cmakeGen = cmAppendPathSegmentGenerator{ "cmake"_s }; +-- +2.48.1 + + +From 5d46410ddf9bead94fda9a725930e49f9e41192f Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 23 Feb 2022 13:44:06 +0100 +Subject: Disable weak symbols; they do not seem to behave correctly. + + +diff --git a/Utilities/cmzstd/lib/common/zstd_trace.h b/Utilities/cmzstd/lib/common/zstd_trace.h +index da20534..97bcdc2 100644 +--- a/Utilities/cmzstd/lib/common/zstd_trace.h ++++ b/Utilities/cmzstd/lib/common/zstd_trace.h +@@ -29,7 +29,7 @@ extern "C" { + defined(__GNUC__) && defined(__ELF__) && \ + (defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86) || defined(__aarch64__)) && \ + !defined(__APPLE__) && !defined(_WIN32) && !defined(__MINGW32__) && \ +- !defined(__CYGWIN__) && !defined(_AIX) ++ !defined(__CYGWIN__) && !defined(_AIX) && !defined(__HAIKU__) + # define ZSTD_HAVE_WEAK_SYMBOLS 1 + #else + # define ZSTD_HAVE_WEAK_SYMBOLS 0 +-- +2.48.1 + + +From d586aef6bed89544e4446d6fe24c809b7ce64244 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Fri, 9 Feb 2024 13:48:22 +0100 +Subject: Haiku: enable debugger + + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index cab0fcb..919c3cc 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -140,7 +140,7 @@ option(CMake_BUILD_PCH "Compile CMake with precompiled headers" OFF) + if(NOT CMake_TEST_EXTERNAL_CMAKE) + if(NOT DEFINED CMake_ENABLE_DEBUGGER) + # The debugger uses cppdap, which does not compile everywhere. +- if(CMAKE_SYSTEM_NAME MATCHES "Windows|Darwin|Linux|BSD|DragonFly|CYGWIN|MSYS" ++ if(CMAKE_SYSTEM_NAME MATCHES "Windows|Darwin|Linux|BSD|DragonFly|CYGWIN|MSYS|Haiku" + AND NOT (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.16) + AND NOT (CMAKE_CXX_COMPILER_ID STREQUAL "XLClang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.1) + AND NOT (CMAKE_CXX_COMPILER_ID STREQUAL "LCC" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 1.23) +diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt +index b1c8290..670fe25 100644 +--- a/Source/CMakeLists.txt ++++ b/Source/CMakeLists.txt +@@ -861,6 +861,9 @@ if(CMake_ENABLE_DEBUGGER) + ) + endif() + target_link_libraries(CMakeLib PUBLIC cppdap::cppdap) ++ if(HAIKU) ++ target_link_libraries(CMakeLib PUBLIC network) ++ endif() + endif() + + # Check if we can build the Mach-O parser. +-- +2.48.1 + + +From 8d9c526763944fd45cb27ef6c4e770fa7bd53324 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?M=C3=A1ximo=20Casta=C3=B1eda?= +Date: Sat, 31 Aug 2024 21:52:20 +0200 +Subject: Fix build for non-x86 arches + + +diff --git a/Source/kwsys/SystemInformation.cxx b/Source/kwsys/SystemInformation.cxx +index c65587e..35788be 100644 +--- a/Source/kwsys/SystemInformation.cxx ++++ b/Source/kwsys/SystemInformation.cxx +@@ -4996,6 +4996,7 @@ bool SystemInformationImplementation::QueryHaikuInfo() + this->TotalVirtualMemory = 0; + this->AvailableVirtualMemory = 0; + ++#if defined(__i386__) || defined(__x86_64__) + // Retrieve cpuid_info union for cpu 0 + cpuid_info cpu_info; + get_cpuid(&cpu_info, 0, 0); +@@ -5031,6 +5032,7 @@ bool SystemInformationImplementation::QueryHaikuInfo() + + // Chip Extended Model + this->ChipID.ExtendedModel = cpu_info.eax_1.extended_model; ++#endif + + // Get ChipID.ProcessorName from other information already gathered + this->RetrieveClassicalCPUIdentity(); +-- +2.48.1 + + +From 941be032b8e4ab52601a324561bd9560679e6326 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Wed, 25 Sep 2024 09:11:06 +0200 +Subject: FindPython: when component Development is searched, also search + Interpreter + +FindPython only uses the python config when an interpreter is found. +The python config contains the right include paths on x86 for instance. + +diff --git a/Modules/FindPython/Support.cmake b/Modules/FindPython/Support.cmake +index a944164..65fb255 100644 +--- a/Modules/FindPython/Support.cmake ++++ b/Modules/FindPython/Support.cmake +@@ -1484,6 +1484,9 @@ if ("NumPy" IN_LIST ${_PYTHON_BASE}_FIND_COMPONENTS) + endif() + if ("Development" IN_LIST ${_PYTHON_BASE}_FIND_COMPONENTS) + list (APPEND ${_PYTHON_BASE}_FIND_COMPONENTS "Development.Module" "Development.Embed") ++ if (HAIKU) ++ list (APPEND ${_PYTHON_PREFIX}_FIND_COMPONENTS "Interpreter") ++ endif() + endif() + list (REMOVE_DUPLICATES ${_PYTHON_BASE}_FIND_COMPONENTS) + foreach (component IN ITEMS Interpreter Compiler Development Development.Module Development.SABIModule Development.Embed NumPy) +-- +2.48.1 + + +From ba75d29dbc172d1356ed79b705521a9d72e0825b Mon Sep 17 00:00:00 2001 +From: Oscar Lesta +Date: Mon, 23 Sep 2024 05:40:41 -0300 +Subject: Use 'headers' instead of 'include' as fallback. + +Just a quick swap, to help CMake find Python's headers on 32 bits Haiku. +(64 bits was working OK. See HaikuPorts issue #11155) + +Not strictly needed after korli's previous fix, but... doesn't hurts. +Kudos to madmax for this early workaround! + +diff --git a/Modules/FindPython/Support.cmake b/Modules/FindPython/Support.cmake +index 65fb255..e25be91 100644 +--- a/Modules/FindPython/Support.cmake ++++ b/Modules/FindPython/Support.cmake +@@ -380,11 +380,11 @@ function (_PYTHON_GET_PATH_SUFFIXES _PYTHON_PGPS_PATH_SUFFIXES) + elseif (_PGPS_INCLUDE) + set (suffixes "${abi}") + if (suffixes) +- list (TRANSFORM suffixes PREPEND "include/python${version}") ++ list (TRANSFORM suffixes PREPEND "headers/python${version}") + else() +- set (suffixes "include/python${version}") ++ set (suffixes "headers/python${version}") + endif() +- list (APPEND path_suffixes ${suffixes} include) ++ list (APPEND path_suffixes ${suffixes} headers) + endif() + endforeach() + endif() +-- +2.48.1 + + +From 967f90fc0c3ea9d778e412f6c51489a3c51b1abd Mon Sep 17 00:00:00 2001 +From: Oscar Lesta +Date: Thu, 26 Sep 2024 15:16:36 -0300 +Subject: Avoid installing icons, .desktop, and mime files. + +Those are intended for use on Linux and friends. + +Fix by Begasus. Thanks! + +diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt +index 7f9e7f0..2a70689 100644 +--- a/Source/QtDialog/CMakeLists.txt ++++ b/Source/QtDialog/CMakeLists.txt +@@ -329,7 +329,7 @@ install(TARGETS cmake-gui + RUNTIME DESTINATION bin ${COMPONENT} + BUNDLE DESTINATION "${CMAKE_BUNDLE_LOCATION}" ${COMPONENT}) + +-if(UNIX AND NOT APPLE) ++if(UNIX AND NOT APPLE AND NOT HAIKU) + foreach(size IN ITEMS 32 128) + install( + FILES "${CMAKE_CURRENT_SOURCE_DIR}/CMakeSetup${size}.png" +-- +2.48.1 +