diff options
-rw-r--r-- | Modules/Platform/Haiku.cmake | 5 | ||||
-rw-r--r-- | Source/CPack/cmCPackGenerator.cxx | 14 | ||||
-rw-r--r-- | Source/cmLocalGenerator.cxx | 17 | ||||
-rwxr-xr-x | bootstrap | 2 |
4 files changed, 38 insertions, 0 deletions
diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake index 84ded80..6676f24 100644 --- a/Modules/Platform/Haiku.cmake +++ b/Modules/Platform/Haiku.cmake @@ -19,3 +19,8 @@ LIST(APPEND CMAKE_SYSTEM_PROGRAM_PATH /boot/common/bin) LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES /boot/common/lib) LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH /boot/develop/headers/3rdparty) LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH /boot/develop/lib/x86) + +IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + SET(CMAKE_INSTALL_PREFIX "/boot/common" CACHE PATH + "Install path prefix, prepended onto install directories." FORCE) +ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx index e2961dc..7c8405e 100644 --- a/Source/CPack/cmCPackGenerator.cxx +++ b/Source/CPack/cmCPackGenerator.cxx @@ -25,6 +25,10 @@ #include <cmsys/Glob.hxx> #include <memory> // auto_ptr +#if defined(__HAIKU__) +#include <StorageKit.h> +#endif + //---------------------------------------------------------------------- cmCPackGenerator::cmCPackGenerator() { @@ -1020,6 +1024,16 @@ const char* cmCPackGenerator::GetInstallPath() this->InstallPath += this->GetOption("CPACK_PACKAGE_NAME"); this->InstallPath += "-"; this->InstallPath += this->GetOption("CPACK_PACKAGE_VERSION"); +#elif defined(__HAIKU__) + BPath dir; + if (find_directory(B_COMMON_DIRECTORY, &dir) == B_OK) + { + this->InstallPath = dir.Path(); + } + else + { + this->InstallPath = "/boot/common"; + } #else this->InstallPath = "/usr/local/"; #endif diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 1cdcafc..ee55957 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -36,6 +36,10 @@ #include <assert.h> +#if defined(__HAIKU__) +#include <StorageKit.h> +#endif + cmLocalGenerator::cmLocalGenerator() { this->Makefile = 0; // moved to after set on global @@ -357,6 +361,19 @@ void cmLocalGenerator::GenerateInstallRules() } prefix = prefix_win32.c_str(); } +#elif defined(__HAIKU__) + if (!prefix) + { + BPath dir; + if (find_directory(B_COMMON_DIRECTORY, &dir) == B_OK) + { + prefix = dir.Path(); + } + else + { + prefix = "/boot/common"; + } + } #else if (!prefix) { @@ -131,6 +131,8 @@ if ${cmake_system_mingw}; then else cmake_default_prefix="c:/Program Files/CMake" fi +elif ${cmake_system_haiku}; then + cmake_default_prefix=`/bin/finddir B_COMMON_DIRECTORY` else cmake_default_prefix="/usr/local" fi |