diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b65d7b..d81e622 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,8 +21,9 @@ SET(SDL2PP_CXXSTD "c++11" CACHE STRING "Used c++ standard") IF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) OPTION(SDL2PP_WITH_IMAGE "Enable SDL2_image support" ON) OPTION(SDL2PP_WITH_TTF "Enable SDL2_ttf support" ON) + OPTION(SDL2PP_WITH_MIXER "Enable SDL2_mixer support" ON) ELSE(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) - # please set SDL2PP_WITH_IMAGE, SDL2PP_WITH_TTF in parent project as needed + # please set SDL2PP_WITH_IMAGE, SDL2PP_WITH_TTF, SDL2PP_WITH_MIXER in parent project as needed ENDIF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) # depends @@ -43,6 +44,13 @@ IF(SDL2PP_WITH_TTF) ELSE(SDL2PP_WITH_TTF) MESSAGE(STATUS "SDL2_ttf support disabled") ENDIF(SDL2PP_WITH_TTF) +IF(SDL2PP_WITH_MIXER) + FIND_PACKAGE(SDL2_mixer REQUIRED) + SET(SDL2_ALL_INCLUDE_DIRS ${SDL2_ALL_INCLUDE_DIRS} ${SDL2_MIXER_INCLUDE_DIR}) + SET(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} ${SDL2_MIXER_LIBRARY}) +ELSE(SDL2PP_WITH_MIXER) + MESSAGE(STATUS "SDL2_mixer support disabled") +ENDIF(SDL2PP_WITH_MIXER) FIND_PACKAGE(Doxygen) @@ -162,6 +170,15 @@ IF(SDL2PP_WITH_IMAGE) ) ENDIF(SDL2PP_WITH_IMAGE) +IF(SDL2PP_WITH_MIXER) + SET(LIBRARY_SOURCES + ${LIBRARY_SOURCES} + ) + SET(LIBRARY_HEADERS + ${LIBRARY_HEADERS} + ) +ENDIF(SDL2PP_WITH_MIXER) + # targets IF(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) MESSAGE(STATUS "libSDL2pp ${SDL2PP_VERSION} standalone build") diff --git a/SDL2pp/Config.hh.in b/SDL2pp/Config.hh.in index 0c0e4dd..b4b3c05 100644 --- a/SDL2pp/Config.hh.in +++ b/SDL2pp/Config.hh.in @@ -30,6 +30,7 @@ #cmakedefine SDL2PP_WITH_IMAGE #cmakedefine SDL2PP_WITH_TTF +#cmakedefine SDL2PP_WITH_MIXER #cmakedefine SDL2PP_WITH_2_0_4 #cmakedefine SDL2PP_WITH_EXPERIMENTAL_OPTIONAL #cmakedefine SDL2PP_WITH_DEPRECATED diff --git a/cmake/FindSDL2_mixer.cmake b/cmake/FindSDL2_mixer.cmake new file mode 100644 index 0000000..d42e3b8 --- /dev/null +++ b/cmake/FindSDL2_mixer.cmake @@ -0,0 +1,17 @@ +# - Try to locate SDL2_mixer +# This module defines: +# +# SDL2_MIXER_INCLUDE_DIR +# SDL2_MIXER_LIBRARY +# SDL2_MIXER_FOUND +# + +FIND_PATH(SDL2_MIXER_INCLUDE_DIR NAMES SDL2/SDL_mixer.h) + +FIND_LIBRARY(SDL2_MIXER_LIBRARY NAMES SDL2_mixer) + +INCLUDE(FindPackageHandleStandardArgs) + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2_mixer REQUIRED_VARS SDL2_MIXER_INCLUDE_DIR SDL2_MIXER_LIBRARY) + +MARK_AS_ADVANCED(SDL2_MIXER_INCLUDE_DIR SDL2_MIXER_LIBRARY)