Merge branch 'package-management'

Conflicts:
	app-arch/p7zip/p7zip-9.04.bep
	app-arch/p7zip/p7zip-9.13.bep
	app-arch/tar/tar-1.22.bep
	app-arch/tar/tar-1.23.bep
	app-arch/tar/tar-1.25.bep
	app-arch/xz-utils/xz-utils-4.999.9.bep
	app-cdr/bchunk/bchunk-1.2.0.bep
	app-cdr/cdrtools/cdrtools-2.01.01a66.bep
	app-cdr/cdrtools/cdrtools-3.01a01.bep
	app-crypt/gnupg/gnupg-1.4.11.bep
	app-doc/doxygen/doxygen-1.6.3.bep
	app-editors/nano/nano-2.2.6.bep
	app-editors/vim/vim-7.3.bep
	app-text/antiword/antiword-0.37.bep
	app-text/libpaper/libpaper-1.1.23.bep
	app-text/libpaper/libpaper-1.1.24.bep
	app-text/rman/rman-3.2.bep
	dev-db/sqlite/sqlite-3.6.22.bep
	dev-db/sqlite/sqlite-3.6.23.bep
	dev-db/sqlite/sqlite-3.7.2.bep
	dev-db/sqlite/sqlite-3.7.3.bep
	dev-db/sqlite/sqlite-3.7.4.bep
	dev-db/sqlite/sqlite-3.7.5.bep
	dev-lang/lua/lua-5.1.4.bep
	dev-lang/nasm/nasm-2.08.01.bep
	dev-lang/perl/patches/perl-5.10.0.patch
	dev-lang/python/python-2.5.4.bep
	dev-lang/python/python-2.6.4.bep
	dev-lang/python/python-2.6.5.bep
	dev-lang/python/python-2.6.6.bep
	dev-lang/python/python-2.6.7.bep
	dev-lang/python/python-2.6.8.bep
	dev-lang/python/python-3.2.bep
	dev-lang/python/python-3.2.recipe
	dev-lang/python/python-3.2a4.bep
	dev-lang/yasm/yasm-1.1.0.bep
	dev-libs/apr-util/apr-util-1.3.10.bep
	dev-libs/apr-util/apr-util-1.3.9.bep
	dev-libs/apr/apr-1.3.8.bep
	dev-libs/apr/apr-1.3.9.bep
	dev-libs/apr/apr-1.4.2.bep
	dev-libs/apr/patches/apr-1.4.2.patch
	dev-libs/expat/expat-2.0.1.bep
	dev-libs/fribidi/fribidi-0.19.2.bep
	dev-libs/icu/icu-4.4.1.bep
	dev-libs/libedit/libedit-20090923.bep
	dev-libs/libedit/libedit-20100424.bep
	dev-libs/libevent/libevent-1.4.11.bep
	dev-libs/libevent/libevent-1.4.13.bep
	dev-libs/libevent/libevent-1.4.14b.bep
	dev-libs/libevent/libevent-2.0.10.bep
	dev-libs/libiconv/libiconv-1.12.bep
	dev-libs/libiconv/libiconv-1.13.1.bep
	dev-libs/libpcre/libpcre-8.00.bep
	dev-libs/libpcre/libpcre-8.02.bep
	dev-libs/libpcre/libpcre-8.12.bep
	dev-libs/libxml2/libxml2-2.7.3.bep
	dev-libs/libxml2/libxml2-2.7.6.bep
	dev-libs/libxml2/libxml2-2.7.7.bep
	dev-libs/libxml2/libxml2-2.7.8.bep
	dev-libs/openssl/openssl-0.9.8l.bep
	dev-libs/openssl/openssl-0.9.8m.bep
	dev-libs/openssl/openssl-1.0.0.bep
	dev-libs/openssl/openssl-1.0.0a.bep
	dev-libs/openssl/openssl-1.0.0c.bep
	dev-qt/qtcore/qtcore-4.8.x-git.bep
	dev-qt/qtcore/qtcore-4.8.x.recipe
	dev-util/ccache/ccache-3.0.1.bep
	dev-util/cmake/cmake-2.6.4.bep
	dev-util/cmake/cmake-2.8.0.bep
	dev-util/cmake/cmake-2.8.1.bep
	dev-util/cmake/cmake-2.8.2.bep
	dev-util/cmake/cmake-2.8.3.bep
	dev-util/cmake/cmake-2.8.4.bep
	dev-util/ctags/ctags-5.8.bep
	dev-util/fastdep/fastdep-0.16.bep
	dev-util/gperf/gperf-3.0.4.bep
	dev-util/pkgconfig/pkgconfig-0.23.bep
	dev-util/pkgconfig/pkgconfig-0.25.bep
	dev-vcs/cvs/cvs-1.12.13.1.bep
	dev-vcs/cvs/cvs-1.12.13.bep
	dev-vcs/subversion/subversion-1.6.11.bep
	dev-vcs/subversion/subversion-1.6.12.bep
	dev-vcs/subversion/subversion-1.6.13.bep
	dev-vcs/subversion/subversion-1.6.15.bep
	dev-vcs/subversion/subversion-1.6.6.bep
	dev-vcs/subversion/subversion-1.6.9.bep
	dev-vcs/subversion/subversion-1.7.xx-svn.bep
	haiku-apps/bepdf/bepdf-1.1.1b4.bep
	haiku-apps/libwalter/libwalter-97.bep
	haiku-apps/paladin/paladin-1.3-hg.bep
	haiku-apps/pe/pe-2.4.3-600.bep
	haiku-apps/vision/patches/vision-908-gcc4.patch
	haiku-apps/vision/vision-0.9.7.bep
	haiku-libs/libwalter/libwalter-97.bep
	haiku-libs/libwalter/libwalter-97.recipe
	media-gfx/graphviz/graphviz-2.24.bep
	media-gfx/graphviz/graphviz-2.26.3.bep
	media-libs/flac/flac-1.2.1.bep
	media-libs/freetype/freetype-2.3.11.bep
	media-libs/freetype/freetype-2.4.2.bep
	media-libs/freetype/freetype-2.4.4.bep
	media-libs/ftgl/ftgl-2.1-svn.bep
	media-libs/guilib/guilib-1.2.1.bep
	media-libs/jpeg/jpeg-7.bep
	media-libs/jpeg/jpeg-8b.bep
	media-libs/jpeg/jpeg-8c.bep
	media-libs/libao/libao-1.0.0.bep
	media-libs/libmad/libmad-0.15.1b.bep
	media-libs/libmng/libmng-1.0.10.bep
	media-libs/libogg/libogg-1.1.4.bep
	media-libs/libogg/libogg-1.2.0.bep
	media-libs/libogg/libogg-1.2.2.bep
	media-libs/libpng/libpng-1.2.29.bep
	media-libs/libpng/libpng-1.2.30.bep
	media-libs/libpng/libpng-1.2.40.bep
	media-libs/libpng/libpng-1.2.41.bep
	media-libs/libpng/libpng-1.2.43.bep
	media-libs/libpng/libpng-1.2.44.bep
	media-libs/libpng/libpng-1.4.1.bep
	media-libs/libpng/libpng-1.4.2.bep
	media-libs/libpng/libpng-1.4.3.bep
	media-libs/libpng/libpng-1.4.4.bep
	media-libs/libpng/libpng-1.5.0.bep
	media-libs/libsdl/patches/libsdl-1.2-hg.patch
	media-libs/libtheora/libtheora-1.1.1.bep
	media-libs/libvorbis/libvorbis-1.2.3.bep
	media-libs/libvorbis/libvorbis-1.3.1.bep
	media-libs/libvorbis/libvorbis-1.3.2.bep
	media-libs/libvpx/libvpx-0.9.2-git.bep
	media-libs/smpeg/smpeg-0.4.5.bep
	media-libs/speex/speex-1.2-git.bep
	media-libs/speex/speex-1.2rc1.bep
	media-sound/lame/lame-3.98.4.bep
	media-sound/lame/lame-398-2.bep
	media-sound/vorbis-tools/vorbis-tools-1.2.0.bep
	media-sound/vorbis-tools/vorbis-tools-1.4.0.bep
	media-video/ffmpeg/ffmpeg-0.5.bep
	media-video/ffmpeg/ffmpeg-0.6.bep
	net-misc/curl/curl-7.18.2.bep
	net-misc/curl/curl-7.19.1.bep
	net-misc/curl/curl-7.19.2.bep
	net-misc/curl/curl-7.19.5.bep
	net-misc/curl/curl-7.19.7.bep
	net-misc/curl/curl-7.20.0.bep
	net-misc/curl/curl-7.20.1.bep
	net-misc/curl/curl-7.21.1.bep
	net-misc/curl/curl-7.21.2.bep
	net-misc/curl/curl-7.21.3.bep
	net-misc/openssh/openssh-5.4p1.bep
	net-misc/openssh/openssh-5.5p1.bep
	net-misc/openssh/openssh-5.6p1.bep
	net-misc/openssh/openssh-5.7p1.bep
	net-misc/openssh/openssh-5.8p1.bep
	net-wireless/b43-fwcutter/b43-fwcutter-012.bep
	sci-libs/gsl/gsl-1.14.bep
	sys-apps/ed/ed-1.4.bep
	sys-apps/gawk/gawk-3.1.8.bep
	sys-apps/grep/grep-2.5.4.bep
	sys-apps/grep/grep-2.7.bep
	sys-apps/groff/groff-1.20.1.bep
	sys-apps/man/man-1.6f.bep
	sys-apps/sed/sed-4.2.1.bep
	sys-apps/texinfo/texinfo-4.13a.bep
	sys-devel/autoconf/autoconf-2.68.bep
	sys-devel/automake/automake-1.11.1.bep
	sys-devel/bison/bison-2.4.1.bep
	sys-devel/bison/bison-2.4.bep
	sys-devel/flex/flex-2.5.35.bep
	sys-devel/gettext/gettext-0.18.1.1-dev.bep
	sys-devel/gettext/gettext-0.18.1.1.bep
	sys-devel/jam/jam-2.5.bep
	sys-devel/m4/m4-1.4.14.bep
	sys-libs/ncurses/ncurses-5.6.bep
	sys-libs/ncurses/ncurses-5.7.bep
	sys-libs/readline/readline-5.2.bep
	sys-libs/readline/readline-6.0.bep
	sys-libs/readline/readline-6.1.bep
	sys-libs/zlib/zlib-1.2.3.bep
	sys-libs/zlib/zlib-1.2.5.bep
	x11-libs/qt/qt-4.8.x-git.bep
This commit is contained in:
Oliver Tappe
2013-10-15 22:48:02 +02:00
1452 changed files with 31199 additions and 33804 deletions

View File

@@ -1,19 +0,0 @@
DESCRIPTION="cmake - Cross platform Make"
HOMEPAGE="http://www.cmake.org"
SRC_URI="http://www.cmake.org/files/v2.6/cmake-2.6.4.tar.gz"
CHECKSUM_MD5="50f387d0436696c4a68b5512a72c9cde"
REVISION="1"
STATUS_HAIKU="stable"
DEPEND=""
BUILD {
cd cmake-2.6.4
./configure --prefix=`finddir B_COMMON_DIRECTORY`
make
}
INSTALL {
cd cmake-2.6.4
make install
}
LICENSE="CMake"
COPYRIGHT="2002-2010 Kitware, Inc., Insight Consortium, All rights reserved."

View File

@@ -1,33 +0,0 @@
DESCRIPTION="cmake - Cross platform Make"
HOMEPAGE="http://www.cmake.org"
SRC_URI="git+http://cmake.org/cmake.git"
#CHECKSUM_MD5=""
REVISION="1"
STATUS_HAIKU="broken"
DEPEND=""
BUILD {
cd cmake-2.8-git
# cmake appends the prefix to mandir and datadir
# so using ../../ to back that part out but for some reason
# the doc was also picking up /boot, so had to back it out 3 times
# this seems to work but might still need some further adjusting
# sed -i 's/${CMAKE_DATA_DIR}\/include cmCPluginAPI.h/${CMAKE_PREFIX_DIR}\/include cmCPluginAPI.h/g' Source/CMakeLists.txt
./configure --prefix=`finddir B_COMMON_DIRECTORY` \
--datadir=/data/cmake \
--docdir=/documentation/doc/CMake \
--mandir=/documentation/man
make
}
INSTALL {
cd cmake-2.8-git
make install
}
TEST {
cd cmake-2.8-git
make test
}
LICENSE="CMake"
COPYRIGHT="2002-2012 Kitware, Inc., Insight Consortium, All rights reserved."

View File

@@ -1,19 +0,0 @@
DESCRIPTION="cmake - Cross platform Make"
HOMEPAGE="http://www.cmake.org"
SRC_URI="http://www.cmake.org/files/v2.8/cmake-2.8.0.tar.gz"
CHECKSUM_MD5="3b3679b8a6afaedc38a8c15dd7ff4fcf"
REVISION="1"
STATUS_HAIKU="stable"
DEPEND=""
BUILD {
cd cmake-2.8.0
./configure --prefix=`finddir B_COMMON_DIRECTORY`
make
}
INSTALL {
cd cmake-2.8.0
make install
}
LICENSE="CMake"
COPYRIGHT="2002-2010 Kitware, Inc., Insight Consortium, All rights reserved."

View File

@@ -1,19 +0,0 @@
DESCRIPTION="cmake - Cross platform Make"
HOMEPAGE="http://www.cmake.org"
SRC_URI="http://www.cmake.org/files/v2.8/cmake-2.8.1.tar.gz"
CHECKSUM_MD5="feadc2e5ebbfed0efc90178583503725"
REVISION="1"
STATUS_HAIKU="stable"
DEPEND=""
BUILD {
cd cmake-2.8.1
./configure --prefix=`finddir B_COMMON_DIRECTORY`
make
}
INSTALL {
cd cmake-2.8.1
make install
}
LICENSE="CMake"
COPYRIGHT="2002-2010 Kitware, Inc., Insight Consortium, All rights reserved."

View File

@@ -5,7 +5,8 @@ CHECKSUM_MD5="097278785da7182ec0aea8769d06860c"
REVISION="1"
STATUS_HAIKU="stable"
DEPEND=""
BUILD {
BUILD()
{
cd cmake-2.8.10.2
# cmake assumes the aclocal dir is in share/aclocal
sed -i 's/share\/aclocal/data\/aclocal/g' Source/cmakemain.cxx
@@ -18,7 +19,8 @@ BUILD {
make
}
INSTALL {
INSTALL()
{
cd cmake-2.8.10.2
make install
}

View File

@@ -1,33 +0,0 @@
DESCRIPTION="cmake - Cross platform Make"
HOMEPAGE="http://www.cmake.org"
SRC_URI="http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz"
#CHECKSUM_MD5=""
REVISION="1"
STATUS_HAIKU="stable"
DEPEND=""
BUILD {
cd cmake-2.8.11.2
# cmake appends the prefix to mandir and datadir
# so using ../../ to back that part out but for some reason
# the doc was also picking up /boot, so had to back it out 3 times
# this seems to work but might still need some further adjusting
# sed -i 's/${CMAKE_DATA_DIR}\/include cmCPluginAPI.h/${CMAKE_PREFIX_DIR}\/include cmCPluginAPI.h/g' Source/CMakeLists.txt
./configure --prefix=`finddir B_COMMON_DIRECTORY` \
--datadir=/data/cmake \
--docdir=/documentation/doc/CMake \
--mandir=/documentation/man
make
}
INSTALL {
cd cmake-2.8.11.2
make install
}
TEST {
cd cmake-2.8.11.2
make test
}
LICENSE="CMake"
COPYRIGHT="2002-2013 Kitware, Inc., Insight Consortium, All rights reserved."

View File

@@ -0,0 +1,63 @@
SUMMARY="Cross platform Make"
DESCRIPTION="CMake is a cross-platform, open-source build system. It is a
family of tools designed to build, test and package software. CMake is used
to control the software compilation process using simple platform and
compiler independent configuration files. CMake generates native makefiles
and workspaces that can be used in the compiler environment of your choice.
"
HOMEPAGE="http://www.cmake.org"
LICENSE="CMake"
COPYRIGHT="2002-2013 Kitware, Inc., Insight Consortium, All rights reserved."
SRC_URI="http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz"
CHECKSUM_MD5="6f5d7b8e7534a5d9e1a7664ba63cf882"
REVISION="2"
ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64"
PROVIDES="
cmake = $portVersion compat >= 2.8
cmd:cmake = $portVersion compat >= 2.8
cmd:ccmake = $portVersion compat >= 2.8
cmd:cpack = $portVersion compat >= 2.8
cmd:ctest = $portVersion compat >= 2.8
"
REQUIRES="
haiku >= $haikuVersion
lib:libncurses
"
BUILD_REQUIRES="
devel:libncurses
"
BUILD_PREREQUIRES="
haiku_devel >= $haikuVersion
cmd:gcc
cmd:grep
cmd:ld
cmd:libtool
cmd:make
cmd:sed
"
PATCHES="cmake-2.8.11.2.patchset"
BUILD()
{
./configure --prefix=$prefix \
--datadir=/$relativeDataDir/cmake \
--docdir=/$relativeDocDir \
--mandir=/$relativeManDir
make $jobArgs
}
INSTALL()
{
make install
# No way to tell this to configure...
mv $prefix/share/aclocal $dataDir
rmdir $prefix/share
}
TEST()
{
make test VERBOSE=1
}

View File

@@ -1,19 +0,0 @@
DESCRIPTION="cmake - Cross platform Make"
HOMEPAGE="http://www.cmake.org"
SRC_URI="http://www.cmake.org/files/v2.8/cmake-2.8.2.tar.gz"
CHECKSUM_MD5="8c967d5264657a798f22ee23976ff0d9"
REVISION="1"
STATUS_HAIKU="stable"
DEPEND=""
BUILD {
cd cmake-2.8.2
./configure --prefix=`finddir B_COMMON_DIRECTORY`
make
}
INSTALL {
cd cmake-2.8.2
make install
}
LICENSE="CMake"
COPYRIGHT="2002-2010 Kitware, Inc., Insight Consortium, All rights reserved."

View File

@@ -1,19 +0,0 @@
DESCRIPTION="cmake - Cross platform Make"
HOMEPAGE="http://www.cmake.org"
SRC_URI="http://www.cmake.org/files/v2.8/cmake-2.8.3.tar.gz"
CHECKSUM_MD5="a76a44b93acf5e3badda9de111385921"
REVISION="1"
STATUS_HAIKU="stable"
DEPEND=""
BUILD {
cd cmake-2.8.3
./configure --prefix=`finddir B_COMMON_DIRECTORY`
make
}
INSTALL {
cd cmake-2.8.3
make install
}
LICENSE="CMake"
COPYRIGHT="2002-2010 Kitware, Inc., Insight Consortium, All rights reserved."

View File

@@ -1,28 +0,0 @@
DESCRIPTION="cmake - Cross platform Make"
HOMEPAGE="http://www.cmake.org"
SRC_URI="http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz"
CHECKSUM_MD5="209b7d1d04b2e00986538d74ba764fcf"
REVISION="1"
STATUS_HAIKU="stable"
DEPEND=""
BUILD {
cd cmake-2.8.4
# cmake appends the prefix to mandir and datadir
# so using ../../ to back that part out but for some reason
# the doc was also picking up /boot, so had to back it out 3 times
# this seems to work but might still need some further adjusting
# sed -i 's/${CMAKE_DATA_DIR}\/include cmCPluginAPI.h/${CMAKE_PREFIX_DIR}\/include cmCPluginAPI.h/g' Source/CMakeLists.txt
./configure --prefix=`finddir B_COMMON_DIRECTORY` \
--datadir=/data/cmake \
--docdir=/documentation/doc/CMake \
--mandir=/documentation/man
make
}
INSTALL {
cd cmake-2.8.4
make install
}
LICENSE="CMake"
COPYRIGHT="2002-2011 Kitware, Inc., Insight Consortium, All rights reserved."

View File

@@ -1,28 +0,0 @@
DESCRIPTION="cmake - Cross platform Make"
HOMEPAGE="http://www.cmake.org"
SRC_URI="http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz"
CHECKSUM_MD5="3c5d32cec0f4c2dc45f4c2e84f4a20c5"
REVISION="1"
STATUS_HAIKU="stable"
DEPEND=""
BUILD {
cd cmake-2.8.5
# cmake appends the prefix to mandir and datadir
# so using ../../ to back that part out but for some reason
# the doc was also picking up /boot, so had to back it out 3 times
# this seems to work but might still need some further adjusting
# sed -i 's/${CMAKE_DATA_DIR}\/include cmCPluginAPI.h/${CMAKE_PREFIX_DIR}\/include cmCPluginAPI.h/g' Source/CMakeLists.txt
./configure --prefix=`finddir B_COMMON_DIRECTORY` \
--datadir=/data/cmake \
--docdir=/documentation/doc/CMake \
--mandir=/documentation/man
make
}
INSTALL {
cd cmake-2.8.5
make install
}
LICENSE="CMake"
COPYRIGHT="2002-2011 Kitware, Inc., Insight Consortium, All rights reserved."

View File

@@ -0,0 +1,48 @@
SUMMARY="Cross platform Make"
DESCRIPTION="CMake is a cross-platform, open-source build system. It is a family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice."
HOMEPAGE="http://www.cmake.org"
LICENSE="CMake"
COPYRIGHT="2002-2011 Kitware, Inc., Insight Consortium, All rights reserved."
SRC_URI="http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz"
CHECKSUM_MD5="3c5d32cec0f4c2dc45f4c2e84f4a20c5"
REVISION="6"
ARCHITECTURES="x86_gcc2 x86 x86_64"
PATCHES="cmake-2.8.5.patchset"
PROVIDES="
cmake = $portVersion compat >= 2.8
cmd:cmake = $portVersion compat >= 2.8
cmd:cpack = $portVersion compat >= 2.8
cmd:ctest = $portVersion compat >= 2.8
"
REQUIRES="
haiku >= $haikuVersion
"
BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
haiku_devel >= $haikuVersion
cmd:gcc
cmd:grep
cmd:ld
cmd:libtool
cmd:make
cmd:sed
"
SOURCE_DIR="$portVersionedName"
BUILD()
{
./configure --prefix=$prefix \
--datadir=/$relativeDataDir/cmake \
--docdir=/$relativeDocDir \
--mandir=/$relativeManDir
make $jobArgs
}
INSTALL()
{
make install
}

View File

@@ -1,300 +0,0 @@
diff -ur cmake-2.6.0/Modules/CMakeFortranCompilerId.F90.in cmake-2.6.0-haiku/Modules/CMakeFortranCompilerId.F90.in
--- cmake-2.6.0/Modules/CMakeFortranCompilerId.F90.in 2008-05-05 18:26:04.000000000 +0000
+++ cmake-2.6.0-haiku/Modules/CMakeFortranCompilerId.F90.in 2008-06-19 11:16:50.000000000 +0000
@@ -48,6 +48,10 @@
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 -ur cmake-2.6.0/Modules/CMakePlatformId.h.in cmake-2.6.0-haiku/Modules/CMakePlatformId.h.in
--- cmake-2.6.0/Modules/CMakePlatformId.h.in 2008-05-05 18:26:04.000000000 +0000
+++ cmake-2.6.0-haiku/Modules/CMakePlatformId.h.in 2008-06-19 11:16:50.000000000 +0000
@@ -35,6 +35,11 @@
#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 -ur cmake-2.6.0/Modules/CheckForPthreads.c cmake-2.6.0-haiku/Modules/CheckForPthreads.c
--- cmake-2.6.0/Modules/CheckForPthreads.c 2008-05-05 18:26:04.000000000 +0000
+++ cmake-2.6.0-haiku/Modules/CheckForPthreads.c 2008-06-19 11:16:50.000000000 +0000
@@ -16,7 +16,7 @@
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
Only in cmake-2.6.0-haiku/Modules/Platform: Haiku.cmake
diff -ur cmake-2.6.0/Source/CPack/cmCPackGeneratorFactory.cxx cmake-2.6.0-haiku/Source/CPack/cmCPackGeneratorFactory.cxx
--- cmake-2.6.0/Source/CPack/cmCPackGeneratorFactory.cxx 2008-05-05 18:26:05.000000000 +0000
+++ cmake-2.6.0-haiku/Source/CPack/cmCPackGeneratorFactory.cxx 2008-06-19 11:16:50.000000000 +0000
@@ -35,7 +35,7 @@
#endif
#if !defined(_WIN32) && !defined(__APPLE__) \
- && !defined(__QNXNTO__) && !defined(__BEOS__)
+ && !defined(__QNXNTO__) && !defined(__BEOS__) && !defined(__HAIKU__)
# include "cmCPackDebGenerator.h"
# include "cmCPackRPMGenerator.h"
#endif
@@ -72,7 +72,8 @@
cmCPackOSXX11Generator::CreateGenerator);
#endif
#if !defined(_WIN32) && !defined(__APPLE__) \
- && !defined(__QNXNTO__) && !defined(__BEOS__)
+ && !defined(__QNXNTO__) && !defined(__BEOS__)\
+ && !defined(__HAIKU__)
this->RegisterGenerator("DEB", "Debian packages",
cmCPackDebGenerator::CreateGenerator);
this->RegisterGenerator("RPM", "RPM packages",
diff -ur cmake-2.6.0/Source/cmCTest.cxx cmake-2.6.0-haiku/Source/cmCTest.cxx
--- cmake-2.6.0/Source/cmCTest.cxx 2008-05-05 18:26:04.000000000 +0000
+++ cmake-2.6.0-haiku/Source/cmCTest.cxx 2008-06-19 11:16:50.000000000 +0000
@@ -49,10 +49,15 @@
#include <memory> // auto_ptr
-#if defined(__BEOS__)
+#if defined(__BEOS__) && !defined(__HAIKU__)
#include <be/kernel/OS.h> /* disable_debugger() API. */
#endif
+#if defined(__HAIKU__)
+#include <os/kernel/OS.h> /* disable_debugger() API. */
+#endif
+
+
#define DEBUGOUT std::cout << __LINE__ << " "; std::cout
#define DEBUGERR std::cerr << __LINE__ << " "; std::cerr
diff -ur cmake-2.6.0/Source/kwsys/DynamicLoader.cxx cmake-2.6.0-haiku/Source/kwsys/DynamicLoader.cxx
--- cmake-2.6.0/Source/kwsys/DynamicLoader.cxx 2008-05-05 18:26:05.000000000 +0000
+++ cmake-2.6.0-haiku/Source/kwsys/DynamicLoader.cxx 2008-06-20 14:08:23.000000000 +0000
@@ -331,7 +331,7 @@
// ---------------------------------------------------------------
// 4. Implementation for BeOS
-#ifdef __BEOS__
+#if defined __BEOS__ && !defined(__HAIKU__)
#include <string.h> // for strerror()
#include <be/kernel/image.h>
#include <be/support/Errors.h>
diff -ur cmake-2.6.0/Source/kwsys/ProcessUNIX.c cmake-2.6.0-haiku/Source/kwsys/ProcessUNIX.c
--- cmake-2.6.0/Source/kwsys/ProcessUNIX.c 2008-05-05 18:26:05.000000000 +0000
+++ cmake-2.6.0-haiku/Source/kwsys/ProcessUNIX.c 2008-06-20 14:06:56.000000000 +0000
@@ -75,7 +75,7 @@
typedef int kwsysProcess_ssize_t;
#endif
-#if defined(__BEOS__) && !defined(__ZETA__)
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
/* BeOS 5 doesn't have usleep(), but it has snooze(), which is identical. */
# include <be/kernel/OS.h>
static inline void kwsysProcess_usleep(unsigned int msec)
diff -ur cmake-2.6.0/Source/kwsys/SystemTools.cxx cmake-2.6.0-haiku/Source/kwsys/SystemTools.cxx
--- cmake-2.6.0/Source/kwsys/SystemTools.cxx 2008-05-05 18:26:05.000000000 +0000
+++ cmake-2.6.0-haiku/Source/kwsys/SystemTools.cxx 2008-06-19 15:49:33.000000000 +0000
@@ -131,7 +131,12 @@
#define _chdir chdir
#endif
-#if defined(__BEOS__) && !defined(__ZETA__)
+#ifdef (__HAIKU__)
+#include <os/kernel.OS.h>
+#include <os/storage/Path.h>
+#endif
+
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
#include <be/kernel/OS.h>
#include <be/storage/Path.h>
diff -ur cmake-2.6.0/Source/kwsys/testProcess.c cmake-2.6.0-haiku/Source/kwsys/testProcess.c
--- cmake-2.6.0/Source/kwsys/testProcess.c 2008-05-05 18:26:05.000000000 +0000
+++ cmake-2.6.0-haiku/Source/kwsys/testProcess.c 2008-06-19 11:16:51.000000000 +0000
@@ -34,7 +34,7 @@
# pragma warn -8060 /* possibly incorrect assignment */
#endif
-#if defined(__BEOS__) && !defined(__ZETA__)
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
/* BeOS 5 doesn't have usleep(), but it has snooze(), which is identical. */
# include <be/kernel/OS.h>
static inline void testProcess_usleep(unsigned int msec)
diff -ur cmake-2.6.0/Tests/Complex/Library/CMakeLists.txt cmake-2.6.0-haiku/Tests/Complex/Library/CMakeLists.txt
--- cmake-2.6.0/Tests/Complex/Library/CMakeLists.txt 2008-05-05 18:26:05.000000000 +0000
+++ cmake-2.6.0-haiku/Tests/Complex/Library/CMakeLists.txt 2008-06-19 11:16:51.000000000 +0000
@@ -53,7 +53,9 @@
)
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES FOO BAR)
IF(NOT BEOS) # No libm on BeOS.
- SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
+ IF(NOT HAIKU) # libm in included in libroot on Haiku
+ SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
+ ENDIF(NOT HAIKU)
ENDIF(NOT BEOS)
GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO)
IF(${FOO_BAR_VAR} MATCHES "BAR")
diff -ur cmake-2.6.0/Utilities/cmcurl/CMake/CurlTests.c cmake-2.6.0-haiku/Utilities/cmcurl/CMake/CurlTests.c
--- cmake-2.6.0/Utilities/cmcurl/CMake/CurlTests.c 2008-05-05 18:26:06.000000000 +0000
+++ cmake-2.6.0-haiku/Utilities/cmcurl/CMake/CurlTests.c 2008-06-19 11:16:51.000000000 +0000
@@ -38,6 +38,12 @@
# define PLATFORM_AIX_V3
#endif
+/* Haiku defines both __HAIKU__ and __BEOS__ (for now) */
+/* many BeOS workarounds are no longer needed in Haiku */
+#if defined(__HAIKU__) && defined(__BEOS__)
+undef (__BEOS__)
+#endif
+
#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || defined(__BEOS__)
#error "O_NONBLOCK does not work on this platform"
#endif
diff -ur cmake-2.6.0/Utilities/cmcurl/curl/curl.h cmake-2.6.0-haiku/Utilities/cmcurl/curl/curl.h
--- cmake-2.6.0/Utilities/cmcurl/curl/curl.h 2008-05-05 18:26:06.000000000 +0000
+++ cmake-2.6.0-haiku/Utilities/cmcurl/curl/curl.h 2008-06-19 11:16:51.000000000 +0000
@@ -1133,7 +1133,7 @@
}
#endif
-#ifdef __BEOS__
+#if defined __BEOS__ || defined __HAIKU__
#include <support/SupportDefs.h>
#endif
diff -ur cmake-2.6.0/Utilities/cmcurl/if2ip.c cmake-2.6.0-haiku/Utilities/cmcurl/if2ip.c
--- cmake-2.6.0/Utilities/cmcurl/if2ip.c 2008-05-05 18:26:06.000000000 +0000
+++ cmake-2.6.0-haiku/Utilities/cmcurl/if2ip.c 2008-06-19 11:16:51.000000000 +0000
@@ -39,7 +39,7 @@
*/
#if !defined(WIN32) && !defined(__BEOS__) && !defined(__CYGWIN__) && \
!defined(__riscos__) && !defined(__INTERIX) && !defined(NETWARE) && \
- !defined(_AMIGASF) && !defined(__minix)
+ !defined(_AMIGASF) && !defined(__minix) && !defined(__HAIKU__)
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
diff -ur cmake-2.6.0/Utilities/cmcurl/select.c cmake-2.6.0-haiku/Utilities/cmcurl/select.c
--- cmake-2.6.0/Utilities/cmcurl/select.c 2008-05-05 18:26:06.000000000 +0000
+++ cmake-2.6.0-haiku/Utilities/cmcurl/select.c 2008-06-19 11:16:51.000000000 +0000
@@ -39,7 +39,7 @@
#error "We can't compile without select() support!"
#endif
-#ifdef __BEOS__
+#if defined __BEOS__ && !defined __HAIKU__
/* BeOS has FD_SET defined in socket.h */
#include <socket.h>
#endif
diff -ur cmake-2.6.0/Utilities/cmcurl/setup.h cmake-2.6.0-haiku/Utilities/cmcurl/setup.h
--- cmake-2.6.0/Utilities/cmcurl/setup.h 2008-05-05 18:26:06.000000000 +0000
+++ cmake-2.6.0-haiku/Utilities/cmcurl/setup.h 2008-06-19 11:16:51.000000000 +0000
@@ -264,7 +264,7 @@
#else /* MSDOS */
-#ifdef __BEOS__
+#if defined __BEOS__ && !defined __HAIKU__
#define sclose(x) closesocket(x)
#else /* __BEOS__ */
#define sclose(x) close(x)
diff -ur cmake-2.6.0/Utilities/cmtar/libtar.c cmake-2.6.0-haiku/Utilities/cmtar/libtar.c
--- cmake-2.6.0/Utilities/cmtar/libtar.c 2008-05-05 18:26:07.000000000 +0000
+++ cmake-2.6.0-haiku/Utilities/cmtar/libtar.c 2008-06-19 11:16:51.000000000 +0000
@@ -98,8 +98,8 @@
{
return -1;
}
-
-#if defined(__BEOS__) && !defined(__ZETA__) /* no fchmod on BeOS...do pathname instead. */
+/* no fchmod on BeOS...do pathname instead. */
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
if ((oflags & O_CREAT) && chmod(pathname, mode & 07777))
{
return -1;
diff -ur cmake-2.6.0/Utilities/cmxmlrpc/xmlrpc_curl_transport.c cmake-2.6.0-haiku/Utilities/cmxmlrpc/xmlrpc_curl_transport.c
--- cmake-2.6.0/Utilities/cmxmlrpc/xmlrpc_curl_transport.c 2008-05-05 18:26:07.000000000 +0000
+++ cmake-2.6.0-haiku/Utilities/cmxmlrpc/xmlrpc_curl_transport.c 2008-06-19 11:16:51.000000000 +0000
@@ -10,7 +10,7 @@
#include "xmlrpc_config.h"
-#if defined(__BEOS__)
+#if defined(__BEOS__) && !defined(__HAIKU__)
/* Some helpful system header has char==bool, then bool.h does int==bool. */
#define HAVE_BOOL 1
#endif
diff -ur cmake-2.6.0/Utilities/cmzlib/zconf.h cmake-2.6.0-haiku/Utilities/cmzlib/zconf.h
--- cmake-2.6.0/Utilities/cmzlib/zconf.h 2008-05-05 18:26:07.000000000 +0000
+++ cmake-2.6.0-haiku/Utilities/cmzlib/zconf.h 2008-06-19 11:16:51.000000000 +0000
@@ -237,7 +237,7 @@
# endif
#endif
-#if defined (__BEOS__)
+#if defined (__BEOS__) && !defined (__HAIKU__)
# ifdef ZLIB_DLL
# ifdef ZLIB_INTERNAL
# define ZEXPORT __declspec(dllexport)
diff -ur cmake-2.6.0/Utilities/cmzlib/zutil.h cmake-2.6.0-haiku/Utilities/cmzlib/zutil.h
--- cmake-2.6.0/Utilities/cmzlib/zutil.h 2008-05-05 18:26:07.000000000 +0000
+++ cmake-2.6.0-haiku/Utilities/cmzlib/zutil.h 2008-06-19 11:16:51.000000000 +0000
@@ -147,7 +147,13 @@
# define OS_CODE 0x0f
#endif
-#if defined(_BEOS_) || defined(RISCOS)
+/* Haiku defines both __HAIKU__ and __BEOS__ (for now) */
+/* many BeOS workarounds are no longer needed in Haiku */
+#if defined(__HAIKU__) && defined(__BEOS__)
+undef (__BEOS__)
+#endif
+
+#if defined(_BEOS_) || defined(RISCOS)
# define fdopen(fd,mode) NULL /* No fdopen() */
#endif
diff -ur cmake-2.6.0/bootstrap cmake-2.6.0-haiku/bootstrap
--- cmake-2.6.0/bootstrap 2008-05-05 18:26:04.000000000 +0000
+++ cmake-2.6.0-haiku/bootstrap 2008-06-19 11:16:51.000000000 +0000
@@ -73,6 +73,13 @@
cmake_system_beos=false
fi
+# Determine whether this is Haiku
+if echo "${cmake_system}" | grep Haiku >/dev/null 2>&1; then
+ cmake_system_haiku=true
+else
+ cmake_system_haiku=false
+fi
+
# Choose the generator to use for bootstrapping.
if ${cmake_system_mingw}; then
# Bootstrapping from an MSYS prompt.
@@ -603,6 +610,11 @@
cmake_ld_flags="${LDFLAGS} -lroot -lbe"
fi
+# Add Haiku toolkits...
+if ${cmake_system_haiku}; then
+ cmake_ld_flags="${LDFLAGS} -lroot -lbe"
+fi
+
# Test C compiler
cmake_c_compiler=

View File

@@ -1,474 +0,0 @@
diff -urN cmake-2.6.1/Modules/CMakeFortranCompilerId.F90.in cmake-2.6.1-haiku/Modules/CMakeFortranCompilerId.F90.in
--- cmake-2.6.1/Modules/CMakeFortranCompilerId.F90.in 2008-08-01 15:34:50.000000000 +0000
+++ cmake-2.6.1-haiku/Modules/CMakeFortranCompilerId.F90.in 2008-09-12 15:11:49.000000000 +0000
@@ -50,6 +50,8 @@
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]'
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
PRINT *, 'INFO:platform[BeOS]'
#elif defined(__QNX__) || defined(__QNXNTO__)
diff -urN cmake-2.6.1/Modules/CMakePlatformId.h.in cmake-2.6.1-haiku/Modules/CMakePlatformId.h.in
--- cmake-2.6.1/Modules/CMakePlatformId.h.in 2008-08-01 15:34:50.000000000 +0000
+++ cmake-2.6.1-haiku/Modules/CMakePlatformId.h.in 2008-09-12 15:12:47.000000000 +0000
@@ -35,6 +35,9 @@
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
+#elif defined(__HAIKU) || defined(__HAIKU__) || defined(_HAIKU)
+# define PLATFORM_ID "Haiku"
+
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
# define PLATFORM_ID "BeOS"
diff -urN cmake-2.6.1/Modules/CheckForPthreads.c cmake-2.6.1-haiku/Modules/CheckForPthreads.c
--- cmake-2.6.1/Modules/CheckForPthreads.c 2008-08-01 15:34:50.000000000 +0000
+++ cmake-2.6.1-haiku/Modules/CheckForPthreads.c 2008-09-12 15:07:32.000000000 +0000
@@ -16,7 +16,7 @@
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 -urN cmake-2.6.1/Modules/Platform/Haiku.cmake cmake-2.6.1-haiku/Modules/Platform/Haiku.cmake
--- cmake-2.6.1/Modules/Platform/Haiku.cmake 1970-01-01 00:00:00.000000000 +0000
+++ cmake-2.6.1-haiku/Modules/Platform/Haiku.cmake 2008-09-12 15:07:32.000000000 +0000
@@ -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)
diff -urN cmake-2.6.1/Source/CPack/cmCPackGeneratorFactory.cxx cmake-2.6.1-haiku/Source/CPack/cmCPackGeneratorFactory.cxx
--- cmake-2.6.1/Source/CPack/cmCPackGeneratorFactory.cxx 2008-08-01 15:34:53.000000000 +0000
+++ cmake-2.6.1-haiku/Source/CPack/cmCPackGeneratorFactory.cxx 2008-09-12 15:07:32.000000000 +0000
@@ -36,7 +36,7 @@
#endif
#if !defined(_WIN32) && !defined(__APPLE__) \
- && !defined(__QNXNTO__) && !defined(__BEOS__)
+ && !defined(__QNXNTO__) && !defined(__BEOS__) && !defined(__HAIKU__)
# include "cmCPackDebGenerator.h"
# include "cmCPackRPMGenerator.h"
#endif
@@ -75,7 +75,8 @@
cmCPackOSXX11Generator::CreateGenerator);
#endif
#if !defined(_WIN32) && !defined(__APPLE__) \
- && !defined(__QNXNTO__) && !defined(__BEOS__)
+ && !defined(__QNXNTO__) && !defined(__BEOS__)\
+ && !defined(__HAIKU__)
this->RegisterGenerator("DEB", "Debian packages",
cmCPackDebGenerator::CreateGenerator);
this->RegisterGenerator("RPM", "RPM packages",
diff -urN cmake-2.6.1/Source/cmCTest.cxx cmake-2.6.1-haiku/Source/cmCTest.cxx
--- cmake-2.6.1/Source/cmCTest.cxx 2008-08-01 15:34:51.000000000 +0000
+++ cmake-2.6.1-haiku/Source/cmCTest.cxx 2008-09-12 15:07:32.000000000 +0000
@@ -49,10 +49,15 @@
#include <memory> // auto_ptr
-#if defined(__BEOS__)
+#if defined(__BEOS__) && !defined(__HAIKU__)
#include <be/kernel/OS.h> /* disable_debugger() API. */
#endif
+#if defined(__HAIKU__)
+#include <os/kernel/OS.h> /* disable_debugger() API. */
+#endif
+
+
#define DEBUGOUT std::cout << __LINE__ << " "; std::cout
#define DEBUGERR std::cerr << __LINE__ << " "; std::cerr
@@ -607,7 +612,7 @@
cmSystemTools::PutEnv("DASHBOARD_TEST_FROM_CTEST=" CMake_VERSION);
#if defined(_WIN32)
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
-#elif defined(__BEOS__)
+#elif defined(__BEOS__) || defined(__HAIKU__)
disable_debugger(1);
#endif
}
diff -urN cmake-2.6.1/Source/cmDependsJavaLexer.cxx cmake-2.6.1-haiku/Source/cmDependsJavaLexer.cxx
--- cmake-2.6.1/Source/cmDependsJavaLexer.cxx 2008-08-01 15:34:51.000000000 +0000
+++ cmake-2.6.1-haiku/Source/cmDependsJavaLexer.cxx 2008-09-12 15:07:33.000000000 +0000
@@ -23,7 +23,7 @@
#include <errno.h>
#include <stdlib.h>
-#if defined(__BEOS__)
+#if defined(__BEOS__) || defined (__HAIKU__)
#include <unistd.h> /* prevents a conflict with a #define later on... */
#endif
diff -urN cmake-2.6.1/Source/cmDependsJavaLexer.h cmake-2.6.1-haiku/Source/cmDependsJavaLexer.h
--- cmake-2.6.1/Source/cmDependsJavaLexer.h 2008-08-01 15:34:51.000000000 +0000
+++ cmake-2.6.1-haiku/Source/cmDependsJavaLexer.h 2008-09-12 15:07:33.000000000 +0000
@@ -38,7 +38,7 @@
#include <errno.h>
#include <stdlib.h>
-#if defined(__BEOS__)
+#if defined(__BEOS__) || defined(__HAIKU__)
#include <unistd.h> /* prevents a conflict with a #define later on... */
#endif
diff -urN cmake-2.6.1/Source/cmSystemTools.cxx cmake-2.6.1-haiku/Source/cmSystemTools.cxx
--- cmake-2.6.1/Source/cmSystemTools.cxx 2008-08-01 15:34:53.000000000 +0000
+++ cmake-2.6.1-haiku/Source/cmSystemTools.cxx 2008-09-12 15:10:22.000000000 +0000
@@ -910,7 +910,7 @@
fflush(stdout);
fflush(stderr);
-#ifdef __BEOS__
+#if defined __BEOS__ && !defined __HAIKU__
beos_seen_signal = false;
signal(SIGCHLD, beos_popen_workaround);
#endif
@@ -918,7 +918,7 @@
FILE* cpipe = popen(command, "r");
if(!cpipe)
{
-#ifdef __BEOS__
+#if defined __BEOS__ && !defined __HAIKU__
signal(SIGCHLD, SIG_DFL);
#endif
return false;
@@ -931,12 +931,13 @@
cmSystemTools::Stdout(buffer);
}
output += buffer;
+ buffer[0] = 0;
fgets(buffer, BUFFER_SIZE, cpipe);
}
retVal = pclose(cpipe);
-#ifdef __BEOS__
+#if defined __BEOS__ && !defined __HAIKU__
for (int i = 0; (!beos_seen_signal) && (i < 3); i++)
{
::sleep(1); // signals should interrupt this...
@@ -970,11 +971,13 @@
error << "SIGFPE";
break;
#endif
+#ifndef __HAIKU__
#ifdef SIGBUS
case SIGBUS:
error << "SIGBUS";
break;
#endif
+#endif
#ifdef SIGSEGV
case SIGSEGV:
error << "SIGSEGV";
@@ -1696,7 +1699,7 @@
}
// no fchmod on BeOS 5...do pathname instead.
-#if defined(__BEOS__) && !defined(__ZETA__)
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
if ((oflags & O_CREAT) && chmod(pathname, mode))
{
return -1;
diff -urN cmake-2.6.1/Source/kwsys/DynamicLoader.cxx cmake-2.6.1-haiku/Source/kwsys/DynamicLoader.cxx
--- cmake-2.6.1/Source/kwsys/DynamicLoader.cxx 2008-08-01 15:34:54.000000000 +0000
+++ cmake-2.6.1-haiku/Source/kwsys/DynamicLoader.cxx 2008-09-12 15:07:33.000000000 +0000
@@ -335,11 +335,21 @@
#endif //_WIN32
// ---------------------------------------------------------------
-// 4. Implementation for BeOS
-#ifdef __BEOS__
+// 4. Implementation for BeOS / Haiku
+#if defined __BEOS__ || defined(__HAIKU__)
+
#include <string.h> // for strerror()
+
+#ifdef __BEOS__
#include <be/kernel/image.h>
#include <be/support/Errors.h>
+#endif
+
+#ifdef __HAIKU__
+#include <os/kernel/image.h>
+#include <os/support/Errors.h>
+#endif
+
#define DYNAMICLOADER_DEFINED 1
namespace KWSYS_NAMESPACE
diff -urN cmake-2.6.1/Source/kwsys/ProcessUNIX.c cmake-2.6.1-haiku/Source/kwsys/ProcessUNIX.c
--- cmake-2.6.1/Source/kwsys/ProcessUNIX.c 2008-08-01 15:34:54.000000000 +0000
+++ cmake-2.6.1-haiku/Source/kwsys/ProcessUNIX.c 2008-09-12 15:07:33.000000000 +0000
@@ -75,7 +75,7 @@
typedef int kwsysProcess_ssize_t;
#endif
-#if defined(__BEOS__) && !defined(__ZETA__)
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
/* BeOS 5 doesn't have usleep(), but it has snooze(), which is identical. */
# include <be/kernel/OS.h>
static inline void kwsysProcess_usleep(unsigned int msec)
diff -urN cmake-2.6.1/Source/kwsys/SystemTools.cxx cmake-2.6.1-haiku/Source/kwsys/SystemTools.cxx
--- cmake-2.6.1/Source/kwsys/SystemTools.cxx 2008-08-01 15:34:55.000000000 +0000
+++ cmake-2.6.1-haiku/Source/kwsys/SystemTools.cxx 2008-09-12 15:07:33.000000000 +0000
@@ -131,7 +131,12 @@
#define _chdir chdir
#endif
-#if defined(__BEOS__) && !defined(__ZETA__)
+#if defined(__HAIKU__)
+#include <os/kernel/OS.h>
+#include <os/storage/Path.h>
+#endif
+
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
#include <be/kernel/OS.h>
#include <be/storage/Path.h>
diff -urN cmake-2.6.1/Source/kwsys/testDynamicLoader.cxx cmake-2.6.1-haiku/Source/kwsys/testDynamicLoader.cxx
--- cmake-2.6.1/Source/kwsys/testDynamicLoader.cxx 2008-08-01 15:34:55.000000000 +0000
+++ cmake-2.6.1-haiku/Source/kwsys/testDynamicLoader.cxx 2008-09-12 15:07:33.000000000 +0000
@@ -17,10 +17,14 @@
#include KWSYS_HEADER(ios/iostream)
#include KWSYS_HEADER(stl/string)
-#if defined(__BEOS__)
+#if defined(__BEOS__) && !defined(__HAIKU__)
#include <be/kernel/OS.h> /* disable_debugger() API. */
#endif
+#if defined(__HAIKU__)
+#include <os/kernel/OS.h> /* disable_debugger() API. */
+#endif
+
// Work-around CMake dependency scanning limitation. This must
// duplicate the above list of headers.
#if 0
diff -urN cmake-2.6.1/Source/kwsys/testProcess.c cmake-2.6.1-haiku/Source/kwsys/testProcess.c
--- cmake-2.6.1/Source/kwsys/testProcess.c 2008-08-01 15:34:55.000000000 +0000
+++ cmake-2.6.1-haiku/Source/kwsys/testProcess.c 2008-09-12 15:07:33.000000000 +0000
@@ -34,7 +34,7 @@
# pragma warn -8060 /* possibly incorrect assignment */
#endif
-#if defined(__BEOS__) && !defined(__ZETA__)
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
/* BeOS 5 doesn't have usleep(), but it has snooze(), which is identical. */
# include <be/kernel/OS.h>
static inline void testProcess_usleep(unsigned int msec)
diff -urN cmake-2.6.1/Tests/Complex/Library/CMakeLists.txt cmake-2.6.1-haiku/Tests/Complex/Library/CMakeLists.txt
--- cmake-2.6.1/Tests/Complex/Library/CMakeLists.txt 2008-08-01 15:34:55.000000000 +0000
+++ cmake-2.6.1-haiku/Tests/Complex/Library/CMakeLists.txt 2008-09-12 15:07:33.000000000 +0000
@@ -53,7 +53,9 @@
)
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES FOO BAR)
IF(NOT BEOS) # No libm on BeOS.
- SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
+ IF(NOT HAIKU) # libm in included in libroot on Haiku
+ SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
+ ENDIF(NOT HAIKU)
ENDIF(NOT BEOS)
GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO)
IF(${FOO_BAR_VAR} MATCHES "BAR")
diff -urN cmake-2.6.1/Tests/ComplexOneConfig/Library/CMakeLists.txt cmake-2.6.1-haiku/Tests/ComplexOneConfig/Library/CMakeLists.txt
--- cmake-2.6.1/Tests/ComplexOneConfig/Library/CMakeLists.txt 2008-08-01 15:34:56.000000000 +0000
+++ cmake-2.6.1-haiku/Tests/ComplexOneConfig/Library/CMakeLists.txt 2008-09-12 15:07:33.000000000 +0000
@@ -53,7 +53,9 @@
)
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES FOO BAR)
IF(NOT BEOS) # No libm on BeOS.
+ IF(NOT HAIKU) # No limb on Haiku.
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
+ ENDIF(NOT HAIKU)
ENDIF(NOT BEOS)
GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO)
IF(${FOO_BAR_VAR} MATCHES "BAR")
diff -urN cmake-2.6.1/Tests/ComplexRelativePaths/Library/CMakeLists.txt cmake-2.6.1-haiku/Tests/ComplexRelativePaths/Library/CMakeLists.txt
--- cmake-2.6.1/Tests/ComplexRelativePaths/Library/CMakeLists.txt 2008-08-01 15:34:56.000000000 +0000
+++ cmake-2.6.1-haiku/Tests/ComplexRelativePaths/Library/CMakeLists.txt 2008-09-12 15:07:33.000000000 +0000
@@ -53,7 +53,9 @@
)
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES FOO BAR)
IF(NOT BEOS) # No libm on BeOS.
+ IF(NOT HAIKU) # No libm on Haiku.
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
+ ENDIF(NOT HAIKU)
ENDIF(NOT BEOS)
GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO)
IF(${FOO_BAR_VAR} MATCHES "BAR")
diff -urN cmake-2.6.1/Utilities/cmcurl/CMake/CurlTests.c cmake-2.6.1-haiku/Utilities/cmcurl/CMake/CurlTests.c
--- cmake-2.6.1/Utilities/cmcurl/CMake/CurlTests.c 2008-08-01 15:34:57.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmcurl/CMake/CurlTests.c 2008-09-12 15:07:34.000000000 +0000
@@ -38,7 +38,7 @@
# define PLATFORM_AIX_V3
#endif
-#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || defined(__BEOS__)
+#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || (defined(__BEOS__) && !defined(__HAIKU__))
#error "O_NONBLOCK does not work on this platform"
#endif
int socket;
diff -urN cmake-2.6.1/Utilities/cmcurl/CMakeLists.txt cmake-2.6.1-haiku/Utilities/cmcurl/CMakeLists.txt
--- cmake-2.6.1/Utilities/cmcurl/CMakeLists.txt 2008-08-01 15:34:57.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmcurl/CMakeLists.txt 2008-09-12 15:07:34.000000000 +0000
@@ -165,6 +165,8 @@
CHECK_LIBRARY_EXISTS_CONCAT("bnetapi" closesocket HAVE_LIBBNETAPI)
ENDIF(BEOS)
+CHECK_LIBRARY_EXISTS_CONCAT("network" recv HAVE_LIBNETWORK)
+
IF(NOT NOT_NEED_LIBNSL)
CHECK_LIBRARY_EXISTS_CONCAT("nsl" gethostbyname HAVE_LIBNSL)
ENDIF(NOT NOT_NEED_LIBNSL)
diff -urN cmake-2.6.1/Utilities/cmcurl/curl/curl.h cmake-2.6.1-haiku/Utilities/cmcurl/curl/curl.h
--- cmake-2.6.1/Utilities/cmcurl/curl/curl.h 2008-08-01 15:34:57.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmcurl/curl/curl.h 2008-09-12 15:07:34.000000000 +0000
@@ -1133,7 +1133,7 @@
}
#endif
-#ifdef __BEOS__
+#if defined __BEOS__ || defined __HAIKU__
#include <support/SupportDefs.h>
#endif
diff -urN cmake-2.6.1/Utilities/cmcurl/if2ip.c cmake-2.6.1-haiku/Utilities/cmcurl/if2ip.c
--- cmake-2.6.1/Utilities/cmcurl/if2ip.c 2008-08-01 15:34:57.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmcurl/if2ip.c 2008-09-12 15:07:34.000000000 +0000
@@ -39,7 +39,7 @@
*/
#if !defined(WIN32) && !defined(__BEOS__) && !defined(__CYGWIN__) && \
!defined(__riscos__) && !defined(__INTERIX) && !defined(NETWARE) && \
- !defined(_AMIGASF) && !defined(__minix)
+ !defined(_AMIGASF) && !defined(__minix) && !defined(__HAIKU__)
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
diff -urN cmake-2.6.1/Utilities/cmcurl/select.c cmake-2.6.1-haiku/Utilities/cmcurl/select.c
--- cmake-2.6.1/Utilities/cmcurl/select.c 2008-08-01 15:34:57.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmcurl/select.c 2008-09-12 15:07:34.000000000 +0000
@@ -39,7 +39,7 @@
#error "We can't compile without select() support!"
#endif
-#ifdef __BEOS__
+#if defined __BEOS__ && !defined __HAIKU__
/* BeOS has FD_SET defined in socket.h */
#include <socket.h>
#endif
diff -urN cmake-2.6.1/Utilities/cmcurl/setup.h cmake-2.6.1-haiku/Utilities/cmcurl/setup.h
--- cmake-2.6.1/Utilities/cmcurl/setup.h 2008-08-01 15:34:57.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmcurl/setup.h 2008-09-12 15:07:34.000000000 +0000
@@ -264,7 +264,7 @@
#else /* MSDOS */
-#ifdef __BEOS__
+#if defined __BEOS__ && !defined __HAIKU__
#define sclose(x) closesocket(x)
#else /* __BEOS__ */
#define sclose(x) close(x)
diff -urN cmake-2.6.1/Utilities/cmtar/libtar.c cmake-2.6.1-haiku/Utilities/cmtar/libtar.c
--- cmake-2.6.1/Utilities/cmtar/libtar.c 2008-08-01 15:34:58.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmtar/libtar.c 2008-09-12 15:07:34.000000000 +0000
@@ -98,8 +98,8 @@
{
return -1;
}
-
-#if defined(__BEOS__) && !defined(__ZETA__) /* no fchmod on BeOS...do pathname instead. */
+/* no fchmod on BeOS...do pathname instead. */
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
if ((oflags & O_CREAT) && chmod(pathname, mode & 07777))
{
return -1;
diff -urN cmake-2.6.1/Utilities/cmxmlrpc/xmlrpc_curl_transport.c cmake-2.6.1-haiku/Utilities/cmxmlrpc/xmlrpc_curl_transport.c
--- cmake-2.6.1/Utilities/cmxmlrpc/xmlrpc_curl_transport.c 2008-08-01 15:34:58.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmxmlrpc/xmlrpc_curl_transport.c 2008-09-12 15:07:34.000000000 +0000
@@ -10,7 +10,7 @@
#include "xmlrpc_config.h"
-#if defined(__BEOS__)
+#if defined(__BEOS__) && !defined(__HAIKU__)
/* Some helpful system header has char==bool, then bool.h does int==bool. */
#define HAVE_BOOL 1
#endif
diff -urN cmake-2.6.1/Utilities/cmzlib/zconf.h cmake-2.6.1-haiku/Utilities/cmzlib/zconf.h
--- cmake-2.6.1/Utilities/cmzlib/zconf.h 2008-08-01 15:34:58.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmzlib/zconf.h 2008-09-12 15:07:34.000000000 +0000
@@ -237,7 +237,7 @@
# endif
#endif
-#if defined (__BEOS__)
+#if defined (__BEOS__) && !defined (__HAIKU__)
# ifdef ZLIB_DLL
# ifdef ZLIB_INTERNAL
# define ZEXPORT __declspec(dllexport)
diff -urN cmake-2.6.1/Utilities/cmzlib/zutil.h cmake-2.6.1-haiku/Utilities/cmzlib/zutil.h
--- cmake-2.6.1/Utilities/cmzlib/zutil.h 2008-08-01 15:34:59.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmzlib/zutil.h 2008-09-12 15:07:34.000000000 +0000
@@ -147,7 +147,13 @@
# define OS_CODE 0x0f
#endif
-#if defined(_BEOS_) || defined(RISCOS)
+/* Haiku defines both __HAIKU__ and __BEOS__ (for now) */
+/* many BeOS workarounds are no longer needed in Haiku */
+#if defined(__HAIKU__) && defined(__BEOS__)
+#undef __BEOS__
+#endif
+
+#if defined(_BEOS_) || defined(RISCOS)
# define fdopen(fd,mode) NULL /* No fdopen() */
#endif
diff -urN cmake-2.6.1/bootstrap cmake-2.6.1-haiku/bootstrap
--- cmake-2.6.1/bootstrap 2008-08-01 15:34:50.000000000 +0000
+++ cmake-2.6.1-haiku/bootstrap 2008-09-12 15:07:34.000000000 +0000
@@ -73,6 +73,13 @@
cmake_system_beos=false
fi
+# Determine whether this is Haiku
+if echo "${cmake_system}" | grep Haiku >/dev/null 2>&1; then
+ cmake_system_haiku=true
+else
+ cmake_system_haiku=false
+fi
+
# Choose the generator to use for bootstrapping.
if ${cmake_system_mingw}; then
# Bootstrapping from an MSYS prompt.
@@ -603,6 +610,11 @@
cmake_ld_flags="${LDFLAGS} -lroot -lbe"
fi
+# Add Haiku toolkits...
+if ${cmake_system_haiku}; then
+ cmake_ld_flags="${LDFLAGS} -lroot -lbe"
+fi
+
# Test C compiler
cmake_c_compiler=

View File

@@ -1,449 +0,0 @@
diff -urN cmake-2.6.1/Modules/CMakeFortranCompilerId.F90.in cmake-2.6.1-haiku/Modules/CMakeFortranCompilerId.F90.in
--- cmake-2.6.1/Modules/CMakeFortranCompilerId.F90.in 2008-08-01 15:34:50.000000000 +0000
+++ cmake-2.6.1-haiku/Modules/CMakeFortranCompilerId.F90.in 2008-08-20 13:49:06.000000000 +0000
@@ -50,6 +50,10 @@
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 -urN cmake-2.6.1/Modules/CMakePlatformId.h.in cmake-2.6.1-haiku/Modules/CMakePlatformId.h.in
--- cmake-2.6.1/Modules/CMakePlatformId.h.in 2008-08-01 15:34:50.000000000 +0000
+++ cmake-2.6.1-haiku/Modules/CMakePlatformId.h.in 2008-08-20 13:49:06.000000000 +0000
@@ -35,6 +35,11 @@
#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 -urN cmake-2.6.1/Modules/CheckForPthreads.c cmake-2.6.1-haiku/Modules/CheckForPthreads.c
--- cmake-2.6.1/Modules/CheckForPthreads.c 2008-08-01 15:34:50.000000000 +0000
+++ cmake-2.6.1-haiku/Modules/CheckForPthreads.c 2008-08-20 13:49:06.000000000 +0000
@@ -16,7 +16,7 @@
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 -urN cmake-2.6.1/Modules/Platform/Haiku.cmake cmake-2.6.1-haiku/Modules/Platform/Haiku.cmake
--- cmake-2.6.1/Modules/Platform/Haiku.cmake 1970-01-01 00:00:00.000000000 +0000
+++ cmake-2.6.1-haiku/Modules/Platform/Haiku.cmake 2008-08-20 13:49:06.000000000 +0000
@@ -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)
diff -urN cmake-2.6.1/Source/CPack/cmCPackGeneratorFactory.cxx cmake-2.6.1-haiku/Source/CPack/cmCPackGeneratorFactory.cxx
--- cmake-2.6.1/Source/CPack/cmCPackGeneratorFactory.cxx 2008-08-01 15:34:53.000000000 +0000
+++ cmake-2.6.1-haiku/Source/CPack/cmCPackGeneratorFactory.cxx 2008-08-20 13:49:06.000000000 +0000
@@ -36,7 +36,7 @@
#endif
#if !defined(_WIN32) && !defined(__APPLE__) \
- && !defined(__QNXNTO__) && !defined(__BEOS__)
+ && !defined(__QNXNTO__) && !defined(__BEOS__) && !defined(__HAIKU__)
# include "cmCPackDebGenerator.h"
# include "cmCPackRPMGenerator.h"
#endif
@@ -75,7 +75,8 @@
cmCPackOSXX11Generator::CreateGenerator);
#endif
#if !defined(_WIN32) && !defined(__APPLE__) \
- && !defined(__QNXNTO__) && !defined(__BEOS__)
+ && !defined(__QNXNTO__) && !defined(__BEOS__)\
+ && !defined(__HAIKU__)
this->RegisterGenerator("DEB", "Debian packages",
cmCPackDebGenerator::CreateGenerator);
this->RegisterGenerator("RPM", "RPM packages",
diff -urN cmake-2.6.1/Source/cmCTest.cxx cmake-2.6.1-haiku/Source/cmCTest.cxx
--- cmake-2.6.1/Source/cmCTest.cxx 2008-08-01 15:34:51.000000000 +0000
+++ cmake-2.6.1-haiku/Source/cmCTest.cxx 2008-08-20 13:49:06.000000000 +0000
@@ -49,10 +49,15 @@
#include <memory> // auto_ptr
-#if defined(__BEOS__)
+#if defined(__BEOS__) && !defined(__HAIKU__)
#include <be/kernel/OS.h> /* disable_debugger() API. */
#endif
+#if defined(__HAIKU__)
+#include <os/kernel/OS.h> /* disable_debugger() API. */
+#endif
+
+
#define DEBUGOUT std::cout << __LINE__ << " "; std::cout
#define DEBUGERR std::cerr << __LINE__ << " "; std::cerr
@@ -607,7 +612,7 @@
cmSystemTools::PutEnv("DASHBOARD_TEST_FROM_CTEST=" CMake_VERSION);
#if defined(_WIN32)
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
-#elif defined(__BEOS__)
+#elif defined(__BEOS__) || defined(__HAIKU__)
disable_debugger(1);
#endif
}
diff -urN cmake-2.6.1/Source/cmDependsJavaLexer.cxx cmake-2.6.1-haiku/Source/cmDependsJavaLexer.cxx
--- cmake-2.6.1/Source/cmDependsJavaLexer.cxx 2008-08-01 15:34:51.000000000 +0000
+++ cmake-2.6.1-haiku/Source/cmDependsJavaLexer.cxx 2008-08-20 13:49:06.000000000 +0000
@@ -23,7 +23,7 @@
#include <errno.h>
#include <stdlib.h>
-#if defined(__BEOS__)
+#if defined(__BEOS__) || defined (__HAIKU__)
#include <unistd.h> /* prevents a conflict with a #define later on... */
#endif
diff -urN cmake-2.6.1/Source/cmDependsJavaLexer.h cmake-2.6.1-haiku/Source/cmDependsJavaLexer.h
--- cmake-2.6.1/Source/cmDependsJavaLexer.h 2008-08-01 15:34:51.000000000 +0000
+++ cmake-2.6.1-haiku/Source/cmDependsJavaLexer.h 2008-08-20 13:49:06.000000000 +0000
@@ -38,7 +38,7 @@
#include <errno.h>
#include <stdlib.h>
-#if defined(__BEOS__)
+#if defined(__BEOS__) || defined(__HAIKU__)
#include <unistd.h> /* prevents a conflict with a #define later on... */
#endif
diff -urN cmake-2.6.1/Source/cmSystemTools.cxx cmake-2.6.1-haiku/Source/cmSystemTools.cxx
--- cmake-2.6.1/Source/cmSystemTools.cxx 2008-08-01 15:34:53.000000000 +0000
+++ cmake-2.6.1-haiku/Source/cmSystemTools.cxx 2008-08-20 13:49:06.000000000 +0000
@@ -970,11 +970,13 @@
error << "SIGFPE";
break;
#endif
+#ifndef __HAIKU__
#ifdef SIGBUS
case SIGBUS:
error << "SIGBUS";
break;
#endif
+#endif
#ifdef SIGSEGV
case SIGSEGV:
error << "SIGSEGV";
@@ -1696,7 +1698,7 @@
}
// no fchmod on BeOS 5...do pathname instead.
-#if defined(__BEOS__) && !defined(__ZETA__)
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
if ((oflags & O_CREAT) && chmod(pathname, mode))
{
return -1;
diff -urN cmake-2.6.1/Source/kwsys/DynamicLoader.cxx cmake-2.6.1-haiku/Source/kwsys/DynamicLoader.cxx
--- cmake-2.6.1/Source/kwsys/DynamicLoader.cxx 2008-08-01 15:34:54.000000000 +0000
+++ cmake-2.6.1-haiku/Source/kwsys/DynamicLoader.cxx 2008-08-20 13:49:06.000000000 +0000
@@ -335,11 +335,21 @@
#endif //_WIN32
// ---------------------------------------------------------------
-// 4. Implementation for BeOS
-#ifdef __BEOS__
+// 4. Implementation for BeOS / Haiku
+#if defined __BEOS__ || defined(__HAIKU__)
+
#include <string.h> // for strerror()
+
+#ifdef __BEOS__
#include <be/kernel/image.h>
#include <be/support/Errors.h>
+#endif
+
+#ifdef __HAIKU__
+#include <os/kernel/image.h>
+#include <os/support/Errors.h>
+#endif
+
#define DYNAMICLOADER_DEFINED 1
namespace KWSYS_NAMESPACE
diff -urN cmake-2.6.1/Source/kwsys/ProcessUNIX.c cmake-2.6.1-haiku/Source/kwsys/ProcessUNIX.c
--- cmake-2.6.1/Source/kwsys/ProcessUNIX.c 2008-08-01 15:34:54.000000000 +0000
+++ cmake-2.6.1-haiku/Source/kwsys/ProcessUNIX.c 2008-08-20 13:49:06.000000000 +0000
@@ -75,7 +75,7 @@
typedef int kwsysProcess_ssize_t;
#endif
-#if defined(__BEOS__) && !defined(__ZETA__)
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
/* BeOS 5 doesn't have usleep(), but it has snooze(), which is identical. */
# include <be/kernel/OS.h>
static inline void kwsysProcess_usleep(unsigned int msec)
@@ -2534,6 +2534,7 @@
}
/* If this is the first process, enable the signal handler. */
+#ifndef __HAIKU__
if(newProcesses.Count == 1)
{
/* Install our handler for SIGCHLD. Repeat call until it is not
@@ -2554,6 +2555,7 @@
&kwsysProcessesOldSigChldAction) < 0) &&
(errno == EINTR));
}
+#endif
}
return 1;
diff -urN cmake-2.6.1/Source/kwsys/SystemTools.cxx cmake-2.6.1-haiku/Source/kwsys/SystemTools.cxx
--- cmake-2.6.1/Source/kwsys/SystemTools.cxx 2008-08-01 15:34:55.000000000 +0000
+++ cmake-2.6.1-haiku/Source/kwsys/SystemTools.cxx 2008-08-20 13:49:06.000000000 +0000
@@ -131,7 +131,12 @@
#define _chdir chdir
#endif
-#if defined(__BEOS__) && !defined(__ZETA__)
+#if defined(__HAIKU__)
+#include <os/kernel/OS.h>
+#include <os/storage/Path.h>
+#endif
+
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
#include <be/kernel/OS.h>
#include <be/storage/Path.h>
diff -urN cmake-2.6.1/Source/kwsys/testDynamicLoader.cxx cmake-2.6.1-haiku/Source/kwsys/testDynamicLoader.cxx
--- cmake-2.6.1/Source/kwsys/testDynamicLoader.cxx 2008-08-01 15:34:55.000000000 +0000
+++ cmake-2.6.1-haiku/Source/kwsys/testDynamicLoader.cxx 2008-08-20 13:49:06.000000000 +0000
@@ -17,10 +17,14 @@
#include KWSYS_HEADER(ios/iostream)
#include KWSYS_HEADER(stl/string)
-#if defined(__BEOS__)
+#if defined(__BEOS__) && !defined(__HAIKU__)
#include <be/kernel/OS.h> /* disable_debugger() API. */
#endif
+#if defined(__HAIKU__)
+#include <os/kernel/OS.h> /* disable_debugger() API. */
+#endif
+
// Work-around CMake dependency scanning limitation. This must
// duplicate the above list of headers.
#if 0
diff -urN cmake-2.6.1/Source/kwsys/testProcess.c cmake-2.6.1-haiku/Source/kwsys/testProcess.c
--- cmake-2.6.1/Source/kwsys/testProcess.c 2008-08-01 15:34:55.000000000 +0000
+++ cmake-2.6.1-haiku/Source/kwsys/testProcess.c 2008-08-20 13:49:06.000000000 +0000
@@ -34,7 +34,7 @@
# pragma warn -8060 /* possibly incorrect assignment */
#endif
-#if defined(__BEOS__) && !defined(__ZETA__)
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
/* BeOS 5 doesn't have usleep(), but it has snooze(), which is identical. */
# include <be/kernel/OS.h>
static inline void testProcess_usleep(unsigned int msec)
diff -urN cmake-2.6.1/Tests/Complex/Library/CMakeLists.txt cmake-2.6.1-haiku/Tests/Complex/Library/CMakeLists.txt
--- cmake-2.6.1/Tests/Complex/Library/CMakeLists.txt 2008-08-01 15:34:55.000000000 +0000
+++ cmake-2.6.1-haiku/Tests/Complex/Library/CMakeLists.txt 2008-08-20 13:49:06.000000000 +0000
@@ -53,7 +53,9 @@
)
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES FOO BAR)
IF(NOT BEOS) # No libm on BeOS.
- SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
+ IF(NOT HAIKU) # libm in included in libroot on Haiku
+ SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
+ ENDIF(NOT HAIKU)
ENDIF(NOT BEOS)
GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO)
IF(${FOO_BAR_VAR} MATCHES "BAR")
diff -urN cmake-2.6.1/Tests/ComplexOneConfig/Library/CMakeLists.txt cmake-2.6.1-haiku/Tests/ComplexOneConfig/Library/CMakeLists.txt
--- cmake-2.6.1/Tests/ComplexOneConfig/Library/CMakeLists.txt 2008-08-01 15:34:56.000000000 +0000
+++ cmake-2.6.1-haiku/Tests/ComplexOneConfig/Library/CMakeLists.txt 2008-08-20 13:49:06.000000000 +0000
@@ -53,7 +53,9 @@
)
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES FOO BAR)
IF(NOT BEOS) # No libm on BeOS.
+ IF(NOT HAIKU) # No limb on Haiku.
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
+ ENDIF(NOT HAIKU)
ENDIF(NOT BEOS)
GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO)
IF(${FOO_BAR_VAR} MATCHES "BAR")
diff -urN cmake-2.6.1/Tests/ComplexRelativePaths/Library/CMakeLists.txt cmake-2.6.1-haiku/Tests/ComplexRelativePaths/Library/CMakeLists.txt
--- cmake-2.6.1/Tests/ComplexRelativePaths/Library/CMakeLists.txt 2008-08-01 15:34:56.000000000 +0000
+++ cmake-2.6.1-haiku/Tests/ComplexRelativePaths/Library/CMakeLists.txt 2008-08-20 13:49:07.000000000 +0000
@@ -53,7 +53,9 @@
)
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES FOO BAR)
IF(NOT BEOS) # No libm on BeOS.
+ IF(NOT HAIKU) # No libm on Haiku.
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
+ ENDIF(NOT HAIKU)
ENDIF(NOT BEOS)
GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO)
IF(${FOO_BAR_VAR} MATCHES "BAR")
diff -urN cmake-2.6.1/Utilities/cmcurl/CMake/CurlTests.c cmake-2.6.1-haiku/Utilities/cmcurl/CMake/CurlTests.c
--- cmake-2.6.1/Utilities/cmcurl/CMake/CurlTests.c 2008-08-01 15:34:57.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmcurl/CMake/CurlTests.c 2008-08-20 13:49:07.000000000 +0000
@@ -38,7 +38,7 @@
# define PLATFORM_AIX_V3
#endif
-#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || defined(__BEOS__)
+#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || (defined(__BEOS__) && !defined(__HAIKU__))
#error "O_NONBLOCK does not work on this platform"
#endif
int socket;
diff -urN cmake-2.6.1/Utilities/cmcurl/curl/curl.h cmake-2.6.1-haiku/Utilities/cmcurl/curl/curl.h
--- cmake-2.6.1/Utilities/cmcurl/curl/curl.h 2008-08-01 15:34:57.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmcurl/curl/curl.h 2008-08-20 13:49:07.000000000 +0000
@@ -1133,7 +1133,7 @@
}
#endif
-#ifdef __BEOS__
+#if defined __BEOS__ || defined __HAIKU__
#include <support/SupportDefs.h>
#endif
diff -urN cmake-2.6.1/Utilities/cmcurl/if2ip.c cmake-2.6.1-haiku/Utilities/cmcurl/if2ip.c
--- cmake-2.6.1/Utilities/cmcurl/if2ip.c 2008-08-01 15:34:57.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmcurl/if2ip.c 2008-08-20 13:49:07.000000000 +0000
@@ -39,7 +39,7 @@
*/
#if !defined(WIN32) && !defined(__BEOS__) && !defined(__CYGWIN__) && \
!defined(__riscos__) && !defined(__INTERIX) && !defined(NETWARE) && \
- !defined(_AMIGASF) && !defined(__minix)
+ !defined(_AMIGASF) && !defined(__minix) && !defined(__HAIKU__)
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
diff -urN cmake-2.6.1/Utilities/cmcurl/select.c cmake-2.6.1-haiku/Utilities/cmcurl/select.c
--- cmake-2.6.1/Utilities/cmcurl/select.c 2008-08-01 15:34:57.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmcurl/select.c 2008-08-20 13:49:07.000000000 +0000
@@ -39,7 +39,7 @@
#error "We can't compile without select() support!"
#endif
-#ifdef __BEOS__
+#if defined __BEOS__ && !defined __HAIKU__
/* BeOS has FD_SET defined in socket.h */
#include <socket.h>
#endif
diff -urN cmake-2.6.1/Utilities/cmcurl/setup.h cmake-2.6.1-haiku/Utilities/cmcurl/setup.h
--- cmake-2.6.1/Utilities/cmcurl/setup.h 2008-08-01 15:34:57.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmcurl/setup.h 2008-08-20 13:49:07.000000000 +0000
@@ -264,7 +264,7 @@
#else /* MSDOS */
-#ifdef __BEOS__
+#if defined __BEOS__ && !defined __HAIKU__
#define sclose(x) closesocket(x)
#else /* __BEOS__ */
#define sclose(x) close(x)
diff -urN cmake-2.6.1/Utilities/cmtar/libtar.c cmake-2.6.1-haiku/Utilities/cmtar/libtar.c
--- cmake-2.6.1/Utilities/cmtar/libtar.c 2008-08-01 15:34:58.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmtar/libtar.c 2008-08-20 13:49:07.000000000 +0000
@@ -98,8 +98,8 @@
{
return -1;
}
-
-#if defined(__BEOS__) && !defined(__ZETA__) /* no fchmod on BeOS...do pathname instead. */
+/* no fchmod on BeOS...do pathname instead. */
+#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
if ((oflags & O_CREAT) && chmod(pathname, mode & 07777))
{
return -1;
diff -urN cmake-2.6.1/Utilities/cmxmlrpc/xmlrpc_curl_transport.c cmake-2.6.1-haiku/Utilities/cmxmlrpc/xmlrpc_curl_transport.c
--- cmake-2.6.1/Utilities/cmxmlrpc/xmlrpc_curl_transport.c 2008-08-01 15:34:58.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmxmlrpc/xmlrpc_curl_transport.c 2008-08-20 13:49:07.000000000 +0000
@@ -10,7 +10,7 @@
#include "xmlrpc_config.h"
-#if defined(__BEOS__)
+#if defined(__BEOS__) && !defined(__HAIKU__)
/* Some helpful system header has char==bool, then bool.h does int==bool. */
#define HAVE_BOOL 1
#endif
diff -urN cmake-2.6.1/Utilities/cmzlib/zconf.h cmake-2.6.1-haiku/Utilities/cmzlib/zconf.h
--- cmake-2.6.1/Utilities/cmzlib/zconf.h 2008-08-01 15:34:58.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmzlib/zconf.h 2008-08-20 13:49:07.000000000 +0000
@@ -237,7 +237,7 @@
# endif
#endif
-#if defined (__BEOS__)
+#if defined (__BEOS__) && !defined (__HAIKU__)
# ifdef ZLIB_DLL
# ifdef ZLIB_INTERNAL
# define ZEXPORT __declspec(dllexport)
diff -urN cmake-2.6.1/Utilities/cmzlib/zutil.h cmake-2.6.1-haiku/Utilities/cmzlib/zutil.h
--- cmake-2.6.1/Utilities/cmzlib/zutil.h 2008-08-01 15:34:59.000000000 +0000
+++ cmake-2.6.1-haiku/Utilities/cmzlib/zutil.h 2008-08-20 13:49:07.000000000 +0000
@@ -147,7 +147,13 @@
# define OS_CODE 0x0f
#endif
-#if defined(_BEOS_) || defined(RISCOS)
+/* Haiku defines both __HAIKU__ and __BEOS__ (for now) */
+/* many BeOS workarounds are no longer needed in Haiku */
+#if defined(__HAIKU__) && defined(__BEOS__)
+undef (__BEOS__)
+#endif
+
+#if defined(_BEOS_) || defined(RISCOS)
# define fdopen(fd,mode) NULL /* No fdopen() */
#endif
diff -urN cmake-2.6.1/bootstrap cmake-2.6.1-haiku/bootstrap
--- cmake-2.6.1/bootstrap 2008-08-01 15:34:50.000000000 +0000
+++ cmake-2.6.1-haiku/bootstrap 2008-08-20 13:49:07.000000000 +0000
@@ -73,6 +73,13 @@
cmake_system_beos=false
fi
+# Determine whether this is Haiku
+if echo "${cmake_system}" | grep Haiku >/dev/null 2>&1; then
+ cmake_system_haiku=true
+else
+ cmake_system_haiku=false
+fi
+
# Choose the generator to use for bootstrapping.
if ${cmake_system_mingw}; then
# Bootstrapping from an MSYS prompt.
@@ -603,6 +610,11 @@
cmake_ld_flags="${LDFLAGS} -lroot -lbe"
fi
+# Add Haiku toolkits...
+if ${cmake_system_haiku}; then
+ cmake_ld_flags="${LDFLAGS} -lroot -lbe"
+fi
+
# Test C compiler
cmake_c_compiler=

View File

@@ -1,14 +0,0 @@
diff -urN cmake-2.8.1/bootstrap cmake-2.8.1-haiku/bootstrap
--- cmake-2.8.1/bootstrap 2010-04-06 14:45:29.040370176 +0000
+++ cmake-2.8.1-haiku/bootstrap 2010-08-31 05:39:55.518520832 +0000
@@ -132,7 +132,9 @@
cmake_default_prefix="c:/Program Files/CMake"
fi
elif ${cmake_system_haiku}; then
- cmake_default_prefix=`/bin/finddir B_COMMON_DIRECTORY`
+ cmake_default_prefix=`finddir B_COMMON_DIRECTORY`
+ cmake_man_dir="/documentation/man"
+ cmake_doc_dir="/documentation/doc/cmake-${cmake_version}"
else
cmake_default_prefix="/usr/local"
fi

View File

@@ -0,0 +1,549 @@
From 2e3be20216cac12e4e6ace37d132bdc0b5b68b21 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Sat, 5 Oct 2013 16:26:02 +0200
Subject: Several fixes to Haiku platform module
* Do not define BEOS anymore (this includes workarounds which we don't
need most of the time in Haiku, so we prefer opt-in IF(HAIKU) in the
cmake files instead).
* On the other hand, do define UNIX (we are trying to be compliant) and
HAIKU (there is still a number of things we don't do like the
average UNIX clone)
* Do not use UnixPaths, as our filesystem hierarchy isn't anything like
what it expects.
* Do not use -nostart, which the compiler doesn't know about anymore.
This used to be an Haiku extension to gcc, and is equivalent to
-shared which is the default gcc option.
* While "dl" functions are provided in libroot, this is always
implicitly linked so there is no need to tell cmake about it.
* Forcing position-independent code is not needed, so remove it.
* On the other hand, include appropriate linker options for executables
and shared libraries.
* Support for the two available compilers in Haiku (gcc2 and gcc4) and
pick the right headers and libraries according to the currently
selected one.
* With the adoption of the package manager, the directory layout was
changed. Tell cmake where to look for header files and libraries.
* As we don't define BEOS anymore, enable the workaround we still need
for HAIKU as well. This is the lack of a libm (it is part of the
implicitly linked in libroot)
diff --git a/Modules/FindLua51.cmake b/Modules/FindLua51.cmake
index a2bf0c0..770e93a 100644
--- a/Modules/FindLua51.cmake
+++ b/Modules/FindLua51.cmake
@@ -54,7 +54,7 @@ find_library(LUA_LIBRARY
if(LUA_LIBRARY)
# include the math library for Unix
- if(UNIX AND NOT APPLE AND NOT BEOS)
+ if(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU)
find_library(LUA_MATH_LIBRARY m)
set( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries")
# For Windows and Mac, don't need to explicitly include the math library
diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake
index 8987783..825f851 100644
--- a/Modules/Platform/Haiku.cmake
+++ b/Modules/Platform/Haiku.cmake
@@ -1,22 +1,123 @@
-set(BEOS 1)
+# process only once
+if(HAIKU)
+ return()
+endif()
+
+set(HAIKU 1)
+set(UNIX 1)
-set(CMAKE_DL_LIBS root be)
-set(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC")
-set(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE")
+set(CMAKE_DL_LIBS "")
set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC")
-set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostart")
+set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared")
set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")
+set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,")
set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
+set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic")
+
+# Determine, if the C or C++ compiler is configured for a secondary
+# architecture. If so, that will change the search paths we set below. We check
+# whether the compiler's library search paths contain a
+# "/boot/system/develop/lib/<subdir>/", which we assume to be the secondary
+# architecture specific subdirectory and extract the name of the architecture
+# accordingly.
+set(__HAIKU_COMPILER ${CMAKE_C_COMPILER})
+
+if(NOT __HAIKU_COMPILER)
+ set(__HAIKU_COMPILER ${CMAKE_CXX_COMPILER})
+endif()
+
+execute_process(
+ COMMAND ${__HAIKU_COMPILER} -print-search-dirs
+ OUTPUT_VARIABLE _HAIKU_SEARCH_DIRS
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+string(REGEX MATCH ".*\nlibraries: =?([^\n]*:)?/boot/system/develop/lib/([^/]*)/(:[^\n]*)?\n.*" _dummy "\n${_HAIKU_SEARCH_DIRS}\n")
+set(CMAKE_HAIKU_SECONDARY_ARCH "${CMAKE_MATCH_2}")
+
+if(NOT CMAKE_HAIKU_SECONDARY_ARCH)
+ set(CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR "")
+ unset(CMAKE_HAIKU_SECONDARY_ARCH)
+else()
+ set(CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR "/${CMAKE_HAIKU_SECONDARY_ARCH}")
+
+ # Override CMAKE_*LIBRARY_ARCHITECTURE. This will cause FIND_LIBRARY to search
+ # the libraries in the correct subdirectory first. It still isn't completely
+ # correct, since the parent directories shouldn't be searched at all. The
+ # primary architecture library might still be found, if there isn't one
+ # installed for the secondary architecture or it is installed in a less
+ # specific location.
+ set(CMAKE_LIBRARY_ARCHITECTURE ${CMAKE_HAIKU_SECONDARY_ARCH})
+ set(CMAKE_C_LIBRARY_ARCHITECTURE ${CMAKE_HAIKU_SECONDARY_ARCH})
+ set(CMAKE_CXX_LIBRARY_ARCHITECTURE ${CMAKE_HAIKU_SECONDARY_ARCH})
+endif()
+
+list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+ /boot/common/non-packaged
+ /boot/common
+ /boot/system
+ )
+
+LIST(APPEND CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES
+ /boot/common/non-packaged/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR}
+ /boot/common/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR}
+ /boot/system/develop/headers/os
+ /boot/system/develop/headers/os/app
+ /boot/system/develop/headers/os/device
+ /boot/system/develop/headers/os/drivers
+ /boot/system/develop/headers/os/game
+ /boot/system/develop/headers/os/interface
+ /boot/system/develop/headers/os/kernel
+ /boot/system/develop/headers/os/locale
+ /boot/system/develop/headers/os/mail
+ /boot/system/develop/headers/os/media
+ /boot/system/develop/headers/os/midi
+ /boot/system/develop/headers/os/midi2
+ /boot/system/develop/headers/os/net
+ /boot/system/develop/headers/os/opengl
+ /boot/system/develop/headers/os/storage
+ /boot/system/develop/headers/os/support
+ /boot/system/develop/headers/os/translation
+ /boot/system/develop/headers/os/add-ons/graphics
+ /boot/system/develop/headers/os/add-ons/input_server
+ /boot/system/develop/headers/os/add-ons/screen_saver
+ /boot/system/develop/headers/os/add-ons/tracker
+ /boot/system/develop/headers/os/be_apps/Deskbar
+ /boot/system/develop/headers/os/be_apps/NetPositive
+ /boot/system/develop/headers/os/be_apps/Tracker
+ /boot/system/develop/headers/3rdparty
+ /boot/system/develop/headers/bsd
+ /boot/system/develop/headers/glibc
+ /boot/system/develop/headers/gnu
+ /boot/system/develop/headers/posix
+ /boot/system/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR}
+ )
+IF (CMAKE_HAIKU_SECONDARY_ARCH)
+ LIST(APPEND CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES
+ /boot/system/develop/headers
+ )
+ENDIF (CMAKE_HAIKU_SECONDARY_ARCH)
+
+LIST(APPEND CMAKE_HAIKU_C_INCLUDE_DIRECTORIES
+ ${CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES}
+ )
+
+LIST(APPEND CMAKE_HAIKU_CXX_INCLUDE_DIRECTORIES
+ ${CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES})
+
+LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_HAIKU_C_INCLUDE_DIRECTORIES})
+
+LIST(APPEND CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES
+ /boot/common/non-packaged/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR}
+ /boot/common/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR}
+ /boot/system/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR}
+ )
+
+LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
+ ${CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES}
+ )
-include(Platform/UnixPaths)
-list(APPEND CMAKE_SYSTEM_PREFIX_PATH /boot/common)
-list(APPEND CMAKE_SYSTEM_INCLUDE_PATH /boot/common/include)
-list(APPEND CMAKE_SYSTEM_LIBRARY_PATH /boot/common/lib)
-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)
+LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES})
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX "/boot/common" CACHE PATH
diff --git a/Tests/Complex/Library/CMakeLists.txt b/Tests/Complex/Library/CMakeLists.txt
index 5c43052..f00cbd6 100644
--- a/Tests/Complex/Library/CMakeLists.txt
+++ b/Tests/Complex/Library/CMakeLists.txt
@@ -51,7 +51,7 @@ define_property(
FULL_DOCS "A simple etst proerty that means nothign and is used for nothing"
)
set_target_properties(CMakeTestCLibraryShared PROPERTIES FOO BAR)
-if(NOT BEOS AND NOT WIN32) # No libm on BeOS.
+if(NOT BEOS AND NOT WIN32 AND NOT HAIKU) # No libm on BeOS.
set_target_properties(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
endif()
get_target_property(FOO_BAR_VAR CMakeTestCLibraryShared FOO)
diff --git a/Tests/ComplexOneConfig/Library/CMakeLists.txt b/Tests/ComplexOneConfig/Library/CMakeLists.txt
index 5c43052..f00cbd6 100644
--- a/Tests/ComplexOneConfig/Library/CMakeLists.txt
+++ b/Tests/ComplexOneConfig/Library/CMakeLists.txt
@@ -51,7 +51,7 @@ define_property(
FULL_DOCS "A simple etst proerty that means nothign and is used for nothing"
)
set_target_properties(CMakeTestCLibraryShared PROPERTIES FOO BAR)
-if(NOT BEOS AND NOT WIN32) # No libm on BeOS.
+if(NOT BEOS AND NOT WIN32 AND NOT HAIKU) # No libm on BeOS.
set_target_properties(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
endif()
get_target_property(FOO_BAR_VAR CMakeTestCLibraryShared FOO)
--
1.8.3.4
From e1f3d70eb59d4e87438c2b792a0d64dc2805218d Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Sat, 5 Oct 2013 16:31:36 +0200
Subject: Remove use of B_COMMON_DIRECTORY
* The common directory was removed in Haiku. Applications are now
installed in the system directory.
diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx
index 7cc1522..de394a6 100644
--- a/Source/CPack/cmCPackGenerator.cxx
+++ b/Source/CPack/cmCPackGenerator.cxx
@@ -26,7 +26,8 @@
#include <algorithm>
#if defined(__HAIKU__)
-#include <StorageKit.h>
+#include <FindDirectory.h>
+#include <StorageDefs.h>
#endif
//----------------------------------------------------------------------
@@ -1263,14 +1264,14 @@ const char* cmCPackGenerator::GetInstallPath()
this->InstallPath += "-";
this->InstallPath += this->GetOption("CPACK_PACKAGE_VERSION");
#elif defined(__HAIKU__)
- BPath dir;
- if (find_directory(B_COMMON_DIRECTORY, &dir) == B_OK)
+ char dir[B_PATH_NAME_LENGTH];
+ if (find_directory(B_SYSTEM_DIRECTORY, -1, false, dir, sizeof(dir)) == B_OK)
{
- this->InstallPath = dir.Path();
+ this->InstallPath = dir;
}
else
{
- this->InstallPath = "/boot/common";
+ this->InstallPath = "/boot/system";
}
#else
this->InstallPath = "/usr/local/";
diff --git a/Source/cmExportCommand.cxx b/Source/cmExportCommand.cxx
index 1cc1754..fcb66a7 100644
--- a/Source/cmExportCommand.cxx
+++ b/Source/cmExportCommand.cxx
@@ -20,7 +20,8 @@
#include "cmExportBuildFileGenerator.h"
#if defined(__HAIKU__)
-#include <StorageKit.h>
+#include <FindDirectory.h>
+#include <StorageDefs.h>
#endif
cmExportCommand::cmExportCommand()
@@ -305,14 +306,15 @@ void cmExportCommand::StorePackageRegistryDir(std::string const& package,
const char* hash)
{
#if defined(__HAIKU__)
- BPath dir;
- if (find_directory(B_USER_SETTINGS_DIRECTORY, &dir) != B_OK)
+ char dir[B_PATH_NAME_LENGTH];
+ if (find_directory(B_USER_SETTINGS_DIRECTORY, -1, false, dir, sizeof(dir)) !=
+ B_OK)
{
return;
}
- dir.Append("cmake/packages");
- dir.Append(package.c_str());
- std::string fname = dir.Path();
+ std::string fname = dir;
+ fname += "/cmake/packages/";
+ fname += package;
#else
const char* home = cmSystemTools::GetEnv("HOME");
if(!home)
diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx
index aa3a73d..1d6530f 100644
--- a/Source/cmFindPackageCommand.cxx
+++ b/Source/cmFindPackageCommand.cxx
@@ -19,7 +19,9 @@
#endif
#if defined(__HAIKU__)
-#include <StorageKit.h>
+#include <string.h>
+#include <FindDirectory.h>
+#include <StorageDefs.h>
#endif
void cmFindPackageNeedBackwardsCompatibility(const std::string& variable,
@@ -1584,12 +1586,14 @@ void cmFindPackageCommand::AddPrefixesUserRegistry()
#if defined(_WIN32) && !defined(__CYGWIN__)
this->LoadPackageRegistryWinUser();
#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());
+ char dir[B_PATH_NAME_LENGTH];
+ if (find_directory(B_USER_SETTINGS_DIRECTORY, -1, false, dir, sizeof(dir)) ==
+ B_OK)
+ {
+ std::string fname = dir;
+ fname += "/cmake/packages/";
+ fname += Name;
+ this->LoadPackageRegistryDir(fname);
}
#else
if(const char* home = cmSystemTools::GetEnv("HOME"))
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index ee5b9d8..1369dab 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -37,7 +37,8 @@
#include <assert.h>
#if defined(__HAIKU__)
-#include <StorageKit.h>
+#include <FindDirectory.h>
+#include <StorageDefs.h>
#endif
cmLocalGenerator::cmLocalGenerator()
@@ -354,16 +355,16 @@ void cmLocalGenerator::GenerateInstallRules()
prefix = prefix_win32.c_str();
}
#elif defined(__HAIKU__)
+ char dir[B_PATH_NAME_LENGTH];
if (!prefix)
{
- BPath dir;
- if (find_directory(B_COMMON_DIRECTORY, &dir) == B_OK)
+ if (find_directory(B_SYSTEM_DIRECTORY, -1, false, dir, sizeof(dir)) == B_OK)
{
- prefix = dir.Path();
+ prefix = dir;
}
else
{
- prefix = "/boot/common";
+ prefix = "/boot/system";
}
}
#else
--
1.8.3.4
From a2d6be58cf08774f05427d90de2c0ed7179d16e3 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Sat, 5 Oct 2013 16:33:52 +0200
Subject: Remove useless preprocessor checks
* Haiku does not define __BEOS__ anymore, so there is no need to guard
these BeOS specific workaround for Haiku.
* The workaround themselves are not needed for Haiku as it has much
better POSIX compatibility than BeOS did.
diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx
index 8b25d60..51dba3c 100644
--- a/Source/kwsys/SystemTools.cxx
+++ b/Source/kwsys/SystemTools.cxx
@@ -152,11 +152,6 @@ public:
#define _chdir chdir
#endif
-#if defined(__HAIKU__)
-#include <os/kernel/OS.h>
-#include <os/storage/Path.h>
-#endif
-
#if defined(__BEOS__) && !defined(__ZETA__)
#include <be/kernel/OS.h>
#include <be/storage/Path.h>
diff --git a/Utilities/cmcurl/CMake/CurlTests.c b/Utilities/cmcurl/CMake/CurlTests.c
index d74a4f0..c5ba7c2 100644
--- a/Utilities/cmcurl/CMake/CurlTests.c
+++ b/Utilities/cmcurl/CMake/CurlTests.c
@@ -38,7 +38,7 @@ main ()
# define PLATFORM_AIX_V3
#endif
-#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || (defined(__BEOS__) && !defined(__HAIKU__))
+#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || defined(__BEOS__)
#error "O_NONBLOCK does not work on this platform"
#endif
int socket;
diff --git a/Utilities/cmcurl/select.c b/Utilities/cmcurl/select.c
index 51adbcf..82f9dc2 100644
--- a/Utilities/cmcurl/select.c
+++ b/Utilities/cmcurl/select.c
@@ -39,7 +39,7 @@
#error "We can't compile without select() support!"
#endif
-#if defined(__BEOS__) && !defined(__HAIKU__)
+#if defined(__BEOS__)
/* BeOS has FD_SET defined in socket.h */
#include <socket.h>
#endif
diff --git a/Utilities/cmzlib/zconf.h b/Utilities/cmzlib/zconf.h
index 6eb52d1..7a3b6fd 100644
--- a/Utilities/cmzlib/zconf.h
+++ b/Utilities/cmzlib/zconf.h
@@ -237,7 +237,7 @@
# endif
#endif
-#if defined (__BEOS__) && !defined (__HAIKU__)
+#if defined (__BEOS__)
# ifdef ZLIB_DLL
# ifdef ZLIB_INTERNAL
# define ZEXPORT __declspec(dllexport)
diff --git a/Utilities/cmzlib/zutil.h b/Utilities/cmzlib/zutil.h
index 74ef1f8..3053cd8 100644
--- a/Utilities/cmzlib/zutil.h
+++ b/Utilities/cmzlib/zutil.h
@@ -147,12 +147,6 @@ extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
# define OS_CODE 0x0f
#endif
-/* Haiku defines both __HAIKU__ and __BEOS__ (for now) */
-/* many BeOS workarounds are no longer needed in Haiku */
-#if defined(__HAIKU__) && defined(__BEOS__)
-#undef __BEOS__
-#endif
-
#if defined(_BEOS_) || defined(RISCOS)
# define fdopen(fd,mode) NULL /* No fdopen() */
#endif
--
1.8.3.4
From abc2262574468318d404a9d4271a818926aab507 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Sat, 5 Oct 2013 16:59:25 +0200
Subject: Include files cleanup
* No need to use a different path from the BeOS one, which still works.
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index 322a6a2..2aaedec 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -53,14 +53,10 @@
#include <cm_zlib.h>
#include <cmsys/Base64.h>
-#if defined(__BEOS__)
+#if defined(__BEOS__) || defined(__HAIKU__)
#include <be/kernel/OS.h> /* disable_debugger() API. */
#endif
-#if defined(__HAIKU__)
-#include <os/kernel/OS.h> /* disable_debugger() API. */
-#endif
-
#define DEBUGOUT std::cout << __LINE__ << " "; std::cout
#define DEBUGERR std::cerr << __LINE__ << " "; std::cerr
diff --git a/Source/kwsys/testDynamicLoader.cxx b/Source/kwsys/testDynamicLoader.cxx
index 61c1572..fc0215e 100644
--- a/Source/kwsys/testDynamicLoader.cxx
+++ b/Source/kwsys/testDynamicLoader.cxx
@@ -15,14 +15,10 @@
#include KWSYS_HEADER(ios/iostream)
#include KWSYS_HEADER(stl/string)
-#if defined(__BEOS__)
+#if defined(__BEOS__) || defined(__HAIKU__)
#include <be/kernel/OS.h> /* disable_debugger() API. */
#endif
-#if defined(__HAIKU__)
-#include <os/kernel/OS.h> /* disable_debugger() API. */
-#endif
-
// Work-around CMake dependency scanning limitation. This must
// duplicate the above list of headers.
#if 0
--
1.8.3.4
From b932917065447fbd619e642a67ab294a17ffc97c Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Sat, 5 Oct 2013 17:01:03 +0200
Subject: FindSDL: Fix broken include paths
* I asked the CMake community about this, and they couldn't even figure
out how this worked even on other platforms.
diff --git a/Modules/FindSDL.cmake b/Modules/FindSDL.cmake
index fec142e..6adec1f 100644
--- a/Modules/FindSDL.cmake
+++ b/Modules/FindSDL.cmake
@@ -70,7 +70,7 @@
find_path(SDL_INCLUDE_DIR SDL.h
HINTS
ENV SDLDIR
- PATH_SUFFIXES include/SDL include/SDL12 include/SDL11 include
+ PATH_SUFFIXES SDL SDL12 SDL11
)
# SDL-1.1 is the name used by FreeBSD ports...
--
1.8.3.4
From ff28e08e29c0d54d794185ada1ddf496b41285e0 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Mon, 14 Oct 2013 09:35:02 +0200
Subject: Enable command-line length limitation on Haiku.
diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx
index 7e48cd7..3d15900 100644
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@ -563,7 +563,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
cmSystemTools::GetEnv(forceRspFile) == 0) {
#ifdef _WIN32
commandLineLengthLimit = 8000 - linkRuleLength;
-#elif defined(__linux) || defined(__APPLE__)
+#elif defined(__linux) || defined(__APPLE__) || defined(__HAIKU__)
// for instance ARG_MAX is 2096152 on Ubuntu or 262144 on Mac
commandLineLengthLimit = ((int)sysconf(_SC_ARG_MAX))-linkRuleLength-1000;
#else
--
1.8.3.4

View File

@@ -1,14 +0,0 @@
diff -urN cmake-2.8.2/bootstrap cmake-2.8.2-haiku/bootstrap
--- cmake-2.8.2/bootstrap 2010-04-06 14:45:29.040370176 +0000
+++ cmake-2.8.2-haiku/bootstrap 2010-08-31 05:39:55.518520832 +0000
@@ -132,7 +132,9 @@
cmake_default_prefix="c:/Program Files/CMake"
fi
elif ${cmake_system_haiku}; then
- cmake_default_prefix=`/bin/finddir B_COMMON_DIRECTORY`
+ cmake_default_prefix=`finddir B_COMMON_DIRECTORY`
+ cmake_man_dir="/documentation/man"
+ cmake_doc_dir="/documentation/doc/cmake-${cmake_version}"
else
cmake_default_prefix="/usr/local"
fi

View File

@@ -1,116 +0,0 @@
diff -urN cmake-2.8.3/Modules/FindGLUT.cmake cmake-2.8.3-haiku/Modules/FindGLUT.cmake
--- cmake-2.8.3/Modules/FindGLUT.cmake 2010-11-03 19:58:27.020971520 +0000
+++ cmake-2.8.3-haiku/Modules/FindGLUT.cmake 2011-01-29 10:22:22.032505856 +0000
@@ -46,12 +46,15 @@
/usr/openwin/include
/opt/graphics/OpenGL/include
/opt/graphics/OpenGL/contrib/libglut
+ /boot/develop/headers/os/opengl
)
FIND_LIBRARY( GLUT_glut_LIBRARY glut
/usr/openwin/lib
+ /boot/develop/lib/x86/ 
)
-
+
+ IF(NOT BEOS)
FIND_LIBRARY( GLUT_Xi_LIBRARY Xi
/usr/openwin/lib
)
@@ -59,6 +62,7 @@
FIND_LIBRARY( GLUT_Xmu_LIBRARY Xmu
/usr/openwin/lib
)
+ ENDIF(NOT BEOS)
ENDIF (APPLE)
@@ -69,12 +73,18 @@
IF(GLUT_glut_LIBRARY)
# Is -lXi and -lXmu required on all platforms that have it?
# If not, we need some way to figure out what platform we are on.
+ IF(BEOS)
+ SET( GLUT_LIBRARIES
+ ${GLUT_glut_LIBRARY}
+ )
+ ELSE(BEOS)
SET( GLUT_LIBRARIES
${GLUT_glut_LIBRARY}
${GLUT_Xmu_LIBRARY}
${GLUT_Xi_LIBRARY}
${GLUT_cocoa_LIBRARY}
)
+ ENDIF(BEOS)
SET( GLUT_FOUND "YES" )
#The following deprecated settings are for backwards compatibility with CMake1.4
@@ -84,9 +94,16 @@
ENDIF(GLUT_glut_LIBRARY)
ENDIF(GLUT_INCLUDE_DIR)
+IF(BEOS)
+MARK_AS_ADVANCED(
+ GLUT_INCLUDE_DIR
+ GLUT_glut_LIBRARY
+ )
+ELSE(BEOS)
MARK_AS_ADVANCED(
GLUT_INCLUDE_DIR
GLUT_glut_LIBRARY
GLUT_Xmu_LIBRARY
GLUT_Xi_LIBRARY
)
+ENDIF(BEOS)
diff -urN cmake-2.8.3/Modules/FindLua51.cmake cmake-2.8.3-haiku/Modules/FindLua51.cmake
--- cmake-2.8.3/Modules/FindLua51.cmake 2010-11-03 19:58:27.023330816 +0000
+++ cmake-2.8.3-haiku/Modules/FindLua51.cmake 2011-01-29 10:22:22.035127296 +0000
@@ -57,13 +57,13 @@
IF(LUA_LIBRARY)
# include the math library for Unix
- IF(UNIX AND NOT APPLE)
+ IF(UNIX AND NOT APPLE AND NOT BEOS)
FIND_LIBRARY(LUA_MATH_LIBRARY m)
SET( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries")
# For Windows and Mac, don't need to explicitly include the math library
ELSE(UNIX AND NOT APPLE)
SET( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries")
- ENDIF(UNIX AND NOT APPLE)
+ ENDIF(UNIX AND NOT APPLE AND NOT BEOS)
ENDIF(LUA_LIBRARY)
INCLUDE("${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake")
diff -urN cmake-2.8.3/Modules/FindOpenGL.cmake cmake-2.8.3-haiku/Modules/FindOpenGL.cmake
--- cmake-2.8.3/Modules/FindOpenGL.cmake 2010-11-03 19:58:27.024117248 +0000
+++ cmake-2.8.3-haiku/Modules/FindOpenGL.cmake 2011-01-29 10:22:22.035913728 +0000
@@ -80,6 +80,7 @@
/usr/share/doc/NVIDIA_GLX-1.0/include
/usr/openwin/share/include
/opt/graphics/OpenGL/include /usr/X11R6/include
+ /boot/develop/headers/os/opengl
)
FIND_PATH(OPENGL_xmesa_INCLUDE_DIR GL/xmesa.h
@@ -94,6 +95,7 @@
/usr/openwin/lib
/usr/shlib /usr/X11R6/lib
${HPUX_IA_OPENGL_LIB_PATH}
+ /boot/develop/lib/x86/
)
# On Unix OpenGL most certainly always requires X11.
diff -urN cmake-2.8.3/bootstrap cmake-2.8.3-haiku/bootstrap
--- cmake-2.8.3/bootstrap 2010-11-03 19:58:26.058720256 +0000
+++ cmake-2.8.3-haiku/bootstrap 2011-01-29 10:22:22.031981568 +0000
@@ -137,7 +137,9 @@
cmake_default_prefix="c:/Program Files/CMake"
fi
elif ${cmake_system_haiku}; then
- cmake_default_prefix=`/bin/finddir B_COMMON_DIRECTORY`
+ cmake_default_prefix=`finddir B_COMMON_DIRECTORY`
+ cmake_man_dir="/documentation/man"
+ cmake_doc_dir="/documentation/doc/cmake-${cmake_version}"
else
cmake_default_prefix="/usr/local"
fi

View File

@@ -0,0 +1,664 @@
From 63b3bcd0d6804a07fe94d9af0fc7a7810fab538d Mon Sep 17 00:00:00 2001
From: Ingo Weinhold <ingo_weinhold@gmx.de>
Date: Sun, 16 Jun 2013 21:42:39 +0200
Subject: Haiku specific changes
diff --git a/Modules/CMakeFortranCompilerId.F.in b/Modules/CMakeFortranCompilerId.F.in
index 4d25de0..f84852a 100644
--- a/Modules/CMakeFortranCompilerId.F.in
+++ b/Modules/CMakeFortranCompilerId.F.in
@@ -74,12 +74,8 @@
PRINT *, 'INFO:platform[IRIX]'
#elif defined(__hpux) || defined(__hpux__)
PRINT *, 'INFO:platform[HP-UX]'
-#elif defined(__HAIKU) || defined(__HAIKU__) || defined(_HAIKU)
+#elif defined(__HAIKU__)
PRINT *, 'INFO:platform[Haiku]'
-# if 0
-! Haiku also defines __BEOS__ so we must
-! put it prior to the check for __BEOS__
-# endif
#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 cb3f40a..db98bc3 100644
--- a/Modules/CMakePlatformId.h.in
+++ b/Modules/CMakePlatformId.h.in
@@ -35,11 +35,8 @@
#elif defined(__hpux) || defined(__hpux__)
# define PLATFORM_ID "HP-UX"
-#elif defined(__HAIKU) || defined(__HAIKU__) || defined(_HAIKU)
+#elif 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 d831078..02526fb 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__) && !defined(__HAIKU__) // (no usleep on BeOS 5.)
+#if defined(__BEOS__) && !defined(__ZETA__) // (no usleep on BeOS 5.)
usleep(1); // for strange behavior on single-processor sun
#endif
diff --git a/Modules/FindGLUT.cmake b/Modules/FindGLUT.cmake
index af88997..8c0a733 100644
--- a/Modules/FindGLUT.cmake
+++ b/Modules/FindGLUT.cmake
@@ -46,20 +46,22 @@ ELSE (WIN32)
/usr/openwin/include
/opt/graphics/OpenGL/include
/opt/graphics/OpenGL/contrib/libglut
+ /boot/system/develop/headers/os/opengl
)
FIND_LIBRARY( GLUT_glut_LIBRARY glut
/usr/openwin/lib
)
-
- FIND_LIBRARY( GLUT_Xi_LIBRARY Xi
- /usr/openwin/lib
- )
-
- FIND_LIBRARY( GLUT_Xmu_LIBRARY Xmu
- /usr/openwin/lib
- )
-
+
+ IF(NOT BEOS AND NOT HAIKU)
+ FIND_LIBRARY( GLUT_Xi_LIBRARY Xi
+ /usr/openwin/lib
+ )
+
+ FIND_LIBRARY( GLUT_Xmu_LIBRARY Xmu
+ /usr/openwin/lib
+ )
+ ENDIF(NOT BEOS AND NOT HAIKU)
ENDIF (APPLE)
ENDIF (WIN32)
@@ -69,12 +71,18 @@ IF(GLUT_INCLUDE_DIR)
IF(GLUT_glut_LIBRARY)
# Is -lXi and -lXmu required on all platforms that have it?
# If not, we need some way to figure out what platform we are on.
- SET( GLUT_LIBRARIES
- ${GLUT_glut_LIBRARY}
- ${GLUT_Xmu_LIBRARY}
- ${GLUT_Xi_LIBRARY}
- ${GLUT_cocoa_LIBRARY}
- )
+ IF(BEOS OR HAIKU)
+ SET( GLUT_LIBRARIES
+ ${GLUT_glut_LIBRARY}
+ )
+ ELSE(BEOS OR HAIKU)
+ SET( GLUT_LIBRARIES
+ ${GLUT_glut_LIBRARY}
+ ${GLUT_Xmu_LIBRARY}
+ ${GLUT_Xi_LIBRARY}
+ ${GLUT_cocoa_LIBRARY}
+ )
+ ENDIF(BEOS OR HAIKU)
SET( GLUT_FOUND "YES" )
#The following deprecated settings are for backwards compatibility with CMake1.4
@@ -84,9 +92,16 @@ IF(GLUT_INCLUDE_DIR)
ENDIF(GLUT_glut_LIBRARY)
ENDIF(GLUT_INCLUDE_DIR)
-MARK_AS_ADVANCED(
- GLUT_INCLUDE_DIR
- GLUT_glut_LIBRARY
- GLUT_Xmu_LIBRARY
- GLUT_Xi_LIBRARY
- )
+IF(BEOS OR HAIKU)
+ MARK_AS_ADVANCED(
+ GLUT_INCLUDE_DIR
+ GLUT_glut_LIBRARY
+ )
+ELSE(BEOS OR HAIKU)
+ MARK_AS_ADVANCED(
+ GLUT_INCLUDE_DIR
+ GLUT_glut_LIBRARY
+ GLUT_Xmu_LIBRARY
+ GLUT_Xi_LIBRARY
+ )
+ENDIF(BEOS OR HAIKU)
diff --git a/Modules/FindLua51.cmake b/Modules/FindLua51.cmake
index 123fd5d..5047fbd 100644
--- a/Modules/FindLua51.cmake
+++ b/Modules/FindLua51.cmake
@@ -57,13 +57,13 @@ FIND_LIBRARY(LUA_LIBRARY
IF(LUA_LIBRARY)
# include the math library for Unix
- IF(UNIX AND NOT APPLE)
+ IF(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU)
FIND_LIBRARY(LUA_MATH_LIBRARY m)
SET( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries")
# For Windows and Mac, don't need to explicitly include the math library
ELSE(UNIX AND NOT APPLE)
SET( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries")
- ENDIF(UNIX AND NOT APPLE)
+ ENDIF(UNIX AND NOT APPLE AND NOT BEOS AND NOT HAIKU)
ENDIF(LUA_LIBRARY)
INCLUDE(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
diff --git a/Modules/FindOpenGL.cmake b/Modules/FindOpenGL.cmake
index 98d8808..1ac4de6 100644
--- a/Modules/FindOpenGL.cmake
+++ b/Modules/FindOpenGL.cmake
@@ -80,6 +80,7 @@ ELSE (WIN32)
/usr/share/doc/NVIDIA_GLX-1.0/include
/usr/openwin/share/include
/opt/graphics/OpenGL/include /usr/X11R6/include
+ /boot/system/develop/headers/os/opengl
)
FIND_PATH(OPENGL_xmesa_INCLUDE_DIR GL/xmesa.h
diff --git a/Modules/Platform/Haiku.cmake b/Modules/Platform/Haiku.cmake
index 8277a24..7eb0bd5 100644
--- a/Modules/Platform/Haiku.cmake
+++ b/Modules/Platform/Haiku.cmake
@@ -1,20 +1,121 @@
-SET(BEOS 1)
+# process only once
+IF(HAIKU)
+ RETURN()
+ENDIF(HAIKU)
-SET(CMAKE_DL_LIBS root be)
+SET(HAIKU 1)
+SET(UNIX 1)
+
+SET(CMAKE_DL_LIBS "")
SET(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC")
-SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-nostart")
+SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared")
SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")
+SET(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,")
SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
+SET(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic")
+
+# Determine, if the C or C++ compiler is configured for a secondary
+# architecture. If so, that will change the search paths we set below. We check
+# whether the compiler's library search paths contain a
+# "/boot/system/develop/lib/<subdir>/", which we assume to be the secondary
+# architecture specific subdirectory and extract the name of the architecture
+# accordingly.
+SET(HAIKU_COMPILER ${CMAKE_C_COMPILER})
+IF ("${HAIKU_COMPILER}" STREQUAL "")
+ SET(HAIKU_COMPILER ${CMAKE_CXX_COMPILER})
+ENDIF ("${HAIKU_COMPILER}" STREQUAL "")
+EXECUTE_PROCESS(
+ COMMAND ${HAIKU_COMPILER} -print-search-dirs
+ COMMAND sed -ne "/^libraries:/!d; s,libraries: =*\\(.*\\):,\\1,; s,:,\\n,gp"
+ COMMAND sed -ne "/\\/boot\\/system\\/develop\\/lib\\/[^\\/]*\\/$/!d; s,.*/\\([^/]*\\)/$,\\1,; p"
+ OUTPUT_VARIABLE CMAKE_HAIKU_SECONDARY_ARCH)
+STRING(STRIP "${CMAKE_HAIKU_SECONDARY_ARCH}"
+ CMAKE_HAIKU_SECONDARY_ARCH)
+
+IF ("${CMAKE_HAIKU_SECONDARY_ARCH}" STREQUAL "")
+ SET(CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR "")
+ UNSET(CMAKE_HAIKU_SECONDARY_ARCH)
+ELSE ("${CMAKE_HAIKU_SECONDARY_ARCH}" STREQUAL "")
+ SET(CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR "/${CMAKE_HAIKU_SECONDARY_ARCH}")
+
+ # Override CMAKE_*LIBRARY_ARCHITECTURE. This will cause FIND_LIBRARY to search
+ # the libraries in the correct subdirectory first. It still isn't completely
+ # correct, since the parent directories shouldn't be searched at all. The
+ # primary architecture library might still be found, if there isn't one
+ # installed for the secondary architecture or it is installed in a less
+ # specific location.
+ SET(CMAKE_LIBRARY_ARCHITECTURE ${CMAKE_HAIKU_SECONDARY_ARCH})
+ SET(CMAKE_C_LIBRARY_ARCHITECTURE ${CMAKE_HAIKU_SECONDARY_ARCH})
+ SET(CMAKE_CXX_LIBRARY_ARCHITECTURE ${CMAKE_HAIKU_SECONDARY_ARCH})
+ENDIF ("${CMAKE_HAIKU_SECONDARY_ARCH}" STREQUAL "")
+
+LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH
+ /boot/common/non-packaged
+ /boot/common
+ /boot/system
+ )
+
+LIST(APPEND CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES
+ /boot/common/non-packaged/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR}
+ /boot/common/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR}
+ /boot/system/develop/headers/os
+ /boot/system/develop/headers/os/app
+ /boot/system/develop/headers/os/device
+ /boot/system/develop/headers/os/drivers
+ /boot/system/develop/headers/os/game
+ /boot/system/develop/headers/os/interface
+ /boot/system/develop/headers/os/kernel
+ /boot/system/develop/headers/os/locale
+ /boot/system/develop/headers/os/mail
+ /boot/system/develop/headers/os/media
+ /boot/system/develop/headers/os/midi
+ /boot/system/develop/headers/os/midi2
+ /boot/system/develop/headers/os/net
+ /boot/system/develop/headers/os/opengl
+ /boot/system/develop/headers/os/storage
+ /boot/system/develop/headers/os/support
+ /boot/system/develop/headers/os/translation
+ /boot/system/develop/headers/os/add-ons/graphics
+ /boot/system/develop/headers/os/add-ons/input_server
+ /boot/system/develop/headers/os/add-ons/screen_saver
+ /boot/system/develop/headers/os/add-ons/tracker
+ /boot/system/develop/headers/os/be_apps/Deskbar
+ /boot/system/develop/headers/os/be_apps/NetPositive
+ /boot/system/develop/headers/os/be_apps/Tracker
+ /boot/system/develop/headers/3rdparty
+ /boot/system/develop/headers/bsd
+ /boot/system/develop/headers/glibc
+ /boot/system/develop/headers/gnu
+ /boot/system/develop/headers/posix
+ /boot/system/develop/headers${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR}
+ )
+IF (CMAKE_HAIKU_SECONDARY_ARCH)
+ LIST(APPEND CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES
+ /boot/system/develop/headers
+ )
+ENDIF (CMAKE_HAIKU_SECONDARY_ARCH)
+
+LIST(APPEND CMAKE_HAIKU_C_INCLUDE_DIRECTORIES
+ ${CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES}
+ )
+
+LIST(APPEND CMAKE_HAIKU_CXX_INCLUDE_DIRECTORIES
+ ${CMAKE_HAIKU_COMMON_INCLUDE_DIRECTORIES})
+
+LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_HAIKU_C_INCLUDE_DIRECTORIES})
+
+LIST(APPEND CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES
+ /boot/common/non-packaged/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR}
+ /boot/common/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR}
+ /boot/system/develop/lib${CMAKE_HAIKU_SECONDARY_ARCH_SUBDIR}
+ )
+
+LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
+ ${CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES}
+ )
-INCLUDE(Platform/UnixPaths)
-LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH /boot/common)
-LIST(APPEND CMAKE_SYSTEM_INCLUDE_PATH /boot/common/include)
-LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH /boot/common/lib)
-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)
+LIST(APPEND CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_HAIKU_DEVELOP_LIB_DIRECTORIES})
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
SET(CMAKE_INSTALL_PREFIX "/boot/common" CACHE PATH
diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx
index 7e5b26d..733c521 100644
--- a/Source/CPack/cmCPackGenerator.cxx
+++ b/Source/CPack/cmCPackGenerator.cxx
@@ -27,7 +27,8 @@
#include <algorithm>
#if defined(__HAIKU__)
-#include <StorageKit.h>
+#include <FindDirectory.h>
+#include <StorageDefs.h>
#endif
//----------------------------------------------------------------------
@@ -1206,10 +1207,10 @@ const char* cmCPackGenerator::GetInstallPath()
this->InstallPath += "-";
this->InstallPath += this->GetOption("CPACK_PACKAGE_VERSION");
#elif defined(__HAIKU__)
- BPath dir;
- if (find_directory(B_COMMON_DIRECTORY, &dir) == B_OK)
+ char dir[B_PATH_NAME_LENGTH];
+ if (find_directory(B_COMMON_DIRECTORY, -1, false, dir, sizeof(dir)) == B_OK)
{
- this->InstallPath = dir.Path();
+ this->InstallPath = dir;
}
else
{
diff --git a/Source/CPack/cmCPackGeneratorFactory.cxx b/Source/CPack/cmCPackGeneratorFactory.cxx
index a04b403..878e8c0 100644
--- a/Source/CPack/cmCPackGeneratorFactory.cxx
+++ b/Source/CPack/cmCPackGeneratorFactory.cxx
@@ -32,7 +32,7 @@
#endif
#if !defined(_WIN32) && !defined(__APPLE__) \
- && !defined(__QNXNTO__) && !defined(__BEOS__)
+ && !defined(__QNXNTO__) && !defined(__BEOS__) && !defined(__HAIKU__)
# include "cmCPackDebGenerator.h"
# include "cmCPackRPMGenerator.h"
#endif
@@ -73,7 +73,7 @@ cmCPackGeneratorFactory::cmCPackGeneratorFactory()
cmCPackOSXX11Generator::CreateGenerator);
#endif
#if !defined(_WIN32) && !defined(__APPLE__) \
- && !defined(__QNXNTO__) && !defined(__BEOS__)
+ && !defined(__QNXNTO__) && !defined(__BEOS__) && !defined(__HAIKU__)
this->RegisterGenerator("DEB", "Debian packages",
cmCPackDebGenerator::CreateGenerator);
this->RegisterGenerator("RPM", "RPM packages",
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index 75a564e..83e3c6e 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -53,14 +53,10 @@
#include <cm_zlib.h>
#include <cmsys/Base64.h>
-#if defined(__BEOS__) && !defined(__HAIKU__)
+#if defined(__BEOS__) || defined(__HAIKU__)
#include <be/kernel/OS.h> /* disable_debugger() API. */
#endif
-#if defined(__HAIKU__)
-#include <os/kernel/OS.h> /* disable_debugger() API. */
-#endif
-
#define DEBUGOUT std::cout << __LINE__ << " "; std::cout
#define DEBUGERR std::cerr << __LINE__ << " "; std::cerr
diff --git a/Source/cmExportCommand.cxx b/Source/cmExportCommand.cxx
index cb614d4..1954662 100644
--- a/Source/cmExportCommand.cxx
+++ b/Source/cmExportCommand.cxx
@@ -20,7 +20,8 @@
#include "cmExportBuildFileGenerator.h"
#if defined(__HAIKU__)
-#include <StorageKit.h>
+#include <FindDirectory.h>
+#include <StorageDefs.h>
#endif
cmExportCommand::cmExportCommand()
@@ -297,14 +298,15 @@ void cmExportCommand::StorePackageRegistryDir(std::string const& package,
const char* hash)
{
#if defined(__HAIKU__)
- BPath dir;
- if (find_directory(B_USER_SETTINGS_DIRECTORY, &dir) != B_OK)
+ char dir[B_PATH_NAME_LENGTH];
+ if (find_directory(B_USER_SETTINGS_DIRECTORY, -1, false, dir, sizeof(dir)) !=
+ B_OK)
{
return;
}
- dir.Append("cmake/packages");
- dir.Append(package.c_str());
- std::string fname = dir.Path();
+ std::string fname = dir;
+ fname += "/cmake/packages/";
+ fname += package;
#else
const char* home = cmSystemTools::GetEnv("HOME");
if(!home)
diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx
index 5f106bc..a2f9823 100644
--- a/Source/cmFindPackageCommand.cxx
+++ b/Source/cmFindPackageCommand.cxx
@@ -19,7 +19,9 @@
#endif
#if defined(__HAIKU__)
-#include <StorageKit.h>
+#include <string.h>
+#include <FindDirectory.h>
+#include <StorageDefs.h>
#endif
void cmFindPackageNeedBackwardsCompatibility(const std::string& variable,
@@ -1292,12 +1294,13 @@ void cmFindPackageCommand::AddPrefixesUserRegistry()
#if defined(_WIN32) && !defined(__CYGWIN__)
this->LoadPackageRegistryWinUser();
#elif defined(__HAIKU__)
- BPath dir;
- if (find_directory(B_USER_SETTINGS_DIRECTORY, &dir) == B_OK)
+ char dir[B_PATH_NAME_LENGTH];
+ if (find_directory(B_USER_SETTINGS_DIRECTORY, -1, false, dir, sizeof(dir)) ==
+ B_OK)
{
- dir.Append("cmake/packages");
- dir.Append(this->Name.c_str());
- this->LoadPackageRegistryDir(dir.Path());
+ strlcat(dir, "/cmake/packages/", sizeof(dir));
+ strlcat(dir, this->Name.c_str(), sizeof(dir));
+ this->LoadPackageRegistryDir(dir);
}
#else
if(const char* home = cmSystemTools::GetEnv("HOME"))
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 7da35eb..5867030 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -37,7 +37,8 @@
#include <assert.h>
#if defined(__HAIKU__)
-#include <StorageKit.h>
+#include <FindDirectory.h>
+#include <StorageDefs.h>
#endif
cmLocalGenerator::cmLocalGenerator()
@@ -354,12 +355,12 @@ void cmLocalGenerator::GenerateInstallRules()
prefix = prefix_win32.c_str();
}
#elif defined(__HAIKU__)
+ char dir[B_PATH_NAME_LENGTH];
if (!prefix)
{
- BPath dir;
- if (find_directory(B_COMMON_DIRECTORY, &dir) == B_OK)
+ if (find_directory(B_COMMON_DIRECTORY, -1, false, dir, sizeof(dir)) == B_OK)
{
- prefix = dir.Path();
+ prefix = dir;
}
else
{
diff --git a/Source/kwsys/ProcessUNIX.c b/Source/kwsys/ProcessUNIX.c
index 9c66a44..6fe4232 100644
--- a/Source/kwsys/ProcessUNIX.c
+++ b/Source/kwsys/ProcessUNIX.c
@@ -63,10 +63,6 @@ do.
#include <dirent.h> /* DIR, dirent */
#include <ctype.h> /* isspace */
-#ifdef __HAIKU__
-#undef __BEOS__
-#endif
-
#if defined(__VMS)
# define KWSYSPE_VMS_NONBLOCK , O_NONBLOCK
#else
diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx
index eefa7f5..8798615 100644
--- a/Source/kwsys/SystemTools.cxx
+++ b/Source/kwsys/SystemTools.cxx
@@ -145,12 +145,7 @@ public:
#define _chdir chdir
#endif
-#if defined(__HAIKU__)
-#include <os/kernel/OS.h>
-#include <os/storage/Path.h>
-#endif
-
-#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
+#if defined(__BEOS__) && !defined(__ZETA__)
#include <be/kernel/OS.h>
#include <be/storage/Path.h>
diff --git a/Source/kwsys/testDynamicLoader.cxx b/Source/kwsys/testDynamicLoader.cxx
index a7adbca..16b89ad 100644
--- a/Source/kwsys/testDynamicLoader.cxx
+++ b/Source/kwsys/testDynamicLoader.cxx
@@ -15,14 +15,10 @@
#include KWSYS_HEADER(ios/iostream)
#include KWSYS_HEADER(stl/string)
-#if defined(__BEOS__) && !defined(__HAIKU__)
+#if defined(__BEOS__) || defined(__HAIKU__)
#include <be/kernel/OS.h> /* disable_debugger() API. */
#endif
-#if defined(__HAIKU__)
-#include <os/kernel/OS.h> /* disable_debugger() API. */
-#endif
-
// Work-around CMake dependency scanning limitation. This must
// duplicate the above list of headers.
#if 0
diff --git a/Source/kwsys/testProcess.c b/Source/kwsys/testProcess.c
index 877002a..17a068c 100644
--- a/Source/kwsys/testProcess.c
+++ b/Source/kwsys/testProcess.c
@@ -32,7 +32,7 @@
# pragma warn -8060 /* possibly incorrect assignment */
#endif
-#if defined(__BEOS__) && !defined(__ZETA__) && !defined(__HAIKU__)
+#if defined(__BEOS__) && !defined(__ZETA__)
/* BeOS 5 doesn't have usleep(), but it has snooze(), which is identical. */
# include <be/kernel/OS.h>
static inline void testProcess_usleep(unsigned int msec)
diff --git a/Tests/Complex/Library/CMakeLists.txt b/Tests/Complex/Library/CMakeLists.txt
index 281e48a..7d8adb2 100644
--- a/Tests/Complex/Library/CMakeLists.txt
+++ b/Tests/Complex/Library/CMakeLists.txt
@@ -52,9 +52,9 @@ DEFINE_PROPERTY(
FULL_DOCS "A simple etst proerty that means nothign and is used for nothing"
)
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES FOO BAR)
-IF(NOT BEOS AND NOT WIN32) # No libm on BeOS.
+IF(NOT BEOS AND NOT WIN32 AND NOT HAIKU) # No libm on BeOS.
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
-ENDIF(NOT BEOS AND NOT WIN32)
+ENDIF(NOT BEOS AND NOT WIN32 AND NOT HAIKU)
GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO)
IF(${FOO_BAR_VAR} MATCHES "BAR")
ELSE(${FOO_BAR_VAR} MATCHES "BAR")
diff --git a/Tests/ComplexOneConfig/Library/CMakeLists.txt b/Tests/ComplexOneConfig/Library/CMakeLists.txt
index 281e48a..7d8adb2 100644
--- a/Tests/ComplexOneConfig/Library/CMakeLists.txt
+++ b/Tests/ComplexOneConfig/Library/CMakeLists.txt
@@ -52,9 +52,9 @@ DEFINE_PROPERTY(
FULL_DOCS "A simple etst proerty that means nothign and is used for nothing"
)
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES FOO BAR)
-IF(NOT BEOS AND NOT WIN32) # No libm on BeOS.
+IF(NOT BEOS AND NOT WIN32 AND NOT HAIKU) # No libm on BeOS.
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
-ENDIF(NOT BEOS AND NOT WIN32)
+ENDIF(NOT BEOS AND NOT WIN32 AND NOT HAIKU)
GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO)
IF(${FOO_BAR_VAR} MATCHES "BAR")
ELSE(${FOO_BAR_VAR} MATCHES "BAR")
diff --git a/Tests/ComplexRelativePaths/Library/CMakeLists.txt b/Tests/ComplexRelativePaths/Library/CMakeLists.txt
index 281e48a..7d8adb2 100644
--- a/Tests/ComplexRelativePaths/Library/CMakeLists.txt
+++ b/Tests/ComplexRelativePaths/Library/CMakeLists.txt
@@ -52,9 +52,9 @@ DEFINE_PROPERTY(
FULL_DOCS "A simple etst proerty that means nothign and is used for nothing"
)
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES FOO BAR)
-IF(NOT BEOS AND NOT WIN32) # No libm on BeOS.
+IF(NOT BEOS AND NOT WIN32 AND NOT HAIKU) # No libm on BeOS.
SET_TARGET_PROPERTIES(CMakeTestCLibraryShared PROPERTIES LINK_FLAGS "-lm")
-ENDIF(NOT BEOS AND NOT WIN32)
+ENDIF(NOT BEOS AND NOT WIN32 AND NOT HAIKU)
GET_TARGET_PROPERTY(FOO_BAR_VAR CMakeTestCLibraryShared FOO)
IF(${FOO_BAR_VAR} MATCHES "BAR")
ELSE(${FOO_BAR_VAR} MATCHES "BAR")
diff --git a/Utilities/cmcurl/CMake/CurlTests.c b/Utilities/cmcurl/CMake/CurlTests.c
index d74a4f0..c5ba7c2 100644
--- a/Utilities/cmcurl/CMake/CurlTests.c
+++ b/Utilities/cmcurl/CMake/CurlTests.c
@@ -38,7 +38,7 @@ main ()
# define PLATFORM_AIX_V3
#endif
-#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || (defined(__BEOS__) && !defined(__HAIKU__))
+#if defined(PLATFORM_SUNOS4) || defined(PLATFORM_AIX_V3) || defined(__BEOS__)
#error "O_NONBLOCK does not work on this platform"
#endif
int socket;
diff --git a/Utilities/cmcurl/select.c b/Utilities/cmcurl/select.c
index 51adbcf..82f9dc2 100644
--- a/Utilities/cmcurl/select.c
+++ b/Utilities/cmcurl/select.c
@@ -39,7 +39,7 @@
#error "We can't compile without select() support!"
#endif
-#if defined(__BEOS__) && !defined(__HAIKU__)
+#if defined(__BEOS__)
/* BeOS has FD_SET defined in socket.h */
#include <socket.h>
#endif
diff --git a/Utilities/cmzlib/zconf.h b/Utilities/cmzlib/zconf.h
index 6eb52d1..7a3b6fd 100644
--- a/Utilities/cmzlib/zconf.h
+++ b/Utilities/cmzlib/zconf.h
@@ -237,7 +237,7 @@
# endif
#endif
-#if defined (__BEOS__) && !defined (__HAIKU__)
+#if defined (__BEOS__)
# ifdef ZLIB_DLL
# ifdef ZLIB_INTERNAL
# define ZEXPORT __declspec(dllexport)
diff --git a/Utilities/cmzlib/zutil.h b/Utilities/cmzlib/zutil.h
index 74ef1f8..3053cd8 100644
--- a/Utilities/cmzlib/zutil.h
+++ b/Utilities/cmzlib/zutil.h
@@ -147,12 +147,6 @@ extern const char * const z_errmsg[10]; /* indexed by 2-zlib_error */
# define OS_CODE 0x0f
#endif
-/* Haiku defines both __HAIKU__ and __BEOS__ (for now) */
-/* many BeOS workarounds are no longer needed in Haiku */
-#if defined(__HAIKU__) && defined(__BEOS__)
-#undef __BEOS__
-#endif
-
#if defined(_BEOS_) || defined(RISCOS)
# define fdopen(fd,mode) NULL /* No fdopen() */
#endif
diff --git a/bootstrap b/bootstrap
index c999888..c573a90 100755
--- a/bootstrap
+++ b/bootstrap
@@ -142,7 +142,9 @@ if ${cmake_system_mingw}; then
cmake_default_prefix="c:/Program Files/CMake"
fi
elif ${cmake_system_haiku}; then
- cmake_default_prefix=`/bin/finddir B_COMMON_DIRECTORY`
+ cmake_default_prefix=`finddir B_COMMON_DIRECTORY`
+ cmake_man_dir="/documentation/man"
+ cmake_doc_dir="/documentation/packages/cmake-${cmake_version}"
else
cmake_default_prefix="/usr/local"
fi
--
1.7.10.2