Example CMake use in the Makefile
This commit is contained in:
parent
db5ac61f09
commit
3b4ca143ce
@ -1,13 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.24)
|
||||
project(example-cmd VERSION 1.0.0)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
add_executable(stretch ${CMAKE_CURRENT_SOURCE_DIR}/cmd/main.cpp)
|
||||
|
||||
#if(WIN32)
|
||||
# find_package(IPP)
|
||||
# if(IPP_FOUND)
|
||||
# message(STATUS "Found ipp!")
|
||||
# target_link_libraries(example-cmd PRIVATE IPP::ippcore IPP::ipps IPP::ippi)
|
||||
# target_compile_definitions(stretch PRIVATE SIGNALSMITH_USE_IPP)
|
||||
# endif()
|
||||
#endif()
|
||||
23
cmd/Makefile
23
cmd/Makefile
@ -7,7 +7,26 @@ out/stretch: ../signalsmith-stretch.h main.cpp util/*.h util/*.hxx ../dsp/*.h
|
||||
main.cpp -o out/stretch
|
||||
|
||||
examples: out/stretch
|
||||
inputs/run-all.sh out/d1- out/stretch --semitones=-1
|
||||
mkdir -p out/examples
|
||||
inputs/run-all.sh out/examples/u2- out/stretch --semitones=2
|
||||
inputs/run-all.sh out/examples/d2- out/stretch --semitones=-2
|
||||
inputs/run-all.sh out/examples/u4- out/stretch --semitones=4
|
||||
inputs/run-all.sh out/examples/d4- out/stretch --semitones=-4
|
||||
inputs/run-all.sh out/examples/u8- out/stretch --semitones=8
|
||||
inputs/run-all.sh out/examples/d8- out/stretch --semitones=-8
|
||||
inputs/run-all.sh out/examples/u16- out/stretch --semitones=16
|
||||
inputs/run-all.sh out/examples/d16- out/stretch --semitones=-16
|
||||
inputs/run-all.sh out/examples/t_8- out/stretch --time=0.8
|
||||
inputs/run-all.sh out/examples/t1_2- out/stretch --time=1.2
|
||||
inputs/run-all.sh out/examples/t1_5- out/stretch --time=1.5
|
||||
inputs/run-all.sh out/examples/t2- out/stretch --time=2
|
||||
inputs/run-all.sh out/examples/t4- out/stretch --time=4
|
||||
|
||||
clean:
|
||||
rm -rf out
|
||||
rm -rf out
|
||||
|
||||
### Example use of CMake
|
||||
|
||||
cmake:
|
||||
cmake -B build -G Xcode -D CMAKE_RUNTIME_OUTPUT_DIRECTORY=../out
|
||||
cmake --build build --config Release
|
||||
11
cmd/main.cpp
11
cmd/main.cpp
@ -30,7 +30,8 @@ int main(int argc, char* argv[]) {
|
||||
size_t inputLength = inWav.samples.size()/inWav.channels;
|
||||
|
||||
Wav prevWav; // Used during development, to compare against known-good previous render
|
||||
if (!prevWav.read(outputWav + "-reference.wav")) {
|
||||
bool compareReference = (time <= 1.6);
|
||||
if (compareReference && !prevWav.read(outputWav + "-reference.wav")) {
|
||||
if (prevWav.read(outputWav)) {
|
||||
prevWav.write(outputWav + "-reference.wav");
|
||||
}
|
||||
@ -103,7 +104,7 @@ int main(int argc, char* argv[]) {
|
||||
|
||||
if (!outWav.write(outputWav).warn()) args.errorExit("failed to write WAV");
|
||||
|
||||
if (prevWav.result) {
|
||||
if (compareReference && prevWav.result) {
|
||||
outWav.read(outputWav);
|
||||
if (prevWav.length() != outWav.length()) args.errorExit("lengths differ");
|
||||
double diff2 = 0;
|
||||
@ -113,7 +114,11 @@ int main(int argc, char* argv[]) {
|
||||
}
|
||||
diff2 /= prevWav.samples.size();
|
||||
double diffDb = 10*std::log10(diff2);
|
||||
std::cout << "Difference from reference: " << diffDb << " dB\n";
|
||||
std::cout << "Reference:\n\tdifference: ";
|
||||
if (diff2 < 1e-6) std::cout << Console::Red;
|
||||
if (diff2 < 1e-8) std::cout << Console::Yellow;
|
||||
if (diff2 < 1e-10) std::cout << Console::Green;
|
||||
std::cout << Console::Bright << diffDb << Console::Reset << " dB\n";
|
||||
if (diffDb > -60) args.errorExit("too much difference\n");
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user