mirror of https://github.com/xbmc/xbmc
95 lines
3.3 KiB
CMake
95 lines
3.3 KiB
CMake
#.rst:
|
|
# FindMicroHttpd
|
|
# --------------
|
|
# Finds the MicroHttpd library
|
|
#
|
|
# This will define the following target:
|
|
#
|
|
# ${APP_NAME_LC}::MicroHttpd - The microhttpd library
|
|
|
|
if(NOT TARGET ${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME})
|
|
|
|
include(cmake/scripts/common/ModuleHelpers.cmake)
|
|
|
|
macro(buildmacroMicroHttpd)
|
|
|
|
if(WIN32 OR WINDOWS_STORE)
|
|
|
|
set(patches "${CMAKE_SOURCE_DIR}/tools/depends/target/${${CMAKE_FIND_PACKAGE_NAME}_MODULE_LC}/01-win-cmake.patch")
|
|
|
|
generate_patchcommand("${patches}")
|
|
unset(patches)
|
|
|
|
set(${${CMAKE_FIND_PACKAGE_NAME}_MODULE}_DEBUG_POSTFIX _d)
|
|
|
|
set(CMAKE_ARGS -DDUMMY_ARGS=ON)
|
|
|
|
else()
|
|
# Todo: gnutls libgcrypt libgpg-error
|
|
# find_package(xxx)
|
|
|
|
if (CMAKE_HOST_SYSTEM_NAME MATCHES "(Free|Net|Open)BSD")
|
|
find_program(MAKE_EXECUTABLE gmake)
|
|
endif()
|
|
find_program(MAKE_EXECUTABLE make REQUIRED)
|
|
|
|
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
|
# blanket disable timespec_get use for apple platforms. timespec_get was introduced in
|
|
# __API_AVAILABLE(macosx(10.15), ios(13.0), tvos(13.0), watchos(6.0)) but older platforms
|
|
# are failing to run.
|
|
set(EXTRA_ARGS mhd_cv_func_timespec_get=no)
|
|
endif()
|
|
|
|
set(CONFIGURE_COMMAND ./configure --prefix ${DEPENDS_PATH}
|
|
--disable-shared
|
|
--disable-doc
|
|
--disable-examples
|
|
--disable-curl
|
|
--enable-https
|
|
${EXTRA_ARGS})
|
|
|
|
set(BUILD_COMMAND ${MAKE_EXECUTABLE})
|
|
set(INSTALL_COMMAND ${MAKE_EXECUTABLE} install)
|
|
|
|
set(BUILD_IN_SOURCE 1)
|
|
|
|
endif()
|
|
|
|
BUILD_DEP_TARGET()
|
|
endmacro()
|
|
|
|
set(${CMAKE_FIND_PACKAGE_NAME}_MODULE_LC libmicrohttpd)
|
|
|
|
SETUP_BUILD_VARS()
|
|
|
|
SETUP_FIND_SPECS()
|
|
|
|
SEARCH_EXISTING_PACKAGES()
|
|
|
|
if(("${${${CMAKE_FIND_PACKAGE_NAME}_SEARCH_NAME}_VERSION}" VERSION_LESS ${${${CMAKE_FIND_PACKAGE_NAME}_MODULE}_VER} AND ENABLE_INTERNAL_LIBMICROHTTPD) OR
|
|
((CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL freebsd) AND ENABLE_INTERNAL_LIBMICROHTTPD))
|
|
message(STATUS "Building ${${CMAKE_FIND_PACKAGE_NAME}_MODULE_LC}: \(version \"${${${CMAKE_FIND_PACKAGE_NAME}_MODULE}_VER}\"\)")
|
|
cmake_language(EVAL CODE "
|
|
buildmacro${CMAKE_FIND_PACKAGE_NAME}()
|
|
")
|
|
endif()
|
|
|
|
if(${${CMAKE_FIND_PACKAGE_NAME}_SEARCH_NAME}_FOUND)
|
|
if(TARGET PkgConfig::${${CMAKE_FIND_PACKAGE_NAME}_SEARCH_NAME} AND NOT TARGET ${${${CMAKE_FIND_PACKAGE_NAME}_MODULE}_BUILD_NAME})
|
|
add_library(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} ALIAS PkgConfig::${${CMAKE_FIND_PACKAGE_NAME}_SEARCH_NAME_PC})
|
|
elseif(TARGET libmicrohttpd::libmicrohttpd AND NOT TARGET ${${${CMAKE_FIND_PACKAGE_NAME}_MODULE}_BUILD_NAME})
|
|
# Kodi target - windows prebuilt lib
|
|
add_library(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} ALIAS libmicrohttpd::libmicrohttpd)
|
|
else()
|
|
SETUP_BUILD_TARGET()
|
|
|
|
add_dependencies(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} ${${${CMAKE_FIND_PACKAGE_NAME}_MODULE}_BUILD_NAME})
|
|
endif()
|
|
|
|
set(${${CMAKE_FIND_PACKAGE_NAME}_MODULE}_COMPILE_DEFINITIONS "HAS_WEB_SERVER;HAS_WEB_INTERFACE")
|
|
ADD_TARGET_COMPILE_DEFINITION()
|
|
|
|
ADD_MULTICONFIG_BUILDMACRO()
|
|
endif()
|
|
endif()
|