Fix default install prefix on Haiku

Since Haiku does not have /usr (and therefore /usr/local), this commit
changes the default install prefix to the equivalent directory of
/boot/common.

See issue #9607.
This commit is contained in:
Brad King 2009-09-30 08:31:53 -04:00
parent 27c04be03a
commit f40406ed6b
4 changed files with 38 additions and 0 deletions

View File

@ -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)

View File

@ -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

View File

@ -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)
{

View File

@ -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