#define SDL_ELF_NOTE_DLOPEN(feature, description, priority, ...) \
SDL_ELF_NOTE_INTERNAL( \
"[{\"feature\":\"" feature \
"\",\"description\":\"" description \
"\",\"priority\":\"" priority \
"\",\"soname\":" SDL_DLNOTE_JSON_ARRAY(__VA_ARGS__) "}]", \
SDL_DLNOTE_UNIQUE_NAME);
次をグロバルスコープに追加すると実現できる:
SDL_ELF_NOTE_DLOPEN(
"png",
"Support for loading PNG images using libpng (required for APNG)",
SDL_ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED,
"libpng12.so.0"
)
最後のセミコロンは必要ない.
または, 複数のバージョンのライブラリに対応しているならば, 一覧にできる:
// このアプリケーションは動的に読み込むことでSDL1, SDL2, SDL3に対応する
SDL_ELF_NOTE_DLOPEN(
"SDL",
"Create windows through SDL video backend",
SDL_ELF_NOTE_DLOPEN_PRIORITY_REQUIRED
"libSDL-1.2.so.0", "libSDL2-2.0.so.0", "libSDL3.so.0"
)
このマクロは可変長引数マクロに対応していないコンパイラでは使用できない.