From dcb07322537b4cca977d33999c12f62c1c579d85 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sat, 24 Mar 2018 14:19:43 +0100 Subject: Fix search path for Lua headers. diff --git a/Modules/FindLua51.cmake b/Modules/FindLua51.cmake index 2249ab1..187332b 100644 --- a/Modules/FindLua51.cmake +++ b/Modules/FindLua51.cmake @@ -32,7 +32,7 @@ cmake_policy(SET CMP0159 NEW) # file(STRINGS) with REGEX updates CMAKE_MATCH_ find_path(LUA_INCLUDE_DIR lua.h HINTS ENV LUA_DIR - PATH_SUFFIXES include/lua51 include/lua5.1 include/lua-5.1 include/lua include + PATH_SUFFIXES include/lua51 include/lua5.1 include/lua-5.1 include/lua include lua51 PATHS ~/Library/Frameworks /Library/Frameworks -- 2.52.0 From 6de51bcb19c39ec865a0b2935caeccbf874e8596 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 53358d5..95e1631 100755 --- a/bootstrap +++ b/bootstrap @@ -1799,6 +1799,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.52.0 From b3d9bd50ce74d0d169f38b31fa1f9e780765d318 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.52.0 From b6d52156d2f2d610f4edf266106c139ecf188292 Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Sat, 21 Sep 2019 15:30:44 +0200 Subject: Haiku: Improve secondary arch detection Find the directory when it's not the last in the list. diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake index 7d9a737..74b17f5 100644 --- a/Modules/Platform/Haiku.cmake +++ b/Modules/Platform/Haiku.cmake @@ -33,8 +33,8 @@ execute_process( RESULT_VARIABLE _HAIKU_SEARCH_DIRS_FOUND OUTPUT_STRIP_TRAILING_WHITESPACE) -string(REGEX MATCH "libraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/?(:?\n+)" _dummy "${_HAIKU_SEARCH_DIRS}\n") -set(CMAKE_HAIKU_SECONDARY_ARCH "${CMAKE_MATCH_2}") +string(REGEX MATCH "libraries: =?([^\n]*:)?(/boot)?/system(/develop)?/lib/([^/]*)/?(:|\n)" _dummy "${_HAIKU_SEARCH_DIRS}\n") +set(CMAKE_HAIKU_SECONDARY_ARCH "${CMAKE_MATCH_4}") if(NOT CMAKE_HAIKU_SECONDARY_ARCH) set(CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR "") -- 2.52.0 From 6311dc622f637ac26eae7914abbc53d742ac3c7e 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 74b17f5..41d77bb 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.52.0 From a81a30817b8881bbbeaa6101537ac6f08010528a 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 793261e..4151555 100644 --- a/Modules/Compiler/GNU.cmake +++ b/Modules/Compiler/GNU.cmake @@ -49,7 +49,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.52.0 From 45fe0277802df7a692d84b38c21415b58f7cb6b9 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 cc150fd..07a7c24 100644 --- a/Source/cmFindPackageCommand.cxx +++ b/Source/cmFindPackageCommand.cxx @@ -2712,7 +2712,11 @@ bool cmFindPackageCommand::SearchPrefix(std::string const& prefix_in) 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 cmnGen = cmEnumPathSegmentsGenerator{ common }; auto cmakeGen = cmAppendPathSegmentGenerator{ "cmake"_s }; -- 2.52.0 From 5043268d239d3fc70635db5cf81af6ebb5d98e84 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.52.0 From 1d101a6c406fe22e3bb934d5744f6f4c10658b1d 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 79a562c..c896be0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -137,7 +137,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 c4cd101..00f3209 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -865,6 +865,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.52.0 From 285af2db61efd7e644fb5630321e60ab2950da08 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 c79058e..4642e91 100644 --- a/Source/kwsys/SystemInformation.cxx +++ b/Source/kwsys/SystemInformation.cxx @@ -4963,6 +4963,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); @@ -4998,6 +4999,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.52.0 From 8daf6f2785fcec1a4313c3d0f10a8b4797094b84 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 c1f25ca..4e36660 100644 --- a/Modules/FindPython/Support.cmake +++ b/Modules/FindPython/Support.cmake @@ -1432,6 +1432,9 @@ if ("NumPy" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS) endif() if ("Development" IN_LIST ${_PYTHON_PREFIX}_FIND_COMPONENTS) list (APPEND ${_PYTHON_PREFIX}_FIND_COMPONENTS "Development.Module" "Development.Embed") + if (HAIKU) + list (APPEND ${_PYTHON_PREFIX}_FIND_COMPONENTS "Interpreter") + endif() endif() list (REMOVE_DUPLICATES ${_PYTHON_PREFIX}_FIND_COMPONENTS) foreach (_${_PYTHON_PREFIX}_COMPONENT IN ITEMS Interpreter Compiler Development Development.Module Development.SABIModule Development.Embed NumPy) -- 2.52.0 From aabffc8b09c5c93cf357ae3c99a27f05385d9c29 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 4e36660..c1e8f09 100644 --- a/Modules/FindPython/Support.cmake +++ b/Modules/FindPython/Support.cmake @@ -334,11 +334,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.52.0 From bd563d3f9f4f0fdc32de49a0450626d6d721453b 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 e4b53fd..3938f3e 100644 --- a/Source/QtDialog/CMakeLists.txt +++ b/Source/QtDialog/CMakeLists.txt @@ -330,7 +330,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.52.0