Skip to content

cmake: configure external subprojects in different directory #686

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Apr 2, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ cmake_dependent_option(SDLMIXER_MOD_XMP_LITE "Use libxmp-lite instead of libxmp"
cmake_dependent_option(SDLMIXER_MOD_XMP_SHARED "Dynamically load libxmp(-lite)" "${SDLMIXER_DEPS_SHARED}" SDLMIXER_MOD_XMP OFF)

if(SDLMIXER_MOD AND NOT SDLMIXER_MOD_XMP)
message(FATAL_ERROR "MOD support was enabled (SDLMIXER_MOD) but xmp (SDLMIXER_MOD_XMP) was enabled.")
message(FATAL_ERROR "MOD support was enabled (SDLMIXER_MOD) but xmp (SDLMIXER_MOD_XMP) was disabled.")
endif()

option(SDLMIXER_MP3 "Enable MP3 music" ON)
Expand Down Expand Up @@ -405,7 +405,7 @@ if(SDLMIXER_OGG)
set(INSTALL_CMAKE_PACKAGE_MODULE FALSE)
set(BUILD_TESTING OFF)
sdl_check_project_in_subfolder(external/ogg ogg SDLMIXER_VENDORED)
add_subdirectory(external/ogg EXCLUDE_FROM_ALL)
add_subdirectory(external/ogg external/ogg-build EXCLUDE_FROM_ALL)
if(SDLMIXER_OGG_install)
list(APPEND INSTALL_EXTRA_TARGETS ogg)
endif()
Expand All @@ -425,15 +425,15 @@ if(SDLMIXER_OPUS)
set(BUILD_SHARED_LIBS ${SDLMIXER_OPUS_SHARED})
set(BUILD_PROGRAMS OFF)
sdl_check_project_in_subfolder(external/opus opus SDLMIXER_VENDORED)
add_subdirectory(external/opus EXCLUDE_FROM_ALL)
add_subdirectory(external/opus external/opus-build EXCLUDE_FROM_ALL)

set(OP_DISABLE_DOCS TRUE)
set(OP_DISABLE_EXAMPLES TRUE)
set(OP_DISABLE_HTTP TRUE)
message(STATUS "Using vendored opusfile")
set(BUILD_SHARED_LIBS ${SDLMIXER_OPUS_SHARED})
sdl_check_project_in_subfolder(external/opusfile opusfile SDLMIXER_VENDORED)
add_subdirectory(external/opusfile EXCLUDE_FROM_ALL)
add_subdirectory(external/opusfile external/opusfile-build EXCLUDE_FROM_ALL)
if(MSVC)
set_property(TARGET opusfile PROPERTY WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
endif()
Expand Down Expand Up @@ -507,7 +507,7 @@ if(SDLMIXER_VORBIS_TREMOR)
message(STATUS "Using vendored tremor")
set(BUILD_SHARED_LIBS ${SDLMIXER_VORBIS_TREMOR_SHARED})
sdl_check_project_in_subfolder(external/tremor tremor SDLMIXER_VENDORED)
add_subdirectory(external/tremor EXCLUDE_FROM_ALL)
add_subdirectory(external/tremor external/tremor-build EXCLUDE_FROM_ALL)
if(NOT TARGET tremor::tremor)
add_library(tremor::tremor ALIAS vorbisidec)
endif()
Expand Down Expand Up @@ -568,7 +568,7 @@ if(SDLMIXER_VORBIS_VORBISFILE)
message(STATUS "Using vendored vorbis + vorbisfile")
set(BUILD_SHARED_LIBS ${SDLMIXER_VORBIS_VORBISFILE_SHARED})
sdl_check_project_in_subfolder(external/vorbis vorbisfile SDLMIXER_VENDORED)
add_subdirectory(external/vorbis EXCLUDE_FROM_ALL)
add_subdirectory(external/vorbis external/vorbis-build EXCLUDE_FROM_ALL)
if(NOT TARGET Vorbis::vorbisfile)
add_library(Vorbis::vorbisfile ALIAS vorbisfile)
endif()
Expand Down Expand Up @@ -634,7 +634,7 @@ if(SDLMIXER_FLAC_LIBFLAC)
set(INSTALL_MANPAGES OFF)
message(STATUS "Using vendored libflac")
sdl_check_project_in_subfolder(external/flac libflac SDLMIXER_VENDORED)
add_subdirectory(external/flac EXCLUDE_FROM_ALL)
add_subdirectory(external/flac external/flac-build EXCLUDE_FROM_ALL)
if(SDLMIXER_FLAC_LIBFLAC_SHARED OR NOT SDLMIXER_BUILD_SHARED_LIBS)
list(APPEND INSTALL_EXTRA_TARGETS FLAC)
endif()
Expand Down Expand Up @@ -706,7 +706,7 @@ if(SDLMIXER_GME)
message(STATUS "Using vendored libgme")
sdl_check_project_in_subfolder(external/libgme libgme SDLMIXER_VENDORED)
enable_language(CXX)
add_subdirectory(external/libgme EXCLUDE_FROM_ALL)
add_subdirectory(external/libgme external/libgme-build EXCLUDE_FROM_ALL)
if(SDLMIXER_GME_SHARED OR NOT SDLMIXER_BUILD_SHARED_LIBS)
list(APPEND INSTALL_EXTRA_TARGETS ${tgt_gme})
endif()
Expand Down Expand Up @@ -764,7 +764,7 @@ if(SDLMIXER_MOD_XMP)
set(tgt_xmp xmp_static)
endif()
set(xmp_name libxmp)
add_subdirectory(external/libxmp EXCLUDE_FROM_ALL)
add_subdirectory(external/libxmp external/libxmp-build EXCLUDE_FROM_ALL)
if(SDLMIXER_MOD_XMP_SHARED OR NOT SDLMIXER_BUILD_SHARED_LIBS)
list(APPEND INSTALL_EXTRA_TARGETS ${tgt_xmp})
endif()
Expand Down Expand Up @@ -848,7 +848,7 @@ if(SDLMIXER_MP3_MPG123)
set(BUILD_LIBOUT123 FALSE)
set(BUILD_PROGRAMS OFF)
set(BUILD_SHARED_LIBS "${SDLMIXER_MP3_MPG123_SHARED}")
add_subdirectory(external/mpg123/ports/cmake EXCLUDE_FROM_ALL)
add_subdirectory(external/mpg123/ports/cmake external/libmpg123-build/ports/cmake EXCLUDE_FROM_ALL)
if(NOT TARGET MPG123::libmpg123)
add_library(MPG123::libmpg123 ALIAS libmpg123)
endif()
Expand Down Expand Up @@ -1009,7 +1009,7 @@ if(SDLMIXER_WAVPACK)
set(WAVPACK_BUILD_WINAMP_PLUGIN OFF)
set(WAVPACK_BUILD_DOCS OFF)
set(BUILD_SHARED_LIBS "${SDLMIXER_WAVPACK_SHARED}")
add_subdirectory(external/wavpack EXCLUDE_FROM_ALL)
add_subdirectory(external/wavpack external/wavpack-build EXCLUDE_FROM_ALL)
if(SDLMIXER_WAVPACK_SHARED OR NOT SDLMIXER_BUILD_SHARED_LIBS)
list(APPEND INSTALL_EXTRA_TARGETS wavpack)
endif()
Expand Down
Loading