From 40400271b085f3bc6034de21100bc74090a5ff9b Mon Sep 17 00:00:00 2001 From: redtide Date: Sun, 8 Mar 2020 15:29:08 +0100 Subject: [PATCH 01/11] Generate versioned Doxyfile --- .gitignore | 2 +- Doxyfile => scripts/Doxyfile.in | 4 ++-- src/CMakeLists.txt | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) rename Doxyfile => scripts/Doxyfile.in (99%) diff --git a/.gitignore b/.gitignore index 4196b1a0..7abb4c40 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,7 @@ compile_commands.json *.a *.txt.user *.autosave - +/Doxyfile .DS_Store clients/sfizz_jack diff --git a/Doxyfile b/scripts/Doxyfile.in similarity index 99% rename from Doxyfile rename to scripts/Doxyfile.in index 1de7cecd..36cd35d5 100644 --- a/Doxyfile +++ b/scripts/Doxyfile.in @@ -38,7 +38,7 @@ PROJECT_NAME = sfizz # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.1.0 +PROJECT_NUMBER = @PROJECT_VERSION@ # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a @@ -1105,7 +1105,7 @@ GENERATE_HTML = YES # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_OUTPUT = _api +HTML_OUTPUT = api/@PROJECT_VERSION@ # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4bfa3400..d96462da 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -45,6 +45,8 @@ else() configure_file (${PROJECT_SOURCE_DIR}/scripts/innosetup.iss.in ${PROJECT_BINARY_DIR}/innosetup.iss @ONLY) endif() +configure_file (${PROJECT_SOURCE_DIR}/scripts/Doxyfile.in ${PROJECT_SOURCE_DIR}/Doxyfile @ONLY) + add_library (sfizz::parser ALIAS sfizz_parser) add_library (sfizz::sfizz ALIAS sfizz_static) if (UNIX AND NOT APPLE) From b16210920327e2e3f0fa4b9beb26397e32be6f41 Mon Sep 17 00:00:00 2001 From: redtide Date: Sun, 8 Mar 2020 15:49:14 +0100 Subject: [PATCH 02/11] Restore previous Doxygen output directory --- scripts/Doxyfile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/Doxyfile.in b/scripts/Doxyfile.in index 36cd35d5..53dc1502 100644 --- a/scripts/Doxyfile.in +++ b/scripts/Doxyfile.in @@ -1105,7 +1105,7 @@ GENERATE_HTML = YES # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_OUTPUT = api/@PROJECT_VERSION@ +HTML_OUTPUT = _api # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). From d1b252f78e69d1bc13c8e7e8e104d91ff3658d77 Mon Sep 17 00:00:00 2001 From: redtide Date: Sun, 8 Mar 2020 15:29:08 +0100 Subject: [PATCH 03/11] Generate versioned Doxyfile --- .gitignore | 2 +- Doxyfile => scripts/Doxyfile.in | 4 ++-- src/CMakeLists.txt | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) rename Doxyfile => scripts/Doxyfile.in (99%) diff --git a/.gitignore b/.gitignore index d232a9b0..cc8d2bc2 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,7 @@ compile_commands.json *.a *.txt.user *.autosave - +/Doxyfile .DS_Store clients/sfizz_jack diff --git a/Doxyfile b/scripts/Doxyfile.in similarity index 99% rename from Doxyfile rename to scripts/Doxyfile.in index 1de7cecd..36cd35d5 100644 --- a/Doxyfile +++ b/scripts/Doxyfile.in @@ -38,7 +38,7 @@ PROJECT_NAME = sfizz # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 0.1.0 +PROJECT_NUMBER = @PROJECT_VERSION@ # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a @@ -1105,7 +1105,7 @@ GENERATE_HTML = YES # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_OUTPUT = _api +HTML_OUTPUT = api/@PROJECT_VERSION@ # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2475fd65..bcc7f6e5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -52,6 +52,8 @@ if(WIN32) configure_file (${PROJECT_SOURCE_DIR}/scripts/innosetup.iss.in ${PROJECT_BINARY_DIR}/innosetup.iss @ONLY) endif() +configure_file (${PROJECT_SOURCE_DIR}/scripts/Doxyfile.in ${PROJECT_SOURCE_DIR}/Doxyfile @ONLY) + add_library (sfizz::parser ALIAS sfizz_parser) add_library (sfizz::sfizz ALIAS sfizz_static) if (LIBATOMIC_FOUND) From 4ac7b9c2c5e2bc65852a93347201fae1402e2fe1 Mon Sep 17 00:00:00 2001 From: redtide Date: Sun, 8 Mar 2020 15:49:14 +0100 Subject: [PATCH 04/11] Restore previous Doxygen output directory --- scripts/Doxyfile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/Doxyfile.in b/scripts/Doxyfile.in index 36cd35d5..53dc1502 100644 --- a/scripts/Doxyfile.in +++ b/scripts/Doxyfile.in @@ -1105,7 +1105,7 @@ GENERATE_HTML = YES # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_OUTPUT = api/@PROJECT_VERSION@ +HTML_OUTPUT = _api # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). From 18529e21f854d7165c6c3a3155ff0ca4ff0b501c Mon Sep 17 00:00:00 2001 From: Paul Fd Date: Sun, 8 Mar 2020 16:30:47 +0100 Subject: [PATCH 05/11] Added stages to travis and moved the doxygen in the Deploy stage with travis conditions --- .travis.yml | 49 +++++++++++++++++++++++++++++-------------- .travis/update_dox.sh | 6 +----- 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9f31aedc..03462119 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,20 +1,21 @@ language: cpp jobs: - include: - os: linux + stage: "Build" + name: "Windows mingw32" env: - CROSS_COMPILE=mingw32 - CONTAINER=cross - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-mingw32" - - os: linux + name: "Windows mingw64" env: - CROSS_COMPILE=mingw64 - CONTAINER=cross - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-mingw64" - - os: linux + name: "Linux amd64 library" arch: amd64 dist: bionic env: @@ -23,11 +24,8 @@ jobs: apt: sources: - sourceline: 'ppa:ubuntu-toolchain-r/test' - - packages: - - doxygen - - os: linux + name: "Linux arm64 library" arch: arm64 dist: bionic env: @@ -36,8 +34,8 @@ jobs: apt: sources: - sourceline: 'ppa:ubuntu-toolchain-r/test' - - os: linux + name: "Linux arm64 static LV2" arch: arm64 dist: bionic env: @@ -47,9 +45,9 @@ jobs: apt: sources: - sourceline: 'ppa:ubuntu-toolchain-r/test' - - os: linux - arch: amd64 + name: "Linux amd64 static LV2" + name: "sfizz-linux-amd64-lv2" dist: bionic env: - BUILD_TYPE=lv2 @@ -58,13 +56,15 @@ jobs: apt: sources: - sourceline: 'ppa:ubuntu-toolchain-r/test' - - os: osx + name: "macOS" osx_image: xcode10.1 env: - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" - os: linux + stage: "Deploy" + name: "Source packaging" env: - BUILD_TYPE=source - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-src" @@ -72,19 +72,37 @@ jobs: apt: packages: - python-pip - before_install: - true - install: - sudo pip install git-archive-all - script: - git-archive-all --prefix="sfizz-${TRAVIS_BRANCH}/" -9 "${INSTALL_DIR}.tar.gz" - after_failure: - true + after_success: + - true + - os: linux + name: "Generate documentation" + dist: bionic + # Change before integrating... + # if: (tag IS present) AND (branch = master) + if: (tag IS present) AND (branch = master) + addons: + apt: + packages: + - doxygen + - cmake + - libsndfile-dev + before_install: + - true + install: + - true + script: + - .travis/update_dox.sh + after_failure: + - true after_success: - true @@ -102,7 +120,6 @@ after_failure: after_success: - bash ${TRAVIS_BUILD_DIR}/.travis/discord_webhook.sh success -- bash ${TRAVIS_BUILD_DIR}/.travis/update_dox.sh - bash ${TRAVIS_BUILD_DIR}/.travis/after_success.sh deploy: diff --git a/.travis/update_dox.sh b/.travis/update_dox.sh index 8b74e4e8..e838dc05 100755 --- a/.travis/update_dox.sh +++ b/.travis/update_dox.sh @@ -3,11 +3,7 @@ set -x # No fail, we need to go back to the original branch at the end . .travis/environment.sh -# Build documentation only from Linux x86_64 builds -if [[ ${TRAVIS_CPU_ARCH} != "amd64" || ${TRAVIS_OS_NAME} != "linux" || "${CROSS_COMPILE}" != "" || ${TRAVIS_TAG} == "" ]]; then - exit 0 -fi - +mkdir build && cd build && cmake -DSFIZZ_JACK=OFF -DSFIZZ_SHARED=OFF -DSFIZZ_LV2=OFF .. && cd .. doxygen Doxyfile git fetch --depth=1 https://github.com/${TRAVIS_REPO_SLUG}.git refs/heads/gh-pages:refs/remotes/origin/gh-pages git checkout origin/gh-pages From 76ec234891ba862f42f12fe9b4cd56ecdc235157 Mon Sep 17 00:00:00 2001 From: Paul Fd Date: Sun, 8 Mar 2020 16:44:02 +0100 Subject: [PATCH 06/11] Added the webhook in the last stage and removed useless things --- .travis.yml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 03462119..47a733c5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -47,7 +47,6 @@ jobs: - sourceline: 'ppa:ubuntu-toolchain-r/test' - os: linux name: "Linux amd64 static LV2" - name: "sfizz-linux-amd64-lv2" dist: bionic env: - BUILD_TYPE=lv2 @@ -86,8 +85,6 @@ jobs: - os: linux name: "Generate documentation" dist: bionic - # Change before integrating... - # if: (tag IS present) AND (branch = master) if: (tag IS present) AND (branch = master) addons: apt: @@ -105,6 +102,17 @@ jobs: - true after_success: - true + - os: linux + name: "Discord Webhook" + dist: bionic + before_install: + - true + install: + - true + script: + - true + after_success: + - bash ${TRAVIS_BUILD_DIR}/.travis/discord_webhook.sh success before_install: - bash ${TRAVIS_BUILD_DIR}/.travis/before_install.sh @@ -119,7 +127,6 @@ after_failure: - bash ${TRAVIS_BUILD_DIR}/.travis/discord_webhook.sh failure after_success: -- bash ${TRAVIS_BUILD_DIR}/.travis/discord_webhook.sh success - bash ${TRAVIS_BUILD_DIR}/.travis/after_success.sh deploy: From 4f4723a341e74f2f84a459b72442a07b2986c7e7 Mon Sep 17 00:00:00 2001 From: Paul Fd Date: Sun, 8 Mar 2020 17:03:09 +0100 Subject: [PATCH 07/11] Added the clang-tidy job in the Test stage --- .clang-tidy | 37 +++++++++++++++++++++++++++++++++++++ .travis.yml | 17 +++++++++++++++++ scripts/run_clang_tidy.sh | 24 ++++++++++++++++++++++++ src/sfizz/ADSREnvelope.cpp | 3 ++- src/sfizz/Defaults.h | 4 ++-- src/sfizz/FilePool.cpp | 2 +- src/sfizz/FilterPool.cpp | 2 +- src/sfizz/Logger.cpp | 4 ++-- src/sfizz/Logger.h | 2 +- src/sfizz/Region.cpp | 10 +++++----- src/sfizz/Synth.cpp | 4 ++-- src/sfizz/Voice.cpp | 4 ++-- src/sfizz/effects/Lofi.cpp | 6 +++--- 13 files changed, 99 insertions(+), 20 deletions(-) create mode 100644 .clang-tidy create mode 100755 scripts/run_clang_tidy.sh diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 00000000..fd268a01 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,37 @@ +--- +Checks: 'clang-diagnostic-*,clang-analyzer-*,abseil-*,bugprone-*,performance-*,-abseil-no-internal-dependencies' +WarningsAsErrors: 'clang-diagnostic-*,clang-analyzer-*,abseil-*,bugprone-*,performance-*' +HeaderFilterRegex: '' +AnalyzeTemporaryDtors: false +FormatStyle: file +User: paul +CheckOptions: + - key: cert-dcl16-c.NewSuffixes + value: 'L;LL;LU;LLU' + - key: cert-oop54-cpp.WarnOnlyIfThisHasSuspiciousField + value: '0' + - key: cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors + value: '1' + - key: cppcoreguidelines-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic + value: '1' + - key: google-readability-braces-around-statements.ShortStatementLines + value: '1' + - key: google-readability-function-size.StatementThreshold + value: '800' + - key: google-readability-namespace-comments.ShortNamespaceLines + value: '10' + - key: google-readability-namespace-comments.SpacesBeforeComments + value: '2' + - key: modernize-loop-convert.MaxCopySize + value: '16' + - key: modernize-loop-convert.MinConfidence + value: reasonable + - key: modernize-loop-convert.NamingStyle + value: CamelCase + - key: modernize-pass-by-value.IncludeStyle + value: llvm + - key: modernize-replace-auto-ptr.IncludeStyle + value: llvm + - key: modernize-use-nullptr.NullMacros + value: 'NULL' +... diff --git a/.travis.yml b/.travis.yml index 47a733c5..16cd2192 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,23 @@ language: cpp jobs: + - os: linux + stage: "Tests" + name: "clang-tidy checks" + dist: bionic + addons: + apt: + packages: + - clang-tidy + - libsndfile-dev + before_install: + - true + install: + - true + script: + - scripts/run_clang_tidy.sh + after_success: + - true - os: linux stage: "Build" name: "Windows mingw32" diff --git a/scripts/run_clang_tidy.sh b/scripts/run_clang_tidy.sh new file mode 100755 index 00000000..e660173b --- /dev/null +++ b/scripts/run_clang_tidy.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +clang-tidy \ + src/sfizz/ADSREnvelope.cpp \ + src/sfizz/Effects.cpp \ + src/sfizz/EQPool.cpp \ + src/sfizz/EventEnvelopes.cpp \ + src/sfizz/FilePool.cpp \ + src/sfizz/FilterPool.cpp \ + src/sfizz/FloatEnvelopes.cpp \ + src/sfizz/Logger.cpp \ + src/sfizz/MidiState.cpp \ + src/sfizz/Opcode.cpp \ + src/sfizz/Oversampler.cpp \ + src/sfizz/Parser.cpp \ + src/sfizz/sfizz.cpp \ + src/sfizz/Region.cpp \ + src/sfizz/SfzHelpers.cpp \ + src/sfizz/SIMDSSE.cpp \ + src/sfizz/Synth.cpp \ + src/sfizz/Voice.cpp \ + src/sfizz/effects/Lofi.cpp \ + src/sfizz/effects/Nothing.cpp \ + -- -Iexternal/abseil-cpp -Isrc/external -Isrc/external/pugixml/src -Isrc/sfizz -Isrc diff --git a/src/sfizz/ADSREnvelope.cpp b/src/sfizz/ADSREnvelope.cpp index c1fad38e..e795d53f 100644 --- a/src/sfizz/ADSREnvelope.cpp +++ b/src/sfizz/ADSREnvelope.cpp @@ -178,7 +178,8 @@ void ADSREnvelope::getBlock(absl::Span output) noexcept if (shouldRelease) { remainingSamples = static_cast(originalSpan.size()); - if (releaseDelay > remainingSamples) { + if (releaseDelay > remainingSamples) + { releaseDelay -= remainingSamples; return; } diff --git a/src/sfizz/Defaults.h b/src/sfizz/Defaults.h index 2b734d91..4d01301c 100644 --- a/src/sfizz/Defaults.h +++ b/src/sfizz/Defaults.h @@ -125,7 +125,7 @@ namespace Default constexpr Range rtDecayRange { 0.0f, 200.0f }; // Performance parameters: Filters - constexpr float numFilters { 2 }; + constexpr int numFilters { 2 }; constexpr float filterCutoff { 0 }; constexpr float filterResonance { 0 }; constexpr float filterGain { 0 }; @@ -147,7 +147,7 @@ namespace Default constexpr Range filterResonanceModRange { 0.0f, 96.0f }; // Performance parameters: EQ - constexpr float numEQs { 3 }; + constexpr int numEQs { 3 }; constexpr float eqBandwidth { 1.0f }; constexpr float eqBandwidthCC { 0.0f }; constexpr float eqFrequencyUnset { 0.0f }; diff --git a/src/sfizz/FilePool.cpp b/src/sfizz/FilePool.cpp index 89492265..a716d32b 100644 --- a/src/sfizz/FilePool.cpp +++ b/src/sfizz/FilePool.cpp @@ -218,7 +218,7 @@ bool sfz::FilePool::preloadFile(const std::string& filename, uint32_t maxOffset) } else { preloadedFiles.insert_or_assign(filename, { readFromFile(sndFile, framesToLoad, oversamplingFactor), - static_cast(oversamplingFactor) * sndFile.samplerate() + static_cast(oversamplingFactor) * static_cast(sndFile.samplerate()) }); } diff --git a/src/sfizz/FilterPool.cpp b/src/sfizz/FilterPool.cpp index af56f3b6..354486df 100644 --- a/src/sfizz/FilterPool.cpp +++ b/src/sfizz/FilterPool.cpp @@ -31,7 +31,7 @@ void sfz::FilterHolder::setup(const FilterDescription& description, unsigned num } const auto keytrack = description.keytrack * (noteNumber - description.keycenter); baseCutoff *= centsFactor(keytrack); - const auto veltrack = description.veltrack * normalizeVelocity(velocity); + const auto veltrack = static_cast(description.veltrack) * normalizeVelocity(velocity); baseCutoff *= centsFactor(veltrack); baseCutoff = Default::filterCutoffRange.clamp(baseCutoff); diff --git a/src/sfizz/Logger.cpp b/src/sfizz/Logger.cpp index 53bfa66b..15b7fa86 100644 --- a/src/sfizz/Logger.cpp +++ b/src/sfizz/Logger.cpp @@ -98,12 +98,12 @@ sfz::Logger::~Logger() } -void sfz::Logger::logCallbackTime(CallbackBreakdown&& breakdown, int numVoices, size_t numSamples) +void sfz::Logger::logCallbackTime(const CallbackBreakdown& breakdown, int numVoices, size_t numSamples) { if (!loggingEnabled) return; - callbackTimeQueue.try_push({ std::move(breakdown), numVoices, numSamples }); + callbackTimeQueue.try_push({ breakdown, numVoices, numSamples }); } void sfz::Logger::logFileTime(std::chrono::duration waitDuration, std::chrono::duration loadDuration, uint32_t fileSize, absl::string_view filename) diff --git a/src/sfizz/Logger.h b/src/sfizz/Logger.h index 449c19d9..d23cb618 100644 --- a/src/sfizz/Logger.h +++ b/src/sfizz/Logger.h @@ -108,7 +108,7 @@ public: * @param numVoices The number of active voices * @param numSamples The number of samples in the callback */ - void logCallbackTime(CallbackBreakdown&& breakdown, int numVoices, size_t numSamples); + void logCallbackTime(const CallbackBreakdown& breakdown, int numVoices, size_t numSamples); /** * @brief Log a file loading and waiting duration diff --git a/src/sfizz/Region.cpp b/src/sfizz/Region.cpp index 004b5fe9..ddf2a764 100644 --- a/src/sfizz/Region.cpp +++ b/src/sfizz/Region.cpp @@ -250,7 +250,7 @@ bool sfz::Region::parseOpcode(const Opcode& opcode) case hash("volume"): setValueFromOpcode(opcode, volume, Default::volumeRange); break; - case hash("gain_cc&"): [[fallthrough]]; + case hash("gain_cc&"): case hash("gain_oncc&"): [[fallthrough]]; case hash("volume_oncc&"): setCCPairFromOpcode(opcode, volumeCC, Default::volumeCCRange); @@ -395,8 +395,8 @@ bool sfz::Region::parseOpcode(const Opcode& opcode) setValueFromOpcode(opcode, filters[filterIndex].resonance, Default::filterResonanceRange); } break; - case hash("cutoff_oncc&"): [[fallthrough]]; - case hash("cutoff_cc&"): [[fallthrough]]; + case hash("cutoff_oncc&"): + case hash("cutoff_cc&"): case hash("cutoff&_oncc&"): [[fallthrough]]; case hash("cutoff&_cc&"): { @@ -411,8 +411,8 @@ bool sfz::Region::parseOpcode(const Opcode& opcode) ); } break; - case hash("resonance&_oncc&"): [[fallthrough]]; - case hash("resonance&_cc&"): [[fallthrough]]; + case hash("resonance&_oncc&"): + case hash("resonance&_cc&"): case hash("resonance_oncc&"): [[fallthrough]]; case hash("resonance_cc&"): { diff --git a/src/sfizz/Synth.cpp b/src/sfizz/Synth.cpp index 100aef69..738c524a 100644 --- a/src/sfizz/Synth.cpp +++ b/src/sfizz/Synth.cpp @@ -567,7 +567,7 @@ void sfz::Synth::renderBlock(AudioSpan buffer) noexcept buffer.applyGain(db2mag(volume)); callbackBreakdown.dispatch = dispatchDuration; - resources.logger.logCallbackTime(std::move(callbackBreakdown), numActiveVoices, numFrames); + resources.logger.logCallbackTime(callbackBreakdown, numActiveVoices, numFrames); // Reset the dispatch counter dispatchDuration = Duration(0); @@ -938,7 +938,7 @@ void sfz::Synth::resetAllControllers(int delay) noexcept fs::file_time_type sfz::Synth::checkModificationTime() { auto returnedTime = modificationTime; - for (auto file: getIncludedFiles()) { + for (const auto& file: getIncludedFiles()) { const auto fileTime = fs::last_write_time(file); if (returnedTime < fileTime) returnedTime = fileTime; diff --git a/src/sfizz/Voice.cpp b/src/sfizz/Voice.cpp index df3e3c10..8f75c25c 100644 --- a/src/sfizz/Voice.cpp +++ b/src/sfizz/Voice.cpp @@ -82,7 +82,7 @@ void sfz::Voice::startVoice(Region* region, int delay, int number, uint8_t value pitchBendEnvelope.setFunction([region](float pitchValue){ const auto normalizedBend = normalizeBend(pitchValue); - const auto bendInCents = normalizedBend > 0.0f ? normalizedBend * region->bendUp : -normalizedBend * region->bendDown; + const auto bendInCents = normalizedBend > 0.0f ? normalizedBend * static_cast(region->bendUp) : -normalizedBend * static_cast(region->bendDown); return centsFactor(bendInCents); }); pitchBendEnvelope.reset(static_cast(resources.midiState.getPitchBend())); @@ -106,7 +106,7 @@ void sfz::Voice::startVoice(Region* region, int delay, int number, uint8_t value sourcePosition = region->getOffset(); triggerDelay = delay; - initialDelay = delay + static_cast(region->getDelay() * sampleRate); + initialDelay = delay + static_cast(region->getDelay() * sampleRate); baseFrequency = midiNoteFrequency(number); bendStepFactor = centsFactor(region->bendStep); egEnvelope.reset(*region, resources.midiState, delay, value, sampleRate); diff --git a/src/sfizz/effects/Lofi.cpp b/src/sfizz/effects/Lofi.cpp index 1fcc3304..60b66949 100644 --- a/src/sfizz/effects/Lofi.cpp +++ b/src/sfizz/effects/Lofi.cpp @@ -132,7 +132,7 @@ namespace fx { for (uint32_t i = 0; i < nframes; ++i) { float x = in[i]; - float y = std::copysign((int)(0.5f + std::fabs(x * steps)), x) * invSteps; + float y = std::copysign((int)(0.5f + std::fabs(x * steps)), x) * invSteps; // NOLINT float y2x[2]; y2x[0] = (y != lastValue) ? (0.5f * (y + lastValue)) : y; @@ -150,7 +150,7 @@ namespace fx { /// void Lofi::Decim::init(double sampleRate) { - fSampleTime = 1.0 / sampleRate; + fSampleTime = 1.0f / static_cast(sampleRate); static constexpr double coefs2x[12] = { 0.036681502163648017, 0.13654762463195794, 0.27463175937945444, 0.42313861743656711, 0.56109869787919531, 0.67754004997416184, 0.76974183386322703, 0.83988962484963892, 0.89226081800387902, 0.9315419599631839, 0.96209454837808417, 0.98781637073289585 }; fDownsampler2x.set_coefs(coefs2x); @@ -192,7 +192,7 @@ namespace fx { phase += dt; float y = (phase > 1.0f) ? x : lastValue; - phase -= static_cast(phase); + phase -= static_cast(static_cast(phase)); float y2x[2]; y2x[0] = (y != lastValue) ? (0.5f * (y + lastValue)) : y; From 2779f8710d73f84f2383f172a9ca84353c7057cc Mon Sep 17 00:00:00 2001 From: Paul Fd Date: Sun, 8 Mar 2020 17:12:40 +0100 Subject: [PATCH 08/11] Try to run tests automatically --- .travis.yml | 26 ++++++++++++++++++++++++++ .travis/script.sh | 12 +++++------- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 16cd2192..eb293a20 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,6 +18,32 @@ jobs: - scripts/run_clang_tidy.sh after_success: - true + - os: linux + name: "Linux amd64 tests" + arch: amd64 + dist: bionic + env: + - BUILD_TYPE="test" + - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" + addons: + apt: + sources: + - sourceline: 'ppa:ubuntu-toolchain-r/test' + after_success: + - true + - os: linux + name: "Linux arm64 tests" + arch: amd64 + dist: bionic + env: + - BUILD_TYPE="test" + - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" + addons: + apt: + sources: + - sourceline: 'ppa:ubuntu-toolchain-r/test' + after_success: + - true - os: linux stage: "Build" name: "Windows mingw32" diff --git a/.travis/script.sh b/.travis/script.sh index 0ecc8086..654344de 100755 --- a/.travis/script.sh +++ b/.travis/script.sh @@ -6,26 +6,24 @@ set -ex mkdir -p build/${INSTALL_DIR} && cd build if [[ ${CROSS_COMPILE} == "mingw32" ]]; then - buildenv i686-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_STATIC_LIBSNDFILE=ON .. buildenv make -j elif [[ ${CROSS_COMPILE} == "mingw64" ]]; then - buildenv x86_64-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_STATIC_LIBSNDFILE=ON .. buildenv make -j elif [[ ${BUILD_TYPE} == "lv2" ]]; then - buildenv cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_TESTS=OFF -DSFIZZ_SHARED=OFF -DSFIZZ_STATIC_LIBSNDFILE=ON .. - buildenv make -j + buildenv make -j$(nproc) +elif [[ ${BUILD_TYPE} == "test" ]]; then + buildenv cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_TESTS=ON -DSFIZZ_SHARED=OFF -DSFIZZ_STATIC_LIBSNDFILE=OFF -DSFIZZ_LV2=OFF .. + buildenv make -j$(nproc) sfizz_tests + buildenv tests/sfizz_tests elif [[ ${TRAVIS_OS_NAME} == "linux" ]]; then - buildenv cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_LV2=OFF -DSFIZZ_TESTS=OFF .. buildenv make -j$(nproc) elif [[ ${TRAVIS_OS_NAME} == "osx" ]]; then - buildenv cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_TESTS=OFF .. buildenv make -j$(sysctl -n hw.ncpu) - # Xcode not currently supported, see https://gitlab.kitware.com/cmake/cmake/issues/18088 # xcodebuild -project sfizz.xcodeproj -alltargets -configuration Debug build fi From fc02cbb271ea3e9550d8e58630fbe050ad443f34 Mon Sep 17 00:00:00 2001 From: Paul Fd Date: Sun, 8 Mar 2020 22:47:05 +0100 Subject: [PATCH 09/11] Remove the environment from the webhook --- .travis/discord_webhook.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis/discord_webhook.sh b/.travis/discord_webhook.sh index a0e217f8..6931fba2 100755 --- a/.travis/discord_webhook.sh +++ b/.travis/discord_webhook.sh @@ -1,7 +1,6 @@ #!/bin/bash set -ex -. .travis/environment.sh # Travis Webhook wget https://raw.githubusercontent.com/DiscordHooks/travis-ci-discord-webhook/master/send.sh From 68fd04fe744200d8069b4cab2d57a4ad676876fd Mon Sep 17 00:00:00 2001 From: Paul Fd Date: Sun, 8 Mar 2020 22:47:26 +0100 Subject: [PATCH 10/11] Split travis in smaller scripts --- .travis.yml | 206 ++++++++---------- .travis/before_install_mingw.sh | 17 ++ .travis/download_cmake.sh | 13 ++ .travis/download_static_libs.sh | 6 + .travis/environment.sh | 31 --- .travis/install.sh | 17 -- .travis/install_mingw.sh | 8 + .travis/install_osx.sh | 8 + .travis/mingw_container.sh | 15 ++ .../{after_success.sh => prepare_tarball.sh} | 7 +- .travis/script.sh | 29 --- .travis/script_library.sh | 6 + .travis/script_lv2.sh | 6 + .travis/script_mingw.sh | 13 ++ .travis/script_osx.sh | 8 + .travis/script_test.sh | 7 + 16 files changed, 208 insertions(+), 189 deletions(-) create mode 100755 .travis/before_install_mingw.sh create mode 100755 .travis/download_cmake.sh create mode 100755 .travis/download_static_libs.sh delete mode 100644 .travis/environment.sh delete mode 100755 .travis/install.sh create mode 100755 .travis/install_mingw.sh create mode 100755 .travis/install_osx.sh create mode 100755 .travis/mingw_container.sh rename .travis/{after_success.sh => prepare_tarball.sh} (61%) delete mode 100755 .travis/script.sh create mode 100755 .travis/script_library.sh create mode 100755 .travis/script_lv2.sh create mode 100755 .travis/script_mingw.sh create mode 100755 .travis/script_osx.sh create mode 100755 .travis/script_test.sh diff --git a/.travis.yml b/.travis.yml index eb293a20..e137e58e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,133 +1,143 @@ language: cpp +os: linux +dist: bionic jobs: - - os: linux + include: + - name: "clang-tidy checks" stage: "Tests" - name: "clang-tidy checks" - dist: bionic addons: apt: packages: - clang-tidy - libsndfile-dev - before_install: - - true - install: - - true - script: - - scripts/run_clang_tidy.sh - after_success: - - true - - os: linux - name: "Linux amd64 tests" + install: skip + script: scripts/run_clang_tidy.sh + + - name: "Linux amd64 tests" arch: amd64 - dist: bionic - env: - - BUILD_TYPE="test" - - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" addons: apt: - sources: - - sourceline: 'ppa:ubuntu-toolchain-r/test' - after_success: - - true - - os: linux - name: "Linux arm64 tests" + packages: + - libasound2-dev + - libjack-jackd2-dev + - libsndfile1-dev + install: .travis/download_cmake.sh + script: .travis/script_test.sh + + - name: "Linux arm64 tests" arch: amd64 - dist: bionic - env: - - BUILD_TYPE="test" - - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" addons: apt: - sources: - - sourceline: 'ppa:ubuntu-toolchain-r/test' - after_success: - - true - - os: linux + packages: + - libasound2-dev + - libjack-jackd2-dev + - libsndfile1-dev + install: .travis/download_cmake.sh + script: .travis/script_test.sh + + - name: "Windows mingw32" stage: "Build" - name: "Windows mingw32" env: - CROSS_COMPILE=mingw32 - CONTAINER=cross - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-mingw32" - - os: linux - name: "Windows mingw64" + before_install: .travis/before_install_mingw.sh + install: .travis/install_mingw.sh + script: .travis/script_mingw.sh + after_success: .travis/prepare_tarball.sh + + - name: "Windows mingw64" env: - CROSS_COMPILE=mingw64 - CONTAINER=cross - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-mingw64" - - os: linux - name: "Linux amd64 library" + before_install: .travis/before_install_mingw.sh + install: .travis/install_mingw.sh + script: .travis/script_mingw.sh + after_success: .travis/prepare_tarball.sh + + - name: "Linux amd64 library" arch: amd64 - dist: bionic env: - - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" + - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" addons: apt: - sources: - - sourceline: 'ppa:ubuntu-toolchain-r/test' - - os: linux - name: "Linux arm64 library" + packages: + - libasound2-dev + - libjack-jackd2-dev + - libsndfile1-dev + install: .travis/download_cmake.sh + script: .travis/script_library.sh + after_success: .travis/prepare_tarball.sh + + - name: "Linux arm64 library" arch: arm64 - dist: bionic env: - - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" + - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" addons: apt: - sources: - - sourceline: 'ppa:ubuntu-toolchain-r/test' - - os: linux - name: "Linux arm64 static LV2" + packages: + - libasound2-dev + - libjack-jackd2-dev + - libsndfile1-dev + install: .travis/download_cmake.sh + script: .travis/script_library.sh + after_success: .travis/prepare_tarball.sh + + - name: "Linux arm64 static LV2" arch: arm64 - dist: bionic env: - - BUILD_TYPE=lv2 - - INSTALL_DIR="sfizz-lv2-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" + - INSTALL_DIR="sfizz-lv2-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" addons: apt: - sources: - - sourceline: 'ppa:ubuntu-toolchain-r/test' - - os: linux - name: "Linux amd64 static LV2" - dist: bionic + packages: + - libasound2-dev + - libjack-jackd2-dev + - libsndfile1-dev + install: + - .travis/download_cmake.sh + - .travis/download_static_libs.sh + script: .travis/script_lv2.sh + after_success: .travis/prepare_tarball.sh + + - name: "Linux amd64 static LV2" env: - - BUILD_TYPE=lv2 - - INSTALL_DIR="sfizz-lv2-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" + - INSTALL_DIR="sfizz-lv2-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" addons: apt: - sources: - - sourceline: 'ppa:ubuntu-toolchain-r/test' - - os: osx - name: "macOS" + packages: + - libasound2-dev + - libjack-jackd2-dev + - libsndfile1-dev + install: + - .travis/download_cmake.sh + - .travis/download_static_libs.sh + script: .travis/script_lv2.sh + after_success: .travis/prepare_tarball.sh + + - name: "macOS" + os: osx osx_image: xcode10.1 env: - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}" + install: .travis/install_osx.sh + script: .travis/script_osx.sh + after_success: .travis/prepare_tarball.sh - - os: linux - stage: "Deploy" + - stage: "Deploy" name: "Source packaging" + if: (tag IS present) AND (branch = master) env: - - BUILD_TYPE=source - INSTALL_DIR="sfizz-${TRAVIS_BRANCH}-src" addons: apt: packages: - python-pip - before_install: - - true - install: - - sudo pip install git-archive-all - script: - - git-archive-all --prefix="sfizz-${TRAVIS_BRANCH}/" -9 "${INSTALL_DIR}.tar.gz" - after_failure: - - true - after_success: - - true + install: sudo pip install git-archive-all + script: git-archive-all --prefix="sfizz-${TRAVIS_BRANCH}/" -9 "${INSTALL_DIR}.tar.gz" - - os: linux - name: "Generate documentation" - dist: bionic + - name: "Generate documentation" if: (tag IS present) AND (branch = master) addons: apt: @@ -135,43 +145,17 @@ jobs: - doxygen - cmake - libsndfile-dev - before_install: - - true - install: - - true - script: - - .travis/update_dox.sh - after_failure: - - true - after_success: - - true - - os: linux - name: "Discord Webhook" - dist: bionic - before_install: - - true - install: - - true - script: - - true - after_success: - - bash ${TRAVIS_BUILD_DIR}/.travis/discord_webhook.sh success + install: skip + script: .travis/update_dox.sh -before_install: -- bash ${TRAVIS_BUILD_DIR}/.travis/before_install.sh - -install: -- bash ${TRAVIS_BUILD_DIR}/.travis/install.sh - -script: -- bash ${TRAVIS_BUILD_DIR}/.travis/script.sh + - name: "Discord Webhook" + install: skip + script: bash ${TRAVIS_BUILD_DIR}/.travis/discord_webhook.sh success +# Signal discord on failure after_failure: - bash ${TRAVIS_BUILD_DIR}/.travis/discord_webhook.sh failure -after_success: -- bash ${TRAVIS_BUILD_DIR}/.travis/after_success.sh - deploy: provider: releases skip_cleanup: true diff --git a/.travis/before_install_mingw.sh b/.travis/before_install_mingw.sh new file mode 100755 index 00000000..7431f4e9 --- /dev/null +++ b/.travis/before_install_mingw.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -ex +. .travis/mingw_container.sh + +buildenv bash -c "echo Hello from container" # ensure to start the container +docker cp "$container":/etc/pacman.conf pacman.conf +cat >>pacman.conf < ${TRAVIS_BUILD_DIR}/docker-container-id - fi -} diff --git a/.travis/install.sh b/.travis/install.sh deleted file mode 100755 index 8b48d209..00000000 --- a/.travis/install.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -set -ex -. .travis/environment.sh - -if [[ ${CROSS_COMPILE} == "mingw32" || ${CROSS_COMPILE} == "mingw64" ]]; then - buildenv pacman -Sqy --noconfirm - buildenv pacman -Sq --noconfirm base-devel wget mingw-w64-cmake mingw-w64-gcc mingw-w64-pkg-config mingw-w64-libsndfile - buildenv i686-w64-mingw32-gcc -v && buildenv i686-w64-mingw32-g++ -v && buildenv i686-w64-mingw32-cmake --version -elif [[ ${BUILD_TYPE} == "lv2" ]]; then - wget -q https://github.com/sfztools/sndfile-libraries/releases/download/${TRAVIS_OS_NAME}/sndfile-libraries-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}.tar.gz - tar xf sndfile-libraries-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}.tar.gz - sudo cp -R sndfile-libraries-${TRAVIS_OS_NAME}-${TRAVIS_CPU_ARCH}/usr / -elif [[ ${TRAVIS_OS_NAME} == "linux" ]]; then - sudo apt-get install libasound2-dev libjack-jackd2-dev libsndfile1-dev - gcc -v && g++ -v && cmake --version && /usr/local/bin/cmake --version && $SHELL --version -fi diff --git a/.travis/install_mingw.sh b/.travis/install_mingw.sh new file mode 100755 index 00000000..593c7de8 --- /dev/null +++ b/.travis/install_mingw.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -ex +. .travis/mingw_container.sh + +buildenv pacman -Sqy --noconfirm +buildenv pacman -Sq --noconfirm base-devel wget mingw-w64-cmake mingw-w64-gcc mingw-w64-pkg-config mingw-w64-libsndfile +buildenv i686-w64-mingw32-gcc -v && buildenv i686-w64-mingw32-g++ -v && buildenv i686-w64-mingw32-cmake --version diff --git a/.travis/install_osx.sh b/.travis/install_osx.sh new file mode 100755 index 00000000..c04bc695 --- /dev/null +++ b/.travis/install_osx.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -ex + +sudo ln -s /usr/local /opt/local +brew update +brew upgrade cmake +brew install jack diff --git a/.travis/mingw_container.sh b/.travis/mingw_container.sh new file mode 100755 index 00000000..5629657f --- /dev/null +++ b/.travis/mingw_container.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +buildenv() { + setup_container archlinux + docker exec -w "$(pwd)" -i -t "$container" "$@" +} + +setup_container() { + if [ -f ${TRAVIS_BUILD_DIR}/docker-container-id ]; then + container=$(cat ${TRAVIS_BUILD_DIR}/docker-container-id) + else + container=$(docker run -d -i -t -v /home:/home "$1" /bin/bash) + echo "$container" > ${TRAVIS_BUILD_DIR}/docker-container-id + fi +} diff --git a/.travis/after_success.sh b/.travis/prepare_tarball.sh similarity index 61% rename from .travis/after_success.sh rename to .travis/prepare_tarball.sh index a2afdeba..9e7e79ce 100755 --- a/.travis/after_success.sh +++ b/.travis/prepare_tarball.sh @@ -1,7 +1,12 @@ #!/bin/bash set -ex -. .travis/environment.sh +. .travis/mingw_container.sh + +# Do not prepare a tarball without a tag +if [[ ${TRAVIS_TAG} == "" ]]; then + exit 0 +fi cd build buildenv make DESTDIR=${PWD}/${INSTALL_DIR} install diff --git a/.travis/script.sh b/.travis/script.sh deleted file mode 100755 index 654344de..00000000 --- a/.travis/script.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -set -ex -. .travis/environment.sh - -mkdir -p build/${INSTALL_DIR} && cd build - -if [[ ${CROSS_COMPILE} == "mingw32" ]]; then - buildenv i686-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_STATIC_LIBSNDFILE=ON .. - buildenv make -j -elif [[ ${CROSS_COMPILE} == "mingw64" ]]; then - buildenv x86_64-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_STATIC_LIBSNDFILE=ON .. - buildenv make -j -elif [[ ${BUILD_TYPE} == "lv2" ]]; then - buildenv cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_TESTS=OFF -DSFIZZ_SHARED=OFF -DSFIZZ_STATIC_LIBSNDFILE=ON .. - buildenv make -j$(nproc) -elif [[ ${BUILD_TYPE} == "test" ]]; then - buildenv cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_TESTS=ON -DSFIZZ_SHARED=OFF -DSFIZZ_STATIC_LIBSNDFILE=OFF -DSFIZZ_LV2=OFF .. - buildenv make -j$(nproc) sfizz_tests - buildenv tests/sfizz_tests -elif [[ ${TRAVIS_OS_NAME} == "linux" ]]; then - buildenv cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_LV2=OFF -DSFIZZ_TESTS=OFF .. - buildenv make -j$(nproc) -elif [[ ${TRAVIS_OS_NAME} == "osx" ]]; then - buildenv cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_TESTS=OFF .. - buildenv make -j$(sysctl -n hw.ncpu) -# Xcode not currently supported, see https://gitlab.kitware.com/cmake/cmake/issues/18088 -# xcodebuild -project sfizz.xcodeproj -alltargets -configuration Debug build -fi diff --git a/.travis/script_library.sh b/.travis/script_library.sh new file mode 100755 index 00000000..07008903 --- /dev/null +++ b/.travis/script_library.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -ex + +mkdir -p build/${INSTALL_DIR} && cd build +cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_TYPE=Release -DSFIZZ_LV2=OFF -DSFIZZ_TESTS=OFF .. +make -j$(nproc) diff --git a/.travis/script_lv2.sh b/.travis/script_lv2.sh new file mode 100755 index 00000000..d121ea1f --- /dev/null +++ b/.travis/script_lv2.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -ex + +mkdir -p build/${INSTALL_DIR} && cd build +cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_TESTS=OFF -DSFIZZ_SHARED=OFF -DSFIZZ_STATIC_LIBSNDFILE=ON .. +make -j$(nproc) diff --git a/.travis/script_mingw.sh b/.travis/script_mingw.sh new file mode 100755 index 00000000..f8a0e833 --- /dev/null +++ b/.travis/script_mingw.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -ex +. .travis/mingw_container.sh + +mkdir -p build/${INSTALL_DIR} && cd build +if [[ ${CROSS_COMPILE} == "mingw32" ]]; then + buildenv i686-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_STATIC_LIBSNDFILE=ON .. + buildenv make -j +elif [[ ${CROSS_COMPILE} == "mingw64" ]]; then + buildenv x86_64-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_STATIC_LIBSNDFILE=ON .. + buildenv make -j +fi diff --git a/.travis/script_osx.sh b/.travis/script_osx.sh new file mode 100755 index 00000000..39a19577 --- /dev/null +++ b/.travis/script_osx.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -ex + +mkdir -p build/${INSTALL_DIR} && cd build +cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_TESTS=OFF .. +make -j$(sysctl -n hw.ncpu) +# Xcode not currently supported, see https://gitlab.kitware.com/cmake/cmake/issues/18088 +# xcodebuild -project sfizz.xcodeproj -alltargets -configuration Debug build diff --git a/.travis/script_test.sh b/.travis/script_test.sh new file mode 100755 index 00000000..a3c90749 --- /dev/null +++ b/.travis/script_test.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -ex + +mkdir build && cd build +cmake -DCMAKE_BUILD_TYPE=Release -DSFIZZ_JACK=OFF -DSFIZZ_TESTS=ON -DSFIZZ_SHARED=OFF -DSFIZZ_STATIC_LIBSNDFILE=OFF -DSFIZZ_LV2=OFF .. +make -j$(nproc) sfizz_tests +tests/sfizz_tests From 1d996945a11a4e9070b6c72a0daa8c432d4a5499 Mon Sep 17 00:00:00 2001 From: redtide Date: Mon, 9 Mar 2020 00:25:35 +0100 Subject: [PATCH 11/11] Keep doxygen related scripts in doxygen/scripts --- {scripts => doxygen/scripts}/Doxyfile.in | 0 doxygen/scripts/generate_api_index.sh | 12 ++++++++++++ src/CMakeLists.txt | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) rename {scripts => doxygen/scripts}/Doxyfile.in (100%) create mode 100755 doxygen/scripts/generate_api_index.sh diff --git a/scripts/Doxyfile.in b/doxygen/scripts/Doxyfile.in similarity index 100% rename from scripts/Doxyfile.in rename to doxygen/scripts/Doxyfile.in diff --git a/doxygen/scripts/generate_api_index.sh b/doxygen/scripts/generate_api_index.sh new file mode 100755 index 00000000..34a494d0 --- /dev/null +++ b/doxygen/scripts/generate_api_index.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# Must be called from the root directory +cat >>index.md <> index.md + fi +done diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bcc7f6e5..5b22a2b2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -52,7 +52,7 @@ if(WIN32) configure_file (${PROJECT_SOURCE_DIR}/scripts/innosetup.iss.in ${PROJECT_BINARY_DIR}/innosetup.iss @ONLY) endif() -configure_file (${PROJECT_SOURCE_DIR}/scripts/Doxyfile.in ${PROJECT_SOURCE_DIR}/Doxyfile @ONLY) +configure_file (${PROJECT_SOURCE_DIR}/doxygen/scripts/Doxyfile.in ${PROJECT_SOURCE_DIR}/Doxyfile @ONLY) add_library (sfizz::parser ALIAS sfizz_parser) add_library (sfizz::sfizz ALIAS sfizz_static)