mirror of
https://github.com/Show-maket/IR-protocol.git
synced 2026-04-28 03:08:08 +00:00
Analyzer plug
This commit is contained in:
66
Analyzer/raw/PulseLengthStat/cmake/ExternalAnalyzerSDK.cmake
Normal file
66
Analyzer/raw/PulseLengthStat/cmake/ExternalAnalyzerSDK.cmake
Normal file
@ -0,0 +1,66 @@
|
||||
include(FetchContent)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED YES)
|
||||
|
||||
if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY OR NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin/)
|
||||
endif()
|
||||
|
||||
if(NOT TARGET Saleae::AnalyzerSDK)
|
||||
FetchContent_Declare(
|
||||
analyzersdk
|
||||
GIT_REPOSITORY https://github.com/saleae/AnalyzerSDK.git
|
||||
GIT_TAG master
|
||||
GIT_SHALLOW True
|
||||
GIT_PROGRESS True
|
||||
)
|
||||
|
||||
FetchContent_GetProperties(analyzersdk)
|
||||
|
||||
if(NOT analyzersdk_POPULATED)
|
||||
FetchContent_Populate(analyzersdk)
|
||||
include(${analyzersdk_SOURCE_DIR}/AnalyzerSDKConfig.cmake)
|
||||
|
||||
if(APPLE OR WIN32)
|
||||
get_target_property(analyzersdk_lib_location Saleae::AnalyzerSDK IMPORTED_LOCATION)
|
||||
if(CMAKE_LIBRARY_OUTPUT_DIRECTORY)
|
||||
file(COPY ${analyzersdk_lib_location} DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
|
||||
else()
|
||||
message(WARNING "Please define CMAKE_RUNTIME_OUTPUT_DIRECTORY and CMAKE_LIBRARY_OUTPUT_DIRECTORY if you want unit tests to locate ${analyzersdk_lib_location}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Shared folder for all Saleae LLA plugins in this repo: Analyzer/raw/dll
|
||||
set(ANALYZER_DLL_OUT_DIR "${CMAKE_SOURCE_DIR}/../dll")
|
||||
get_filename_component(ANALYZER_DLL_OUT_DIR "${ANALYZER_DLL_OUT_DIR}" ABSOLUTE)
|
||||
file(MAKE_DIRECTORY "${ANALYZER_DLL_OUT_DIR}")
|
||||
|
||||
function(add_analyzer_plugin TARGET)
|
||||
set(options)
|
||||
set(single_value_args)
|
||||
set(multi_value_args SOURCES)
|
||||
cmake_parse_arguments(_p "${options}" "${single_value_args}" "${multi_value_args}" ${ARGN})
|
||||
|
||||
add_library(${TARGET} MODULE ${_p_SOURCES})
|
||||
target_link_libraries(${TARGET} PRIVATE Saleae::AnalyzerSDK)
|
||||
|
||||
set(ANALYZER_DESTINATION "Analyzers")
|
||||
install(TARGETS ${TARGET} RUNTIME DESTINATION ${ANALYZER_DESTINATION}
|
||||
LIBRARY DESTINATION ${ANALYZER_DESTINATION})
|
||||
|
||||
set_target_properties(${TARGET} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY "${ANALYZER_DLL_OUT_DIR}"
|
||||
LIBRARY_OUTPUT_DIRECTORY "${ANALYZER_DLL_OUT_DIR}")
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
foreach(CFG ${CMAKE_CONFIGURATION_TYPES})
|
||||
string(TOUPPER ${CFG} CFG_UPPER)
|
||||
set_target_properties(${TARGET} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY_${CFG_UPPER} "${ANALYZER_DLL_OUT_DIR}"
|
||||
LIBRARY_OUTPUT_DIRECTORY_${CFG_UPPER} "${ANALYZER_DLL_OUT_DIR}")
|
||||
endforeach()
|
||||
endif()
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user