Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
TrackerPlugin.cmake 1.28 KiB
function(add_behavior_plugin target)

    exec_program("git" ${CMAKE_CURRENT_SOURCE_DIR} ARGS "log --pretty=format:%h -n 1" OUTPUT_VARIABLE GIT_HASH)

    if("$ENV{USERNAME}" STREQUAL "ContainerAdministrator")
        # Note: This is a workaround for Qt5's "moc" in Windows Docker getting
        #       "System cannot find the file" errors when trying to read
        #       files generated by "configure_file" in conventional directories.
        set(METADATA_DIR "$ENV{TMP}/${target}")
    else()
        set(METADATA_DIR "${CMAKE_CURRENT_BINARY_DIR}")
    endif()

    add_library (${target} MODULE ${ARGN})

    target_compile_definitions(${target} PRIVATE CURRENT_GIT_HASH="${GIT_HASH}")

    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/plugin.json.in ${METADATA_DIR}/plugin.json)
    target_include_directories(${target} PRIVATE ${METADATA_DIR})
    
    set_target_properties(${target} PROPERTIES PREFIX "")
    set_target_properties(${target} PROPERTIES OUTPUT_NAME ${target})
    set_target_properties(${target} PROPERTIES AUTOMOC ON AUTOUIC ON AUTORCC ON)
    set_target_properties(${target} PROPERTIES
        CXX_STANDARD 17
        CXX_STANDARD_REQUIRED YES
        CXX_EXTENSIONS NO
    )
    
    target_link_libraries (${target} biotracker-utility)
endfunction()