Skip to content

Commit 68d8970

Browse files
committed
for Windows add GLES support via Angle
1 parent d1e103c commit 68d8970

12 files changed

+783
-42
lines changed

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR})
66
find_package(Kodi REQUIRED)
77
find_package(glm REQUIRED)
88

9-
if(APP_RENDER_SYSTEM STREQUAL "gl" OR NOT APP_RENDER_SYSTEM)
9+
if(NOT WIN32 AND (APP_RENDER_SYSTEM STREQUAL "gl" OR NOT APP_RENDER_SYSTEM))
1010
find_package(OpenGl REQUIRED)
1111
set(DEPLIBS ${OPENGL_LIBRARIES})
1212
set(includes ${OPENGL_INCLUDE_DIR})
1313
add_definitions(${OPENGL_DEFINITIONS})
14-
elseif(APP_RENDER_SYSTEM STREQUAL "gles")
14+
else()
1515
find_package(OpenGLES REQUIRED)
1616
set(DEPLIBS ${OPENGLES_LIBRARIES})
1717
set(includes ${OPENGLES_INCLUDE_DIR})

FindOpenGLES.cmake

Lines changed: 51 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,69 @@
11
#.rst:
22
# FindOpenGLES
33
# ------------
4-
# Finds the OpenGLES2 library
4+
# Finds the OpenGLES2 and OpenGLES3 library
55
#
6-
# This will define the following variables::
6+
# This will define the following variables:
77
#
88
# OPENGLES_FOUND - system has OpenGLES
99
# OPENGLES_INCLUDE_DIRS - the OpenGLES include directory
1010
# OPENGLES_LIBRARIES - the OpenGLES libraries
1111
# OPENGLES_DEFINITIONS - the OpenGLES definitions
12+
#
13+
# Note:
14+
# On Windows with angle the *_INCLUDE_DIRS and
15+
# *_DEFINITIONS are undefined, but are set
16+
# global by the kodi-angle package.
1217

13-
if(CORE_PLATFORM_NAME_LC STREQUAL rbpi)
14-
set(_brcmprefix brcm)
15-
endif()
18+
if(WIN32)
19+
# defined here and not on addon to have it free of OS related 'if'
20+
# and this file as standard for addons where need it
21+
find_package(kodi-angle REQUIRED)
22+
set(OPENGLES_LIBRARIES kodi::angle::libGLESv2 kodi::angle::libEGL)
23+
set(OPENGLES_FOUND ${kodi-angle_FOUND})
24+
set(OPENGLES_DEFINITIONS -DHAS_GLES=3)
25+
else()
26+
if(CORE_PLATFORM_NAME_LC STREQUAL rbpi)
27+
set(_brcmprefix brcm)
28+
endif()
1629

17-
if(PKG_CONFIG_FOUND)
18-
pkg_check_modules(PC_OPENGLES ${_brcmprefix}glesv2 QUIET)
19-
endif()
30+
if(PKG_CONFIG_FOUND)
31+
pkg_check_modules(PC_OPENGLES ${_brcmprefix}glesv2 QUIET)
32+
endif()
2033

21-
if(NOT CORE_SYSTEM_NAME STREQUAL ios)
22-
find_path(OPENGLES_INCLUDE_DIR GLES2/gl2.h
23-
PATHS ${PC_OPENGLES_INCLUDEDIR})
24-
find_library(OPENGLES_gl_LIBRARY NAMES ${_brcmprefix}GLESv2
25-
PATHS ${PC_OPENGLES_LIBDIR})
26-
else()
27-
find_library(OPENGLES_gl_LIBRARY NAMES OpenGLES
28-
PATHS ${CMAKE_OSX_SYSROOT}/System/Library
29-
PATH_SUFFIXES Frameworks
30-
NO_DEFAULT_PATH)
31-
set(OPENGLES_INCLUDE_DIR ${OPENGLES_gl_LIBRARY}/Headers)
32-
endif()
34+
if(NOT CORE_SYSTEM_NAME STREQUAL ios AND
35+
NOT CORE_SYSTEM_NAME STREQUAL darwin_embedded)
36+
find_path(OPENGLES_INCLUDE_DIR GLES2/gl2.h
37+
PATHS ${PC_OPENGLES_INCLUDEDIR})
38+
find_library(OPENGLES_gl_LIBRARY NAMES ${_brcmprefix}GLESv2
39+
PATHS ${PC_OPENGLES_LIBDIR})
40+
else()
41+
find_library(OPENGLES_gl_LIBRARY NAMES OpenGLES
42+
PATHS ${CMAKE_OSX_SYSROOT}/System/Library
43+
PATH_SUFFIXES Frameworks
44+
NO_DEFAULT_PATH)
45+
set(OPENGLES_INCLUDE_DIR ${OPENGLES_gl_LIBRARY}/Headers)
46+
endif()
3347

34-
find_path(OPENGLES3_INCLUDE_DIR GLES3/gl3.h)
48+
find_path(OPENGLES3_INCLUDE_DIR GLES3/gl3.h)
3549

36-
include(FindPackageHandleStandardArgs)
37-
find_package_handle_standard_args(OpenGLES
38-
REQUIRED_VARS OPENGLES_gl_LIBRARY OPENGLES_INCLUDE_DIR)
50+
include(FindPackageHandleStandardArgs)
51+
find_package_handle_standard_args(OpenGLES
52+
REQUIRED_VARS OPENGLES_gl_LIBRARY OPENGLES_INCLUDE_DIR)
3953

40-
find_path(OPENGLES3_INCLUDE_DIR GLES3/gl3.h
41-
PATHS ${PC_OPENGLES_INCLUDEDIR})
54+
find_path(OPENGLES3_INCLUDE_DIR GLES3/gl3.h
55+
PATHS ${PC_OPENGLES_INCLUDEDIR})
4256

43-
if(OPENGLES_FOUND)
44-
set(OPENGLES_LIBRARIES ${OPENGLES_gl_LIBRARY})
45-
if(OPENGLES3_INCLUDE_DIR)
46-
set(OPENGLES_INCLUDE_DIRS ${OPENGLES_INCLUDE_DIR} ${OPENGLES3_INCLUDE_DIR})
47-
set(OPENGLES_DEFINITIONS -DHAS_GLES=3)
48-
mark_as_advanced(OPENGLES_INCLUDE_DIR OPENGLES3_INCLUDE_DIR OPENGLES_gl_LIBRARY)
49-
else()
50-
set(OPENGLES_INCLUDE_DIRS ${OPENGLES_INCLUDE_DIR})
51-
set(OPENGLES_DEFINITIONS -DHAS_GLES=2)
52-
mark_as_advanced(OPENGLES_INCLUDE_DIR OPENGLES_gl_LIBRARY)
57+
if(OPENGLES_FOUND)
58+
set(OPENGLES_LIBRARIES ${OPENGLES_gl_LIBRARY})
59+
if(OPENGLES3_INCLUDE_DIR)
60+
set(OPENGLES_INCLUDE_DIRS ${OPENGLES_INCLUDE_DIR} ${OPENGLES3_INCLUDE_DIR})
61+
set(OPENGLES_DEFINITIONS -DHAS_GLES=3)
62+
mark_as_advanced(OPENGLES_INCLUDE_DIR OPENGLES3_INCLUDE_DIR OPENGLES_gl_LIBRARY)
63+
else()
64+
set(OPENGLES_INCLUDE_DIRS ${OPENGLES_INCLUDE_DIR})
65+
set(OPENGLES_DEFINITIONS -DHAS_GLES=2)
66+
mark_as_advanced(OPENGLES_INCLUDE_DIR OPENGLES_gl_LIBRARY)
67+
endif()
5368
endif()
5469
endif()

Jenkinsfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
buildPlugin(version: "Matrix", platforms: ['android-armv7', 'android-aarch64', 'ios-armv7', 'ios-aarch64', 'osx-x86_64', 'ubuntu-ppa'])
1+
buildPlugin(version: "Matrix")

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
This is a [Kodi](http://kodi.tv) screensaver addon.
44

55
[![Build Status](https://travis-ci.org/xbmc/screensaver.cpblobs.svg?branch=Matrix)](https://travis-ci.org/xbmc/screensaver.cpblobs/branches)
6+
[![Build Status](https://ci.appveyor.com/api/projects/status/github/xbmc/screensaver.cpblobs?branch=Matrix&svg=true)](https://ci.appveyor.com/project/xbmc/screensaver-cpblobs?branch=Matrix)
67

78
## Build instructions
89

appveyor.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
version: BuildNr.{build}
2+
3+
image: Visual Studio 2017
4+
5+
shallow_clone: true
6+
7+
clone_folder: c:\projects\screensaver.cpblobs
8+
9+
environment:
10+
app_id: screensaver.cpblobs
11+
12+
matrix:
13+
- GENERATOR: "Visual Studio 15"
14+
CONFIG: Release
15+
- GENERATOR: "Visual Studio 15 Win64"
16+
CONFIG: Release
17+
- GENERATOR: "Visual Studio 15 Win64"
18+
CONFIG: Release
19+
WINSTORE: -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0.17763.0"
20+
- GENERATOR: "Visual Studio 15 ARM"
21+
CONFIG: Release
22+
WINSTORE: -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0.17763.0"
23+
24+
build_script:
25+
- cd ..
26+
- git clone --branch master --depth=1 https://github.com/xbmc/xbmc.git
27+
- cd %app_id%
28+
- mkdir build
29+
- cd build
30+
- mkdir -p definition\%app_id%
31+
- echo %app_id% %APPVEYOR_BUILD_FOLDER% %APPVEYOR_REPO_COMMIT% > definition\%app_id%\%app_id%.txt
32+
- cmake -T host=x64 -G "%GENERATOR%" %WINSTORE% -DADDONS_TO_BUILD=%app_id% -DCMAKE_BUILD_TYPE=%CONFIG% -DADDONS_DEFINITION_DIR=%APPVEYOR_BUILD_FOLDER%/build/definition -DADDON_SRC_PREFIX=../.. -DCMAKE_INSTALL_PREFIX=../../xbmc/addons -DPACKAGE_ZIP=1 ../../xbmc/cmake/addons
33+
- cmake --build . --config %CONFIG% --target %app_id%

0 commit comments

Comments
 (0)