function(rosetta_add_service) set(options) set(one_value_args NAME CFG_FILE) set(multi_value_args SOURCES) cmake_parse_arguments(PARSE_ARGV 0 arg "${options}" "${one_value_args}" "${multi_value_args}") set(exec_name ${arg_NAME}) get_property(programs GLOBAL PROPERTY rosetta_program_list) set_property(GLOBAL PROPERTY rosetta_program_list ${programs} ${exec_name}) message(STATUS "Building service ${exec_name}") add_executable(${exec_name} ${arg_SOURCES}) set_target_properties(${exec_name} PROPERTIES POSITION_INDEPENDENT_CODE ON service_cfg_path ${arg_CFG_FILE}) install(TARGETS ${exec_name} DESTINATION ${arg_SYSROOT_PATH}) endfunction(rosetta_add_service) function(rosetta_add_misc_service) set(options) set(one_value_args NAME CFG_FILE) set(multi_value_args SOURCES) cmake_parse_arguments(PARSE_ARGV 0 arg "${options}" "${one_value_args}" "${multi_value_args}") message(STATUS "Building service ${arg_NAME}") add_custom_target(${arg_NAME}) set_target_properties(${arg_NAME} PROPERTIES service_cfg_path ${arg_CFG_FILE}) endfunction(rosetta_add_misc_service) function(rosetta_service_add_file) set(options) set(one_value_args NAME SRC_FILE DEST_DIR) set(multi_value_args) cmake_parse_arguments(PARSE_ARGV 0 arg "${options}" "${one_value_args}" "${multi_value_args}") get_property(file_list TARGET ${arg_NAME} PROPERTY service_file_list) set(file_list ${file_list} ${arg_SRC_FILE} ${arg_DEST_DIR}) set_property(TARGET ${arg_NAME} PROPERTY service_file_list ${file_list}) endfunction(rosetta_service_add_file)