From Rafa Gaitan and Jorge Izquierdo, build support for Android NDK.
"- In order to build against GLES1 we execute: $ mkdir build_android_gles1 $ cd build_android_gles1 $ cmake .. -DOSG_BUILD_PLATFORM_ANDROID=ON -DDYNAMIC_OPENTHREADS=OFF -DDYNAMIC_OPENSCENEGRAPH=OFF -DANDROID_NDK=<path_to_android_ndk>/ -DOSG_GLES1_AVAILABLE=ON -DOSG_GL1_AVAILABLE=OFF -DOSG_GL2_AVAILABLE=OFF -DOSG_GL_DISPLAYLISTS_AVAILABLE=OFF -DJ=2 -DOSG_CPP_EXCEPTIONS_AVAILABLE=OFF $ make If all is correct you will have and static OSG inside: build_android_gles1/bin/ndk/local/armeabi. - GLES2 is not tested/proved, but I think it could be possible build it with the correct cmake flags. - The flag -DJ=2 is used to pass to the ndk-build the number of processors to speed up the building. - make install is not yet supported."
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
IF(ANDROID)
|
||||
SET(MODULE_USER_STATIC_OR_DYNAMIC ${OPENSCENEGRAPH_USER_DEFINED_DYNAMIC_OR_STATIC})
|
||||
ENDIF(ANDROID)
|
||||
|
||||
#the old construct SUBDIRS( was substituded by ADD_SUBDIRECTORY that is to be preferred according on CMake docs.
|
||||
FOREACH( mylibfolder
|
||||
OpenThreads
|
||||
@@ -26,7 +30,7 @@ FOREACH( mylibfolder
|
||||
|
||||
ENDFOREACH()
|
||||
|
||||
IF (QT4_FOUND)
|
||||
IF (QT4_FOUND AND NOT ANDROID)
|
||||
ADD_SUBDIRECTORY(osgQt)
|
||||
ENDIF()
|
||||
|
||||
@@ -34,3 +38,7 @@ IF(MSVC80 OR MSVC90)
|
||||
OPTION(OSG_MSVC_GENERATE_PLUGINS_AND_WRAPPERS_MANIFESTS "Generate or not manifests files under VS8 for dynamically loaded dlls" ON)
|
||||
ENDIF()
|
||||
|
||||
IF(ANDROID)
|
||||
configure_file("${OSG_ANDROID_TEMPLATES}/Android.mk.src.in" "${CMAKE_CURRENT_BINARY_DIR}/Android.mk")
|
||||
ENDIF()
|
||||
|
||||
|
||||
@@ -9,7 +9,9 @@ SET(OPENTHREADS_SOVERSION 12)
|
||||
|
||||
SET(OPENTHREADS_VERSION ${OPENTHREADS_MAJOR_VERSION}.${OPENTHREADS_MINOR_VERSION}.${OPENTHREADS_PATCH_VERSION})
|
||||
|
||||
INCLUDE(CheckAtomicOps)
|
||||
IF(NOT ANDROID)
|
||||
INCLUDE(CheckAtomicOps)
|
||||
ENDIF()
|
||||
|
||||
# User Options
|
||||
OPTION(DYNAMIC_OPENTHREADS "Set to ON to build OpenThreads for dynamic linking. Use OFF for static." ON)
|
||||
@@ -62,9 +64,10 @@ SET(OpenThreads_PUBLIC_HEADERS
|
||||
${OPENTHREADS_CONFIG_HEADER}
|
||||
)
|
||||
|
||||
IF(NOT ANDROID)
|
||||
# Use our modified version of FindThreads.cmake which has Sproc hacks.
|
||||
FIND_PACKAGE(Threads)
|
||||
|
||||
FIND_PACKAGE(Threads)
|
||||
ENDIF()
|
||||
# Do we have sproc?
|
||||
IF(CMAKE_SYSTEM MATCHES IRIX)
|
||||
IF(CMAKE_USE_SPROC_INIT)
|
||||
@@ -83,7 +86,9 @@ IF(QT4_FOUND)
|
||||
ENDIF()
|
||||
|
||||
# Maybe we should be using the FindThreads.cmake module?
|
||||
IF(QT4_FOUND AND BUILD_OPENTHREADS_WITH_QT)
|
||||
IF(ANDROID)
|
||||
SUBDIRS(pthreads)
|
||||
ELSEIF(QT4_FOUND AND BUILD_OPENTHREADS_WITH_QT)
|
||||
SUBDIRS(qt)
|
||||
ELSEIF(WIN32)
|
||||
# So I think Cygwin wants to use pthreads
|
||||
|
||||
@@ -6,12 +6,10 @@ INCLUDE (CheckSymbolExists)
|
||||
INCLUDE (CheckCXXSourceCompiles)
|
||||
|
||||
SET(LIB_NAME OpenThreads)
|
||||
SET(LIB_PUBLIC_HEADERS ${OpenThreads_PUBLIC_HEADERS})
|
||||
SET(TARGET_H ${OpenThreads_PUBLIC_HEADERS})
|
||||
|
||||
ADD_LIBRARY(${LIB_NAME}
|
||||
${OPENTHREADS_USER_DEFINED_DYNAMIC_OR_STATIC}
|
||||
${LIB_PUBLIC_HEADERS}
|
||||
PThread.cpp
|
||||
SET(TARGET_SRC
|
||||
PThread.cpp
|
||||
PThreadBarrier.cpp
|
||||
PThreadBarrierPrivateData.h
|
||||
PThreadCondition.cpp
|
||||
@@ -22,126 +20,145 @@ ADD_LIBRARY(${LIB_NAME}
|
||||
../common/Version.cpp
|
||||
../common/Atomic.cpp
|
||||
)
|
||||
|
||||
IF(OPENTHREADS_SONAMES)
|
||||
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES VERSION ${OPENTHREADS_VERSION} SOVERSION ${OPENTHREADS_SOVERSION})
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_REQUIRED_LIBRARIES_SAFE "${CMAKE_REQUIRED_LIBRARIES}")
|
||||
SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
||||
|
||||
|
||||
CHECK_FUNCTION_EXISTS(pthread_yield HAVE_PTHREAD_YIELD)
|
||||
IF(HAVE_PTHREAD_YIELD)
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_YIELD)
|
||||
IF(ANDROID)
|
||||
ADD_DEFINITIONS(-D_GNU_SOURCE)
|
||||
SET(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_GNU_SOURCE")
|
||||
SET(MODULE_USER_STATIC_OR_DYNAMIC ${OPENTHREADS_USER_DEFINED_DYNAMIC_OR_STATIC})
|
||||
#SET(CPP_EXTENSION "c++")
|
||||
SETUP_ANDROID_LIBRARY(${LIB_NAME})
|
||||
ELSE()
|
||||
# sched_yield appears not in libc, pthreads or whatever on some systems
|
||||
CHECK_FUNCTION_EXISTS(sched_yield HAVE_SCHED_YIELD)
|
||||
IF(NOT HAVE_SCHED_YIELD)
|
||||
CHECK_LIBRARY_EXISTS(rt sched_yield "" HAVE_SCHED_YIELD)
|
||||
IF(HAVE_SCHED_YIELD)
|
||||
SET(CMAKE_THREAD_LIBS_INIT "${CMAKE_THREAD_LIBS_INIT} -lrt")
|
||||
|
||||
# should check?
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_TESTCANCEL)
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_CANCEL)
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_SETCANCELSTATE)
|
||||
|
||||
CHECK_FUNCTION_EXISTS(pthread_yield HAVE_PTHREAD_YIELD)
|
||||
IF(HAVE_PTHREAD_YIELD)
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_YIELD)
|
||||
ELSE()
|
||||
# sched_yield appears not in libc, pthreads or whatever on some systems
|
||||
CHECK_FUNCTION_EXISTS(sched_yield HAVE_SCHED_YIELD)
|
||||
IF(NOT HAVE_SCHED_YIELD)
|
||||
CHECK_LIBRARY_EXISTS(rt sched_yield "" HAVE_SCHED_YIELD)
|
||||
IF(HAVE_SCHED_YIELD)
|
||||
SET(CMAKE_THREAD_LIBS_INIT "${CMAKE_THREAD_LIBS_INIT} -lrt")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(HAVE_SCHED_YIELD)
|
||||
ADD_DEFINITIONS(-DHAVE_SCHED_YIELD)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(HAVE_SCHED_YIELD)
|
||||
ADD_DEFINITIONS(-DHAVE_SCHED_YIELD)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
# need to have that for pthread_setaffinity_np on linux
|
||||
ADD_DEFINITIONS(-D_GNU_SOURCE)
|
||||
SET(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_GNU_SOURCE")
|
||||
ENDIF()
|
||||
|
||||
CHECK_FUNCTION_EXISTS(pthread_setconcurrency HAVE_PTHREAD_SETCONCURRENCY)
|
||||
IF(HAVE_PTHREAD_SETCONCURRENCY)
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_SETCONCURRENCY)
|
||||
ENDIF()
|
||||
|
||||
CHECK_FUNCTION_EXISTS(pthread_getconcurrency HAVE_PTHREAD_GETCONCURRENCY)
|
||||
IF(HAVE_PTHREAD_GETCONCURRENCY)
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_GETCONCURRENCY)
|
||||
ENDIF()
|
||||
|
||||
CHECK_FUNCTION_EXISTS(pthread_setaffinity_np HAVE_PTHREAD_SETAFFINITY_NP)
|
||||
IF(HAVE_PTHREAD_SETAFFINITY_NP)
|
||||
# double check that pthread_setaffinity_np is available as FreeBSD header doesn't contain required function
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <pthread.h>
|
||||
int main() {
|
||||
cpu_set_t cpumask;
|
||||
CPU_ZERO( &cpumask );
|
||||
CPU_SET( 0, &cpumask );
|
||||
pthread_setaffinity_np( pthread_self(), sizeof(cpumask), &cpumask);
|
||||
return 0;
|
||||
}" COMPILES_PTHREAD_SETAFFINITY_NP)
|
||||
|
||||
IF (NOT COMPILES_PTHREAD_SETAFFINITY_NP)
|
||||
SET(HAVE_PTHREAD_SETAFFINITY_NP OFF)
|
||||
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
# need to have that for pthread_setaffinity_np on linux
|
||||
ADD_DEFINITIONS(-D_GNU_SOURCE)
|
||||
SET(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_GNU_SOURCE")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(HAVE_PTHREAD_SETAFFINITY_NP)
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_SETAFFINITY_NP)
|
||||
ELSE()
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <sched.h>
|
||||
int main() {
|
||||
cpu_set_t cpumask;
|
||||
sched_setaffinity( 0, sizeof(cpumask), &cpumask );
|
||||
return 0;
|
||||
}" HAVE_THREE_PARAM_SCHED_SETAFFINITY)
|
||||
IF(HAVE_THREE_PARAM_SCHED_SETAFFINITY)
|
||||
ADD_DEFINITIONS(-DHAVE_THREE_PARAM_SCHED_SETAFFINITY)
|
||||
ELSE()
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <sched.h>
|
||||
int main() {
|
||||
cpu_set_t cpumask;
|
||||
sched_setaffinity( 0, &cpumask );
|
||||
return 0;
|
||||
}" HAVE_TWO_PARAM_SCHED_SETAFFINITY)
|
||||
IF(HAVE_TWO_PARAM_SCHED_SETAFFINITY)
|
||||
ADD_DEFINITIONS(-DHAVE_TWO_PARAM_SCHED_SETAFFINITY)
|
||||
CHECK_FUNCTION_EXISTS(pthread_setconcurrency HAVE_PTHREAD_SETCONCURRENCY)
|
||||
IF(HAVE_PTHREAD_SETCONCURRENCY)
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_SETCONCURRENCY)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
SET(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES_SAFE}")
|
||||
CHECK_FUNCTION_EXISTS(pthread_getconcurrency HAVE_PTHREAD_GETCONCURRENCY)
|
||||
IF(HAVE_PTHREAD_GETCONCURRENCY)
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_GETCONCURRENCY)
|
||||
ENDIF()
|
||||
|
||||
TARGET_LINK_LIBRARIES(${LIB_NAME}
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
)
|
||||
CHECK_FUNCTION_EXISTS(pthread_setaffinity_np HAVE_PTHREAD_SETAFFINITY_NP)
|
||||
IF(HAVE_PTHREAD_SETAFFINITY_NP)
|
||||
# double check that pthread_setaffinity_np is available as FreeBSD header doesn't contain required function
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <pthread.h>
|
||||
int main() {
|
||||
cpu_set_t cpumask;
|
||||
CPU_ZERO( &cpumask );
|
||||
CPU_SET( 0, &cpumask );
|
||||
pthread_setaffinity_np( pthread_self(), sizeof(cpumask), &cpumask);
|
||||
return 0;
|
||||
}" COMPILES_PTHREAD_SETAFFINITY_NP)
|
||||
|
||||
# Since we're building different platforms binaries in
|
||||
# their respective directories, we need to set the
|
||||
# link directory so it can find this location.
|
||||
LINK_DIRECTORIES(
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
IF (NOT COMPILES_PTHREAD_SETAFFINITY_NP)
|
||||
SET(HAVE_PTHREAD_SETAFFINITY_NP OFF)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
INSTALL(
|
||||
TARGETS OpenThreads
|
||||
ARCHIVE DESTINATION lib${LIB_POSTFIX} COMPONENT libopenthreads-dev
|
||||
LIBRARY DESTINATION lib${LIB_POSTFIX} COMPONENT libopenthreads
|
||||
RUNTIME DESTINATION bin COMPONENT libopenthreads
|
||||
)
|
||||
IF(HAVE_PTHREAD_SETAFFINITY_NP)
|
||||
ADD_DEFINITIONS(-DHAVE_PTHREAD_SETAFFINITY_NP)
|
||||
ELSE()
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <sched.h>
|
||||
int main() {
|
||||
cpu_set_t cpumask;
|
||||
sched_setaffinity( 0, sizeof(cpumask), &cpumask );
|
||||
return 0;
|
||||
}" HAVE_THREE_PARAM_SCHED_SETAFFINITY)
|
||||
IF(HAVE_THREE_PARAM_SCHED_SETAFFINITY)
|
||||
ADD_DEFINITIONS(-DHAVE_THREE_PARAM_SCHED_SETAFFINITY)
|
||||
ELSE()
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
#include <sched.h>
|
||||
int main() {
|
||||
cpu_set_t cpumask;
|
||||
sched_setaffinity( 0, &cpumask );
|
||||
return 0;
|
||||
}" HAVE_TWO_PARAM_SCHED_SETAFFINITY)
|
||||
IF(HAVE_TWO_PARAM_SCHED_SETAFFINITY)
|
||||
ADD_DEFINITIONS(-DHAVE_TWO_PARAM_SCHED_SETAFFINITY)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(NOT OSG_COMPILE_FRAMEWORKS)
|
||||
INSTALL(
|
||||
FILES ${OpenThreads_PUBLIC_HEADERS}
|
||||
DESTINATION include/OpenThreads
|
||||
COMPONENT libopenthreads-dev
|
||||
)
|
||||
SET(CMAKE_REQUIRED_LIBRARIES_SAFE "${CMAKE_REQUIRED_LIBRARIES}")
|
||||
SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
||||
|
||||
ELSE()
|
||||
MESSAGE("Will compile OpenThreads.framework!")
|
||||
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES
|
||||
FRAMEWORK TRUE
|
||||
FRAMEWORK_VERSION ${OPENTHREADS_SOVERSION}
|
||||
PUBLIC_HEADER "${OpenThreads_PUBLIC_HEADERS}"
|
||||
INSTALL_NAME_DIR "${OSG_COMPILE_FRAMEWORKS_INSTALL_NAME_DIR}"
|
||||
ADD_LIBRARY(${LIB_NAME}
|
||||
${OPENTHREADS_USER_DEFINED_DYNAMIC_OR_STATIC}
|
||||
${TARGET_H}
|
||||
${TARGET_SRC}
|
||||
)
|
||||
|
||||
IF(OPENTHREADS_SONAMES)
|
||||
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES VERSION ${OPENTHREADS_VERSION} SOVERSION ${OPENTHREADS_SOVERSION})
|
||||
ENDIF()
|
||||
|
||||
|
||||
SET(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES_SAFE}")
|
||||
|
||||
TARGET_LINK_LIBRARIES(${LIB_NAME}
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
)
|
||||
|
||||
# Since we're building different platforms binaries in
|
||||
# their respective directories, we need to set the
|
||||
# link directory so it can find this location.
|
||||
LINK_DIRECTORIES(
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
|
||||
INSTALL(
|
||||
TARGETS OpenThreads
|
||||
ARCHIVE DESTINATION lib${LIB_POSTFIX} COMPONENT libopenthreads-dev
|
||||
LIBRARY DESTINATION lib${LIB_POSTFIX} COMPONENT libopenthreads
|
||||
RUNTIME DESTINATION bin COMPONENT libopenthreads
|
||||
)
|
||||
|
||||
IF(NOT OSG_COMPILE_FRAMEWORKS)
|
||||
INSTALL(
|
||||
FILES ${OpenThreads_PUBLIC_HEADERS}
|
||||
DESTINATION include/OpenThreads
|
||||
COMPONENT libopenthreads-dev
|
||||
)
|
||||
|
||||
ELSE()
|
||||
MESSAGE("Will compile OpenThreads.framework!")
|
||||
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES
|
||||
FRAMEWORK TRUE
|
||||
FRAMEWORK_VERSION ${OPENTHREADS_SOVERSION}
|
||||
PUBLIC_HEADER "${OpenThreads_PUBLIC_HEADERS}"
|
||||
INSTALL_NAME_DIR "${OSG_COMPILE_FRAMEWORKS_INSTALL_NAME_DIR}"
|
||||
)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
#commented out# INCLUDE(ModuleInstall OPTIONAL)
|
||||
|
||||
@@ -23,11 +23,13 @@
|
||||
#include <pthread.h>
|
||||
#include <limits.h>
|
||||
|
||||
#if defined __linux || defined __sun || defined __APPLE__
|
||||
#if defined __linux || defined __sun || defined __APPLE__ || ANDROID
|
||||
#include <string.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/unistd.h>
|
||||
#if !defined ANDROID
|
||||
#include <sys/unistd.h>
|
||||
#endif
|
||||
#endif
|
||||
#if defined(__sgi)
|
||||
#include <unistd.h>
|
||||
@@ -44,6 +46,12 @@
|
||||
#include <sys/sysctl.h>
|
||||
#endif
|
||||
|
||||
#if defined(ANDROID)
|
||||
#ifndef PAGE_SIZE
|
||||
#define PAGE_SIZE 0x400
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <OpenThreads/Thread>
|
||||
#include "PThreadPrivateData.h"
|
||||
|
||||
@@ -723,7 +731,7 @@ int Thread::join()
|
||||
//
|
||||
int Thread::testCancel()
|
||||
{
|
||||
|
||||
#if defined(HAVE_PTHREAD_TESTCANCEL)
|
||||
PThreadPrivateData *pd = static_cast<PThreadPrivateData *> (_prvData);
|
||||
|
||||
if(pthread_self() != pd->tid)
|
||||
@@ -732,7 +740,9 @@ int Thread::testCancel()
|
||||
pthread_testcancel();
|
||||
|
||||
return 0;
|
||||
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -744,7 +754,7 @@ int Thread::testCancel()
|
||||
//
|
||||
int Thread::cancel()
|
||||
{
|
||||
|
||||
#if defined(HAVE_PTHREAD_CANCEL)
|
||||
PThreadPrivateData *pd = static_cast<PThreadPrivateData *> (_prvData);
|
||||
if (pd->isRunning)
|
||||
{
|
||||
@@ -753,6 +763,9 @@ int Thread::cancel()
|
||||
return status;
|
||||
}
|
||||
return 0;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -763,9 +776,11 @@ int Thread::cancel()
|
||||
//
|
||||
int Thread::setCancelModeDisable()
|
||||
{
|
||||
|
||||
#if defined(HAVE_PTHREAD_SETCANCELSTATE)
|
||||
return pthread_setcancelstate( PTHREAD_CANCEL_DISABLE, 0 );
|
||||
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -776,10 +791,14 @@ int Thread::setCancelModeDisable()
|
||||
//
|
||||
int Thread::setCancelModeAsynchronous() {
|
||||
|
||||
#if defined(HAVE_PTHREAD_SETCANCELSTATE)
|
||||
int status = pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, 0);
|
||||
if(status != 0) return status;
|
||||
|
||||
return pthread_setcancelstate( PTHREAD_CANCEL_ENABLE, 0);
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -790,11 +809,14 @@ int Thread::setCancelModeAsynchronous() {
|
||||
//
|
||||
int Thread::setCancelModeDeferred() {
|
||||
|
||||
#if defined(HAVE_PTHREAD_SETCANCELSTATE)
|
||||
int status = pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, 0);
|
||||
if(status != 0) return status;
|
||||
|
||||
return pthread_setcancelstate( PTHREAD_CANCEL_ENABLE, 0);
|
||||
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -947,7 +969,12 @@ int Thread::YieldCurrentThread()
|
||||
//
|
||||
int Thread::microSleep(unsigned int microsec)
|
||||
{
|
||||
#if !defined(ANDROID)
|
||||
return ::usleep(microsec);
|
||||
#else
|
||||
::usleep(microsec);
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -166,7 +166,9 @@ ADD_SUBDIRECTORY(obj)
|
||||
|
||||
ADD_SUBDIRECTORY(pic)
|
||||
ADD_SUBDIRECTORY(stl)
|
||||
ADD_SUBDIRECTORY(3ds)
|
||||
IF(NOT ANDROID)
|
||||
ADD_SUBDIRECTORY(3ds)
|
||||
ENDIF()
|
||||
ADD_SUBDIRECTORY(ac)
|
||||
ADD_SUBDIRECTORY(pov)
|
||||
|
||||
@@ -203,7 +205,7 @@ ENDIF()
|
||||
# ADD_SUBDIRECTORY(OpenAL)
|
||||
# ENDIF()
|
||||
|
||||
IF(APPLE)
|
||||
IF(APPLE AND NOT ANDROID)
|
||||
ADD_SUBDIRECTORY(imageio)
|
||||
ENDIF()
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "memory.h"
|
||||
#include "BITSET.h"
|
||||
|
||||
#include <cstring>
|
||||
|
||||
bool BITSET::Init(int numberOfBits)
|
||||
{
|
||||
|
||||
@@ -47,11 +47,19 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
|
||||
STRING(REGEX REPLACE "-pedantic" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||
ENDIF()
|
||||
|
||||
SET(TARGET_LIBRARIES_VARS
|
||||
QT_QTCORE_LIBRARY
|
||||
QT_QTGUI_LIBRARY
|
||||
QT_QTOPENGL_LIBRARY
|
||||
SET(TARGET_LIBRARIES
|
||||
${TARGET_LIBRARIES}
|
||||
${QT_QTCORE_LIBRARY}
|
||||
${QT_QTGUI_LIBRARY}
|
||||
${QT_QTOPENGL_LIBRARY}
|
||||
)
|
||||
|
||||
# FIXME: This should work but something with the LINK_WITH_VARIABLES macro is not working
|
||||
#SET(TARGET_LIBRARIES_VARS
|
||||
# QT_QTCORE_LIBRARY
|
||||
# QT_QTGUI_LIBRARY
|
||||
# QT_QTOPENGL_LIBRARY
|
||||
#)
|
||||
INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR})
|
||||
|
||||
SETUP_LIBRARY(${LIB_NAME})
|
||||
|
||||
@@ -71,7 +71,11 @@ ELSE()
|
||||
ENDIF()
|
||||
|
||||
ELSE()
|
||||
SET(OSG_WINDOWING_SYSTEM "X11" CACHE STRING "Windowing system type for graphics window creation. options only X11")
|
||||
IF(ANDROID)
|
||||
SET(OSG_WINDOWING_SYSTEM "None" CACHE STRING "None Windowing system type for graphics window creation.")
|
||||
ELSE()
|
||||
SET(OSG_WINDOWING_SYSTEM "X11" CACHE STRING "Windowing system type for graphics window creation. options only X11")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(${OSG_WINDOWING_SYSTEM} STREQUAL "Cocoa")
|
||||
@@ -156,7 +160,7 @@ ELSE()
|
||||
|
||||
SET(LIB_EXTRA_LIBS ${COCOA_LIBRARY} ${LIB_EXTRA_LIBS})
|
||||
|
||||
ELSE()
|
||||
ELSEIF(${OSG_WINDOWING_SYSTEM} STREQUAL "x11")
|
||||
# X11 for everybody else
|
||||
INCLUDE(FindPkgConfig OPTIONAL)
|
||||
IF(PKG_CONFIG_FOUND)
|
||||
@@ -217,6 +221,8 @@ ELSE()
|
||||
|
||||
SET(LIB_EXTRA_LIBS ${X11_X11_LIB} ${LIB_EXTRA_LIBS})
|
||||
ENDIF(APPLE)
|
||||
ELSE()
|
||||
MESSAGE(STATUS "Windowing system not supported")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user