From c93bccdcade779dbe1bc52d5d4087a8a1abca36c Mon Sep 17 00:00:00 2001 From: Marcus10110 Date: Fri, 13 Jul 2018 13:53:41 -0700 Subject: [PATCH] Template update of Async RGB LED Analyzer --- CMakeLists.txt | 11 +---------- cmake/ExternalAnalyzerSDK.cmake | 25 +++++++++++++++++-------- src/AsyncRgbLedAnalyzer.h | 2 +- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d9e4103..5627b36 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,13 +19,4 @@ src/AsyncRgbLedSimulationDataGenerator.cpp src/AsyncRgbLedSimulationDataGenerator.h ) -add_library(async_rgb_led_analyzer SHARED ${SOURCES}) -target_link_libraries(async_rgb_led_analyzer PRIVATE Saleae::AnalyzerSDK) - -if(MSVC) - install(TARGETS async_rgb_led_analyzer RUNTIME DESTINATION "Analyzers") -else() - install(TARGETS async_rgb_led_analyzer LIBRARY DESTINATION "Analyzers") -endif() - -set_post_build_destination(async_rgb_led_analyzer) +add_analyzer_plugin(async_rgb_led_analyzer SOURCES ${SOURCES}) diff --git a/cmake/ExternalAnalyzerSDK.cmake b/cmake/ExternalAnalyzerSDK.cmake index 6e32d65..094d544 100644 --- a/cmake/ExternalAnalyzerSDK.cmake +++ b/cmake/ExternalAnalyzerSDK.cmake @@ -38,11 +38,20 @@ if(NOT TARGET Saleae::AnalyzerSDK) endif() endif() -# Optionally copy the compiled library after build to ${POST_BUILD_DESTINATION}, if POST_BUILD_DESTINATION is defined. -macro(set_post_build_destination target_name) - if(DEFINED POST_BUILD_DESTINATION) - add_custom_command(TARGET ${target_name} - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy $ ${POST_BUILD_DESTINATION}) - endif() -endmacro() +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 ${CMAKE_BINARY_DIR}/${ANALYZER_DESTINATION} + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${ANALYZER_DESTINATION}) +endfunction() \ No newline at end of file diff --git a/src/AsyncRgbLedAnalyzer.h b/src/AsyncRgbLedAnalyzer.h index 0fcccce..bfbe358 100644 --- a/src/AsyncRgbLedAnalyzer.h +++ b/src/AsyncRgbLedAnalyzer.h @@ -10,7 +10,7 @@ class AsyncRgbLedAnalyzerSettings; class AsyncRgbLedAnalyzerResults; -class ANALYZER_EXPORT AsyncRgbLedAnalyzer : public Analyzer2 +class AsyncRgbLedAnalyzer : public Analyzer2 { public: AsyncRgbLedAnalyzer();