Haiku fixes, merged from stable-2.0 branch.

This commit is contained in:
Ryan C. Gordon 2010-12-30 19:50:58 -05:00
parent 7d253b13ed
commit 5f5775c1ec
2 changed files with 16 additions and 9 deletions

View File

@ -123,7 +123,9 @@ IF(BEOS)
# We add this explicitly, since we don't want CMake to think this # We add this explicitly, since we don't want CMake to think this
# is a C++ project unless we're on BeOS. # is a C++ project unless we're on BeOS.
SET(PHYSFS_BEOS_SRCS src/platform_beos.cpp) SET(PHYSFS_BEOS_SRCS src/platform_beos.cpp)
SET(OPTIONAL_LIBRARY_LIBS ${OPTIONAL_LIBRARY_LIBS} be root) FIND_LIBRARY(BE_LIBRARY be)
FIND_LIBRARY(ROOT_LIBRARY root)
SET(OPTIONAL_LIBRARY_LIBS ${OPTIONAL_LIBRARY_LIBS} ${BE_LIBRARY} ${ROOT_LIBRARY})
ENDIF(BEOS) ENDIF(BEOS)
# Almost everything is "compiled" here, but things that don't apply to the # Almost everything is "compiled" here, but things that don't apply to the
@ -334,7 +336,8 @@ IF(PHYSFS_BUILD_TEST)
FIND_PATH(READLINE_H readline/readline.h) FIND_PATH(READLINE_H readline/readline.h)
FIND_PATH(HISTORY_H readline/history.h) FIND_PATH(HISTORY_H readline/history.h)
IF(READLINE_H AND HISTORY_H) IF(READLINE_H AND HISTORY_H)
SET(CMAKE_REQUIRED_LIBRARIES curses) FIND_LIBRARY(CURSES_LIBRARY NAMES curses ncurses)
SET(CMAKE_REQUIRED_LIBRARIES ${CURSES_LIBRARY})
FIND_LIBRARY(READLINE_LIBRARY readline) FIND_LIBRARY(READLINE_LIBRARY readline)
FIND_LIBRARY(HISTORY_LIBRARY history) FIND_LIBRARY(HISTORY_LIBRARY history)
IF(READLINE_LIBRARY AND HISTORY_LIBRARY) IF(READLINE_LIBRARY AND HISTORY_LIBRARY)

View File

@ -170,14 +170,18 @@ static team_id getTeamID(void)
char *__PHYSFS_platformCalcBaseDir(const char *argv0) char *__PHYSFS_platformCalcBaseDir(const char *argv0)
{ {
/* in case there isn't a BApplication yet, we'll construct a roster. */ image_info info;
BRoster roster; int32 cookie = 0;
app_info info;
status_t rc = roster.GetRunningAppInfo(getTeamID(), &info); while (get_next_image_info(0, &cookie, &info) == B_OK)
BAIL_IF_MACRO(rc < B_OK, strerror(rc), NULL); {
BEntry entry(&(info.ref), true); if (info.type == B_APP_IMAGE)
break;
} /* while */
BEntry entry(info.name, true);
BPath path; BPath path;
rc = entry.GetPath(&path); /* (path) now has binary's path. */ status_t rc = entry.GetPath(&path); /* (path) now has binary's path. */
assert(rc == B_OK); assert(rc == B_OK);
rc = path.GetParent(&path); /* chop filename, keep directory. */ rc = path.GetParent(&path); /* chop filename, keep directory. */
assert(rc == B_OK); assert(rc == B_OK);