2022-02-16 17:07:05 -08:00
include ( FetchContent )
# Use the C++11 standard
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 ( )
# Fetch the Analyzer SDK if the target does not already exist.
if ( NOT TARGET Saleae::AnalyzerSDK )
FetchContent_Declare (
a n a l y z e r s d k
G I T _ R E P O S I T O R Y h t t p s : / / g i t h u b . c o m / s a l e a e / A n a l y z e r S D K . g i t
2022-03-10 08:59:44 -08:00
G I T _ T A G m a s t e r
2022-02-16 17:07:05 -08:00
G I T _ S H A L L O W T r u e
G I T _ P R O G R E S S T r u e
)
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 ( )
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 }
L I B R A R Y D E S T I N A T I O N $ { A N A L Y Z E R _ D E S T I N A T I O N } )
set_target_properties ( ${ TARGET } PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${ CMAKE_BINARY_DIR } / ${ ANALYZER_DESTINATION }
L I B R A R Y _ O U T P U T _ D I R E C T O R Y $ { C M A K E _ B I N A R Y _ D I R } / $ { A N A L Y Z E R _ D E S T I N A T I O N } )
endfunction ( )