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:
authorJason Wilkins <Jason.A.Wilkins@gmail.com>2014-10-08 00:46:19 +0400
committerJason Wilkins <Jason.A.Wilkins@gmail.com>2014-10-08 00:47:32 +0400
commit8d084e8c8f48dd2f07d4a3fbd4a941a7bcc0dcfb (patch)
tree5bf15f4f74f3e5a307cfa3f734b2cd086dca69bd /build_files
parenta8705e99ee8ec9de2f25c3bac1e9895c2f98c224 (diff)
Ghost Context Refactor
https://developer.blender.org/D643 Separates graphics context creation from window code in Ghost so that they can vary separately.
Diffstat (limited to 'build_files')
-rw-r--r--build_files/cmake/Modules/FindOpenGLES.cmake76
-rw-r--r--build_files/cmake/macros.cmake18
-rw-r--r--build_files/scons/tools/btools.py15
3 files changed, 102 insertions, 7 deletions
diff --git a/build_files/cmake/Modules/FindOpenGLES.cmake b/build_files/cmake/Modules/FindOpenGLES.cmake
new file mode 100644
index 00000000000..1bb06c2f31c
--- /dev/null
+++ b/build_files/cmake/Modules/FindOpenGLES.cmake
@@ -0,0 +1,76 @@
+# - Try to find OpenGLES
+# Once done this will define
+#
+# OPENGLES_FOUND - system has OpenGLES and EGL
+# OPENGL_EGL_FOUND - system has EGL
+# OPENGLES_INCLUDE_DIR - the GLES include directory
+# OPENGLES_LIBRARY - the GLES library
+# OPENGLES_EGL_INCLUDE_DIR - the EGL include directory
+# OPENGLES_EGL_LIBRARY - the EGL library
+# OPENGLES_LIBRARIES - all libraries needed for OpenGLES
+# OPENGLES_INCLUDES - all includes needed for OpenGLES
+
+# If OPENGLES_ROOT_DIR was defined in the environment, use it.
+IF(NOT OPENGLES_ROOT_DIR AND NOT $ENV{OPENGLES_ROOT_DIR} STREQUAL "")
+ SET(OPENGLES_ROOT_DIR $ENV{OPENGLES_ROOT_DIR})
+ENDIF()
+
+SET(_opengles_SEARCH_DIRS
+ ${OPENGLES_ROOT_DIR}
+ /usr/local
+)
+
+FIND_PATH(OPENGLES_INCLUDE_DIR
+ NAMES
+ GLES2/gl2.h
+ HINTS
+ ${_opengles_SEARCH_DIRS}
+)
+
+FIND_LIBRARY(OPENGLES_LIBRARY
+ NAMES
+ GLESv2
+ PATHS
+ ${_opengles_SEARCH_DIRS}
+ PATH_SUFFIXES
+ lib64 lib
+)
+
+FIND_PATH(OPENGLES_EGL_INCLUDE_DIR
+ NAMES
+ EGL/egl.h
+ HINTS
+ ${_opengles_SEARCH_DIRS}
+)
+
+FIND_LIBRARY(OPENGLES_EGL_LIBRARY
+ NAMES
+ EGL
+ HINTS
+ ${_opengles_SEARCH_DIRS}
+ PATH_SUFFIXES
+ lib64 lib
+)
+
+IF(OPENGLES_EGL_LIBRARY AND OPENGLES_EGL_INCLUDE_DIR)
+ SET(OPENGL_EGL_FOUND "YES")
+ELSE()
+ SET(OPENGL_EGL_FOUND "NO")
+ENDIF()
+
+IF(OPENGLES_LIBRARY AND OPENGLES_INCLUDE_DIR AND
+ OPENGLES_EGL_LIBRARY AND OPENGLES_EGL_INCLUDE_DIR)
+ SET(OPENGLES_LIBRARIES ${OPENGLES_LIBRARY} ${OPENGLES_LIBRARIES}
+ ${OPENGLES_EGL_LIBRARY})
+ SET(OPENGLES_INCLUDES ${OPENGLES_INCLUDE_DIR} ${OPENGLES_EGL_INCLUDE_DIR})
+ SET(OPENGLES_FOUND "YES")
+ELSE()
+ SET(OPENGLES_FOUND "NO")
+ENDIF()
+
+MARK_AS_ADVANCED(
+ OPENGLES_EGL_INCLUDE_DIR
+ OPENGLES_EGL_LIBRARY
+ OPENGLES_INCLUDE_DIR
+)
+
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index adbba817150..b42e62e719c 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -284,8 +284,7 @@ macro(setup_liblinks
set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}")
target_link_libraries(${target}
- ${OPENGL_gl_LIBRARY}
- ${OPENGL_glu_LIBRARY}
+ ${BLENDER_GL_LIBRARIES}
${PNG_LIBRARIES}
${ZLIB_LIBRARIES}
${FREETYPE_LIBRARY})
@@ -305,7 +304,7 @@ macro(setup_liblinks
endif()
if(WITH_SYSTEM_GLEW)
- target_link_libraries(${target} ${GLEW_LIBRARY})
+ target_link_libraries(${target} ${BLENDER_GLEW_LIBRARIES})
endif()
if(WITH_BULLET AND WITH_SYSTEM_BULLET)
target_link_libraries(${target} ${BULLET_LIBRARIES})
@@ -359,9 +358,12 @@ macro(setup_liblinks
endif()
if(WITH_CODEC_FFMPEG)
- # Strange!, without this ffmpeg gives linking errors (on linux)
- # even though its linked above
- target_link_libraries(${target} ${OPENGL_glu_LIBRARY})
+ # Strange! Without this ffmpeg gives linking errors (on linux),
+ # even though it's linked above.
+ # XXX: Does FFMPEG depend on GLU?
+ if(WITH_GLU)
+ target_link_libraries(${target} ${OPENGL_glu_LIBRARY})
+ endif()
target_link_libraries(${target} ${FFMPEG_LIBRARIES})
endif()
@@ -557,6 +559,8 @@ macro(SETUP_BLENDER_SORTED_LIBS)
extern_wcwidth
extern_libmv
extern_glog
+
+ bf_intern_glew_mx
)
if(WITH_COMPOSITOR)
@@ -574,7 +578,7 @@ macro(SETUP_BLENDER_SORTED_LIBS)
endif()
if(NOT WITH_SYSTEM_GLEW)
- list(APPEND BLENDER_SORTED_LIBS extern_glew)
+ list(APPEND BLENDER_SORTED_LIBS ${BLENDER_GLEW_LIBRARIES})
endif()
if(WITH_BINRELOC)
diff --git a/build_files/scons/tools/btools.py b/build_files/scons/tools/btools.py
index 4106c037ecd..12cbbb1618a 100644
--- a/build_files/scons/tools/btools.py
+++ b/build_files/scons/tools/btools.py
@@ -136,6 +136,8 @@ def validate_arguments(args, bc):
'WITH_BF_QUICKTIME', 'BF_QUICKTIME', 'BF_QUICKTIME_INC', 'BF_QUICKTIME_LIB', 'BF_QUICKTIME_LIBPATH',
'WITH_BF_FFTW3', 'BF_FFTW3', 'BF_FFTW3_INC', 'BF_FFTW3_LIB', 'BF_FFTW3_LIBPATH', 'WITH_BF_STATICFFTW3', 'BF_FFTW3_LIB_STATIC',
'WITH_BF_STATICOPENGL', 'BF_OPENGL', 'BF_OPENGL_INC', 'BF_OPENGL_LIB', 'BF_OPENGL_LIBPATH', 'BF_OPENGL_LIB_STATIC',
+ 'WITH_BF_EGL', 'WITH_BF_GLEW_ES', 'BF_GLEW_INC', 'WITH_BF_GL_PROFILE_CORE', 'WITH_BF_GL_PROFILE_COMPAT', 'WITH_BF_GL_PROFILE_ES20',
+
'WITH_BF_COLLADA', 'BF_COLLADA', 'BF_COLLADA_INC', 'BF_COLLADA_LIB', 'BF_OPENCOLLADA', 'BF_OPENCOLLADA_INC', 'BF_OPENCOLLADA_LIB', 'BF_OPENCOLLADA_LIBPATH', 'BF_PCRE', 'BF_PCRE_LIB', 'BF_PCRE_LIBPATH', 'BF_EXPAT', 'BF_EXPAT_LIB', 'BF_EXPAT_LIBPATH',
'WITH_BF_STATICOPENCOLLADA', 'BF_OPENCOLLADA_LIB_STATIC',
'WITH_BF_PLAYER',
@@ -185,6 +187,7 @@ def validate_arguments(args, bc):
opts_list_split = [
'BF_PYTHON_LINKFLAGS',
'BF_OPENGL_LINKFLAGS',
+ 'BF_GL_DEFINITIONS',
'CFLAGS', 'CCFLAGS', 'CXXFLAGS', 'CPPFLAGS',
'REL_CFLAGS', 'REL_CCFLAGS', 'REL_CXXFLAGS',
'BGE_CXXFLAGS',
@@ -462,6 +465,18 @@ def read_opts(env, cfg, args):
('BF_OPENGL_LIB_STATIC', 'OpenGL static libraries', ''),
('BF_OPENGL_LINKFLAGS', 'OpenGL link flags', ''),
+ (BoolVariable('WITH_BF_GLEW_MX', '', True)),
+ (BoolVariable('WITH_BF_GLEW_ES', '', False)),
+ (BoolVariable('WITH_BF_GL_EGL', '', False)),
+ (BoolVariable('WITH_BF_GL_PROFILE_COMPAT', '', True)),
+ (BoolVariable('WITH_BF_GL_PROFILE_CORE', '', False)),
+ (BoolVariable('WITH_BF_GL_PROFILE_ES20', '', False)),
+ (BoolVariable('WITH_BF_GL_ANGLE', '', False)),
+ ('BF_GL_DEFINITIONS', '', []),
+ ('BF_GLEW_INC', '', ''),
+ ) # end of opts.AddVariables()
+
+ localopts.AddVariables(
(BoolVariable('WITH_BF_COLLADA', 'Build COLLADA import/export module if true', False)),
(BoolVariable('WITH_BF_STATICOPENCOLLADA', 'Staticly link to OpenCollada', False)),
('BF_COLLADA', 'COLLADA base path', ''),