cmake: Further improve libOBS and obs-frontend-api detection
This commit is contained in:
parent
ad48e74410
commit
5f050515ba
|
|
@ -439,30 +439,6 @@ if(STANDALONE)
|
||||||
endif()
|
endif()
|
||||||
CacheSet(${PREFIX}OBS_PATH "${libobs_SOURCE_DIR}")
|
CacheSet(${PREFIX}OBS_PATH "${libobs_SOURCE_DIR}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT EXISTS "${${PREFIX}OBS_PATH}/cmake/LibObs/LibObsConfig.cmake")
|
|
||||||
message(FATAL_ERROR "${LOGPREFIX} The provided path for libOBS is invalid as it did not contain '/cmake/LibObs/LibObsConfig.cmake'.")
|
|
||||||
return()
|
|
||||||
else()
|
|
||||||
include("${${PREFIX}OBS_PATH}/cmake/LibObs/LibObsConfig.cmake")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT TARGET obs-frontend-api)
|
|
||||||
if(EXISTS "${${PREFIX}OBS_PATH}/cmake/obs-frontend-api/obs-frontend-apiConfig.cmake")
|
|
||||||
include("${${PREFIX}OBS_PATH}/cmake/obs-frontend-api/obs-frontend-apiConfig.cmake")
|
|
||||||
elseif((EXISTS "${${PREFIX}OBS_PATH}/bin/${D_PLATFORM_BITS}bit/obs-frontend-api.lib") AND (EXISTS "${${PREFIX}OBS_PATH}/include/obs-frontend-api.h"))
|
|
||||||
add_library(obs-frontend-api SHARED IMPORTED)
|
|
||||||
set_target_properties(obs-frontend-api PROPERTIES
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "${${PREFIX}OBS_PATH}/include"
|
|
||||||
INTERFACE_LINK_LIBRARIES "libobs"
|
|
||||||
IMPORTED_CONFIGURATIONS RELWITHDEBINFO
|
|
||||||
IMPORTED_IMPLIB_RELWITHDEBINFO "${${PREFIX}OBS_PATH}/bin/${D_PLATFORM_BITS}bit/obs-frontend-api.lib"
|
|
||||||
IMPORTED_LOCATION_RELWITHDEBINFO "${${PREFIX}OBS_PATH}/bin/${D_PLATFORM_BITS}bit/obs-frontend-api.dll"
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
message(WARNING "${LOGPREFIX} The provided path for libOBS did not contain obs-frontend-api.")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
@ -903,13 +879,13 @@ function(feature_frontend RESOLVE)
|
||||||
if(NOT HAVE_QT)
|
if(NOT HAVE_QT)
|
||||||
message(WARNING "${LOGPREFIX} Front-End requires Qt. Disabling...")
|
message(WARNING "${LOGPREFIX} Front-End requires Qt. Disabling...")
|
||||||
set_feature_disabled(FRONTEND ON)
|
set_feature_disabled(FRONTEND ON)
|
||||||
elseif(NOT HAVE_OBSFE)
|
elseif(NOT HAVE_OBS_FRONTEND_API)
|
||||||
message(WARNING "${LOGPREFIX} Front-End requires OBS FrontEnd API. Disabling...")
|
message(WARNING "${LOGPREFIX} Front-End requires OBS FrontEnd API. Disabling...")
|
||||||
set_feature_disabled(FRONTEND ON)
|
set_feature_disabled(FRONTEND ON)
|
||||||
endif()
|
endif()
|
||||||
elseif(T_CHECK)
|
elseif(T_CHECK)
|
||||||
set(REQUIRE_QT ON PARENT_SCOPE)
|
set(REQUIRE_QT ON PARENT_SCOPE)
|
||||||
set(REQUIRE_OBSFE ON PARENT_SCOPE)
|
set(REQUIRE_OBS_FRONTEND_API ON PARENT_SCOPE)
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
@ -950,16 +926,62 @@ feature_frontend(OFF)
|
||||||
feature_updater(OFF)
|
feature_updater(OFF)
|
||||||
|
|
||||||
# Fulfill Requirements
|
# Fulfill Requirements
|
||||||
|
#- OBS: Library
|
||||||
|
if(STANDALONE)
|
||||||
|
find_package(libobs REQUIRED NO_MODULE
|
||||||
|
PATHS
|
||||||
|
"${${PREFIX}OBS_PATH}/cmake/libobs"
|
||||||
|
"${${PREFIX}OBS_PATH}/cmake/LibObs"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
#- OBS: Front-End API
|
||||||
|
set(HAVE_OBS_FRONTEND_API OFF)
|
||||||
|
if(REQUIRE_OBS_FRONTEND_API)
|
||||||
|
if(STANDALONE)
|
||||||
|
if(EXISTS "${${PREFIX}OBS_PATH}/cmake/obs-frontend-api/obs-frontend-apiConfig.cmake")
|
||||||
|
find_package("obs-frontend-api" NO_MODULE
|
||||||
|
PATHS
|
||||||
|
"${${PREFIX}OBS_PATH}/cmake/obs-frontend-api"
|
||||||
|
)
|
||||||
|
elseif((EXISTS "${${PREFIX}OBS_PATH}/bin/${D_PLATFORM_BITS}bit/obs-frontend-api.dll") AND (EXISTS "${${PREFIX}OBS_PATH}/bin/${D_PLATFORM_BITS}bit/obs-frontend-api.lib"))
|
||||||
|
add_library(obs-frontend-api SHARED IMPORTED)
|
||||||
|
set_target_properties(obs-frontend-api PROPERTIES
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${${PREFIX}OBS_PATH}/include"
|
||||||
|
INTERFACE_LINK_LIBRARIES "libobs"
|
||||||
|
IMPORTED_CONFIGURATIONS RELWITHDEBINFO
|
||||||
|
IMPORTED_IMPLIB_RELWITHDEBINFO "${${PREFIX}OBS_PATH}/bin/${D_PLATFORM_BITS}bit/obs-frontend-api.lib"
|
||||||
|
IMPORTED_LOCATION_RELWITHDEBINFO "${${PREFIX}OBS_PATH}/bin/${D_PLATFORM_BITS}bit/obs-frontend-api.dll"
|
||||||
|
)
|
||||||
|
elseif(EXISTS "${${PREFIX}OBS_PATH}/bin/${D_PLATFORM_BITS}bit/libobs-frontend-api.so")
|
||||||
|
add_library(obs-frontend-api SHARED IMPORTED)
|
||||||
|
set_target_properties(obs-frontend-api PROPERTIES
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${${PREFIX}OBS_PATH}/include"
|
||||||
|
INTERFACE_LINK_LIBRARIES "libobs"
|
||||||
|
IMPORTED_CONFIGURATIONS RELWITHDEBINFO
|
||||||
|
IMPORTED_LOCATION_RELWITHDEBINFO "${${PREFIX}OBS_PATH}/bin/${D_PLATFORM_BITS}bit/libobs-frontend-api.so"
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
message(WARNING "${LOGPREFIX} The provided path for libOBS did not contain obs-frontend-api.")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(TARGET obs-frontend-api)
|
||||||
|
set(HAVE_OBS_FRONTEND_API ON)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
#- CURL
|
#- CURL
|
||||||
set(HAVE_CURL OFF)
|
set(HAVE_CURL OFF)
|
||||||
if(REQUIRE_CURL)
|
if(REQUIRE_CURL)
|
||||||
if(D_PLATFORM_WINDOWS)
|
if(D_PLATFORM_WINDOWS)
|
||||||
if(NOT STANDALONE) # Already defined by OBS
|
if(STANDALONE)
|
||||||
set(CURL_LIBRARIES "${CURL_LIB}")
|
|
||||||
set(CURL_INCLUDE_DIRS "${CURL_INCLUDE_DIR}")
|
|
||||||
else()
|
|
||||||
set(CURL_LIBRARIES "${_OBSDEPS_PATH}/bin/libcurl.lib")
|
set(CURL_LIBRARIES "${_OBSDEPS_PATH}/bin/libcurl.lib")
|
||||||
set(CURL_INCLUDE_DIRS "${_OBSDEPS_PATH}/include")
|
set(CURL_INCLUDE_DIRS "${_OBSDEPS_PATH}/include")
|
||||||
|
else()
|
||||||
|
# Already defined by OBS
|
||||||
|
set(CURL_LIBRARIES "${CURL_LIB}")
|
||||||
|
set(CURL_INCLUDE_DIRS "${CURL_INCLUDE_DIR}")
|
||||||
endif()
|
endif()
|
||||||
set(CURL_LIBRARY_DEBUG ${CURL_LIBRARIES})
|
set(CURL_LIBRARY_DEBUG ${CURL_LIBRARIES})
|
||||||
set(CURL_LIBRARY_RELEASE ${CURL_LIBRARIES})
|
set(CURL_LIBRARY_RELEASE ${CURL_LIBRARIES})
|
||||||
|
|
@ -1042,14 +1064,6 @@ if(REQUIRE_NVIDIA_CUDA AND D_PLATFORM_WINDOWS)
|
||||||
set(HAVE_NVIDIA_CUDA ON)
|
set(HAVE_NVIDIA_CUDA ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#- OBS Front-End API
|
|
||||||
set(HAVE_OBSFE OFF)
|
|
||||||
if(REQUIRE_OBSFE)
|
|
||||||
if(TARGET obs-frontend-api)
|
|
||||||
set(HAVE_OBSFE ON)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#- Qt5
|
#- Qt5
|
||||||
set(HAVE_QT OFF)
|
set(HAVE_QT OFF)
|
||||||
if(REQUIRE_QT)
|
if(REQUIRE_QT)
|
||||||
|
|
@ -1254,7 +1268,7 @@ if(HAVE_NVIDIA_CUDA)
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(REQUIRE_OBSFE AND HAVE_OBSFE)
|
if(REQUIRE_OBS_FRONTEND_API AND HAVE_OBS_FRONTEND_API)
|
||||||
list(APPEND PROJECT_LIBRARIES obs-frontend-api)
|
list(APPEND PROJECT_LIBRARIES obs-frontend-api)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
@ -2063,7 +2077,7 @@ if(D_PLATFORM_MAC)
|
||||||
message(STATUS "${LOGPREFIX} Added post-build step for adjusting libobs linking path.")
|
message(STATUS "${LOGPREFIX} Added post-build step for adjusting libobs linking path.")
|
||||||
|
|
||||||
# OBS Front-End API
|
# OBS Front-End API
|
||||||
if(REQUIRE_OBSFE AND HAVE_OBSFE)
|
if(REQUIRE_OBS_FRONTEND_API AND HAVE_OBS_FRONTEND_API)
|
||||||
mac_get_linker_id(TARGET obs-frontend-api OUTPUT T_OBSFE_LINK)
|
mac_get_linker_id(TARGET obs-frontend-api OUTPUT T_OBSFE_LINK)
|
||||||
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||||
COMMAND install_name_tool ARGS -change "${T_OBSFE_LINK}" "@executable_path/../Frameworks/libobs-frontend-api.dylib" $<TARGET_FILE:${PROJECT_NAME}>
|
COMMAND install_name_tool ARGS -change "${T_OBSFE_LINK}" "@executable_path/../Frameworks/libobs-frontend-api.dylib" $<TARGET_FILE:${PROJECT_NAME}>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue