diff options
-rw-r--r-- | Source/cmExportCommand.cxx | 15 | ||||
-rw-r--r-- | Source/cmFindPackageCommand.cxx | 12 |
2 files changed, 27 insertions, 0 deletions
diff --git a/Source/cmExportCommand.cxx b/Source/cmExportCommand.cxx index 945cfee..56cb0d0 100644 --- a/Source/cmExportCommand.cxx +++ b/Source/cmExportCommand.cxx @@ -24,6 +24,10 @@ #include "cmExportBuildFileGenerator.h" +#if defined(__HAIKU__) +#include <StorageKit.h> +#endif + cmExportCommand::cmExportCommand() :cmCommand() ,ArgumentGroup() @@ -303,6 +307,16 @@ void cmExportCommand::StorePackageRegistryDir(std::string const& package, const char* content, const char* hash) { +#if defined(__HAIKU__) + BPath dir; + if (find_directory(B_USER_SETTINGS_DIRECTORY, &dir) != B_OK) + { + return; + } + dir.Append("cmake/packages"); + dir.Append(package.c_str()); + std::string fname = dir.Path(); +#else const char* home = cmSystemTools::GetEnv("HOME"); if(!home) { @@ -312,6 +326,7 @@ void cmExportCommand::StorePackageRegistryDir(std::string const& package, cmSystemTools::ConvertToUnixSlashes(fname); fname += "/.cmake/packages/"; fname += package; +#endif cmSystemTools::MakeDirectory(fname.c_str()); fname += "/"; fname += hash; diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx index ff1d94c..3a791d9 100644 --- a/Source/cmFindPackageCommand.cxx +++ b/Source/cmFindPackageCommand.cxx @@ -23,6 +23,10 @@ #include "cmVariableWatch.h" #endif +#if defined(__HAIKU__) +#include <StorageKit.h> +#endif + void cmFindPackageNeedBackwardsCompatibility(const std::string& variable, int access_type, void*, const char* newValue, const cmMakefile*) @@ -1159,6 +1163,14 @@ void cmFindPackageCommand::AddPrefixesRegistry() #if defined(_WIN32) && !defined(__CYGWIN__) this->LoadPackageRegistryWin(); +#elif defined(__HAIKU__) + BPath dir; + if (find_directory(B_USER_SETTINGS_DIRECTORY, &dir) == B_OK) + { + dir.Append("cmake/packages"); + dir.Append(this->Name.c_str()); + this->LoadPackageRegistryDir(dir.Path()); + } #else if(const char* home = cmSystemTools::GetEnv("HOME")) { |