Моя библиотека представляет собой библиотеку только заголовков, созданную из нескольких связанных друг с другом целевых объектов интерфейса CMake. Библиотека структурирована как модули, каждый из которых экспортирует целевой интерфейс CMake:
Код: Выделить всё
sound/
├─ sound_dsp/
├─ sound_math/
├─ sound_osc/
├─ sound_signal/
(etc.)
Код: Выделить всё
target_link_libraries(sound_signal
PRIVATE
sound::osc)
Код: Выделить всё
target_link_libraries(sound_osc
PRIVATE
sound::signal)
Код: Выделить всё
fatal error: module 'sound:osc' not found
Код: Выделить всё
ld: warning: ignoring duplicate libraries: 'modules/sound_osc/libsound_osc.a', 'modules/sound_signal/libsound_signal.a'
Код: Выделить всё
// sound_osc/src/osc.ixx
export module sound:osc;
export import :phasor;
export import :ramp;
Код: Выделить всё
// sound_signal/src/signal.ixx
export module sound:signal;
export import :generate;
export import :sample;
Подробнее здесь: https://stackoverflow.com/questions/791 ... -c-modules
Мобильная версия