mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-31 13:09:38 +00:00 
			
		
		
		
	 4d629be602
			
		
	
	4d629be602
	
	
	
		
			
			* Users can now use libbsd string.h and sys/cdefs.h functionality (e.g., strlcpy, containerof) on Linux by just including string.h or sys/cdefs.h. In other words, the includes are the same on the Linux target as well as on chips targets (ESP32, etc.). * libbsd linking is done by the linux component (belongs to common components) now instead of handling it separately in each component
		
			
				
	
	
		
			26 lines
		
	
	
		
			776 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			776 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
| idf_build_get_property(target IDF_TARGET)
 | |
| if(NOT "${target}" STREQUAL "linux")
 | |
|     return()
 | |
| endif()
 | |
| 
 | |
| set(includes "include")
 | |
| if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
 | |
|     list(APPEND srcs getrandom.c assert_func.c)
 | |
| else()
 | |
|     list(APPEND srcs fls.c)
 | |
|     list(APPEND includes "linux_include")
 | |
| endif()
 | |
| 
 | |
| idf_component_register(INCLUDE_DIRS ${includes}
 | |
|                        REQUIRED_IDF_TARGETS linux
 | |
|                        SRCS ${srcs})
 | |
| 
 | |
| if(${IDF_TARGET} STREQUAL "linux")
 | |
|     find_library(LIB_BSD bsd)
 | |
|     if(LIB_BSD)
 | |
|         target_link_libraries(${COMPONENT_LIB} PRIVATE ${LIB_BSD})
 | |
|     elseif(NOT CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
 | |
|         message(WARNING "Missing LIBBSD library. Install libbsd-dev package and/or check linker directories.")
 | |
|     endif()
 | |
| endif()
 |