mirror of
https://github.com/glfw/glfw.git
synced 2024-11-29 07:34:35 +00:00
Remove compile-time client library selection
This commit is contained in:
parent
1b1ef31228
commit
22eca139fb
@ -59,39 +59,6 @@ endif()
|
|||||||
|
|
||||||
set(CMAKE_MODULE_PATH "${GLFW_SOURCE_DIR}/CMake/modules")
|
set(CMAKE_MODULE_PATH "${GLFW_SOURCE_DIR}/CMake/modules")
|
||||||
|
|
||||||
if (GLFW_USE_EGL)
|
|
||||||
set(GLFW_CLIENT_LIBRARY "opengl" CACHE STRING
|
|
||||||
"The client library to use; one of opengl, glesv1 or glesv2")
|
|
||||||
|
|
||||||
if (${GLFW_CLIENT_LIBRARY} STREQUAL "opengl")
|
|
||||||
set(_GLFW_USE_OPENGL 1)
|
|
||||||
elseif (${GLFW_CLIENT_LIBRARY} STREQUAL "glesv1")
|
|
||||||
set(_GLFW_USE_GLESV1 1)
|
|
||||||
elseif (${GLFW_CLIENT_LIBRARY} STREQUAL "glesv2")
|
|
||||||
set(_GLFW_USE_GLESV2 1)
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "Unsupported client library")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package(EGL REQUIRED)
|
|
||||||
|
|
||||||
if (NOT _GLFW_USE_OPENGL)
|
|
||||||
set(GLFW_BUILD_EXAMPLES OFF)
|
|
||||||
set(GLFW_BUILD_TESTS OFF)
|
|
||||||
message(STATUS "NOTE: Examples and tests require OpenGL")
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
set(_GLFW_USE_OPENGL 1)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (_GLFW_USE_OPENGL)
|
|
||||||
find_package(OpenGL REQUIRED)
|
|
||||||
elseif (_GLFW_USE_GLESV1)
|
|
||||||
find_package(GLESv1 REQUIRED)
|
|
||||||
elseif (_GLFW_USE_GLESV2)
|
|
||||||
find_package(GLESv2 REQUIRED)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
|
|
||||||
if (GLFW_BUILD_DOCS)
|
if (GLFW_BUILD_DOCS)
|
||||||
@ -226,6 +193,11 @@ if (UNIX AND NOT APPLE)
|
|||||||
list(APPEND glfw_LIBRARIES "${MATH_LIBRARY}")
|
list(APPEND glfw_LIBRARIES "${MATH_LIBRARY}")
|
||||||
list(APPEND glfw_PKG_LIBS "-lm")
|
list(APPEND glfw_PKG_LIBS "-lm")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (CMAKE_DL_LIBS)
|
||||||
|
list(APPEND glfw_LIBRARIES "${CMAKE_DL_LIBS}")
|
||||||
|
list(APPEND glfw_PKG_LIBS "-l${CMAKE_DL_LIBS}")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
@ -240,16 +212,6 @@ if (_GLFW_WIN32)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
|
||||||
# Use WGL for context creation
|
|
||||||
#--------------------------------------------------------------------
|
|
||||||
if (_GLFW_WGL)
|
|
||||||
|
|
||||||
list(APPEND glfw_PKG_LIBS "-lopengl32")
|
|
||||||
|
|
||||||
list(APPEND glfw_LIBRARIES "${OPENGL_gl_LIBRARY}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
# Use X11 for window creation
|
# Use X11 for window creation
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
@ -361,49 +323,6 @@ if (_GLFW_MIR)
|
|||||||
list(APPEND glfw_LIBRARIES "${XKBCOMMON_LIBRARY}")
|
list(APPEND glfw_LIBRARIES "${XKBCOMMON_LIBRARY}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
|
||||||
# Use GLX for context creation
|
|
||||||
#--------------------------------------------------------------------
|
|
||||||
if (_GLFW_GLX)
|
|
||||||
|
|
||||||
list(APPEND glfw_LIBRARIES "${OPENGL_gl_LIBRARY}")
|
|
||||||
|
|
||||||
list(APPEND glfw_PKG_DEPS "gl")
|
|
||||||
|
|
||||||
if (CMAKE_DL_LIBS)
|
|
||||||
list(APPEND glfw_LIBRARIES "${CMAKE_DL_LIBS}")
|
|
||||||
list(APPEND glfw_PKG_LIBS "-l${CMAKE_DL_LIBS}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
|
||||||
# Use EGL for context creation
|
|
||||||
#--------------------------------------------------------------------
|
|
||||||
if (_GLFW_EGL)
|
|
||||||
|
|
||||||
list(APPEND glfw_INCLUDE_DIRS "${EGL_INCLUDE_DIR}")
|
|
||||||
list(APPEND glfw_LIBRARIES "${EGL_LIBRARY}")
|
|
||||||
|
|
||||||
list(APPEND glfw_PKG_DEPS "egl")
|
|
||||||
|
|
||||||
if (_GLFW_USE_OPENGL)
|
|
||||||
list(APPEND glfw_LIBRARIES "${OPENGL_gl_LIBRARY}")
|
|
||||||
list(APPEND glfw_PKG_DEPS "gl")
|
|
||||||
elseif (_GLFW_USE_GLESV1)
|
|
||||||
list(APPEND glfw_LIBRARIES "${GLESv1_LIBRARY}")
|
|
||||||
list(APPEND glfw_PKG_DEPS "glesv1_cm")
|
|
||||||
elseif (_GLFW_USE_GLESV2)
|
|
||||||
list(APPEND glfw_LIBRARIES "${GLESv2_LIBRARY}")
|
|
||||||
list(APPEND glfw_PKG_DEPS "glesv2")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (CMAKE_DL_LIBS)
|
|
||||||
list(APPEND glfw_LIBRARIES "${CMAKE_DL_LIBS}")
|
|
||||||
list(APPEND glfw_PKG_LIBS "-l${CMAKE_DL_LIBS}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
# Use Cocoa for window creation and NSOpenGL for context creation
|
# Use Cocoa for window creation and NSOpenGL for context creation
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
@ -438,13 +357,12 @@ if (_GLFW_COCOA AND _GLFW_NSGL)
|
|||||||
CORE_FOUNDATION_FRAMEWORK
|
CORE_FOUNDATION_FRAMEWORK
|
||||||
CORE_VIDEO_FRAMEWORK)
|
CORE_VIDEO_FRAMEWORK)
|
||||||
list(APPEND glfw_LIBRARIES "${COCOA_FRAMEWORK}"
|
list(APPEND glfw_LIBRARIES "${COCOA_FRAMEWORK}"
|
||||||
"${OPENGL_gl_LIBRARY}"
|
|
||||||
"${IOKIT_FRAMEWORK}"
|
"${IOKIT_FRAMEWORK}"
|
||||||
"${CORE_FOUNDATION_FRAMEWORK}"
|
"${CORE_FOUNDATION_FRAMEWORK}"
|
||||||
"${CORE_VIDEO_FRAMEWORK}")
|
"${CORE_VIDEO_FRAMEWORK}")
|
||||||
|
|
||||||
set(glfw_PKG_DEPS "")
|
set(glfw_PKG_DEPS "")
|
||||||
set(glfw_PKG_LIBS "-framework Cocoa -framework OpenGL -framework IOKit -framework CoreFoundation -framework CoreVideo")
|
set(glfw_PKG_LIBS "-framework Cocoa -framework IOKit -framework CoreFoundation -framework CoreVideo")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
|
@ -90,10 +90,7 @@ Once you have Xcode installed, move on to @ref compile_generate.
|
|||||||
To compile GLFW for X11, you need to have the X11 and OpenGL header packages
|
To compile GLFW for X11, you need to have the X11 and OpenGL header packages
|
||||||
installed, as well as the basic development tools like GCC and make. For
|
installed, as well as the basic development tools like GCC and make. For
|
||||||
example, on Ubuntu and other distributions based on Debian GNU/Linux, you need
|
example, on Ubuntu and other distributions based on Debian GNU/Linux, you need
|
||||||
to install the `xorg-dev` and `libgl1-mesa-dev` packages. The former pulls in
|
to install the `xorg-dev` package, which pulls in all X.org header packages.
|
||||||
all X.org header packages and the latter pulls in the Mesa OpenGL development
|
|
||||||
packages. Note that using header files and libraries from Mesa during
|
|
||||||
compilation _will not_ tie your binaries to the Mesa implementation of OpenGL.
|
|
||||||
|
|
||||||
Once you have installed the necessary packages, move on to @ref
|
Once you have installed the necessary packages, move on to @ref
|
||||||
compile_generate.
|
compile_generate.
|
||||||
@ -183,12 +180,6 @@ library or as a DLL / shared library / dynamic library.
|
|||||||
is empty, it is installed to `${CMAKE_INSTALL_PREFIX}/lib`. If it is set to
|
is empty, it is installed to `${CMAKE_INSTALL_PREFIX}/lib`. If it is set to
|
||||||
`64`, it is installed to `${CMAKE_INSTALL_PREFIX}/lib64`.
|
`64`, it is installed to `${CMAKE_INSTALL_PREFIX}/lib64`.
|
||||||
|
|
||||||
`GLFW_CLIENT_LIBRARY` determines which client API library to use. If set to
|
|
||||||
`opengl` the OpenGL library is used, if set to `glesv1` for the OpenGL ES 1.x
|
|
||||||
library is used, or if set to `glesv2` the OpenGL ES 2.0 library is used. The
|
|
||||||
selected library and its header files must be present on the system for this to
|
|
||||||
work.
|
|
||||||
|
|
||||||
`GLFW_BUILD_EXAMPLES` determines whether the GLFW examples are built
|
`GLFW_BUILD_EXAMPLES` determines whether the GLFW examples are built
|
||||||
along with the library.
|
along with the library.
|
||||||
|
|
||||||
@ -249,8 +240,8 @@ defines `_GLFW_USE_CONFIG_H`, which causes this header to be included by
|
|||||||
macros to be defined on the command-line.
|
macros to be defined on the command-line.
|
||||||
|
|
||||||
Three macros _must_ be defined when compiling GLFW: one selecting the window
|
Three macros _must_ be defined when compiling GLFW: one selecting the window
|
||||||
creation API, one selecting the context creation API and one client library.
|
creation API and one selecting the context creation API. Exactly one of each
|
||||||
Exactly one of each kind must be defined for GLFW to compile and link.
|
kind must be defined for GLFW to compile and link.
|
||||||
|
|
||||||
The window creation API is used to create windows, handle input, monitors, gamma
|
The window creation API is used to create windows, handle input, monitors, gamma
|
||||||
ramps and clipboard. The options are:
|
ramps and clipboard. The options are:
|
||||||
@ -271,20 +262,6 @@ configurations and to create contexts. The options are:
|
|||||||
|
|
||||||
Wayland and Mir both require the EGL backend.
|
Wayland and Mir both require the EGL backend.
|
||||||
|
|
||||||
The client library is the one providing the OpenGL or OpenGL ES API, which is
|
|
||||||
used by GLFW to probe the created context. This is not the same thing as the
|
|
||||||
client API, as many desktop OpenGL client libraries now expose the OpenGL ES API
|
|
||||||
through extensions. The options are:
|
|
||||||
|
|
||||||
- `_GLFW_USE_OPENGL` for the desktop OpenGL (opengl32.dll, libGL.so or
|
|
||||||
OpenGL.framework)
|
|
||||||
- `_GLFW_USE_GLESV1` for OpenGL ES 1.x (experimental)
|
|
||||||
- `_GLFW_USE_GLESV2` for OpenGL ES 2.x (experimental)
|
|
||||||
|
|
||||||
Note that `_GLFW_USE_GLESV1` and `_GLFW_USE_GLESV2` may only be used with EGL,
|
|
||||||
as the other context creation APIs do not interface with OpenGL ES client
|
|
||||||
libraries.
|
|
||||||
|
|
||||||
If you are building GLFW as a shared library / dynamic library / DLL then you
|
If you are building GLFW as a shared library / dynamic library / DLL then you
|
||||||
must also define `_GLFW_BUILD_DLL`. Otherwise, you may not define it.
|
must also define `_GLFW_BUILD_DLL`. Otherwise, you may not define it.
|
||||||
|
|
||||||
|
@ -72,10 +72,3 @@
|
|||||||
// Define this to 1 if windows should use full resolution on Retina displays
|
// Define this to 1 if windows should use full resolution on Retina displays
|
||||||
#cmakedefine _GLFW_USE_RETINA
|
#cmakedefine _GLFW_USE_RETINA
|
||||||
|
|
||||||
// Define this to 1 if using OpenGL as the client library
|
|
||||||
#cmakedefine _GLFW_USE_OPENGL
|
|
||||||
// Define this to 1 if using OpenGL ES 1.1 as the client library
|
|
||||||
#cmakedefine _GLFW_USE_GLESV1
|
|
||||||
// Define this to 1 if using OpenGL ES 2.0 as the client library
|
|
||||||
#cmakedefine _GLFW_USE_GLESV2
|
|
||||||
|
|
||||||
|
@ -268,9 +268,7 @@ struct _GLFWwindow
|
|||||||
int release;
|
int release;
|
||||||
} context;
|
} context;
|
||||||
|
|
||||||
#if defined(_GLFW_USE_OPENGL)
|
|
||||||
PFNGLGETSTRINGIPROC GetStringi;
|
PFNGLGETSTRINGIPROC GetStringi;
|
||||||
#endif
|
|
||||||
PFNGLGETINTEGERVPROC GetIntegerv;
|
PFNGLGETINTEGERVPROC GetIntegerv;
|
||||||
PFNGLGETSTRINGPROC GetString;
|
PFNGLGETSTRINGPROC GetString;
|
||||||
PFNGLCLEARPROC Clear;
|
PFNGLCLEARPROC Clear;
|
||||||
|
Loading…
Reference in New Issue
Block a user