Haiku patch
This commit is contained in:
parent
c87386309b
commit
75817ffe22
20 changed files with 86 additions and 22 deletions
|
@ -188,7 +188,7 @@ elseif(BUILD_ENV_APPLE)
|
|||
elseif(BUILD_ENV_UNIXLIKE)
|
||||
# Needed for correct Qt detection
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
|
||||
set(PRELOAD_VARIABLE "LD_LIBRARY_PATH")
|
||||
if(CMAKE_SIZEOF_VOID_P MATCHES "8")
|
||||
set(PLATFORM 64)
|
||||
else()
|
||||
|
@ -196,6 +196,9 @@ elseif(BUILD_ENV_UNIXLIKE)
|
|||
endif()
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
add_definitions(-DLINUX)
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "Haiku")
|
||||
add_definitions(-DHAIKU)
|
||||
set(PRELOAD_VARIABLE "LIBRARY_PATH")
|
||||
elseif(CMAKE_SYSTEM_NAME MATCHES "^.*BSD$|DragonFly")
|
||||
set(BUILD_TARGET_BSD ON)
|
||||
add_definitions(-D_BSD_SOURCE -DFREEBSD)
|
||||
|
@ -528,6 +531,9 @@ elseif(BUILD_ENV_UNIXLIKE)
|
|||
find_package(LZO REQUIRED)
|
||||
message("LZO:" ${LZO_INCLUDE_DIR})
|
||||
|
||||
if(HAIKU)
|
||||
find_library(EXECINFO_LIBRARY execinfo)
|
||||
endif()
|
||||
find_library(PTHREAD_LIBRARY pthread)
|
||||
|
||||
if(NOT BUILD_TARGET_WIN)
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include <QDir>
|
||||
#include <QSettings>
|
||||
#include <QStandardPaths>
|
||||
#include <QCoreApplication>
|
||||
|
||||
#ifdef LEVO_MACOSX
|
||||
|
@ -80,12 +81,16 @@ public:
|
|||
settingsPath = QString::fromStdString(getApplicationFileName()) +
|
||||
QString(".app") +
|
||||
QString("/Contents/Resources/SystemVar.ini");
|
||||
#else
|
||||
#ifdef HAIKU
|
||||
settingsPath = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/SystemVar.ini";
|
||||
#else /* Generic Unix */
|
||||
// TODO: use QStandardPaths::ConfigLocation when we drop Qt4
|
||||
settingsPath = QDir::homePath();
|
||||
settingsPath.append("/.config/");
|
||||
settingsPath.append(getApplicationName().c_str());
|
||||
settingsPath.append("/SystemVar.ini");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
QSettings settings(settingsPath, QSettings::IniFormat);
|
||||
|
|
|
@ -12,14 +12,14 @@
|
|||
#ifdef _WIN32
|
||||
#include <cstdlib>
|
||||
#include <GL/glut.h>
|
||||
#elif defined(LINUX) || defined(FREEBSD)
|
||||
#elif defined(LINUX) || defined(FREEBSD) || defined(HAIKU)
|
||||
#include <GL/glut.h>
|
||||
#else
|
||||
#include <GLUT/glut.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(MACOSX) || defined(LINUX) || defined(FREEBSD)
|
||||
#if defined(MACOSX) || defined(LINUX) || defined(FREEBSD) || defined(HAIKU)
|
||||
#include <QGLContext>
|
||||
#endif
|
||||
|
||||
|
@ -617,7 +617,7 @@ void tglMakeCurrent(TGlContext context) {
|
|||
|
||||
void tglDoneCurrent(TGlContext) { wglMakeCurrent(NULL, NULL); }
|
||||
|
||||
#elif defined(LINUX) || defined(FREEBSD) || defined(__sgi) || defined(MACOSX)
|
||||
#elif defined(LINUX) || defined(FREEBSD) || defined(__sgi) || defined(MACOSX) || defined(HAIKU)
|
||||
|
||||
TGlContext tglGetCurrentContext() {
|
||||
return reinterpret_cast<TGlContext>(
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#elif defined(MACOSX)
|
||||
#include <sys/sysctl.h>
|
||||
#include <unistd.h>
|
||||
#elif defined(LINUX) || defined(FREEBSD)
|
||||
#elif defined(LINUX) || defined(FREEBSD) || defined(HAIKU)
|
||||
#include <sys/time.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
|
|
@ -20,12 +20,16 @@
|
|||
#endif
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#ifndef HAIKU
|
||||
#include <sys/dir.h>
|
||||
#endif
|
||||
#include <sys/param.h> // for getfsstat
|
||||
#ifdef MACOSX
|
||||
#include <sys/ucred.h>
|
||||
#endif
|
||||
#ifndef HAIKU
|
||||
#include <sys/mount.h>
|
||||
#endif
|
||||
#include <pwd.h>
|
||||
#include <dlfcn.h>
|
||||
#endif
|
||||
|
@ -172,7 +176,7 @@ void TPluginManager::loadPlugin(const TFilePath &fp) {
|
|||
void TPluginManager::loadPlugins(const TFilePath &dir) {
|
||||
#if defined(_WIN32)
|
||||
const std::string extension = "dll";
|
||||
#elif defined(LINUX) || defined(FREEBSD) || defined(__sgi)
|
||||
#elif defined(LINUX) || defined(FREEBSD) || defined(__sgi) || defined(HAIKU)
|
||||
const std::string extension = "so";
|
||||
#elif defined(MACOSX)
|
||||
const std::string extension = "dylib";
|
||||
|
|
|
@ -123,6 +123,23 @@
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef HAIKU
|
||||
#define PLATFORM HAIKU
|
||||
#include <grp.h>
|
||||
#include <utime.h>
|
||||
#include <sys/param.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <dirent.h>
|
||||
#include <pwd.h>
|
||||
#include <dlfcn.h>
|
||||
#include <utime.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef PLATFORM
|
||||
PLATFORM_NOT_SUPPORTED
|
||||
#endif
|
||||
|
@ -216,6 +233,11 @@ bool TSystem::memoryShortage() {
|
|||
// to be done...
|
||||
return false;
|
||||
|
||||
#elif defined(HAIKU)
|
||||
|
||||
// to be done...
|
||||
return false;
|
||||
|
||||
#else
|
||||
|
||||
@ @ @ERROR : PLATFORM NOT SUPPORTED
|
||||
|
@ -308,6 +330,11 @@ TINT64 TSystem::getFreeMemorySize(bool onlyPhysicalMemory) {
|
|||
// to be done...
|
||||
totalFree = 512 * 1024;
|
||||
|
||||
#elif defined(HAIKU)
|
||||
|
||||
// to be done...
|
||||
totalFree = 512 * 1024;
|
||||
|
||||
#else
|
||||
@ @ @ERROR : PLATFORM NOT SUPPORTED
|
||||
#endif
|
||||
|
@ -336,6 +363,9 @@ TINT64 TSystem::getDiskSize(const TFilePath &diskName) {
|
|||
return 0;
|
||||
}
|
||||
#ifndef _WIN32
|
||||
#ifdef HAIKU
|
||||
size = 0;
|
||||
#else
|
||||
struct statfs buf;
|
||||
#ifdef __sgi
|
||||
statfs(::to_string(diskName).c_str(), &buf, sizeof(struct statfs), 0);
|
||||
|
@ -343,6 +373,7 @@ TINT64 TSystem::getDiskSize(const TFilePath &diskName) {
|
|||
statfs(::to_string(diskName).c_str(), &buf);
|
||||
#endif
|
||||
size = (TINT64)((buf.f_blocks * buf.f_bsize) >> 10);
|
||||
#endif
|
||||
#else
|
||||
DWORD sectorsPerCluster; // sectors per cluster
|
||||
DWORD bytesPerSector; // bytes per sector
|
||||
|
@ -373,6 +404,9 @@ TINT64 TSystem::getFreeDiskSize(const TFilePath &diskName) {
|
|||
return 0;
|
||||
}
|
||||
#ifndef _WIN32
|
||||
#ifdef HAIKU
|
||||
size = 0;
|
||||
#else
|
||||
struct statfs buf;
|
||||
#ifdef __sgi
|
||||
statfs(diskName.getWideString().c_str(), &buf, sizeof(struct statfs), 0);
|
||||
|
@ -380,6 +414,7 @@ TINT64 TSystem::getFreeDiskSize(const TFilePath &diskName) {
|
|||
statfs(::to_string(diskName).c_str(), &buf);
|
||||
#endif
|
||||
size = (TINT64)(buf.f_bfree * buf.f_bsize) >> 10;
|
||||
#endif
|
||||
#else
|
||||
DWORD sectorsPerCluster; // sectors per cluster
|
||||
DWORD bytesPerSector; // bytes per sector
|
||||
|
@ -465,6 +500,11 @@ TINT64 TSystem::getMemorySize(bool onlyPhysicalMemory) {
|
|||
// to be done...
|
||||
return 512 * 1024;
|
||||
|
||||
#elif defined(HAIKU)
|
||||
|
||||
// to be done...
|
||||
return 512 * 1024;
|
||||
|
||||
#else
|
||||
@ @ @ERROR : PLATFORM NOT SUPPORTED
|
||||
#endif
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
#include "tthread.h"
|
||||
|
||||
#elif defined(MACOSX)
|
||||
#elif defined(MACOSX) || defined(HAIKU)
|
||||
|
||||
#include "qtofflinegl.h"
|
||||
|
||||
|
@ -500,7 +500,7 @@ static std::shared_ptr<TOfflineGL::Imp> defaultOfflineGLGenerator(
|
|||
return std::make_shared<QtOfflineGL>(dim, shared);
|
||||
}
|
||||
|
||||
#elif defined(MACOSX)
|
||||
#elif defined(MACOSX) || defined(HAIKU)
|
||||
|
||||
std::shared_ptr<TOfflineGL::Imp> defaultOfflineGLGenerator(
|
||||
const TDimension &dim, std::shared_ptr<TOfflineGL::Imp> shared) {
|
||||
|
|
|
@ -94,7 +94,7 @@ static void CALLBACK myCombine(GLdouble coords[3], GLdouble *d[4], GLfloat w[4],
|
|||
typedef GLvoid(CALLBACK *GluCallback)(void);
|
||||
#endif
|
||||
|
||||
#if defined(MACOSX) || defined(LINUX) || defined(FREEBSD)
|
||||
#if defined(MACOSX) || defined(LINUX) || defined(FREEBSD) || defined(HAIKU)
|
||||
|
||||
typedef GLvoid (*GluCallback)();
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ char *convertWCHAR2CHAR(const wchar_t *wc) {
|
|||
}
|
||||
#endif
|
||||
/*-----------------------------------*/
|
||||
#if defined(MACOSX) || defined(LINUX) || defined(FREEBSD)
|
||||
#if defined(MACOSX) || defined(LINUX) || defined(FREEBSD) || defined(HAIKU)
|
||||
|
||||
FILE *_wfopen(const wchar_t *fname, const wchar_t *mode) {
|
||||
char *cfname = convertWCHAR2CHAR(fname);
|
||||
|
|
|
@ -19,7 +19,7 @@ extern "C" {
|
|||
|
||||
char *convertWCHAR2CHAR(const wchar_t *fname);
|
||||
|
||||
#if defined(MACOSX) || defined(LINUX) || defined(FREEBSD)
|
||||
#if defined(MACOSX) || defined(LINUX) || defined(FREEBSD) || defined(HAIKU)
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
|
|
@ -34,7 +34,7 @@ TNZ_LITTLE_ENDIAN undefined !!
|
|||
unsigned char b, g, r, m;
|
||||
#elif defined(__sgi)
|
||||
unsigned char m, b, g, r;
|
||||
#elif defined(LINUX) || defined(FREEBSD)
|
||||
#elif defined(LINUX) || defined(FREEBSD) || defined(HAIKU)
|
||||
unsigned char r, g, b, m;
|
||||
#elif defined(MACOSX)
|
||||
unsigned char m, r, g, b;
|
||||
|
@ -48,7 +48,7 @@ typedef struct SPIXEL {
|
|||
unsigned short b, g, r, m;
|
||||
#elif defined(__sgi)
|
||||
unsigned short m, b, g, r;
|
||||
#elif defined(LINUX) || defined(FREEBSD)
|
||||
#elif defined(LINUX) || defined(FREEBSD) || defined(HAIKU)
|
||||
unsigned short r, g, b, m;
|
||||
#elif defined(MACOSX)
|
||||
unsigned char m, r, g, b;
|
||||
|
|
|
@ -435,7 +435,7 @@ void ParsedPli::setMaxThickness(double maxThickness) {
|
|||
};
|
||||
|
||||
/* indirect inclusion of <math.h> causes 'abs' to return double on Linux */
|
||||
#if defined(LINUX) || defined(FREEBSD) || (defined(_WIN32) && defined(__GNUC__))
|
||||
#if defined(LINUX) || defined(FREEBSD) || (defined(_WIN32) && defined(__GNUC__)) || defined(HAIKU)
|
||||
template <typename T>
|
||||
T abs_workaround(T a) {
|
||||
return (a > 0) ? a : -a;
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include <GL/glu.h>
|
||||
#elif defined(MACOSX)
|
||||
#include <GLUT/glut.h>
|
||||
#elif defined(LINUX) || defined(FREEBSD)
|
||||
#elif defined(LINUX) || defined(FREEBSD) || defined(HAIKU)
|
||||
#include <GL/glut.h>
|
||||
#include <cstring>
|
||||
#endif
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#define GLUT_NO_WARNING_DISABLE
|
||||
#endif
|
||||
|
||||
#if defined(LINUX) || defined(FREEBSD)
|
||||
#if defined(LINUX) || defined(FREEBSD) || defined(HAIKU)
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glu.h>
|
||||
#include <GL/glut.h>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#define TNZ_MACHINE_CHANNEL_ORDER_BGRM 1
|
||||
#elif defined(__sgi)
|
||||
#define TNZ_MACHINE_CHANNEL_ORDER_MBGR 1
|
||||
#elif defined(LINUX) || defined(FREEBSD)
|
||||
#elif defined(LINUX) || defined(FREEBSD) || defined(HAIKU)
|
||||
#define TNZ_MACHINE_CHANNEL_ORDER_BGRM 1
|
||||
#elif defined(MACOSX)
|
||||
#define TNZ_MACHINE_CHANNEL_ORDER_MRGB 1
|
||||
|
|
|
@ -18,7 +18,7 @@ typedef uint32_t TUINT32;
|
|||
typedef int64_t TINT64;
|
||||
typedef uint64_t TUINT64;
|
||||
|
||||
#elif defined(__LP64__) && !(defined(LINUX) || defined(FREEBSD))
|
||||
#elif defined(__LP64__) && !(defined(LINUX) || defined(FREEBSD) || defined(HAIKU))
|
||||
|
||||
#define TINT32 \
|
||||
; \
|
||||
|
@ -40,6 +40,13 @@ typedef int32_t TINT32;
|
|||
typedef uint32_t TUINT32;
|
||||
typedef int64_t TINT64;
|
||||
typedef uint64_t TUINT64;
|
||||
|
||||
#elif defined(HAIKU)
|
||||
#include <stdint.h>
|
||||
#define TINT32 int32_t
|
||||
typedef uint32_t TUINT32;
|
||||
typedef int64_t TINT64;
|
||||
typedef uint64_t TUINT64;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -177,7 +177,7 @@ undefined machine order !!!!
|
|||
TPixelRGBM64(int rr, int gg, int bb, int mm = maxChannelValue)
|
||||
: r(rr), g(gg), b(bb), m(mm){};
|
||||
#else
|
||||
#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX)
|
||||
#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX) || defined(HAIKU)
|
||||
|
||||
#ifdef powerpc
|
||||
|
||||
|
|
|
@ -545,7 +545,7 @@ elseif(BUILD_ENV_UNIXLIKE)
|
|||
# 変なところにライブラリ生成するカスども
|
||||
set(EXTRA_LIBS ${EXTRA_LIBS} "$<TARGET_FILE:tnzstdfx>" "$<TARGET_FILE:tfarm>")
|
||||
|
||||
set(EXTRA_LIBS ${EXTRA_LIBS} ${Boost_LIBRARIES} ${OPENBLAS_LIB})
|
||||
set(EXTRA_LIBS ${EXTRA_LIBS} ${Boost_LIBRARIES} ${OPENBLAS_LIB} ${EXECINFO_LIBRARY})
|
||||
|
||||
if(WITH_GPHOTO2)
|
||||
set(EXTRA_LIBS ${EXTRA_LIBS} ${GPHOTO2_LIB} ${GPHOTO2_PORT_LIB})
|
||||
|
@ -706,7 +706,7 @@ TAHOMA2DSTUDIOPALETTE=\"\$HOME/.config/Tahoma2D/stuff/studiopalette\"
|
|||
EOF
|
||||
fi
|
||||
|
||||
export LD_LIBRARY_PATH=\${TAHOMA2D_BASE}/lib/tahoma2d:\${LD_LIBRARY_PATH}
|
||||
export ${PRELOAD_VARIABLE}=\${TAHOMA2D_BASE}/lib/tahoma2d:\${${PRELOAD_VARIABLE}}
|
||||
|
||||
exec \$TAHOMA2D_BASE/bin/Tahoma2D \"\$@\"
|
||||
")
|
||||
|
|
|
@ -560,7 +560,9 @@ int main(int argc, char *argv[]) {
|
|||
fmt.setStencil(true);
|
||||
QGLFormat::setDefaultFormat(fmt);
|
||||
|
||||
#ifndef __HAIKU__
|
||||
glutInit(&argc, argv);
|
||||
#endif
|
||||
|
||||
splash.showMessage(offsetStr + QObject::tr("Initializing environment..."),
|
||||
Qt::AlignRight | Qt::AlignBottom, Qt::black);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
#if defined(LINUX) || defined(FREEBSD)
|
||||
#if defined(LINUX) || defined(FREEBSD) || defined(HAIKU)
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue