# This module can be copied and used by external plugins for OBS # # Once done these will be defined: # # LIBOBS_FOUND # LIBOBS_INCLUDE_DIRS # LIBOBS_LIBRARIES find_package(PkgConfig QUIET) if (PKG_CONFIG_FOUND) pkg_check_modules(_OBS QUIET obs libobs) endif() if(CMAKE_SIZEOF_VOID_P EQUAL 8) set(_lib_suffix 64) else() set(_lib_suffix 32) endif() if(DEFINED CMAKE_BUILD_TYPE) if(CMAKE_BUILD_TYPE STREQUAL "Debug") set(_build_type_base "debug") else() set(_build_type_base "release") endif() endif() find_path(LIBOBS_INCLUDE_DIR NAMES obs.h HINTS ENV obsPath${_lib_suffix} ENV obsPath ${obsPath} PATHS /usr/include /usr/local/include /opt/local/include /sw/include PATH_SUFFIXES libobs ) function(find_obs_lib base_name repo_build_path lib_name) string(TOUPPER "${base_name}" base_name_u) if(DEFINED _build_type_base) set(_build_type_${repo_build_path} "${_build_type_base}/${repo_build_path}") set(_build_type_${repo_build_path}${_lib_suffix} "${_build_type_base}${_lib_suffix}/${repo_build_path}") endif() find_library(${base_name_u}_LIB NAMES ${_${base_name_u}_LIBRARIES} ${lib_name} lib${lib_name} HINTS ENV obsPath${_lib_suffix} ENV obsPath ${obsPath} ${_${base_name_u}_LIBRARY_DIRS} PATHS /usr/lib /usr/local/lib /opt/local/lib /sw/lib PATH_SUFFIXES lib${_lib_suffix} lib libs${_lib_suffix} libs bin${_lib_suffix} bin ../lib${_lib_suffix} ../lib ../libs${_lib_suffix} ../libs ../bin${_lib_suffix} ../bin # base repo non-msvc-specific search paths ${_build_type_${repo_build_path}} ${_build_type_${repo_build_path}${_lib_suffix}} build/${repo_build_path} build${_lib_suffix}/${repo_build_path} # base repo msvc-specific search paths on windows build${_lib_suffix}/${repo_build_path}/Debug build${_lib_suffix}/${repo_build_path}/RelWithDebInfo build/${repo_build_path}/Debug build/${repo_build_path}/RelWithDebInfo ) endfunction() find_obs_lib(LIBOBS libobs obs) if(MSVC) find_obs_lib(W32_PTHREADS deps/w32-pthreads w32-pthreads) endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Libobs DEFAULT_MSG LIBOBS_LIB LIBOBS_INCLUDE_DIR) mark_as_advanced(LIBOBS_INCLUDE_DIR LIBOBS_LIB) if(LIBOBS_FOUND) if(MSVC) if (NOT DEFINED W32_PTHREADS_LIB) message(FATAL_ERROR "Could not find the w32-pthreads library" ) endif() set(W32_PTHREADS_INCLUDE_DIR ${LIBOBS_INCLUDE_DIR}/../deps/w32-pthreads) endif() set(LIBOBS_INCLUDE_DIRS ${LIBOBS_INCLUDE_DIR} ${W32_PTHREADS_INCLUDE_DIR}) set(LIBOBS_LIBRARIES ${LIBOBS_LIB} ${W32_PTHREADS_LIB}) include(${LIBOBS_INCLUDE_DIR}/../cmake/external/ObsPluginHelpers.cmake) # allows external plugins to easily use/share common dependencies that are often included with libobs (such as FFmpeg) if(NOT DEFINED INCLUDED_LIBOBS_CMAKE_MODULES) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${LIBOBS_INCLUDE_DIR}/../cmake/Modules/") set(INCLUDED_LIBOBS_CMAKE_MODULES true) endif() else() message(FATAL_ERROR "Could not find the libobs library" ) endif()