mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-13 19:42:39 +00:00
Updates cmake and scons to be able to compile with OGL.
Scons OpenGL/GLEW test taken mostly verbatim from 3e2eba22a96cb2c6c69ee5109059b806f22a372f (cherry-picked from commit 5e36a90039ddde3625690ace5259198e1932a7f8)
This commit is contained in:
parent
8c93e152b8
commit
a040d521a4
@ -76,6 +76,8 @@ else()
|
|||||||
message(WARNING "You are cross-compiling. Skipping IEEE 754 test.")
|
message(WARNING "You are cross-compiling. Skipping IEEE 754 test.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
find_package(OpenGL)
|
||||||
|
find_package(GLEW)
|
||||||
find_package(SDL2 2.0.4 REQUIRED)
|
find_package(SDL2 2.0.4 REQUIRED)
|
||||||
find_package(Crypto 1.0 REQUIRED)
|
find_package(Crypto 1.0 REQUIRED)
|
||||||
find_package(Boost 1.56 REQUIRED COMPONENTS iostreams program_options regex system random)
|
find_package(Boost 1.56 REQUIRED COMPONENTS iostreams program_options regex system random)
|
||||||
|
@ -307,7 +307,7 @@ def Warning(message):
|
|||||||
|
|
||||||
from metasconf import init_metasconf
|
from metasconf import init_metasconf
|
||||||
configure_args = dict(
|
configure_args = dict(
|
||||||
custom_tests = init_metasconf(env, ["ieee_754", "cplusplus", "python_devel", "sdl", "boost", "cairo", "pango", "pkgconfig", "gettext_tool", "lua"]),
|
custom_tests = init_metasconf(env, ["ieee_754", "cplusplus", "python_devel", "sdl", "boost", "cairo", "pango", "pkgconfig", "gettext_tool", "lua", "gl"]),
|
||||||
config_h = "$build_dir/config.h",
|
config_h = "$build_dir/config.h",
|
||||||
log_file="$build_dir/config.log", conf_dir="$build_dir/sconf_temp")
|
log_file="$build_dir/config.log", conf_dir="$build_dir/sconf_temp")
|
||||||
|
|
||||||
@ -389,6 +389,8 @@ if env["prereqs"]:
|
|||||||
conf.CheckOgg())) & \
|
conf.CheckOgg())) & \
|
||||||
conf.CheckPNG() & \
|
conf.CheckPNG() & \
|
||||||
conf.CheckJPG() & \
|
conf.CheckJPG() & \
|
||||||
|
conf.CheckOpenGL() and \
|
||||||
|
conf.CheckGLEW() and \
|
||||||
conf.CheckCairo(min_version = "1.10") & \
|
conf.CheckCairo(min_version = "1.10") & \
|
||||||
conf.CheckPango("cairo", require_version = "1.22.0") & \
|
conf.CheckPango("cairo", require_version = "1.22.0") & \
|
||||||
conf.CheckPKG("fontconfig") & \
|
conf.CheckPKG("fontconfig") & \
|
||||||
|
69
cmake/FindGLEW.make
Normal file
69
cmake/FindGLEW.make
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||||
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||||
|
|
||||||
|
#.rst:
|
||||||
|
# FindGLEW
|
||||||
|
# --------
|
||||||
|
#
|
||||||
|
# Find the OpenGL Extension Wrangler Library (GLEW)
|
||||||
|
#
|
||||||
|
# IMPORTED Targets
|
||||||
|
# ^^^^^^^^^^^^^^^^
|
||||||
|
#
|
||||||
|
# This module defines the :prop_tgt:`IMPORTED` target ``GLEW::GLEW``,
|
||||||
|
# if GLEW has been found.
|
||||||
|
#
|
||||||
|
# Result Variables
|
||||||
|
# ^^^^^^^^^^^^^^^^
|
||||||
|
#
|
||||||
|
# This module defines the following variables:
|
||||||
|
#
|
||||||
|
# ::
|
||||||
|
#
|
||||||
|
# GLEW_INCLUDE_DIRS - include directories for GLEW
|
||||||
|
# GLEW_LIBRARIES - libraries to link against GLEW
|
||||||
|
# GLEW_FOUND - true if GLEW has been found and can be used
|
||||||
|
|
||||||
|
find_path(GLEW_INCLUDE_DIR GL/glew.h)
|
||||||
|
|
||||||
|
if(NOT GLEW_LIBRARY)
|
||||||
|
find_library(GLEW_LIBRARY_RELEASE NAMES GLEW glew32 glew glew32s PATH_SUFFIXES lib64 libx32)
|
||||||
|
find_library(GLEW_LIBRARY_DEBUG NAMES GLEWd glew32d glewd PATH_SUFFIXES lib64)
|
||||||
|
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
|
||||||
|
select_library_configurations(GLEW)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||||
|
find_package_handle_standard_args(GLEW
|
||||||
|
REQUIRED_VARS GLEW_INCLUDE_DIR GLEW_LIBRARY)
|
||||||
|
|
||||||
|
if(GLEW_FOUND)
|
||||||
|
set(GLEW_INCLUDE_DIRS ${GLEW_INCLUDE_DIR})
|
||||||
|
|
||||||
|
if(NOT GLEW_LIBRARIES)
|
||||||
|
set(GLEW_LIBRARIES ${GLEW_LIBRARY})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT TARGET GLEW::GLEW)
|
||||||
|
add_library(GLEW::GLEW UNKNOWN IMPORTED)
|
||||||
|
set_target_properties(GLEW::GLEW PROPERTIES
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}")
|
||||||
|
|
||||||
|
if(GLEW_LIBRARY_RELEASE)
|
||||||
|
set_property(TARGET GLEW::GLEW APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||||
|
set_target_properties(GLEW::GLEW PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_LIBRARY_RELEASE}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(GLEW_LIBRARY_DEBUG)
|
||||||
|
set_property(TARGET GLEW::GLEW APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
|
||||||
|
set_target_properties(GLEW::GLEW PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_LIBRARY_DEBUG}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT GLEW_LIBRARY_RELEASE AND NOT GLEW_LIBRARY_DEBUG)
|
||||||
|
set_property(TARGET GLEW::GLEW APPEND PROPERTY IMPORTED_LOCATION "${GLEW_LIBRARY}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
mark_as_advanced(GLEW_INCLUDE_DIR)
|
517
cmake/FindOpenGL.cmake
Normal file
517
cmake/FindOpenGL.cmake
Normal file
@ -0,0 +1,517 @@
|
|||||||
|
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||||
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||||
|
|
||||||
|
#.rst:
|
||||||
|
# FindOpenGL
|
||||||
|
# ----------
|
||||||
|
#
|
||||||
|
# FindModule for OpenGL and GLU.
|
||||||
|
#
|
||||||
|
# Optional COMPONENTS
|
||||||
|
# ^^^^^^^^^^^^^^^^^^^
|
||||||
|
#
|
||||||
|
# This module respects several optional COMPONENTS: ``EGL``, ``GLX``, and
|
||||||
|
# ``OpenGL``. There are corresponding import targets for each of these flags.
|
||||||
|
#
|
||||||
|
# IMPORTED Targets
|
||||||
|
# ^^^^^^^^^^^^^^^^
|
||||||
|
#
|
||||||
|
# This module defines the :prop_tgt:`IMPORTED` targets:
|
||||||
|
#
|
||||||
|
# ``OpenGL::GL``
|
||||||
|
# Defined to the platform-specific OpenGL libraries if the system has OpenGL.
|
||||||
|
# ``OpenGL::OpenGL``
|
||||||
|
# Defined to libOpenGL if the system is GLVND-based.
|
||||||
|
# ``OpenGL::GL``
|
||||||
|
# ``OpenGL::GLU``
|
||||||
|
# Defined if the system has GLU.
|
||||||
|
# ``OpenGL::GLX``
|
||||||
|
# Defined if the system has GLX.
|
||||||
|
# ``OpenGL::EGL``
|
||||||
|
# Defined if the system has EGL.
|
||||||
|
#
|
||||||
|
# Result Variables
|
||||||
|
# ^^^^^^^^^^^^^^^^
|
||||||
|
#
|
||||||
|
# This module sets the following variables:
|
||||||
|
#
|
||||||
|
# ``OPENGL_FOUND``
|
||||||
|
# True, if the system has OpenGL and all components are found.
|
||||||
|
# ``OPENGL_XMESA_FOUND``
|
||||||
|
# True, if the system has XMESA.
|
||||||
|
# ``OPENGL_GLU_FOUND``
|
||||||
|
# True, if the system has GLU.
|
||||||
|
# ``OpenGL_OpenGL_FOUND``
|
||||||
|
# True, if the system has an OpenGL library.
|
||||||
|
# ``OpenGL_GLX_FOUND``
|
||||||
|
# True, if the system has GLX.
|
||||||
|
# ``OpenGL_EGL_FOUND``
|
||||||
|
# True, if the system has EGL.
|
||||||
|
# ``OPENGL_INCLUDE_DIR``
|
||||||
|
# Path to the OpenGL include directory.
|
||||||
|
# ``OPENGL_EGL_INCLUDE_DIRS``
|
||||||
|
# Path to the EGL include directory.
|
||||||
|
# ``OPENGL_LIBRARIES``
|
||||||
|
# Paths to the OpenGL library, windowing system libraries, and GLU libraries.
|
||||||
|
# On Linux, this assumes GLX and is never correct for EGL-based targets.
|
||||||
|
# Clients are encouraged to use the ``OpenGL::*`` import targets instead.
|
||||||
|
#
|
||||||
|
# Cache variables
|
||||||
|
# ^^^^^^^^^^^^^^^
|
||||||
|
#
|
||||||
|
# The following cache variables may also be set:
|
||||||
|
#
|
||||||
|
# ``OPENGL_egl_LIBRARY``
|
||||||
|
# Path to the EGL library.
|
||||||
|
# ``OPENGL_glu_LIBRARY``
|
||||||
|
# Path to the GLU library.
|
||||||
|
# ``OPENGL_glx_LIBRARY``
|
||||||
|
# Path to the GLVND 'GLX' library.
|
||||||
|
# ``OPENGL_opengl_LIBRARY``
|
||||||
|
# Path to the GLVND 'OpenGL' library
|
||||||
|
# ``OPENGL_gl_LIBRARY``
|
||||||
|
# Path to the OpenGL library. New code should prefer the ``OpenGL::*`` import
|
||||||
|
# targets.
|
||||||
|
#
|
||||||
|
# Linux-specific
|
||||||
|
# ^^^^^^^^^^^^^^
|
||||||
|
#
|
||||||
|
# Some Linux systems utilize GLVND as a new ABI for OpenGL. GLVND separates
|
||||||
|
# context libraries from OpenGL itself; OpenGL lives in "libOpenGL", and
|
||||||
|
# contexts are defined in "libGLX" or "libEGL". GLVND is currently the only way
|
||||||
|
# to get OpenGL 3+ functionality via EGL in a manner portable across vendors.
|
||||||
|
# Projects may use GLVND explicitly with target ``OpenGL::OpenGL`` and either
|
||||||
|
# ``OpenGL::GLX`` or ``OpenGL::EGL``.
|
||||||
|
#
|
||||||
|
# Projects may use the ``OpenGL::GL`` target (or ``OPENGL_LIBRARIES`` variable)
|
||||||
|
# to use legacy GL interfaces. These will use the legacy GL library located
|
||||||
|
# by ``OPENGL_gl_LIBRARY``, if available. If ``OPENGL_gl_LIBRARY`` is empty or
|
||||||
|
# not found and GLVND is available, the ``OpenGL::GL`` target will use GLVND
|
||||||
|
# ``OpenGL::OpenGL`` and ``OpenGL::GLX`` (and the ``OPENGL_LIBRARIES``
|
||||||
|
# variable will use the corresponding libraries). Thus, for non-EGL-based
|
||||||
|
# Linux targets, the ``OpenGL::GL`` target is most portable.
|
||||||
|
#
|
||||||
|
# A ``OpenGL_GL_PREFERENCE`` variable may be set to specify the preferred way
|
||||||
|
# to provide legacy GL interfaces in case multiple choices are available.
|
||||||
|
# The value may be one of:
|
||||||
|
#
|
||||||
|
# ``GLVND``
|
||||||
|
# If the GLVND OpenGL and GLX libraries are available, prefer them.
|
||||||
|
# This forces ``OPENGL_gl_LIBRARY`` to be empty.
|
||||||
|
# This is the default if components were requested (since components
|
||||||
|
# correspond to GLVND libraries).
|
||||||
|
#
|
||||||
|
# ``LEGACY``
|
||||||
|
# Prefer to use the legacy libGL library, if available.
|
||||||
|
# This is the default if no components were requested.
|
||||||
|
#
|
||||||
|
# For EGL targets the client must rely on GLVND support on the user's system.
|
||||||
|
# Linking should use the ``OpenGL::OpenGL OpenGL::EGL`` targets. Using GLES*
|
||||||
|
# libraries is theoretically possible in place of ``OpenGL::OpenGL``, but this
|
||||||
|
# module does not currently support that; contributions welcome.
|
||||||
|
#
|
||||||
|
# ``OPENGL_egl_LIBRARY`` and ``OPENGL_EGL_INCLUDE_DIRS`` are defined in the case of
|
||||||
|
# GLVND. For non-GLVND Linux and other systems these are left undefined.
|
||||||
|
#
|
||||||
|
# macOS-Specific
|
||||||
|
# ^^^^^^^^^^^^^^
|
||||||
|
#
|
||||||
|
# On OSX FindOpenGL defaults to using the framework version of OpenGL. People
|
||||||
|
# will have to change the cache values of OPENGL_glu_LIBRARY and
|
||||||
|
# OPENGL_gl_LIBRARY to use OpenGL with X11 on OSX.
|
||||||
|
|
||||||
|
set(_OpenGL_REQUIRED_VARS OPENGL_gl_LIBRARY)
|
||||||
|
|
||||||
|
# Provide OPENGL_USE_<C> variables for each component.
|
||||||
|
foreach(component ${OpenGL_FIND_COMPONENTS})
|
||||||
|
string(TOUPPER ${component} _COMPONENT)
|
||||||
|
set(OPENGL_USE_${_COMPONENT} 1)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
if (CYGWIN)
|
||||||
|
find_path(OPENGL_INCLUDE_DIR GL/gl.h )
|
||||||
|
list(APPEND _OpenGL_REQUIRED_VARS OPENGL_INCLUDE_DIR)
|
||||||
|
|
||||||
|
find_library(OPENGL_gl_LIBRARY opengl32 )
|
||||||
|
find_library(OPENGL_glu_LIBRARY glu32 )
|
||||||
|
|
||||||
|
elseif (WIN32)
|
||||||
|
|
||||||
|
if(BORLAND)
|
||||||
|
set (OPENGL_gl_LIBRARY import32 CACHE STRING "OpenGL library for win32")
|
||||||
|
set (OPENGL_glu_LIBRARY import32 CACHE STRING "GLU library for win32")
|
||||||
|
else()
|
||||||
|
set (OPENGL_gl_LIBRARY opengl32 CACHE STRING "OpenGL library for win32")
|
||||||
|
set (OPENGL_glu_LIBRARY glu32 CACHE STRING "GLU library for win32")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
elseif (APPLE)
|
||||||
|
# The OpenGL.framework provides both gl and glu
|
||||||
|
find_library(OPENGL_gl_LIBRARY OpenGL DOC "OpenGL library for OS X")
|
||||||
|
find_library(OPENGL_glu_LIBRARY OpenGL DOC
|
||||||
|
"GLU library for OS X (usually same as OpenGL library)")
|
||||||
|
find_path(OPENGL_INCLUDE_DIR OpenGL/gl.h DOC "Include for OpenGL on OS X")
|
||||||
|
list(APPEND _OpenGL_REQUIRED_VARS OPENGL_INCLUDE_DIR)
|
||||||
|
|
||||||
|
else()
|
||||||
|
if (CMAKE_SYSTEM_NAME MATCHES "HP-UX")
|
||||||
|
# Handle HP-UX cases where we only want to find OpenGL in either hpux64
|
||||||
|
# or hpux32 depending on if we're doing a 64 bit build.
|
||||||
|
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||||
|
set(_OPENGL_LIB_PATH
|
||||||
|
/opt/graphics/OpenGL/lib/hpux32/)
|
||||||
|
else()
|
||||||
|
set(_OPENGL_LIB_PATH
|
||||||
|
/opt/graphics/OpenGL/lib/hpux64/
|
||||||
|
/opt/graphics/OpenGL/lib/pa20_64)
|
||||||
|
endif()
|
||||||
|
elseif(CMAKE_SYSTEM_NAME STREQUAL Haiku)
|
||||||
|
set(_OPENGL_LIB_PATH
|
||||||
|
/boot/develop/lib/x86)
|
||||||
|
set(_OPENGL_INCLUDE_PATH
|
||||||
|
/boot/develop/headers/os/opengl)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# The first line below is to make sure that the proper headers
|
||||||
|
# are used on a Linux machine with the NVidia drivers installed.
|
||||||
|
# They replace Mesa with NVidia's own library but normally do not
|
||||||
|
# install headers and that causes the linking to
|
||||||
|
# fail since the compiler finds the Mesa headers but NVidia's library.
|
||||||
|
# Make sure the NVIDIA directory comes BEFORE the others.
|
||||||
|
# - Atanas Georgiev <atanas@cs.columbia.edu>
|
||||||
|
find_path(OPENGL_INCLUDE_DIR GL/gl.h
|
||||||
|
/usr/share/doc/NVIDIA_GLX-1.0/include
|
||||||
|
/usr/openwin/share/include
|
||||||
|
/opt/graphics/OpenGL/include /usr/X11R6/include
|
||||||
|
${_OPENGL_INCLUDE_PATH}
|
||||||
|
)
|
||||||
|
find_path(OPENGL_GLX_INCLUDE_DIR GL/glx.h ${_OPENGL_INCLUDE_PATH})
|
||||||
|
find_path(OPENGL_EGL_INCLUDE_DIR EGL/egl.h ${_OPENGL_INCLUDE_PATH})
|
||||||
|
find_path(OPENGL_xmesa_INCLUDE_DIR GL/xmesa.h
|
||||||
|
/usr/share/doc/NVIDIA_GLX-1.0/include
|
||||||
|
/usr/openwin/share/include
|
||||||
|
/opt/graphics/OpenGL/include /usr/X11R6/include
|
||||||
|
)
|
||||||
|
|
||||||
|
# Search for the GLVND libraries. We do this regardless of COMPONENTS; we'll
|
||||||
|
# take into account the COMPONENTS logic later.
|
||||||
|
find_library(OPENGL_opengl_LIBRARY
|
||||||
|
NAMES OpenGL
|
||||||
|
PATHS /usr/X11R6/lib
|
||||||
|
${_OPENGL_LIB_PATH}
|
||||||
|
)
|
||||||
|
|
||||||
|
find_library(OPENGL_glx_LIBRARY
|
||||||
|
NAMES GLX
|
||||||
|
PATHS /usr/X11R6/lib
|
||||||
|
${_OPENGL_LIB_PATH}
|
||||||
|
)
|
||||||
|
|
||||||
|
find_library(OPENGL_egl_LIBRARY
|
||||||
|
NAMES EGL
|
||||||
|
PATHS ${_OPENGL_LIB_PATH}
|
||||||
|
)
|
||||||
|
|
||||||
|
find_library(OPENGL_glu_LIBRARY
|
||||||
|
NAMES GLU MesaGLU
|
||||||
|
PATHS ${OPENGL_gl_LIBRARY}
|
||||||
|
/opt/graphics/OpenGL/lib
|
||||||
|
/usr/openwin/lib
|
||||||
|
/usr/shlib /usr/X11R6/lib
|
||||||
|
)
|
||||||
|
|
||||||
|
if(NOT DEFINED OpenGL_GL_PREFERENCE)
|
||||||
|
set(OpenGL_GL_PREFERENCE "")
|
||||||
|
endif()
|
||||||
|
if(NOT OpenGL_GL_PREFERENCE STREQUAL "")
|
||||||
|
# A preference has been explicitly specified.
|
||||||
|
if(NOT OpenGL_GL_PREFERENCE MATCHES "^(GLVND|LEGACY)$")
|
||||||
|
message(FATAL_ERROR
|
||||||
|
"OpenGL_GL_PREFERENCE value '${OpenGL_GL_PREFERENCE}' not recognized. "
|
||||||
|
"Allowed values are 'GLVND' and 'LEGACY'."
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
elseif(OpenGL_FIND_COMPONENTS)
|
||||||
|
# No preference was explicitly specified, but the caller did request
|
||||||
|
# at least one GLVND component. Prefer GLVND for legacy GL.
|
||||||
|
set(OpenGL_GL_PREFERENCE "GLVND")
|
||||||
|
else()
|
||||||
|
# No preference was explicitly specified and no GLVND components were
|
||||||
|
# requested. Prefer libGL for legacy GL.
|
||||||
|
set(OpenGL_GL_PREFERENCE "LEGACY")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if("x${OpenGL_GL_PREFERENCE}x" STREQUAL "xGLVNDx" AND OPENGL_opengl_LIBRARY AND OPENGL_glx_LIBRARY)
|
||||||
|
# We can provide legacy GL using GLVND libraries.
|
||||||
|
# Do not use any legacy GL library.
|
||||||
|
set(OPENGL_gl_LIBRARY "")
|
||||||
|
else()
|
||||||
|
# We cannot provide legacy GL using GLVND libraries.
|
||||||
|
# Search for the legacy GL library.
|
||||||
|
find_library(OPENGL_gl_LIBRARY
|
||||||
|
NAMES GL MesaGL
|
||||||
|
PATHS /opt/graphics/OpenGL/lib
|
||||||
|
/usr/openwin/lib
|
||||||
|
/usr/shlib /usr/X11R6/lib
|
||||||
|
${_OPENGL_LIB_PATH}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# FPHSA cannot handle "this OR that is required", so we conditionally set what
|
||||||
|
# it must look for. First clear any previous config we might have done:
|
||||||
|
set(_OpenGL_REQUIRED_VARS)
|
||||||
|
|
||||||
|
# now we append the libraries as appropriate. The complicated logic
|
||||||
|
# basically comes down to "use libOpenGL when we can, and add in specific
|
||||||
|
# context mechanisms when requested, or we need them to preserve the previous
|
||||||
|
# default where glx is always available."
|
||||||
|
if((NOT OPENGL_USE_EGL AND
|
||||||
|
NOT OPENGL_opengl_LIBRARY AND
|
||||||
|
OPENGL_glx_LIBRARY AND
|
||||||
|
NOT OPENGL_gl_LIBRARY) OR
|
||||||
|
(NOT OPENGL_USE_EGL AND
|
||||||
|
NOT OPENGL_glx_LIBRARY AND
|
||||||
|
NOT OPENGL_gl_LIBRARY) OR
|
||||||
|
(NOT OPENGL_USE_EGL AND
|
||||||
|
OPENGL_opengl_LIBRARY AND
|
||||||
|
OPENGL_glx_LIBRARY) OR
|
||||||
|
( OPENGL_USE_EGL))
|
||||||
|
list(APPEND _OpenGL_REQUIRED_VARS OPENGL_opengl_LIBRARY)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# GLVND GLX library. Preferred when available.
|
||||||
|
if((NOT OPENGL_USE_OPENGL AND
|
||||||
|
NOT OPENGL_USE_GLX AND
|
||||||
|
NOT OPENGL_USE_EGL AND
|
||||||
|
NOT OPENGL_glx_LIBRARY AND
|
||||||
|
NOT OPENGL_gl_LIBRARY) OR
|
||||||
|
( OPENGL_USE_GLX AND
|
||||||
|
NOT OPENGL_USE_EGL AND
|
||||||
|
NOT OPENGL_glx_LIBRARY AND
|
||||||
|
NOT OPENGL_gl_LIBRARY) OR
|
||||||
|
(NOT OPENGL_USE_EGL AND
|
||||||
|
OPENGL_opengl_LIBRARY AND
|
||||||
|
OPENGL_glx_LIBRARY) OR
|
||||||
|
(OPENGL_USE_GLX AND OPENGL_USE_EGL))
|
||||||
|
list(APPEND _OpenGL_REQUIRED_VARS OPENGL_glx_LIBRARY)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# GLVND EGL library.
|
||||||
|
if(OPENGL_USE_EGL)
|
||||||
|
list(APPEND _OpenGL_REQUIRED_VARS OPENGL_egl_LIBRARY)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Old-style "libGL" library: used as a fallback when GLVND isn't available.
|
||||||
|
if((NOT OPENGL_USE_EGL AND
|
||||||
|
NOT OPENGL_opengl_LIBRARY AND
|
||||||
|
OPENGL_glx_LIBRARY AND
|
||||||
|
OPENGL_gl_LIBRARY) OR
|
||||||
|
(NOT OPENGL_USE_EGL AND
|
||||||
|
NOT OPENGL_glx_LIBRARY AND
|
||||||
|
OPENGL_gl_LIBRARY))
|
||||||
|
list(APPEND _OpenGL_REQUIRED_VARS OPENGL_gl_LIBRARY)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# We always need the 'gl.h' include dir.
|
||||||
|
list(APPEND _OpenGL_REQUIRED_VARS OPENGL_INCLUDE_DIR)
|
||||||
|
|
||||||
|
unset(_OPENGL_INCLUDE_PATH)
|
||||||
|
unset(_OPENGL_LIB_PATH)
|
||||||
|
|
||||||
|
find_library(OPENGL_glu_LIBRARY
|
||||||
|
NAMES GLU MesaGLU
|
||||||
|
PATHS ${OPENGL_gl_LIBRARY}
|
||||||
|
/opt/graphics/OpenGL/lib
|
||||||
|
/usr/openwin/lib
|
||||||
|
/usr/shlib /usr/X11R6/lib
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if(OPENGL_xmesa_INCLUDE_DIR)
|
||||||
|
set( OPENGL_XMESA_FOUND "YES" )
|
||||||
|
else()
|
||||||
|
set( OPENGL_XMESA_FOUND "NO" )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(OPENGL_glu_LIBRARY)
|
||||||
|
set( OPENGL_GLU_FOUND "YES" )
|
||||||
|
else()
|
||||||
|
set( OPENGL_GLU_FOUND "NO" )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# OpenGL_OpenGL_FOUND is a bit unique in that it is okay if /either/ libOpenGL
|
||||||
|
# or libGL is found.
|
||||||
|
# Using libGL with libEGL is never okay, though; we handle that case later.
|
||||||
|
if(NOT OPENGL_opengl_LIBRARY AND NOT OPENGL_gl_LIBRARY)
|
||||||
|
set(OpenGL_OpenGL_FOUND FALSE)
|
||||||
|
else()
|
||||||
|
set(OpenGL_OpenGL_FOUND TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(OPENGL_glx_LIBRARY AND OPENGL_GLX_INCLUDE_DIR)
|
||||||
|
set(OpenGL_GLX_FOUND TRUE)
|
||||||
|
else()
|
||||||
|
set(OpenGL_GLX_FOUND FALSE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(OPENGL_egl_LIBRARY AND OPENGL_EGL_INCLUDE_DIR)
|
||||||
|
set(OpenGL_EGL_FOUND TRUE)
|
||||||
|
else()
|
||||||
|
set(OpenGL_EGL_FOUND FALSE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# User-visible names should be plural.
|
||||||
|
if(OPENGL_EGL_INCLUDE_DIR)
|
||||||
|
set(OPENGL_EGL_INCLUDE_DIRS ${OPENGL_EGL_INCLUDE_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenGL REQUIRED_VARS ${_OpenGL_REQUIRED_VARS}
|
||||||
|
HANDLE_COMPONENTS)
|
||||||
|
unset(_OpenGL_REQUIRED_VARS)
|
||||||
|
|
||||||
|
# OpenGL:: targets
|
||||||
|
if(OPENGL_FOUND)
|
||||||
|
# ::OpenGL is a GLVND library, and thus Linux-only: we don't bother checking
|
||||||
|
# for a framework version of this library.
|
||||||
|
if(OPENGL_opengl_LIBRARY AND NOT TARGET OpenGL::OpenGL)
|
||||||
|
if(IS_ABSOLUTE "${OPENGL_opengl_LIBRARY}")
|
||||||
|
add_library(OpenGL::OpenGL UNKNOWN IMPORTED)
|
||||||
|
set_target_properties(OpenGL::OpenGL PROPERTIES IMPORTED_LOCATION
|
||||||
|
"${OPENGL_opengl_LIBRARY}")
|
||||||
|
else()
|
||||||
|
add_library(OpenGL::OpenGL INTERFACE IMPORTED)
|
||||||
|
set_target_properties(OpenGL::OpenGL PROPERTIES IMPORTED_LIBNAME
|
||||||
|
"${OPENGL_opengl_LIBRARY}")
|
||||||
|
endif()
|
||||||
|
set_target_properties(OpenGL::OpenGL PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
"${OPENGL_INCLUDE_DIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# ::GLX is a GLVND library, and thus Linux-only: we don't bother checking
|
||||||
|
# for a framework version of this library.
|
||||||
|
if(OpenGL_GLX_FOUND AND NOT TARGET OpenGL::GLX)
|
||||||
|
if(IS_ABSOLUTE "${OPENGL_glx_LIBRARY}")
|
||||||
|
add_library(OpenGL::GLX UNKNOWN IMPORTED)
|
||||||
|
set_target_properties(OpenGL::GLX PROPERTIES IMPORTED_LOCATION
|
||||||
|
"${OPENGL_glx_LIBRARY}")
|
||||||
|
else()
|
||||||
|
add_library(OpenGL::GLX INTERFACE IMPORTED)
|
||||||
|
set_target_properties(OpenGL::GLX PROPERTIES IMPORTED_LIBNAME
|
||||||
|
"${OPENGL_glx_LIBRARY}")
|
||||||
|
endif()
|
||||||
|
set_target_properties(OpenGL::GLX PROPERTIES INTERFACE_LINK_LIBRARIES
|
||||||
|
OpenGL::OpenGL)
|
||||||
|
set_target_properties(OpenGL::GLX PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
"${OPENGL_GLX_INCLUDE_DIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(OPENGL_gl_LIBRARY AND NOT TARGET OpenGL::GL)
|
||||||
|
# A legacy GL library is available, so use it for the legacy GL target.
|
||||||
|
if(IS_ABSOLUTE "${OPENGL_gl_LIBRARY}")
|
||||||
|
add_library(OpenGL::GL UNKNOWN IMPORTED)
|
||||||
|
if(OPENGL_gl_LIBRARY MATCHES "/([^/]+)\\.framework$")
|
||||||
|
set(_gl_fw "${OPENGL_gl_LIBRARY}/${CMAKE_MATCH_1}")
|
||||||
|
if(EXISTS "${_gl_fw}.tbd")
|
||||||
|
string(APPEND _gl_fw ".tbd")
|
||||||
|
endif()
|
||||||
|
set_target_properties(OpenGL::GL PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${_gl_fw}")
|
||||||
|
else()
|
||||||
|
set_target_properties(OpenGL::GL PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${OPENGL_gl_LIBRARY}")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
add_library(OpenGL::GL INTERFACE IMPORTED)
|
||||||
|
set_target_properties(OpenGL::GL PROPERTIES
|
||||||
|
IMPORTED_LIBNAME "${OPENGL_gl_LIBRARY}")
|
||||||
|
endif()
|
||||||
|
set_target_properties(OpenGL::GL PROPERTIES
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${OPENGL_INCLUDE_DIR}")
|
||||||
|
elseif(NOT TARGET OpenGL::GL AND TARGET OpenGL::OpenGL AND TARGET OpenGL::GLX)
|
||||||
|
# A legacy GL library is not available, but we can provide the legacy GL
|
||||||
|
# target using GLVND OpenGL+GLX.
|
||||||
|
add_library(OpenGL::GL INTERFACE IMPORTED)
|
||||||
|
set_target_properties(OpenGL::GL PROPERTIES INTERFACE_LINK_LIBRARIES
|
||||||
|
OpenGL::OpenGL)
|
||||||
|
set_property(TARGET OpenGL::GL APPEND PROPERTY INTERFACE_LINK_LIBRARIES
|
||||||
|
OpenGL::GLX)
|
||||||
|
set_target_properties(OpenGL::GL PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
"${OPENGL_INCLUDE_DIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# ::EGL is a GLVND library, and thus Linux-only: we don't bother checking
|
||||||
|
# for a framework version of this library.
|
||||||
|
# Note we test for OpenGL::OpenGL as a target. When this module is updated to
|
||||||
|
# support GLES, we would additionally want to check for the hypothetical GLES
|
||||||
|
# target and enable EGL if either ::GLES or ::OpenGL is created.
|
||||||
|
if(TARGET OpenGL::OpenGL AND OpenGL_EGL_FOUND AND NOT TARGET OpenGL::EGL)
|
||||||
|
if(IS_ABSOLUTE "${OPENGL_egl_LIBRARY}")
|
||||||
|
add_library(OpenGL::EGL UNKNOWN IMPORTED)
|
||||||
|
set_target_properties(OpenGL::EGL PROPERTIES IMPORTED_LOCATION
|
||||||
|
"${OPENGL_egl_LIBRARY}")
|
||||||
|
else()
|
||||||
|
add_library(OpenGL::EGL INTERFACE IMPORTED)
|
||||||
|
set_target_properties(OpenGL::EGL PROPERTIES IMPORTED_LIBNAME
|
||||||
|
"${OPENGL_egl_LIBRARY}")
|
||||||
|
endif()
|
||||||
|
set_target_properties(OpenGL::EGL PROPERTIES INTERFACE_LINK_LIBRARIES
|
||||||
|
OpenGL::OpenGL)
|
||||||
|
# Note that EGL's include directory is different from OpenGL/GLX's!
|
||||||
|
set_target_properties(OpenGL::EGL PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
"${OPENGL_EGL_INCLUDE_DIR}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(OPENGL_GLU_FOUND AND NOT TARGET OpenGL::GLU)
|
||||||
|
if(IS_ABSOLUTE "${OPENGL_glu_LIBRARY}")
|
||||||
|
add_library(OpenGL::GLU UNKNOWN IMPORTED)
|
||||||
|
if(OPENGL_glu_LIBRARY MATCHES "/([^/]+)\\.framework$")
|
||||||
|
set(_glu_fw "${OPENGL_glu_LIBRARY}/${CMAKE_MATCH_1}")
|
||||||
|
if(EXISTS "${_glu_fw}.tbd")
|
||||||
|
string(APPEND _glu_fw ".tbd")
|
||||||
|
endif()
|
||||||
|
set_target_properties(OpenGL::GLU PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${_glu_fw}")
|
||||||
|
else()
|
||||||
|
set_target_properties(OpenGL::GLU PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${OPENGL_glu_LIBRARY}")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
add_library(OpenGL::GLU INTERFACE IMPORTED)
|
||||||
|
set_target_properties(OpenGL::GLU PROPERTIES
|
||||||
|
IMPORTED_LIBNAME "${OPENGL_glu_LIBRARY}")
|
||||||
|
endif()
|
||||||
|
set_target_properties(OpenGL::GLU PROPERTIES
|
||||||
|
INTERFACE_LINK_LIBRARIES OpenGL::GL)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# OPENGL_LIBRARIES mirrors OpenGL::GL's logic ...
|
||||||
|
if(OPENGL_gl_LIBRARY)
|
||||||
|
set(OPENGL_LIBRARIES ${OPENGL_gl_LIBRARY})
|
||||||
|
elseif(TARGET OpenGL::OpenGL AND TARGET OpenGL::GLX)
|
||||||
|
set(OPENGL_LIBRARIES ${OPENGL_opengl_LIBRARY} ${OPENGL_glx_LIBRARY})
|
||||||
|
else()
|
||||||
|
set(OPENGL_LIBRARIES "")
|
||||||
|
endif()
|
||||||
|
# ... and also includes GLU, if available.
|
||||||
|
if(TARGET OpenGL::GLU)
|
||||||
|
list(APPEND OPENGL_LIBRARIES ${OPENGL_glu_LIBRARY})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# This deprecated setting is for backward compatibility with CMake1.4
|
||||||
|
set(OPENGL_LIBRARY ${OPENGL_LIBRARIES})
|
||||||
|
# This deprecated setting is for backward compatibility with CMake1.4
|
||||||
|
set(OPENGL_INCLUDE_PATH ${OPENGL_INCLUDE_DIR})
|
||||||
|
|
||||||
|
mark_as_advanced(
|
||||||
|
OPENGL_INCLUDE_DIR
|
||||||
|
OPENGL_xmesa_INCLUDE_DIR
|
||||||
|
OPENGL_egl_LIBRARY
|
||||||
|
OPENGL_glu_LIBRARY
|
||||||
|
OPENGL_glx_LIBRARY
|
||||||
|
OPENGL_gl_LIBRARY
|
||||||
|
OPENGL_opengl_LIBRARY
|
||||||
|
OPENGL_EGL_INCLUDE_DIR
|
||||||
|
OPENGL_GLX_INCLUDE_DIR
|
||||||
|
)
|
386
cmake/FindPackageHandleStandardArgs.cmake
Normal file
386
cmake/FindPackageHandleStandardArgs.cmake
Normal file
@ -0,0 +1,386 @@
|
|||||||
|
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||||
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||||
|
|
||||||
|
#[=======================================================================[.rst:
|
||||||
|
FindPackageHandleStandardArgs
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
This module provides a function intended to be used in :ref:`Find Modules`
|
||||||
|
implementing :command:`find_package(<PackageName>)` calls. It handles the
|
||||||
|
``REQUIRED``, ``QUIET`` and version-related arguments of ``find_package``.
|
||||||
|
It also sets the ``<PackageName>_FOUND`` variable. The package is
|
||||||
|
considered found if all variables listed contain valid results, e.g.
|
||||||
|
valid filepaths.
|
||||||
|
|
||||||
|
.. command:: find_package_handle_standard_args
|
||||||
|
|
||||||
|
There are two signatures::
|
||||||
|
|
||||||
|
find_package_handle_standard_args(<PackageName>
|
||||||
|
(DEFAULT_MSG|<custom-failure-message>)
|
||||||
|
<required-var>...
|
||||||
|
)
|
||||||
|
|
||||||
|
find_package_handle_standard_args(<PackageName>
|
||||||
|
[FOUND_VAR <result-var>]
|
||||||
|
[REQUIRED_VARS <required-var>...]
|
||||||
|
[VERSION_VAR <version-var>]
|
||||||
|
[HANDLE_COMPONENTS]
|
||||||
|
[CONFIG_MODE]
|
||||||
|
[FAIL_MESSAGE <custom-failure-message>]
|
||||||
|
)
|
||||||
|
|
||||||
|
The ``<PackageName>_FOUND`` variable will be set to ``TRUE`` if all
|
||||||
|
the variables ``<required-var>...`` are valid and any optional
|
||||||
|
constraints are satisfied, and ``FALSE`` otherwise. A success or
|
||||||
|
failure message may be displayed based on the results and on
|
||||||
|
whether the ``REQUIRED`` and/or ``QUIET`` option was given to
|
||||||
|
the :command:`find_package` call.
|
||||||
|
|
||||||
|
The options are:
|
||||||
|
|
||||||
|
``(DEFAULT_MSG|<custom-failure-message>)``
|
||||||
|
In the simple signature this specifies the failure message.
|
||||||
|
Use ``DEFAULT_MSG`` to ask for a default message to be computed
|
||||||
|
(recommended). Not valid in the full signature.
|
||||||
|
|
||||||
|
``FOUND_VAR <result-var>``
|
||||||
|
Obsolete. Specifies either ``<PackageName>_FOUND`` or
|
||||||
|
``<PACKAGENAME>_FOUND`` as the result variable. This exists only
|
||||||
|
for compatibility with older versions of CMake and is now ignored.
|
||||||
|
Result variables of both names are always set for compatibility.
|
||||||
|
|
||||||
|
``REQUIRED_VARS <required-var>...``
|
||||||
|
Specify the variables which are required for this package.
|
||||||
|
These may be named in the generated failure message asking the
|
||||||
|
user to set the missing variable values. Therefore these should
|
||||||
|
typically be cache entries such as ``FOO_LIBRARY`` and not output
|
||||||
|
variables like ``FOO_LIBRARIES``.
|
||||||
|
|
||||||
|
``VERSION_VAR <version-var>``
|
||||||
|
Specify the name of a variable that holds the version of the package
|
||||||
|
that has been found. This version will be checked against the
|
||||||
|
(potentially) specified required version given to the
|
||||||
|
:command:`find_package` call, including its ``EXACT`` option.
|
||||||
|
The default messages include information about the required
|
||||||
|
version and the version which has been actually found, both
|
||||||
|
if the version is ok or not.
|
||||||
|
|
||||||
|
``HANDLE_COMPONENTS``
|
||||||
|
Enable handling of package components. In this case, the command
|
||||||
|
will report which components have been found and which are missing,
|
||||||
|
and the ``<PackageName>_FOUND`` variable will be set to ``FALSE``
|
||||||
|
if any of the required components (i.e. not the ones listed after
|
||||||
|
the ``OPTIONAL_COMPONENTS`` option of :command:`find_package`) are
|
||||||
|
missing.
|
||||||
|
|
||||||
|
``CONFIG_MODE``
|
||||||
|
Specify that the calling find module is a wrapper around a
|
||||||
|
call to ``find_package(<PackageName> NO_MODULE)``. This implies
|
||||||
|
a ``VERSION_VAR`` value of ``<PackageName>_VERSION``. The command
|
||||||
|
will automatically check whether the package configuration file
|
||||||
|
was found.
|
||||||
|
|
||||||
|
``FAIL_MESSAGE <custom-failure-message>``
|
||||||
|
Specify a custom failure message instead of using the default
|
||||||
|
generated message. Not recommended.
|
||||||
|
|
||||||
|
Example for the simple signature:
|
||||||
|
|
||||||
|
.. code-block:: cmake
|
||||||
|
|
||||||
|
find_package_handle_standard_args(LibXml2 DEFAULT_MSG
|
||||||
|
LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR)
|
||||||
|
|
||||||
|
The ``LibXml2`` package is considered to be found if both
|
||||||
|
``LIBXML2_LIBRARY`` and ``LIBXML2_INCLUDE_DIR`` are valid.
|
||||||
|
Then also ``LibXml2_FOUND`` is set to ``TRUE``. If it is not found
|
||||||
|
and ``REQUIRED`` was used, it fails with a
|
||||||
|
:command:`message(FATAL_ERROR)`, independent whether ``QUIET`` was
|
||||||
|
used or not. If it is found, success will be reported, including
|
||||||
|
the content of the first ``<required-var>``. On repeated CMake runs,
|
||||||
|
the same message will not be printed again.
|
||||||
|
|
||||||
|
Example for the full signature:
|
||||||
|
|
||||||
|
.. code-block:: cmake
|
||||||
|
|
||||||
|
find_package_handle_standard_args(LibArchive
|
||||||
|
REQUIRED_VARS LibArchive_LIBRARY LibArchive_INCLUDE_DIR
|
||||||
|
VERSION_VAR LibArchive_VERSION)
|
||||||
|
|
||||||
|
In this case, the ``LibArchive`` package is considered to be found if
|
||||||
|
both ``LibArchive_LIBRARY`` and ``LibArchive_INCLUDE_DIR`` are valid.
|
||||||
|
Also the version of ``LibArchive`` will be checked by using the version
|
||||||
|
contained in ``LibArchive_VERSION``. Since no ``FAIL_MESSAGE`` is given,
|
||||||
|
the default messages will be printed.
|
||||||
|
|
||||||
|
Another example for the full signature:
|
||||||
|
|
||||||
|
.. code-block:: cmake
|
||||||
|
|
||||||
|
find_package(Automoc4 QUIET NO_MODULE HINTS /opt/automoc4)
|
||||||
|
find_package_handle_standard_args(Automoc4 CONFIG_MODE)
|
||||||
|
|
||||||
|
In this case, a ``FindAutmoc4.cmake`` module wraps a call to
|
||||||
|
``find_package(Automoc4 NO_MODULE)`` and adds an additional search
|
||||||
|
directory for ``automoc4``. Then the call to
|
||||||
|
``find_package_handle_standard_args`` produces a proper success/failure
|
||||||
|
message.
|
||||||
|
#]=======================================================================]
|
||||||
|
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageMessage.cmake)
|
||||||
|
|
||||||
|
# internal helper macro
|
||||||
|
macro(_FPHSA_FAILURE_MESSAGE _msg)
|
||||||
|
if (${_NAME}_FIND_REQUIRED)
|
||||||
|
message(FATAL_ERROR "${_msg}")
|
||||||
|
else ()
|
||||||
|
if (NOT ${_NAME}_FIND_QUIETLY)
|
||||||
|
message(STATUS "${_msg}")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
|
||||||
|
# internal helper macro to generate the failure message when used in CONFIG_MODE:
|
||||||
|
macro(_FPHSA_HANDLE_FAILURE_CONFIG_MODE)
|
||||||
|
# <name>_CONFIG is set, but FOUND is false, this means that some other of the REQUIRED_VARS was not found:
|
||||||
|
if(${_NAME}_CONFIG)
|
||||||
|
_FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: missing:${MISSING_VARS} (found ${${_NAME}_CONFIG} ${VERSION_MSG})")
|
||||||
|
else()
|
||||||
|
# If _CONSIDERED_CONFIGS is set, the config-file has been found, but no suitable version.
|
||||||
|
# List them all in the error message:
|
||||||
|
if(${_NAME}_CONSIDERED_CONFIGS)
|
||||||
|
set(configsText "")
|
||||||
|
list(LENGTH ${_NAME}_CONSIDERED_CONFIGS configsCount)
|
||||||
|
math(EXPR configsCount "${configsCount} - 1")
|
||||||
|
foreach(currentConfigIndex RANGE ${configsCount})
|
||||||
|
list(GET ${_NAME}_CONSIDERED_CONFIGS ${currentConfigIndex} filename)
|
||||||
|
list(GET ${_NAME}_CONSIDERED_VERSIONS ${currentConfigIndex} version)
|
||||||
|
string(APPEND configsText " ${filename} (version ${version})\n")
|
||||||
|
endforeach()
|
||||||
|
if (${_NAME}_NOT_FOUND_MESSAGE)
|
||||||
|
string(APPEND configsText " Reason given by package: ${${_NAME}_NOT_FOUND_MESSAGE}\n")
|
||||||
|
endif()
|
||||||
|
_FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} ${VERSION_MSG}, checked the following files:\n${configsText}")
|
||||||
|
|
||||||
|
else()
|
||||||
|
# Simple case: No Config-file was found at all:
|
||||||
|
_FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: found neither ${_NAME}Config.cmake nor ${_NAME_LOWER}-config.cmake ${VERSION_MSG}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
|
||||||
|
function(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FIRST_ARG)
|
||||||
|
|
||||||
|
# Set up the arguments for `cmake_parse_arguments`.
|
||||||
|
set(options CONFIG_MODE HANDLE_COMPONENTS)
|
||||||
|
set(oneValueArgs FAIL_MESSAGE VERSION_VAR FOUND_VAR)
|
||||||
|
set(multiValueArgs REQUIRED_VARS)
|
||||||
|
|
||||||
|
# Check whether we are in 'simple' or 'extended' mode:
|
||||||
|
set(_KEYWORDS_FOR_EXTENDED_MODE ${options} ${oneValueArgs} ${multiValueArgs} )
|
||||||
|
list(FIND _KEYWORDS_FOR_EXTENDED_MODE "${_FIRST_ARG}" INDEX)
|
||||||
|
|
||||||
|
if(${INDEX} EQUAL -1)
|
||||||
|
set(FPHSA_FAIL_MESSAGE ${_FIRST_ARG})
|
||||||
|
set(FPHSA_REQUIRED_VARS ${ARGN})
|
||||||
|
set(FPHSA_VERSION_VAR)
|
||||||
|
else()
|
||||||
|
cmake_parse_arguments(FPHSA "${options}" "${oneValueArgs}" "${multiValueArgs}" ${_FIRST_ARG} ${ARGN})
|
||||||
|
|
||||||
|
if(FPHSA_UNPARSED_ARGUMENTS)
|
||||||
|
message(FATAL_ERROR "Unknown keywords given to FIND_PACKAGE_HANDLE_STANDARD_ARGS(): \"${FPHSA_UNPARSED_ARGUMENTS}\"")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT FPHSA_FAIL_MESSAGE)
|
||||||
|
set(FPHSA_FAIL_MESSAGE "DEFAULT_MSG")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# In config-mode, we rely on the variable <package>_CONFIG, which is set by find_package()
|
||||||
|
# when it successfully found the config-file, including version checking:
|
||||||
|
if(FPHSA_CONFIG_MODE)
|
||||||
|
list(INSERT FPHSA_REQUIRED_VARS 0 ${_NAME}_CONFIG)
|
||||||
|
list(REMOVE_DUPLICATES FPHSA_REQUIRED_VARS)
|
||||||
|
set(FPHSA_VERSION_VAR ${_NAME}_VERSION)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT FPHSA_REQUIRED_VARS)
|
||||||
|
message(FATAL_ERROR "No REQUIRED_VARS specified for FIND_PACKAGE_HANDLE_STANDARD_ARGS()")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# now that we collected all arguments, process them
|
||||||
|
|
||||||
|
if("x${FPHSA_FAIL_MESSAGE}" STREQUAL "xDEFAULT_MSG")
|
||||||
|
set(FPHSA_FAIL_MESSAGE "Could NOT find ${_NAME}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
list(GET FPHSA_REQUIRED_VARS 0 _FIRST_REQUIRED_VAR)
|
||||||
|
|
||||||
|
string(TOUPPER ${_NAME} _NAME_UPPER)
|
||||||
|
string(TOLOWER ${_NAME} _NAME_LOWER)
|
||||||
|
|
||||||
|
if(FPHSA_FOUND_VAR)
|
||||||
|
if(FPHSA_FOUND_VAR MATCHES "^${_NAME}_FOUND$" OR FPHSA_FOUND_VAR MATCHES "^${_NAME_UPPER}_FOUND$")
|
||||||
|
set(_FOUND_VAR ${FPHSA_FOUND_VAR})
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "The argument for FOUND_VAR is \"${FPHSA_FOUND_VAR}\", but only \"${_NAME}_FOUND\" and \"${_NAME_UPPER}_FOUND\" are valid names.")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
set(_FOUND_VAR ${_NAME_UPPER}_FOUND)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# collect all variables which were not found, so they can be printed, so the
|
||||||
|
# user knows better what went wrong (#6375)
|
||||||
|
set(MISSING_VARS "")
|
||||||
|
set(DETAILS "")
|
||||||
|
# check if all passed variables are valid
|
||||||
|
set(FPHSA_FOUND_${_NAME} TRUE)
|
||||||
|
foreach(_CURRENT_VAR ${FPHSA_REQUIRED_VARS})
|
||||||
|
if(NOT ${_CURRENT_VAR})
|
||||||
|
set(FPHSA_FOUND_${_NAME} FALSE)
|
||||||
|
string(APPEND MISSING_VARS " ${_CURRENT_VAR}")
|
||||||
|
else()
|
||||||
|
string(APPEND DETAILS "[${${_CURRENT_VAR}}]")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
if(FPHSA_FOUND_${_NAME})
|
||||||
|
set(${_NAME}_FOUND TRUE)
|
||||||
|
set(${_NAME_UPPER}_FOUND TRUE)
|
||||||
|
else()
|
||||||
|
set(${_NAME}_FOUND FALSE)
|
||||||
|
set(${_NAME_UPPER}_FOUND FALSE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# component handling
|
||||||
|
unset(FOUND_COMPONENTS_MSG)
|
||||||
|
unset(MISSING_COMPONENTS_MSG)
|
||||||
|
|
||||||
|
if(FPHSA_HANDLE_COMPONENTS)
|
||||||
|
foreach(comp ${${_NAME}_FIND_COMPONENTS})
|
||||||
|
if(${_NAME}_${comp}_FOUND)
|
||||||
|
|
||||||
|
if(NOT DEFINED FOUND_COMPONENTS_MSG)
|
||||||
|
set(FOUND_COMPONENTS_MSG "found components: ")
|
||||||
|
endif()
|
||||||
|
string(APPEND FOUND_COMPONENTS_MSG " ${comp}")
|
||||||
|
|
||||||
|
else()
|
||||||
|
|
||||||
|
if(NOT DEFINED MISSING_COMPONENTS_MSG)
|
||||||
|
set(MISSING_COMPONENTS_MSG "missing components: ")
|
||||||
|
endif()
|
||||||
|
string(APPEND MISSING_COMPONENTS_MSG " ${comp}")
|
||||||
|
|
||||||
|
if(${_NAME}_FIND_REQUIRED_${comp})
|
||||||
|
set(${_NAME}_FOUND FALSE)
|
||||||
|
string(APPEND MISSING_VARS " ${comp}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
set(COMPONENT_MSG "${FOUND_COMPONENTS_MSG} ${MISSING_COMPONENTS_MSG}")
|
||||||
|
string(APPEND DETAILS "[c${COMPONENT_MSG}]")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# version handling:
|
||||||
|
set(VERSION_MSG "")
|
||||||
|
set(VERSION_OK TRUE)
|
||||||
|
|
||||||
|
# check with DEFINED here as the requested or found version may be "0"
|
||||||
|
if (DEFINED ${_NAME}_FIND_VERSION)
|
||||||
|
if(DEFINED ${FPHSA_VERSION_VAR})
|
||||||
|
set(_FOUND_VERSION ${${FPHSA_VERSION_VAR}})
|
||||||
|
|
||||||
|
if(${_NAME}_FIND_VERSION_EXACT) # exact version required
|
||||||
|
# count the dots in the version string
|
||||||
|
string(REGEX REPLACE "[^.]" "" _VERSION_DOTS "${_FOUND_VERSION}")
|
||||||
|
# add one dot because there is one dot more than there are components
|
||||||
|
string(LENGTH "${_VERSION_DOTS}." _VERSION_DOTS)
|
||||||
|
if (_VERSION_DOTS GREATER ${_NAME}_FIND_VERSION_COUNT)
|
||||||
|
# Because of the C++ implementation of find_package() ${_NAME}_FIND_VERSION_COUNT
|
||||||
|
# is at most 4 here. Therefore a simple lookup table is used.
|
||||||
|
if (${_NAME}_FIND_VERSION_COUNT EQUAL 1)
|
||||||
|
set(_VERSION_REGEX "[^.]*")
|
||||||
|
elseif (${_NAME}_FIND_VERSION_COUNT EQUAL 2)
|
||||||
|
set(_VERSION_REGEX "[^.]*\\.[^.]*")
|
||||||
|
elseif (${_NAME}_FIND_VERSION_COUNT EQUAL 3)
|
||||||
|
set(_VERSION_REGEX "[^.]*\\.[^.]*\\.[^.]*")
|
||||||
|
else ()
|
||||||
|
set(_VERSION_REGEX "[^.]*\\.[^.]*\\.[^.]*\\.[^.]*")
|
||||||
|
endif ()
|
||||||
|
string(REGEX REPLACE "^(${_VERSION_REGEX})\\..*" "\\1" _VERSION_HEAD "${_FOUND_VERSION}")
|
||||||
|
unset(_VERSION_REGEX)
|
||||||
|
if (NOT ${_NAME}_FIND_VERSION VERSION_EQUAL _VERSION_HEAD)
|
||||||
|
set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"")
|
||||||
|
set(VERSION_OK FALSE)
|
||||||
|
else ()
|
||||||
|
set(VERSION_MSG "(found suitable exact version \"${_FOUND_VERSION}\")")
|
||||||
|
endif ()
|
||||||
|
unset(_VERSION_HEAD)
|
||||||
|
else ()
|
||||||
|
if (NOT ${_NAME}_FIND_VERSION VERSION_EQUAL _FOUND_VERSION)
|
||||||
|
set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is exact version \"${${_NAME}_FIND_VERSION}\"")
|
||||||
|
set(VERSION_OK FALSE)
|
||||||
|
else ()
|
||||||
|
set(VERSION_MSG "(found suitable exact version \"${_FOUND_VERSION}\")")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
unset(_VERSION_DOTS)
|
||||||
|
|
||||||
|
else() # minimum version specified:
|
||||||
|
if (${_NAME}_FIND_VERSION VERSION_GREATER _FOUND_VERSION)
|
||||||
|
set(VERSION_MSG "Found unsuitable version \"${_FOUND_VERSION}\", but required is at least \"${${_NAME}_FIND_VERSION}\"")
|
||||||
|
set(VERSION_OK FALSE)
|
||||||
|
else ()
|
||||||
|
set(VERSION_MSG "(found suitable version \"${_FOUND_VERSION}\", minimum required is \"${${_NAME}_FIND_VERSION}\")")
|
||||||
|
endif ()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
else()
|
||||||
|
|
||||||
|
# if the package was not found, but a version was given, add that to the output:
|
||||||
|
if(${_NAME}_FIND_VERSION_EXACT)
|
||||||
|
set(VERSION_MSG "(Required is exact version \"${${_NAME}_FIND_VERSION}\")")
|
||||||
|
else()
|
||||||
|
set(VERSION_MSG "(Required is at least version \"${${_NAME}_FIND_VERSION}\")")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
endif()
|
||||||
|
else ()
|
||||||
|
# Check with DEFINED as the found version may be 0.
|
||||||
|
if(DEFINED ${FPHSA_VERSION_VAR})
|
||||||
|
set(VERSION_MSG "(found version \"${${FPHSA_VERSION_VAR}}\")")
|
||||||
|
endif()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if(VERSION_OK)
|
||||||
|
string(APPEND DETAILS "[v${${FPHSA_VERSION_VAR}}(${${_NAME}_FIND_VERSION})]")
|
||||||
|
else()
|
||||||
|
set(${_NAME}_FOUND FALSE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
# print the result:
|
||||||
|
if (${_NAME}_FOUND)
|
||||||
|
FIND_PACKAGE_MESSAGE(${_NAME} "Found ${_NAME}: ${${_FIRST_REQUIRED_VAR}} ${VERSION_MSG} ${COMPONENT_MSG}" "${DETAILS}")
|
||||||
|
else ()
|
||||||
|
|
||||||
|
if(FPHSA_CONFIG_MODE)
|
||||||
|
_FPHSA_HANDLE_FAILURE_CONFIG_MODE()
|
||||||
|
else()
|
||||||
|
if(NOT VERSION_OK)
|
||||||
|
_FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE}: ${VERSION_MSG} (found ${${_FIRST_REQUIRED_VAR}})")
|
||||||
|
else()
|
||||||
|
_FPHSA_FAILURE_MESSAGE("${FPHSA_FAIL_MESSAGE} (missing:${MISSING_VARS}) ${VERSION_MSG}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
set(${_NAME}_FOUND ${${_NAME}_FOUND} PARENT_SCOPE)
|
||||||
|
set(${_NAME_UPPER}_FOUND ${${_NAME}_FOUND} PARENT_SCOPE)
|
||||||
|
endfunction()
|
47
cmake/FindPackageMessage.cmake
Normal file
47
cmake/FindPackageMessage.cmake
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||||
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||||
|
|
||||||
|
#.rst:
|
||||||
|
# FindPackageMessage
|
||||||
|
# ------------------
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# FIND_PACKAGE_MESSAGE(<name> "message for user" "find result details")
|
||||||
|
#
|
||||||
|
# This macro is intended to be used in FindXXX.cmake modules files. It
|
||||||
|
# will print a message once for each unique find result. This is useful
|
||||||
|
# for telling the user where a package was found. The first argument
|
||||||
|
# specifies the name (XXX) of the package. The second argument
|
||||||
|
# specifies the message to display. The third argument lists details
|
||||||
|
# about the find result so that if they change the message will be
|
||||||
|
# displayed again. The macro also obeys the QUIET argument to the
|
||||||
|
# find_package command.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
#
|
||||||
|
# ::
|
||||||
|
#
|
||||||
|
# if(X11_FOUND)
|
||||||
|
# FIND_PACKAGE_MESSAGE(X11 "Found X11: ${X11_X11_LIB}"
|
||||||
|
# "[${X11_X11_LIB}][${X11_INCLUDE_DIR}]")
|
||||||
|
# else()
|
||||||
|
# ...
|
||||||
|
# endif()
|
||||||
|
|
||||||
|
function(FIND_PACKAGE_MESSAGE pkg msg details)
|
||||||
|
# Avoid printing a message repeatedly for the same find result.
|
||||||
|
if(NOT ${pkg}_FIND_QUIETLY)
|
||||||
|
string(REPLACE "\n" "" details "${details}")
|
||||||
|
set(DETAILS_VAR FIND_PACKAGE_MESSAGE_DETAILS_${pkg})
|
||||||
|
if(NOT "${details}" STREQUAL "${${DETAILS_VAR}}")
|
||||||
|
# The message has not yet been printed.
|
||||||
|
message(STATUS "${msg}")
|
||||||
|
|
||||||
|
# Save the find details in the cache to avoid printing the same
|
||||||
|
# message again.
|
||||||
|
set("${DETAILS_VAR}" "${details}"
|
||||||
|
CACHE INTERNAL "Details about finding ${pkg}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endfunction()
|
59
scons/gl.py
Normal file
59
scons/gl.py
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# vi: syntax=python:et:ts=4
|
||||||
|
|
||||||
|
def CheckOpenGL(context):
|
||||||
|
context.Message("Checking for OpenGL... ")
|
||||||
|
env = context.env
|
||||||
|
backup = env.Clone().Dictionary()
|
||||||
|
|
||||||
|
test_program = ""
|
||||||
|
|
||||||
|
if env["PLATFORM"] == "win32":
|
||||||
|
env.AppendUnique(LIBS = ["opengl32"])
|
||||||
|
test_program += "#include <GL/opengl32.h>\n"
|
||||||
|
elif env["PLATFORM"] == "darwin":
|
||||||
|
env.AppendUnique(FRAMEWORKS = "OpenGL")
|
||||||
|
test_program += "#include <OpenGL/gl.h>\n"
|
||||||
|
else:
|
||||||
|
env.AppendUnique(LIBS = ["GL"])
|
||||||
|
test_program += "#include <GL/gl.h>\n"
|
||||||
|
|
||||||
|
test_program += "int main()\n{}\n"
|
||||||
|
|
||||||
|
if context.TryLink(test_program, ".c"):
|
||||||
|
context.Result("yes")
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
env.Replace(**backup)
|
||||||
|
context.Result("no")
|
||||||
|
return False
|
||||||
|
|
||||||
|
def CheckGLEW(context):
|
||||||
|
context.Message("Checking for OpenGL Extension Wrangler... ")
|
||||||
|
env = context.env
|
||||||
|
backup = env.Clone().Dictionary()
|
||||||
|
|
||||||
|
if env["PLATFORM"] == "win32":
|
||||||
|
env.AppendUnique(LIBS = ["glew32", "opengl32"])
|
||||||
|
elif env["PLATFORM"] == "darwin":
|
||||||
|
env.AppendUnique(LIBS = ["GLEW"])
|
||||||
|
env.AppendUnique(FRAMEWORKS = "OpenGL")
|
||||||
|
else:
|
||||||
|
env.AppendUnique(LIBS = ["GLEW", "GL"])
|
||||||
|
|
||||||
|
test_program = """
|
||||||
|
#include <GL/glew.h>
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
glewInit();
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
|
if context.TryLink(test_program, ".c"):
|
||||||
|
context.Result("yes")
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
env.Replace(**backup)
|
||||||
|
context.Result("no")
|
||||||
|
return False
|
||||||
|
|
||||||
|
config_checks = { "CheckOpenGL" : CheckOpenGL, "CheckGLEW" : CheckGLEW }
|
@ -20,6 +20,8 @@ include_directories(SYSTEM ${PANGOCAIRO_INCLUDE_DIRS} )
|
|||||||
include_directories(SYSTEM ${GETTEXT_INCLUDE_DIR} )
|
include_directories(SYSTEM ${GETTEXT_INCLUDE_DIR} )
|
||||||
include_directories(SYSTEM ${LIBDBUS_INCLUDE_DIRS} )
|
include_directories(SYSTEM ${LIBDBUS_INCLUDE_DIRS} )
|
||||||
include_directories(SYSTEM ${VORBISFILE_INCLUDE_DIR} )
|
include_directories(SYSTEM ${VORBISFILE_INCLUDE_DIR} )
|
||||||
|
include_directories(SYSTEM ${GLEW_INCLUDE_DIRS})
|
||||||
|
include_directories(SYSTEM ${OPENGL_INCLUDE_DIR})
|
||||||
|
|
||||||
include_directories(SYSTEM ${SDL2_INCLUDE_DIR} )
|
include_directories(SYSTEM ${SDL2_INCLUDE_DIR} )
|
||||||
set(sdl-lib ${SDL2_LIBRARY})
|
set(sdl-lib ${SDL2_LIBRARY})
|
||||||
@ -82,6 +84,8 @@ set(game-external-libs
|
|||||||
${FONTCONFIG_LIBRARIES}
|
${FONTCONFIG_LIBRARIES}
|
||||||
${LIBDBUS_LIBRARIES}
|
${LIBDBUS_LIBRARIES}
|
||||||
${VORBISFILE_LIBRARIES}
|
${VORBISFILE_LIBRARIES}
|
||||||
|
${OPENGL_LIBRARIES}
|
||||||
|
${GLEW_LIBRARIES}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(ENABLE_HISTORY AND HISTORY_FOUND)
|
if(ENABLE_HISTORY AND HISTORY_FOUND)
|
||||||
|
@ -23,7 +23,7 @@ if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|||||||
brew install ccache
|
brew install ccache
|
||||||
travis_wait ./projectfiles/Xcode/Fix_Xcode_Dependencies
|
travis_wait ./projectfiles/Xcode/Fix_Xcode_Dependencies
|
||||||
else
|
else
|
||||||
brew install scons cairo pango moreutils sdl2_image sdl2_ttf sdl2_mixer openssl
|
brew install scons cairo pango moreutils sdl2_image sdl2_ttf sdl2_mixer openssl glew
|
||||||
export CXXFLAGS="-I/usr/local/opt/openssl/include $CFLAGS"
|
export CXXFLAGS="-I/usr/local/opt/openssl/include $CFLAGS"
|
||||||
export LDFLAGS="-L/usr/local/opt/openssl/lib $LDFLAGS"
|
export LDFLAGS="-L/usr/local/opt/openssl/lib $LDFLAGS"
|
||||||
fi
|
fi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user