CMake: Correct inter-module dependencies and library visibility

Modules didn't correctly define their dependencies before, which relied
on the frontends implicitly including every module for linking to
succeed.

Also changed every target_link_libraries call to specify visibility of
dependencies to avoid leaking definitions to dependents when not
necessary.
This commit is contained in:
Yuri Kunde Schlesner
2017-05-27 18:26:55 -07:00
parent 62f34c8e5c
commit 7b81903756
8 changed files with 27 additions and 23 deletions

View File

@ -38,9 +38,10 @@ endif()
create_directory_groups(${SRCS} ${HEADERS})
add_library(audio_core STATIC ${SRCS} ${HEADERS})
target_link_libraries(audio_core SoundTouch)
target_link_libraries(audio_core PUBLIC common core)
target_link_libraries(audio_core PRIVATE SoundTouch)
if(SDL2_FOUND)
target_link_libraries(audio_core ${SDL2_LIBRARY})
set_property(TARGET audio_core APPEND PROPERTY COMPILE_DEFINITIONS HAVE_SDL2)
target_link_libraries(audio_core PRIVATE ${SDL2_LIBRARY})
target_compile_definitions(audio_core PRIVATE HAVE_SDL2)
endif()