From 9b761ef27d323f43f0ccb76dd6ecc989c2eb4227 Mon Sep 17 00:00:00 2001 From: Marcus10110 Date: Fri, 13 Jul 2018 13:54:38 -0700 Subject: [PATCH] Template update of JTAG Analyzer --- CMakeLists.txt | 11 +---------- cmake/ExternalAnalyzerSDK.cmake | 25 +++++++++++++++++-------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f48fa20..980cff4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,13 +19,4 @@ src/JtagTypes.cpp src/JtagTypes.h ) -add_library(jtag_analyzer SHARED ${SOURCES}) -target_link_libraries(jtag_analyzer PRIVATE Saleae::AnalyzerSDK) - -if(MSVC) - install(TARGETS jtag_analyzer RUNTIME DESTINATION "Analyzers") -else() - install(TARGETS jtag_analyzer LIBRARY DESTINATION "Analyzers") -endif() - -set_post_build_destination(jtag_analyzer) +add_analyzer_plugin(jtag_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