Skip to content

Commit 93d910b

Browse files
committed
Fix builds
1 parent ea34785 commit 93d910b

File tree

3 files changed

+41
-27
lines changed

3 files changed

+41
-27
lines changed

cmake/yup_modules.cmake

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,8 @@ endfunction()
5757
#==============================================================================
5858

5959
function (_yup_module_upstream_has_content module_name module_path output_variable)
60-
set (source_upstream_path "${module_path}/upstream")
61-
set (build_upstream_path "${CMAKE_BINARY_DIR}/externals/${module_name}/upstream")
62-
63-
foreach (candidate_path IN ITEMS "${source_upstream_path}" "${build_upstream_path}")
60+
_yup_collect_upstream_candidate_paths ("${module_name}" "${module_path}" candidate_paths)
61+
foreach (candidate_path IN LISTS candidate_paths)
6462
if (EXISTS "${candidate_path}")
6563
file (GLOB upstream_items "${candidate_path}/*")
6664
list (LENGTH upstream_items upstream_items_len)
@@ -77,17 +75,13 @@ endfunction()
7775
#==============================================================================
7876

7977
function (_yup_module_get_upstream_path module_name module_path output_variable)
80-
set (source_upstream_path "${module_path}/upstream")
81-
if (EXISTS "${source_upstream_path}")
82-
set (${output_variable} "${source_upstream_path}" PARENT_SCOPE)
83-
return()
84-
endif()
85-
86-
set (build_upstream_path "${CMAKE_BINARY_DIR}/externals/${module_name}/upstream")
87-
if (EXISTS "${build_upstream_path}")
88-
set (${output_variable} "${build_upstream_path}" PARENT_SCOPE)
89-
return()
90-
endif()
78+
_yup_collect_upstream_candidate_paths ("${module_name}" "${module_path}" candidate_paths)
79+
foreach (candidate_path IN LISTS candidate_paths)
80+
if (EXISTS "${candidate_path}")
81+
set (${output_variable} "${candidate_path}" PARENT_SCOPE)
82+
return()
83+
endif()
84+
endforeach()
9185

9286
set (${output_variable} "" PARENT_SCOPE)
9387
endfunction()

cmake/yup_utilities.cmake

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,28 @@ function (_yup_resolve_variable_path input_path output_variable)
203203
set (${output_variable} "${input_path}" PARENT_SCOPE)
204204
endfunction()
205205

206+
#==============================================================================
207+
208+
function (_yup_collect_upstream_candidate_paths module_name module_path output_variable)
209+
set (candidate_paths "${module_path}/upstream")
210+
211+
set (candidate_root "${CMAKE_BINARY_DIR}")
212+
set (max_depth 6)
213+
while (max_depth GREATER 0)
214+
list (APPEND candidate_paths "${candidate_root}/externals/${module_name}/upstream")
215+
216+
get_filename_component (candidate_parent "${candidate_root}" DIRECTORY)
217+
if ("${candidate_parent}" STREQUAL "${candidate_root}")
218+
break()
219+
endif()
220+
221+
set (candidate_root "${candidate_parent}")
222+
math (EXPR max_depth "${max_depth} - 1")
223+
endwhile()
224+
225+
set (${output_variable} "${candidate_paths}" PARENT_SCOPE)
226+
endfunction()
227+
206228
function (_yup_resolve_variable_paths input_list output_list)
207229
set (resolved_list "")
208230

tests/yup_audio_formats/yup_OpusAudioFormat.cpp

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -245,24 +245,24 @@ TEST_F (OpusAudioFormatFileTests, TestWriteAndReadRoundTrip)
245245
tempFile.deleteFile();
246246
} };
247247

248-
std::unique_ptr<FileOutputStream> outputStream = std::make_unique<FileOutputStream> (tempFile);
249-
auto writer = format->createWriterFor (outputStream.get(), 48000, 1, 32, {}, 0);
250-
ASSERT_NE (nullptr, writer);
251-
252248
const int numSamples = 960 * 3;
253249
AudioBuffer<float> buffer (1, numSamples);
254250
auto* channelData = buffer.getWritePointer (0);
255251
for (int sample = 0; sample < numSamples; ++sample)
256252
channelData[sample] = std::sin (2.0 * 3.14159 * 440.0 * sample / 48000.0);
257253

258-
const float* const* bufferData = buffer.getArrayOfReadPointers();
259-
EXPECT_TRUE (writer->write (bufferData, numSamples));
260-
writer->flush();
254+
{
255+
auto outputStream = std::make_unique<FileOutputStream> (tempFile);
256+
auto writer = format->createWriterFor (outputStream.release(), 48000, 1, 32, {}, 0);
257+
ASSERT_NE (nullptr, writer);
261258

262-
outputStream.release();
259+
const float* const* bufferData = buffer.getArrayOfReadPointers();
260+
EXPECT_TRUE (writer->write (bufferData, numSamples));
261+
writer->flush();
262+
}
263263

264-
std::unique_ptr<FileInputStream> inputStream = std::make_unique<FileInputStream> (tempFile);
265-
auto reader = format->createReaderFor (inputStream.get());
264+
auto inputStream = std::make_unique<FileInputStream> (tempFile);
265+
auto reader = format->createReaderFor (inputStream.release());
266266
ASSERT_NE (nullptr, reader);
267267

268268
EXPECT_DOUBLE_EQ (48000.0, reader->sampleRate);
@@ -318,7 +318,5 @@ TEST_F (OpusAudioFormatFileTests, TestWriteAndReadRoundTrip)
318318
EXPECT_LT (rmsRatio, 1.6);
319319
EXPECT_GT (peakRatio, 0.4);
320320
EXPECT_LT (peakRatio, 1.6);
321-
322-
inputStream.release();
323321
}
324322
#endif

0 commit comments

Comments
 (0)