Download ei-cpp-export/edge-impulse-sdk/cmake/utils.cmake from luisomoreau/fomo-face-detection: direct link, hf CLI and curl.
- Browser
- Download file 5.57 kB
-
https://huggingface.co/luisomoreau/fomo-face-detection/resolve/main/ei-cpp-export/edge-impulse-sdk/cmake/utils.cmake
- Command line
-
hf download hf://luisomoreau/fomo-face-detection/ei-cpp-export/edge-impulse-sdk/cmake/utils.cmake
-
curl -L -o utils.cmake https://huggingface.co/luisomoreau/fomo-face-detection/resolve/main/ei-cpp-export/edge-impulse-sdk/cmake/utils.cmake
5.57 kB
| MACRO(RECURSIVE_FIND_DIR return_list dir pattern) | |
| FILE(GLOB_RECURSE new_list "${dir}/${pattern}") | |
| SET(dir_list "") | |
| FOREACH(file_path ${new_list}) | |
| GET_FILENAME_COMPONENT(dir_path ${file_path} PATH) | |
| SET(dir_list ${dir_list} ${dir_path}) | |
| ENDFOREACH() | |
| LIST(REMOVE_DUPLICATES dir_list) | |
| SET(${return_list} ${dir_list}) | |
| ENDMACRO() | |
| MACRO(RECURSIVE_FIND_FILE return_list dir pattern) | |
| FILE(GLOB_RECURSE new_list "${dir}/${pattern}") | |
| SET(dir_list "") | |
| FOREACH(file_path ${new_list}) | |
| SET(dir_list ${dir_list} ${file_path}) | |
| ENDFOREACH() | |
| LIST(REMOVE_DUPLICATES dir_list) | |
| SET(${return_list} ${dir_list}) | |
| ENDMACRO() | |
| MACRO(RECURSIVE_FIND_FILE_EXCLUDE_DIR return_list dir exclude_dir pattern) | |
| FILE(GLOB_RECURSE new_list "${dir}/${pattern}") | |
| SET(dir_list "") | |
| FOREACH(file_path ${new_list}) | |
| IF (file_path MATCHES ".*\/${exclude_dir}\/.*") | |
| continue() | |
| endif() | |
| SET(dir_list ${dir_list} ${file_path}) | |
| ENDFOREACH() | |
| LIST(REMOVE_DUPLICATES dir_list) | |
| SET(${return_list} ${dir_list}) | |
| ENDMACRO() | |
| MACRO(RECURSIVE_FIND_FILE_APPEND return_list dir pattern) | |
| RECURSIVE_FIND_FILE( append_list ${dir} ${pattern} ) | |
| LIST(APPEND ${return_list} ${append_list}) | |
| ENDMACRO() | |
| MACRO(SOURCE_FILES return_list dir pattern) | |
| FILE(GLOB new_list "${dir}/${pattern}") | |
| SET(dir_list "") | |
| FOREACH(file_path ${new_list}) | |
| LIST(APPEND dir_list ${file_path}) | |
| ENDFOREACH() | |
| LIST(REMOVE_DUPLICATES dir_list) | |
| SET(${return_list} ${dir_list}) | |
| ENDMACRO() | |
| function(EXTRACT_JSON_ARRAY json_file json_field_path fields values) | |
| set(VALUES "") | |
| set(FIELDS "") | |
| foreach(var ${${json_file}}) | |
| # extract any cmd line definitions specified in the json object, and add them | |
| # if it is not prefixed by json_field_path, do not consider the key. | |
| if("${var}" MATCHES "${json_field_path}") | |
| string(REGEX MATCH "[^${json_field_path}]([A-Z,a-z,0-9,_,]+)" VALUE "${var}") | |
| # never quote the value - gives more flexibility | |
| list(APPEND FIELDS ${VALUE}) | |
| list(APPEND VALUES "${${var}}") | |
| endif() | |
| endforeach() | |
| set(${fields} ${FIELDS} PARENT_SCOPE) | |
| set(${values} ${VALUES} PARENT_SCOPE) | |
| endfunction() | |
| function(FORM_DEFINITIONS fields values definitions) | |
| set(DEFINITIONS "") | |
| list(LENGTH ${fields} LEN) | |
| # - 1 for for loop index... | |
| MATH(EXPR LEN "${LEN}-1") | |
| foreach(i RANGE ${LEN}) | |
| list(GET ${fields} ${i} DEFINITION) | |
| list(GET ${values} ${i} VALUE) | |
| set(DEFINITIONS "${DEFINITIONS} #define ${DEFINITION}\t ${VALUE}\n") | |
| endforeach() | |
| set(${definitions} ${DEFINITIONS} PARENT_SCOPE) | |
| endfunction() | |
| function(UNIQUE_JSON_KEYS priority_fields priority_values secondary_fields secondary_values merged_fields merged_values) | |
| # always keep the first fields and values | |
| set(MERGED_FIELDS ${${priority_fields}}) | |
| set(MERGED_VALUES ${${priority_values}}) | |
| # measure the second set... | |
| list(LENGTH ${secondary_fields} LEN) | |
| # - 1 for for loop index... | |
| MATH(EXPR LEN "${LEN}-1") | |
| # iterate, dropping any duplicate fields regardless of the value | |
| foreach(i RANGE ${LEN}) | |
| list(GET ${secondary_fields} ${i} FIELD) | |
| list(GET ${secondary_values} ${i} VALUE) | |
| list(FIND MERGED_FIELDS ${FIELD} INDEX) | |
| if (${INDEX} GREATER -1) | |
| continue() | |
| endif() | |
| list(APPEND MERGED_FIELDS ${FIELD}) | |
| list(APPEND MERGED_VALUES ${VALUE}) | |
| endforeach() | |
| set(${merged_fields} ${MERGED_FIELDS} PARENT_SCOPE) | |
| set(${merged_values} ${MERGED_VALUES} PARENT_SCOPE) | |
| endfunction() | |
| MACRO(HEADER_FILES return_list dir) | |
| FILE(GLOB new_list "${dir}/*.h") | |
| SET(${return_list} ${new_list}) | |
| ENDMACRO() | |
| function(INSTALL_DEPENDENCY dir name url branch type) | |
| if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/${dir}") | |
| message("Creating libraries folder") | |
| FILE(MAKE_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/${dir}") | |
| endif() | |
| if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/${dir}/${name}") | |
| message("${name} is already installed") | |
| return() | |
| endif() | |
| if(${type} STREQUAL "git") | |
| message("Cloning into: ${url}") | |
| # git clone -b doesn't work with SHAs | |
| execute_process( | |
| COMMAND git clone --recurse-submodules ${url} ${name} | |
| WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/${dir} | |
| ) | |
| if(NOT "${branch}" STREQUAL "") | |
| message("Checking out branch: ${branch}") | |
| execute_process( | |
| COMMAND git -c advice.detachedHead=false checkout ${branch} | |
| WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/${dir}/${name} | |
| ) | |
| execute_process( | |
| COMMAND git submodule update --init | |
| WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/${dir}/${name} | |
| ) | |
| execute_process( | |
| COMMAND git submodule sync | |
| WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/${dir}/${name} | |
| ) | |
| execute_process( | |
| COMMAND git submodule update | |
| WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/${dir}/${name} | |
| ) | |
| endif() | |
| else() | |
| message("No mechanism exists to install this library.") | |
| endif() | |
| endfunction() | |
| MACRO(SUB_DIRS return_dirs dir) | |
| FILE(GLOB list "${PROJECT_SOURCE_DIR}/${dir}/*") | |
| SET(dir_list "") | |
| FOREACH(file_path ${list}) | |
| SET(dir_list ${dir_list} ${file_path}) | |
| ENDFOREACH() | |
| set(${return_dirs} ${dir_list}) | |
| ENDMACRO() | |