summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt1
-rw-r--r--conanfile.py43
-rw-r--r--src/CMakeLists.txt10
3 files changed, 32 insertions, 22 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 08d407e8..8343f20c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,6 +12,7 @@ endif()
set(RE3_AUDIO "OAL" CACHE STRING "Audio")
option(RE3_WITH_OPUS "Build re3 with opus support" ON)
+option(RE3_WITH_LIBSNDFILE "Build re3 with libsndfile (instead of internal decoder)" OFF)
set_property(CACHE RE3_AUDIO PROPERTY STRINGS ${RE3_AUDIOS})
message(STATUS "RE3_AUDIO = ${RE3_AUDIO} (choices=${RE3_AUDIOS})")
diff --git a/conanfile.py b/conanfile.py
index 8d738311..c3a2b3ba 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -13,25 +13,26 @@ class Re3Conan(ConanFile):
generators = "cmake", "cmake_find_package"
options = {
"audio": ["openal", "miles"],
+ "with_libsndfile": [True, False],
"with_opus": [True, False],
}
default_options = {
"audio": "openal",
+ "with_libsndfile": False,
"with_opus": True,
- "libsndfile:with_external_libs": False,
- "mpg123:flexible_resampling": False,
- "mpg123:network": False,
- "mpg123:icy": False,
- "mpg123:id3v2": False,
- "mpg123:ieeefloat": False,
- "mpg123:layer1": False,
- "mpg123:layer2": False,
- "mpg123:layer3": False,
- "mpg123:moreinfo": False,
- "mpg123:seektable": False,
- "sdl2:vulkan": False,
- "sdl2:opengl": True,
- "sdl2:sdl2main": True,
+ # "libsndfile:with_external_libs": False,
+ # "mpg123:flexible_resampling": False,
+ # "mpg123:network": False,
+ # "mpg123:icy": False,
+ # "mpg123:id3v2": False,
+ # "mpg123:ieeefloat": False,
+ # "mpg123:layer1": False,
+ # "mpg123:layer2": False,
+ # "mpg123:layer3": False,
+ # "mpg123:moreinfo": False,
+ # "sdl2:vulkan": False,
+ # "sdl2:opengl": True,
+ # "sdl2:sdl2main": True,
}
no_copy_source = True
@@ -42,17 +43,21 @@ class Re3Conan(ConanFile):
except ConanException:
return False
+ def configure(self):
+ if self.options.audio != "openal":
+ self.options.with_libsndfile = False
+
def requirements(self):
self.requires("librw/{}".format(self.version))
+ self.requires("mpg123/1.26.4")
if self.options.audio == "openal":
self.requires("openal/1.21.0")
+ elif self.options.audio == "miles":
+ self.requires("miles-sdk/{}".format(self.version))
+ if self.options.with_libsndfile:
+ self.requires("libsndfile/1.0.30")
if self.options.with_opus:
self.requires("opusfile/0.12")
- else:
- self.requires("mpg123/1.26.4")
- self.requires("libsndfile/1.0.30")
- if self.options.audio == "miles":
- self.requires("miles-sdk/{}".format(self.version))
def export_sources(self):
for d in ("cmake", "src"):
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a7c2a3d7..0460a353 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -55,19 +55,23 @@ elseif(RE3_AUDIO STREQUAL "MSS")
target_link_libraries(re3 PRIVATE MilesSDK::MilesSDK)
endif()
+find_package(mpg123 REQUIRED)
+target_link_libraries(re3 PRIVATE
+ MPG123::libmpg123
+)
if(RE3_WITH_OPUS)
find_package(opusfile REQUIRED)
target_link_libraries(re3 PRIVATE
opusfile::opusfile
)
target_compile_definitions(re3 PRIVATE AUDIO_OPUS)
-else()
- find_package(mpg123 REQUIRED)
+endif()
+if(RE3_WITH_LIBSNDFILE)
find_package(SndFile REQUIRED)
target_link_libraries(re3 PRIVATE
- MPG123::libmpg123
SndFile::SndFile
)
+ target_compile_definitions(re3 PRIVATE AUDIO_OAL_USE_SNDFILE)
endif()
target_compile_definitions(re3 PRIVATE )