summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2008-09-15 21:53:28 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2008-09-15 21:53:28 (GMT)
commit64fc597de292228b244a3ab18a33bcd8488e09d6 (patch)
tree17910ce2705e14c5428fdc4b1365b5c025867c58 /Modules
parentf49f1d2973039b6e706326d763950c2ecd1d3153 (diff)
downloadCMake-64fc597de292228b244a3ab18a33bcd8488e09d6.zip
CMake-64fc597de292228b244a3ab18a33bcd8488e09d6.tar.gz
CMake-64fc597de292228b244a3ab18a33bcd8488e09d6.tar.bz2
ENH: add initial support for HAIKU OS from bug# 7425
Diffstat (limited to 'Modules')
-rw-r--r--Modules/CMakeFortranCompilerId.F90.in4
-rw-r--r--Modules/CMakePlatformId.h.in6
-rw-r--r--Modules/CheckForPthreads.c2
-rw-r--r--Modules/Platform/Haiku.cmake14
4 files changed, 25 insertions, 1 deletions
diff --git a/Modules/CMakeFortranCompilerId.F90.in b/Modules/CMakeFortranCompilerId.F90.in
index 0949b50..c7facb5 100644
--- a/Modules/CMakeFortranCompilerId.F90.in
+++ b/Modules/CMakeFortranCompilerId.F90.in
@@ -50,6 +50,10 @@ PROGRAM CMakeFortranCompilerId
PRINT *, 'INFO:platform[IRIX]'
#elif defined(__hpux) || defined(__hpux__)
PRINT *, 'INFO:platform[HP-UX]'
+#elif defined(__HAIKU) || defined(__HAIKU__) || defined(_HAIKU)
+ PRINT *, 'INFO:platform[Haiku]'
+! Haiku also defines __BEOS__ so we must
+! put it prior to the check for __BEOS__
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
PRINT *, 'INFO:platform[BeOS]'
#elif defined(__QNX__) || defined(__QNXNTO__)
diff --git a/Modules/CMakePlatformId.h.in b/Modules/CMakePlatformId.h.in
index 1f1fca6..8e786ba 100644
--- a/Modules/CMakePlatformId.h.in
+++ b/Modules/CMakePlatformId.h.in
@@ -35,6 +35,12 @@
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
+#elif defined(__HAIKU) || defined(__HAIKU__) || defined(_HAIKU)
+# define PLATFORM_ID "Haiku"
+/* Haiku also defines __BEOS__ so we must
+ put it prior to the check for __BEOS__
+*/
+
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
diff --git a/Modules/CheckForPthreads.c b/Modules/CheckForPthreads.c
index a846567..d831078 100644
--- a/Modules/CheckForPthreads.c
+++ b/Modules/CheckForPthreads.c
@@ -16,7 +16,7 @@ int main(int ac, char*av[]){
pthread_create(&tid[0], 0, runner, (void*)1);
pthread_create(&tid[1], 0, runner, (void*)2);
-#if defined(__BEOS__) && !defined(__ZETA__) // (no usleep on BeOS 5.)
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__) // (no usleep on BeOS 5.)
usleep(1); // for strange behavior on single-processor sun
#endif
diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake
new file mode 100644
index 0000000..b3c2ea3
--- /dev/null
+++ b/Modules/Platform/Haiku.cmake
@@ -0,0 +1,14 @@
+SET(BEOS 1)
+
+# GCC is the default compiler on Haiku.
+INCLUDE(${CMAKE_ROOT}/Modules/Platform/gcc.cmake)
+
+SET(CMAKE_DL_LIBS root be)
+SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC")
+SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostart")
+SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
+SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")
+SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
+SET(CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG "-Wl,-soname,")
+
+INCLUDE(Platform/UnixPaths)