Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt193
1 files changed, 172 insertions, 21 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 751c2dd548e..8c8f572df6e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -231,6 +231,9 @@ option(WITH_LIBMV "Enable libmv structure from motion library" ON)
# Misc
option(WITH_INPUT_NDOF "Enable NDOF input devices (SpaceNavigator and friends)" ON)
+if(WIN32)
+ option(WITH_INPUT_TOUCH "Enable Touch input (Windows 7 only)" OFF)
+endif()
option(WITH_RAYOPTIMIZATION "Enable use of SIMD (SSE) optimizations for the raytracer" ON)
if(UNIX AND NOT APPLE)
option(WITH_INSTALL_PORTABLE "Install redistributeable runtime, otherwise install into CMAKE_INSTALL_PREFIX" ON)
@@ -269,6 +272,17 @@ mark_as_advanced(WITH_CXX_GUARDEDALLOC)
option(WITH_ASSERT_ABORT "Call abort() when raising an assertion through BLI_assert()" OFF)
mark_as_advanced(WITH_ASSERT_ABORT)
+option(WITH_GPU_SAFETY "Perform extensive runtime tests to catch certain graphics API usage errors (degrades performance)" OFF)
+mark_as_advanced(WITH_GPU_SAFETY)
+
+option(WITH_ANDROID "Compiles Blender for Android" OFF)
+mark_as_advanced(WITH_ANDROID)
+
+option(WITH_GLES "Compiles Blender with OpenGL ES 2.0" OFF)
+mark_as_advanced(WITH_GLES)
+
+option(WITH_CODE_COVERAGE "Compile with support for generating code coverage information" OFF)
+mark_as_advanced(WITH_CODE_COVERAGE)
if(APPLE)
if(NOT CMAKE_OSX_ARCHITECTURES)
@@ -502,26 +516,109 @@ set(PLATFORM_LINKFLAGS_DEBUG "")
#-----------------------------------------------------------------------------
#Platform specifics
+
+
+if(WITH_ANDROID)
+add_definitions(-DWITH_ANDROID)
+add_definitions(-DNDEBUG)
+set(WITH_GLES ON )
+set(ANDROID_TARGET "armv7-a_9" CACHE STRING "Processor Target")
+
+endif()
+
+if(WITH_GLES)
+message(setting)
+add_definitions(-DGLES)
+add_definitions(-DREAL_GL_MODE=<GL/realgl.h>)
+add_definitions(-DFAKE_GL_MODE=<GL/fakegl.h>)
+
+else()
+add_definitions(-DREAL_GL_MODE=\"${CMAKE_SOURCE_DIR}/source/blender/empty.h\")
+add_definitions(-DFAKE_GL_MODE=\"${CMAKE_SOURCE_DIR}/source/blender/empty.h\")
+
+endif()
+
+
+
+
if(UNIX AND NOT APPLE)
- macro(find_package_wrapper)
- STRING(TOUPPER ${ARGV0} _NAME_UPPER)
- if(${WITH_STATIC_LIBS})
- set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES})
- set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ if(WITH_ANDROID)
+ set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/android/${ANDROID_TARGET})
+
+ if(NOT WITH_GHOST_SDL)
+ set(ANDROID_APP_LIBPATH ${CMAKE_SOURCE_DIR}/source/android/app/libs/armeabi/)
+ set(ANDROID_APP_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/source/android/app/jni/)
+ set(ANDROID_APP_LIBRARY main)
+ set(ANDROID_PROJ ${CMAKE_SOURCE_DIR}/source/android/app)
+ else()
+ set(ANDROID_PROJ ${LIBDIR}/aghosty-sdl CACHE STRING "Android Project Path")
endif()
- find_package(${ARGV})
- if(${WITH_STATIC_LIBS})
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_cmake_find_library_suffixes_back})
- unset(_cmake_find_library_suffixes_back)
+
+
+ set(JPEG "${LIBDIR}/jpeg")
+ set(JPEG_INCLUDE_DIR "${JPEG}/include")
+ set(JPEG_LIBPATH ${JPEG}/lib)
+ set(JPEG_LIBRARIES ${JPEG_LIBPATH}/libjpeg.so)
+
+
+ set(PNG "${LIBDIR}/png")
+ set(PNG_INCLUDE_DIR "${PNG}/include")
+ set(PNG_LIBPATH ${PNG}/lib)
+ set(PNG_LIBRARIES ${PNG_LIBPATH}/libpng15.so.15.9.0)
+
+ set(ZLIB_INCLUDE_DIRS ${LIBDIR}/zlib/include)
+
+ set(ZLIB_LIBRARIES ${LIBDIR}/zlib/lib/libz.so.1)
+ if(WITH_GHOST_SDL)
+ set(SDL_INCLUDE_DIR ${LIBDIR}/aghosty-sdl/jni/SDL/include/)
+
+ set(SDLMAIN_LIBRARY ${LIBDIR}/aghosty-sdl/jni/SDL/src/main/android/libSDLmain.a)
+ set(SDL_LIBRARY "${SDLMAIN_LIBRARY};${LIBDIR}/aghosty-sdl/libs/armeabi/libSDL.so")
+ set(SDL_LIBPATH ${LIBDIR}/aghosty-sdl/libs/armeabi/)
+ endif()
+
+ set(FREETYPE ${LIBDIR}/freetype)
+ set(FREETYPE_INCLUDE_DIRS
+ ${LIBDIR}/freetype/include
+ ${LIBDIR}/freetype/include/freetype2
+ )
+ set(FREETYPE_LIBRARY ${LIBDIR}/freetype/lib/libfreetype.so.6)
+
+ if(WITH_PYTHON)
+ # normally cached but not since we include them with blender
+ set(PYTHON_VERSION 3.2) # CACHE STRING)
+ set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m") # CACHE PATH)
+ set(PYTHON_LIBRARY "${LIBDIR}/python/lib/libpython3.2m.so.1.0") # CACHE FILEPATH)
+
+ # uncached vars
+ set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
+ set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}")
endif()
- endmacro()
- find_package_wrapper(JPEG REQUIRED)
- find_package_wrapper(PNG REQUIRED)
- find_package_wrapper(ZLIB REQUIRED)
- find_package_wrapper(Freetype REQUIRED)
+
+ else()
+ macro(find_package_wrapper)
+ STRING(TOUPPER ${ARGV0} _NAME_UPPER)
+ if(${WITH_STATIC_LIBS})
+ set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
- if(WITH_PYTHON)
+
+ endif()
+ find_package(${ARGV})
+ if(${WITH_STATIC_LIBS})
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${_cmake_find_library_suffixes_back})
+ unset(_cmake_find_library_suffixes_back)
+ endif()
+ endmacro()
+
+ find_package_wrapper(JPEG REQUIRED)
+ find_package_wrapper(PNG REQUIRED)
+ find_package_wrapper(ZLIB REQUIRED)
+ find_package_wrapper(Freetype REQUIRED)
+ endif()
+
+ if(WITH_PYTHON AND NOT WITH_ANDROID)
# No way to set py32. remove for now.
# find_package(PythonLibs)
@@ -563,7 +660,7 @@ if(UNIX AND NOT APPLE)
endif()
endif()
- if(WITH_SDL)
+ if(WITH_SDL AND NOT WITH_ANDROID)
find_package_wrapper(SDL)
mark_as_advanced(
SDLMAIN_LIBRARY
@@ -789,9 +886,16 @@ if(UNIX AND NOT APPLE)
endif()
# OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed
- set(PLATFORM_LINKLIBS "-lutil -lc -lm -lpthread -lstdc++")
+ set(PLATFORM_LINKLIBS "-lc -lm -lstdc++")
+ if(WITH_ANDROID)
+ set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -lGLESv2 -llog")
+ elseif(WITH_GLES)
+ set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -lGLESv2 -lEGL")
+ else()
+ set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -lutil -lpthread")
+ endif()
- if((NOT WITH_HEADLESS) AND (NOT WITH_GHOST_SDL))
+ if((NOT WITH_HEADLESS) AND (NOT WITH_GHOST_SDL) AND (NOT WITH_ANDROID))
find_package(X11 REQUIRED)
find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h ${X11_INC_SEARCH_PATH})
mark_as_advanced(X11_XF86keysym_INCLUDE_PATH)
@@ -824,7 +928,13 @@ if(UNIX AND NOT APPLE)
endif()
endif()
- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -pthread")
+ if(WITH_ANDROID)
+ set(PLATFORM_LINKFLAGS "-lGLESv1_CM")
+ else()
+ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -pthread")
+ endif()
+
+
# lfs on glibc, all compilers should use
add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE)
@@ -1765,7 +1875,17 @@ endif()
#-----------------------------------------------------------------------------
# Configure OpenGL.
+if(WITH_ANDROID)
+set(OPENGL_INCLUDE_DIR ${LIBDIR}/fakeGL/)
+set(OPENGL_gl_LIBRARY ${OPENGL_INCLUDE_DIR}/libGLarm.so)
+set(OPENGL_glu_LIBRARY ${OPENGL_INCLUDE_DIR}/libGLUarm.so)
+elseif(WITH_GLES)
+set(OPENGL_INCLUDE_DIR "" CACHE PATH "")
+set(OPENGL_gl_LIBRARY "" CACHE FILEPATH "")
+set(OPENGL_glu_LIBRARY "" CACHE FILEPATH "")
+else()
find_package(OpenGL)
+endif()
blender_include_dirs_sys("${OPENGL_INCLUDE_DIR}")
# unset(OPENGL_LIBRARIES CACHE) # not compat with older cmake
# unset(OPENGL_xmesa_INCLUDE_DIR CACHE) # not compat with older cmake
@@ -1795,6 +1915,7 @@ endif()
# Configure GLEW
if(WITH_SYSTEM_GLEW)
+
find_package(GLEW)
if(NOT GLEW_FOUND)
@@ -1807,7 +1928,11 @@ if(WITH_SYSTEM_GLEW)
)
else()
# set(GLEW_LIBRARY "") # unused
- set(GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew/include")
+ if(WITH_GLES)
+ set(GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew-android/include")
+ else()
+ set(GLEW_INCLUDE_PATH "${CMAKE_SOURCE_DIR}/extern/glew/include")
+ endif()
endif()
#-----------------------------------------------------------------------------
@@ -1979,15 +2104,36 @@ if(WITH_PYTHON)
endif()
endif()
+#-----------------------------------------------------------------------------
+# Code Coverage
+if(WITH_CODE_COVERAGE)
+ set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -fprofile-arcs -ftest-coverage")
+ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -fprofile-arcs -ftest-coverage")
+
+ if(CMAKE_COMPILER_IS_GNUCC)
+ set(PLATFORM_LINKLIBS "${PLATFORM_LINKLIBS} -lgcov")
+ endif()
+
+ if(XCODE_VERSION)
+ # at this time (Oct 2012) code coverage only works with gcc not clang and Xcode defaults to clang
+ # this is kind of hackish, since it isn't future proof
+ # set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42")
+ endif()
+endif()
+
+#-----------------------------------------------------------------------------
# Include warnings first, so its possible to disable them with user defined flags
# eg: -Wno-uninitialized
set(CMAKE_C_FLAGS "${C_WARNINGS} ${CMAKE_C_FLAGS} ${PLATFORM_CFLAGS}")
set(CMAKE_CXX_FLAGS "${CXX_WARNINGS} ${CMAKE_CXX_FLAGS} ${PLATFORM_CFLAGS}")
+#-----------------------------------------------------------------------------
+
#-------------------------------------------------------------------------------
# Global Defines
-# better not set includes here but this debugging option is off by default.
+# better not set includes here but these debugging options are off by default.
+
if(WITH_CXX_GUARDEDALLOC)
include_directories(${CMAKE_SOURCE_DIR}/intern/guardedalloc)
add_definitions(-DWITH_CXX_GUARDEDALLOC)
@@ -1997,6 +2143,10 @@ if(WITH_ASSERT_ABORT)
add_definitions(-DWITH_ASSERT_ABORT)
endif()
+if(WITH_GPU_SAFETY)
+ add_definitions(-DWITH_GPU_SAFETY)
+endif()
+
# message(STATUS "Using CFLAGS: ${CMAKE_C_FLAGS}")
# message(STATUS "Using CXXFLAGS: ${CMAKE_CXX_FLAGS}")
@@ -2060,6 +2210,7 @@ if(FIRST_RUN)
info_cfg_option(WITH_FFTW3)
info_cfg_option(WITH_INTERNATIONAL)
info_cfg_option(WITH_INPUT_NDOF)
+ info_cfg_option(WITH_INPUT_TOUCH)
info_cfg_option(WITH_CYCLES)
info_cfg_option(WITH_OPENCOLORIO)