mirror of
				https://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 01:38:40 +00:00 
			
		
		
		
	libevent2's cmake use absolute path, then cmake cannot find it when cross compiling:
```
-- Found libevent include directory: /builder/staging_dir/target-mips_24kc_musl/usr/include
-- Found libevent component: /builder/staging_dir/target-mips_24kc_musl/usr/lib/libevent_core.so
-- Found libevent component: /builder/staging_dir/target-mips_24kc_musl/usr/lib/libevent_extra.so
-- Found libevent component: /builder/staging_dir/target-mips_24kc_musl/usr/lib/libevent_openssl.so
-- Found libevent 2.1.12 in /builder/staging_dir/target-mips_24kc_musl/usr
CMake Error at /builder/staging_dir/target-mips_24kc_musl/usr/lib/cmake/libevent/LibeventTargets-shared.cmake:102 (message):
  The imported target "libevent::core" references the file
     "/usr/lib/libevent_core-2.1.so.7.0.1"
  but this file does not exist.  Possible reasons include:
  * The file was deleted, renamed, or moved to another location.
  * An install or uninstall procedure did not complete successfully.
  * The installation package was faulty and contained
     "/builder/staging_dir/target-mips_24kc_musl/usr/lib/cmake/libevent/LibeventTargets-shared.cmake"
  but not all the files it references.
Call Stack (most recent call first):
  /builder/staging_dir/target-mips_24kc_musl/usr/lib/cmake/libevent/LibeventConfig.cmake:168 (include)
  CMakeLists.txt:34 (find_package)
```
This patch make cmake use relative imported path, so it can find libevent.
Signed-off-by: Liu Dongmiao <liudongmiao@gmail.com>
		
	
		
			
				
	
	
		
			166 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			166 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
#
 | 
						|
# Copyright (C) 2011-2015 OpenWrt.org
 | 
						|
#
 | 
						|
# This is free software, licensed under the GNU General Public License v2.
 | 
						|
# See /LICENSE for more information.
 | 
						|
#
 | 
						|
 | 
						|
include $(TOPDIR)/rules.mk
 | 
						|
 | 
						|
PKG_NAME:=libevent2
 | 
						|
PKG_VERSION:=2.1.12
 | 
						|
PKG_RELEASE:=2
 | 
						|
 | 
						|
PKG_SOURCE:=libevent-$(PKG_VERSION)-stable.tar.gz
 | 
						|
PKG_SOURCE_URL:=https://github.com/libevent/libevent/releases/download/release-$(PKG_VERSION)-stable
 | 
						|
PKG_HASH:=92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb
 | 
						|
PKG_BUILD_DIR:=$(BUILD_DIR)/libevent-$(PKG_VERSION)-stable
 | 
						|
 | 
						|
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
 | 
						|
PKG_LICENSE:=BSD-3-Clause
 | 
						|
PKG_LICENSE_FILES:=LICENSE
 | 
						|
PKG_CPE_ID:=cpe:/a:libevent_project:libevent
 | 
						|
 | 
						|
PKG_CONFIG_DEPENDS:= \
 | 
						|
	CONFIG_PACKAGE_libevent2-openssl \
 | 
						|
	CONFIG_PACKAGE_libevent2-pthreads \
 | 
						|
	CONFIG_PACKAGE_libevent2-mbedtls
 | 
						|
 | 
						|
PKG_BUILD_FLAGS:=gc-sections lto
 | 
						|
 | 
						|
include $(INCLUDE_DIR)/package.mk
 | 
						|
include $(INCLUDE_DIR)/cmake.mk
 | 
						|
 | 
						|
define Package/libevent2/Default
 | 
						|
  SECTION:=libs
 | 
						|
  CATEGORY:=Libraries
 | 
						|
  TITLE:=Event notification
 | 
						|
  URL:=http://libevent.org
 | 
						|
  ABI_VERSION:=7
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2/Default/description
 | 
						|
	The libevent API provides a mechanism to execute a callback function
 | 
						|
	when a specific event occurs on a file descriptor or after a timeout
 | 
						|
	has been reached. Furthermore, libevent also support callbacks due
 | 
						|
	to signals or regular timeouts.
 | 
						|
 | 
						|
	libevent is meant to replace the event loop found in event driven
 | 
						|
	network servers. An application just needs to call event_dispatch()
 | 
						|
	and then add or remove events dynamically without having to change
 | 
						|
	the event loop.
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2
 | 
						|
  $(call Package/libevent2/Default)
 | 
						|
  TITLE+= library (version 2.1)
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2/description
 | 
						|
	$(call Package/libevent2/Default/description)
 | 
						|
 | 
						|
	This package contains the libevent shared library historically
 | 
						|
	containing both the core & extra libraries.
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2-core
 | 
						|
  $(call Package/libevent2/Default)
 | 
						|
  TITLE+= core library (version 2.1)
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2-core/description
 | 
						|
	$(call Package/libevent2/Default/description)
 | 
						|
 | 
						|
	This package contains the libevent core shared library for the event,
 | 
						|
	buffer & utility functions.
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2-extra
 | 
						|
  $(call Package/libevent2/Default)
 | 
						|
  TITLE+= extra library (version 2.1)
 | 
						|
  DEPENDS+=+libevent2-core
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2-extra/description
 | 
						|
	$(call Package/libevent2/Default/description)
 | 
						|
 | 
						|
	This package contains the libevent extra shared library for specific
 | 
						|
	protocols including HTTP, DNS & RPC.
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2-openssl
 | 
						|
  $(call Package/libevent2/Default)
 | 
						|
  TITLE+= OpenSSL library (version 2.1)
 | 
						|
  DEPENDS+=+libopenssl +libevent2-core
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2-openssl/description
 | 
						|
	$(call Package/libevent2/Default/description)
 | 
						|
 | 
						|
	This package contains the libevent OpenSSL shared library for encrypted
 | 
						|
	bufferevents.
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2-pthreads
 | 
						|
  $(call Package/libevent2/Default)
 | 
						|
  TITLE+= Pthreads library (version 2.1)
 | 
						|
  DEPENDS+=+libpthread +libevent2-core
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2-pthreads/description
 | 
						|
	$(call Package/libevent2/Default/description)
 | 
						|
 | 
						|
	This package contains the libevent Pthreads shared library for
 | 
						|
	threading & locking.
 | 
						|
endef
 | 
						|
 | 
						|
TARGET_CFLAGS += $(FPIC)
 | 
						|
TARGET_LDFLAGS += -Wl,--as-needed
 | 
						|
 | 
						|
CMAKE_OPTIONS += \
 | 
						|
	-DEVENT__DISABLE_BENCHMARK:BOOL=ON \
 | 
						|
	-DEVENT__DISABLE_DEBUG_MODE:BOOL=ON \
 | 
						|
	-DEVENT__DISABLE_REGRESS:BOOL=ON \
 | 
						|
	-DEVENT__DISABLE_SAMPLES:BOOL=ON \
 | 
						|
	$(if $(CONFIG_PACKAGE_libevent2-openssl),-DEVENT__DISABLE_OPENSSL:BOOL=OFF,-DEVENT__DISABLE_OPENSSL:BOOL=ON) \
 | 
						|
	$(if $(CONFIG_PACKAGE_libevent2-pthreads),-DEVENT__DISABLE_THREAD_SUPPORT:BOOL=OFF,-DEVENT__DISABLE_THREAD_SUPPORT:BOOL=ON) \
 | 
						|
	-DEVENT__DISABLE_TESTS:BOOL=ON \
 | 
						|
	-DBUILD_TESTING:BOOL=OFF
 | 
						|
 | 
						|
define Build/InstallDev
 | 
						|
	$(call Build/InstallDev/cmake,$(1))
 | 
						|
	$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libevent*.pc
 | 
						|
	$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/libevent*.pc
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2/install
 | 
						|
	$(INSTALL_DIR) $(1)/usr/lib
 | 
						|
	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent-2.1.so.* $(1)/usr/lib/
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2-core/install
 | 
						|
	$(INSTALL_DIR) $(1)/usr/lib
 | 
						|
	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent_core-2.1.so.* $(1)/usr/lib/
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2-extra/install
 | 
						|
	$(INSTALL_DIR) $(1)/usr/lib
 | 
						|
	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent_extra-2.1.so.* $(1)/usr/lib/
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2-openssl/install
 | 
						|
	$(INSTALL_DIR) $(1)/usr/lib
 | 
						|
	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent_openssl-2.1.so.* $(1)/usr/lib/
 | 
						|
endef
 | 
						|
 | 
						|
define Package/libevent2-pthreads/install
 | 
						|
	$(INSTALL_DIR) $(1)/usr/lib
 | 
						|
	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent_pthreads-2.1.so.* $(1)/usr/lib/
 | 
						|
endef
 | 
						|
 | 
						|
$(eval $(call BuildPackage,libevent2))
 | 
						|
$(eval $(call BuildPackage,libevent2-core))
 | 
						|
$(eval $(call BuildPackage,libevent2-extra))
 | 
						|
$(eval $(call BuildPackage,libevent2-openssl))
 | 
						|
$(eval $(call BuildPackage,libevent2-pthreads))
 |