mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-19 20:32:15 +02:00
add support for static system GLEW to cmake
This commit is contained in:
parent
22c617dd89
commit
c536d70379
63
cmake/FindGLEW.cmake
Normal file
63
cmake/FindGLEW.cmake
Normal file
@ -0,0 +1,63 @@
|
||||
find_package(PkgConfig)
|
||||
|
||||
pkg_check_modules(PC_GLEW QUIET glew)
|
||||
|
||||
set(GLEW_STANDARD_DEFINITIONS ${PC_GLEW_DEFINITIONS}
|
||||
CACHE STRING
|
||||
"GLEW required CFLAGS")
|
||||
set(GLEW_STATIC_DEFINITIONS ${PC_GLEW_STATIC_DEFINITIONS}
|
||||
CACHE STRING
|
||||
"GLEW static required CFLAGS")
|
||||
|
||||
find_path(GLEW_STANDARD_INCLUDE_DIR GL/glew.h
|
||||
HINTS ${PC_GLEW_INCLUDEDIR}
|
||||
${PC_GLEW_INCLUDE_DIRS})
|
||||
find_path(GLEW_STATIC_INCLUDE_DIR GL/glew.h
|
||||
HINTS ${PC_GLEW_STATIC_INCLUDEDIR}
|
||||
${PC_GLEW_STATIC_INCLUDE_DIRS})
|
||||
|
||||
find_library(GLEW_STANDARD_LIBRARY
|
||||
NAMES ${PC_GLEW_LIBRARIES} GLEW glew32 glew glew32s
|
||||
HINTS ${PC_GLEW_LIBDIR}
|
||||
${PC_GLEW_LIBRARY_DIRS}
|
||||
PATH_SUFFIXES lib64)
|
||||
set(lib_suffixes ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||
${CMAKE_DYNAMIC_LIBRARY_SUFFIX} ${CMAKE_SHARED_OBJECT_SUFFIX})
|
||||
find_library(GLEW_STATIC_LIBRARY
|
||||
NAMES ${PC_GLEW_STATIC_LIBRARIES} GLEW glew32 glew glew32s
|
||||
HINTS ${PC_GLEW_STATIC_LIBDIR}
|
||||
${PC_GLEW_STATIC_LIBRARY_DIRS}
|
||||
PATH_SUFFIXES lib64)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${lib_suffixes})
|
||||
unset(lib_suffixes)
|
||||
|
||||
if(GLEW_FIND_COMPONENTS AND
|
||||
GLEW_FIND_COMPONENTS STREQUAL "static")
|
||||
set(GLEW_DEFINITION ${GLEW_STATIC_DEFINITIONS})
|
||||
set(GLEW_INCLUDE_DIR ${GLEW_STATIC_INCLUDE_DIR})
|
||||
set(GLEW_LIBRARY ${GLEW_STATIC_LIBRARY})
|
||||
else()
|
||||
set(GLEW_DEFINITION ${GLEW_STANDARD_DEFINITIONS})
|
||||
set(GLEW_INCLUDE_DIR ${GLEW_STANDARD_INCLUDE_DIR})
|
||||
set(GLEW_LIBRARY ${GLEW_STANDARD_LIBRARY})
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(GLEW STANDARD_MESSAGE
|
||||
GLEW_INCLUDE_DIR GLEW_LIBRARY)
|
||||
|
||||
if(GLEW_FOUND)
|
||||
set(GLEW_DEFINITIONS ${GLEW_DEFINITION})
|
||||
set(GLEW_INCLUDE_DIRS ${GLEW_INCLUDE_DIR})
|
||||
set(GLEW_LIBRARIES ${GLEW_LIBRARY})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(
|
||||
GLEW_STANDARD_DEFINITIONS
|
||||
GLEW_STANDARD_INCLUDE_DIR
|
||||
GLEW_STANDARD_LIBRARY
|
||||
|
||||
GLEW_STATIC_DEFINITIONS
|
||||
GLEW_STATIC_INCLUDE_DIR
|
||||
GLEW_STATIC_LIBRARY)
|
@ -17,7 +17,10 @@ elseif(APPLE AND UNIX)
|
||||
else()
|
||||
endif()
|
||||
|
||||
option(USE_STATIC_GLEW "Build using bundled GLEW" ${WIN32})
|
||||
option(USE_BUNDLED_GLEW "Build using bundled GLEW" ${WIN32})
|
||||
|
||||
option(USE_STATIC_GLEW "Link GLEW statically (ignored with USE_BUNDLED_GLEW)"
|
||||
false)
|
||||
|
||||
include_directories(SYSTEM ${obs_SOURCE_DIR}/libobs)
|
||||
|
||||
@ -26,14 +29,25 @@ include_directories(${OPENGL_INCLUDE_DIRS})
|
||||
|
||||
add_definitions(-DGLEW_NO_GLU)
|
||||
|
||||
if(NOT USE_STATIC_GLEW)
|
||||
find_package(GLEW REQUIRED)
|
||||
include_directories(${GLEW_INCLUDE_DIRS})
|
||||
set(GLEW_SRC)
|
||||
else()
|
||||
if(USE_BUNDLED_GLEW)
|
||||
include_directories(SYSTEM glew/include)
|
||||
add_definitions(-DGLEW_STATIC)
|
||||
set(GLEW_SRC glew/src/glew.c)
|
||||
else()
|
||||
if(USE_STATIC_GLEW)
|
||||
set(lib_prefixes ${CMAKE_FIND_LIBRARY_PREFIXES})
|
||||
set(CMAKE_FIND_LIBRARY_PREFIXES ${CMAKE_STATIC_LIBRARY_PREFIX}
|
||||
${CMAKE_DYNAMIC_LIBRARY_PREFIX}
|
||||
${CMAKE_SHARED_OBJECT_PREFIX})
|
||||
set(glew_static "static")
|
||||
endif()
|
||||
find_package(GLEW REQUIRED ${glew_static})
|
||||
include_directories(${GLEW_INCLUDE_DIRS})
|
||||
if(USE_STATIC_GLEW)
|
||||
unset(glew_static)
|
||||
set(CMAKE_FIND_LIBRARY_PREFIXES ${lib_prefixes})
|
||||
unset(lib_prefixes)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_library(libobs-opengl MODULE
|
||||
|
Loading…
Reference in New Issue
Block a user