├── .circleci └── config.yml ├── .editorconfig ├── .gitignore ├── .gitmodules ├── CMakeLists.txt ├── CONTRIBUTING.md ├── COPYING ├── COPYING-examples ├── CREDITS.md ├── README.md ├── conanfile.py ├── doc ├── .gitignore ├── 00-page-order.dox ├── Doxyfile ├── Doxyfile-mcss ├── Doxyfile-public ├── acme.dox ├── building-corrade.dox ├── codingstyle │ ├── comments.h │ ├── doxygen-code-block-workaround.h │ ├── doxygen-code-block.h │ ├── doxygen-code-inline.h │ ├── doxygen-configurationvalue.h │ ├── doxygen-debugoperator.h │ ├── doxygen-debugoperatorenum.h │ ├── doxygen-file.h │ ├── doxygen-function.h │ ├── doxygen-macro.h │ ├── doxygen-overload.h │ ├── doxygen-sections.h │ ├── doxygen-short.h │ ├── doxygen-thirdparty.h │ └── doxygen.h ├── conf-public.py ├── conf.py ├── corrade-changelog-old.dox ├── corrade-changelog.dox ├── corrade-cmake.dox ├── corrade-coding-style.dox ├── corrade-credits.dox ├── corrade-debuggers.dox ├── corrade-developers.dox ├── corrade-example-index.dox ├── corrade-singles.dox ├── cpu.dot ├── favicon.ico ├── interconnect.dox ├── json-pretty-printer.dox ├── main.dox ├── mainpage.dox ├── namespaces.dox ├── plugin-management.dox ├── resource-management.dox ├── snippets │ ├── CMakeLists.txt │ ├── Containers-cpp14.cpp │ ├── Containers-cpp17.cpp │ ├── Containers-stl.cpp │ ├── Containers-stl17.cpp │ ├── Containers-stl2a.cpp │ ├── Containers.cpp │ ├── Corrade-cpp17.cpp │ ├── Corrade.cpp │ ├── Interconnect.cpp │ ├── PluginManager.cpp │ ├── TestSuite.cpp │ ├── TestSuite2.cpp │ ├── TestSuite3.cpp │ ├── Utility.cpp │ ├── UtilityDebug-color-grayscale.ansi │ ├── UtilityDebug-color.ansi │ ├── acme-driver.h │ ├── android.cpp │ ├── containers-growable-array-sanitizer.ansi │ ├── testsuite-basic.ansi │ ├── testsuite-basic.cpp │ ├── testsuite-benchmark-custom.ansi │ ├── testsuite-benchmark-custom.cpp │ ├── testsuite-benchmark.ansi │ ├── testsuite-benchmark.cpp │ ├── testsuite-compare-string.ansi │ ├── testsuite-compare-string.cpp │ ├── testsuite-description-source-location.ansi │ ├── testsuite-description-source-location.cpp │ ├── testsuite-instanced.ansi │ ├── testsuite-instanced.cpp │ ├── testsuite-iteration.ansi │ ├── testsuite-iteration.cpp │ ├── testsuite-repeated.ansi │ ├── testsuite-repeated.cpp │ ├── testsuite-save-diagnostic.ansi │ ├── testsuite-save-diagnostic.cpp │ ├── testsuite-templated.ansi │ ├── testsuite-templated.cpp │ ├── testsuite.ansi │ └── testsuite.cmake ├── stl.tag └── testsuite.dox ├── modules ├── CMakeLists.txt ├── CorradeConfig.cmake ├── CorradeLibSuffix.cmake ├── FindCorrade.cmake ├── FindNodeJs.cmake └── UseCorrade.cmake ├── package ├── .gitignore ├── archlinux │ ├── .gitignore │ ├── .kateconfig │ ├── PKGBUILD │ ├── PKGBUILD-android-arm64 │ ├── PKGBUILD-clang │ ├── PKGBUILD-clang-addresssanitizer │ ├── PKGBUILD-clang-analyzer │ ├── PKGBUILD-clang-libc++ │ ├── PKGBUILD-clang-threadsanitizer │ ├── PKGBUILD-coverage │ ├── PKGBUILD-emscripten-wasm │ ├── PKGBUILD-gcc48 │ ├── PKGBUILD-gcc5 │ ├── PKGBUILD-mingw-w64 │ ├── corrade-git │ │ ├── .gitignore │ │ └── PKGBUILD │ └── corrade │ │ └── PKGBUILD ├── ci │ ├── android-x86.sh │ ├── appveyor-cache-reset.txt │ ├── appveyor-desktop-arm64.bat │ ├── appveyor-desktop-mingw.bat │ ├── appveyor-desktop.bat │ ├── appveyor-rt.bat │ ├── appveyor.yml │ ├── circleci.yml │ ├── emscripten.sh │ ├── ios-simulator.sh │ └── unix-desktop.sh ├── conan │ ├── .gitignore │ ├── CMakeLists.txt │ └── test_package │ │ ├── CMakeLists.txt │ │ ├── conanfile.py │ │ └── test_package.cpp ├── debian │ ├── .gitignore │ ├── changelog │ ├── compat │ ├── control │ ├── copyright │ ├── corrade-dev.install │ ├── corrade.install │ ├── rules │ └── source │ │ └── format ├── gentoo │ └── dev-libs │ │ └── corrade │ │ ├── Manifest │ │ └── corrade-9999.ebuild ├── git │ └── README.md ├── homebrew │ └── corrade.rb ├── msys │ ├── .gitattributes │ ├── PKGBUILD │ └── corrade │ │ └── PKGBUILD └── rpm │ ├── build.sh │ └── corrade.spec └── src ├── CMakeLists.txt ├── Corrade ├── CMakeLists.txt ├── Containers │ ├── AnyReference.h │ ├── Array.h │ ├── ArrayTuple.cpp │ ├── ArrayTuple.h │ ├── ArrayView.h │ ├── ArrayViewStl.h │ ├── ArrayViewStlSpan.h │ ├── BigEnumSet.h │ ├── BigEnumSet.hpp │ ├── BitArray.cpp │ ├── BitArray.h │ ├── BitArrayView.cpp │ ├── BitArrayView.h │ ├── CMakeLists.txt │ ├── Containers.h │ ├── EnumSet.h │ ├── EnumSet.hpp │ ├── Function.h │ ├── GrowableArray.h │ ├── Implementation │ │ └── RawForwardList.h │ ├── Iterable.h │ ├── LinkedList.h │ ├── MoveReference.h │ ├── Optional.h │ ├── OptionalStl.h │ ├── Pair.h │ ├── PairStl.h │ ├── Pointer.h │ ├── PointerStl.h │ ├── Reference.h │ ├── ReferenceStl.h │ ├── ScopeGuard.h │ ├── StaticArray.h │ ├── StridedArrayView.h │ ├── StridedArrayViewStl.h │ ├── StridedBitArrayView.h │ ├── StridedDimensions.h │ ├── String.cpp │ ├── String.h │ ├── StringIterable.cpp │ ├── StringIterable.h │ ├── StringStl.cpp │ ├── StringStl.h │ ├── StringStlHash.h │ ├── StringStlView.h │ ├── StringView.cpp │ ├── StringView.h │ ├── StructuredBindings.h │ ├── Tags.h │ ├── Test │ │ ├── AnyReferenceTest.cpp │ │ ├── ArrayStlSpanTest.cpp │ │ ├── ArrayTest.cpp │ │ ├── ArrayTupleTest.cpp │ │ ├── ArrayViewStlSpanTest.cpp │ │ ├── ArrayViewStlTest.cpp │ │ ├── ArrayViewTest.cpp │ │ ├── BigEnumSetTest.cpp │ │ ├── BitArrayTest.cpp │ │ ├── BitArrayViewBenchmark.cpp │ │ ├── BitArrayViewTest.cpp │ │ ├── BitArrayViewTest.h │ │ ├── CMakeLists.txt │ │ ├── EnumSetTest.cpp │ │ ├── FunctionBenchmark.cpp │ │ ├── FunctionTest.cpp │ │ ├── GrowableArraySanitizerFailTest.cpp │ │ ├── GrowableArrayTest.cpp │ │ ├── IterableTest.cpp │ │ ├── LinkedListTest.cpp │ │ ├── MoveReferenceTest.cpp │ │ ├── OptionalStlTest.cpp │ │ ├── OptionalTest.cpp │ │ ├── PairCpp14Test.cpp │ │ ├── PairCpp17Test.cpp │ │ ├── PairStlTest.cpp │ │ ├── PairTest.cpp │ │ ├── PointerStlTest.cpp │ │ ├── PointerTest.cpp │ │ ├── RawForwardListTest.cpp │ │ ├── ReferenceStlTest.cpp │ │ ├── ReferenceTest.cpp │ │ ├── ScopeGuardTest.cpp │ │ ├── SequenceHelpersTest.cpp │ │ ├── StaticArrayCpp17Test.cpp │ │ ├── StaticArrayStlSpanTest.cpp │ │ ├── StaticArrayTest.cpp │ │ ├── StaticArrayViewCpp17Test.cpp │ │ ├── StaticArrayViewStlSpanTest.cpp │ │ ├── StaticArrayViewStlTest.cpp │ │ ├── StaticArrayViewTest.cpp │ │ ├── StridedArrayViewStlTest.cpp │ │ ├── StridedArrayViewTest.cpp │ │ ├── StridedBitArrayViewTest.cpp │ │ ├── StridedDimensionsCpp17Test.cpp │ │ ├── StridedDimensionsTest.cpp │ │ ├── StringIterableTest.cpp │ │ ├── StringStlTest.cpp │ │ ├── StringStlViewTest.cpp │ │ ├── StringTest.cpp │ │ ├── StringTestFiles │ │ │ └── lorem-ipsum.txt │ │ ├── StringViewBenchmark.cpp │ │ ├── StringViewTest.cpp │ │ ├── StringViewTest.h │ │ ├── TripleCpp14Test.cpp │ │ ├── TripleCpp17Test.cpp │ │ ├── TripleStlTest.cpp │ │ ├── TripleTest.cpp │ │ └── configure.h.cmake │ ├── Triple.h │ ├── TripleStl.h │ ├── constructHelpers.h │ ├── initializeHelpers.h │ ├── iterableHelpers.h │ └── sequenceHelpers.h ├── Corrade.h ├── CorradeMain.cpp ├── Cpu.cpp ├── Cpu.h ├── Interconnect │ ├── CMakeLists.txt │ ├── Connection.cpp │ ├── Connection.h │ ├── Emitter.cpp │ ├── Emitter.h │ ├── Implementation │ │ └── ReceiverConnection.h │ ├── Interconnect.h │ ├── Receiver.cpp │ ├── Receiver.h │ ├── StateMachine.h │ ├── Test │ │ ├── Benchmark.cpp │ │ ├── CMakeLists.txt │ │ ├── EmitterLibrary.cpp │ │ ├── EmitterLibrary.h │ │ ├── LibraryTest.cpp │ │ ├── StateMachineTest.cpp │ │ └── Test.cpp │ └── visibility.h ├── PluginManager │ ├── AbstractManager.cpp │ ├── AbstractManager.h │ ├── AbstractManagingPlugin.h │ ├── AbstractPlugin.cpp │ ├── AbstractPlugin.h │ ├── CMakeLists.txt │ ├── Implementation │ │ ├── Plugin.h │ │ └── configure.h.cmake │ ├── Manager.h │ ├── Manager.hpp │ ├── PluginManager.h │ ├── PluginMetadata.cpp │ ├── PluginMetadata.h │ ├── Test │ │ ├── AbstractAnimal.cpp │ │ ├── AbstractAnimal.h │ │ ├── AbstractCustomSuffix.cpp │ │ ├── AbstractCustomSuffix.h │ │ ├── AbstractDeletable.cpp │ │ ├── AbstractDeletable.h │ │ ├── AbstractDisabledMetadata.cpp │ │ ├── AbstractDisabledMetadata.h │ │ ├── AbstractFood.cpp │ │ ├── AbstractFood.h │ │ ├── AbstractGeneratedMetadata.h │ │ ├── AbstractPluginTest.cpp │ │ ├── AbstractWrongPlugin.cpp │ │ ├── AbstractWrongPlugin.h │ │ ├── CMakeLists.txt │ │ ├── DuplicateStaticPluginLibrary.cpp │ │ ├── DuplicateStaticPluginTest.cpp │ │ ├── GlobalStateAcrossLibrariesLibrary.cpp │ │ ├── GlobalStateAcrossLibrariesTest.cpp │ │ ├── ImportStaticTest.cpp │ │ ├── ManagerInitFiniTest.cpp │ │ ├── ManagerTest.cpp │ │ ├── animals │ │ │ ├── Bulldog.conf │ │ │ ├── Bulldog.cpp │ │ │ ├── CMakeLists.txt │ │ │ ├── Canary.conf │ │ │ ├── Canary.cpp │ │ │ ├── Canary.h │ │ │ ├── Dird.conf │ │ │ ├── Dird.cpp │ │ │ ├── Dog.conf │ │ │ ├── Dog.cpp │ │ │ ├── Dog.h │ │ │ ├── PitBull.conf │ │ │ ├── PitBull.cpp │ │ │ ├── Snail.conf │ │ │ └── Snail.cpp │ │ ├── configure.h.cmake │ │ ├── custom-suffix │ │ │ ├── CMakeLists.txt │ │ │ ├── CustomSuffix.cpp │ │ │ ├── CustomSuffix.modconf │ │ │ ├── CustomSuffixStatic.cpp │ │ │ └── CustomSuffixStatic.modconf │ │ ├── deletable │ │ │ ├── CMakeLists.txt │ │ │ ├── Deletable.conf │ │ │ └── Deletable.cpp │ │ ├── disabled-metadata │ │ │ ├── CMakeLists.txt │ │ │ ├── DisabledMetadata.cpp │ │ │ └── DisabledMetadataStatic.cpp │ │ ├── doggo │ │ │ ├── CMakeLists.txt │ │ │ ├── Doggo.conf │ │ │ └── Doggo.cpp │ │ ├── food │ │ │ ├── CMakeLists.txt │ │ │ ├── HotDog.conf │ │ │ ├── HotDog.cpp │ │ │ ├── HotDogWithSnail.conf │ │ │ ├── OldBread.conf │ │ │ ├── OldBread.cpp │ │ │ ├── RottenTomato.conf │ │ │ └── RottenTomato.cpp │ │ ├── generated-metadata │ │ │ ├── CMakeLists.txt │ │ │ ├── GeneratedMetadataDynamic.conf │ │ │ ├── GeneratedMetadataDynamic.cpp │ │ │ ├── GeneratedMetadataStatic.conf │ │ │ └── GeneratedMetadataStatic.cpp │ │ ├── init-fini │ │ │ ├── CMakeLists.txt │ │ │ ├── InitFini.h │ │ │ ├── InitFiniDynamic.conf │ │ │ ├── InitFiniDynamic.cpp │ │ │ ├── InitFiniStatic.conf │ │ │ ├── InitFiniStatic.cpp │ │ │ └── InitFiniStatic.h │ │ ├── wrong-metadata │ │ │ ├── CMakeLists.txt │ │ │ ├── WrongMetadata.conf │ │ │ ├── WrongMetadata.cpp │ │ │ └── WrongMetadata.h │ │ └── wrong │ │ │ ├── CMakeLists.txt │ │ │ ├── MissingLibraryDependency.cpp │ │ │ ├── MissingLibraryDependencyLibrary.cpp │ │ │ ├── NoPluginFinalizer.cpp │ │ │ ├── NoPluginInitializer.cpp │ │ │ ├── NoPluginInstancer.cpp │ │ │ ├── NoPluginInterface.cpp │ │ │ └── NoPluginVersion.cpp │ └── visibility.h ├── Tags.h ├── Test │ ├── CMakeLists.txt │ ├── CppStandardTest.cpp │ ├── CpuTest.cpp │ ├── CpuTestExternalLibrary.cpp │ ├── CpuTestExternalLibrary.h │ ├── MainTest.cpp │ ├── TagsTest.cpp │ ├── TargetTest.cpp │ ├── VersionTest.cpp │ └── configure.h.cmake ├── TestSuite │ ├── AdbRunner.sh │ ├── CMakeLists.txt │ ├── Comparator.cpp │ ├── Comparator.h │ ├── Compare │ │ ├── CMakeLists.txt │ │ ├── Container.h │ │ ├── File.cpp │ │ ├── File.h │ │ ├── FileToString.cpp │ │ ├── FileToString.h │ │ ├── FloatingPoint.cpp │ │ ├── FloatingPoint.h │ │ ├── Implementation │ │ │ └── Diff.h │ │ ├── Numeric.h │ │ ├── SortedContainer.h │ │ ├── String.cpp │ │ ├── String.h │ │ ├── StringToFile.cpp │ │ ├── StringToFile.h │ │ └── Test │ │ │ ├── CMakeLists.txt │ │ │ ├── ContainerTest.cpp │ │ │ ├── DiffTest.cpp │ │ │ ├── FileTest.cpp │ │ │ ├── FileTestFiles │ │ │ ├── .kateconfig │ │ │ ├── base.txt │ │ │ ├── different.txt │ │ │ ├── empty.txt │ │ │ ├── hýždě.txt │ │ │ └── smaller.txt │ │ │ ├── FileToStringTest.cpp │ │ │ ├── FloatingPointTest.cpp │ │ │ ├── NumericTest.cpp │ │ │ ├── SortedContainerTest.cpp │ │ │ ├── StringTest.cpp │ │ │ ├── StringToFileTest.cpp │ │ │ └── configure.h.cmake │ ├── EmscriptenRunner.html.in │ ├── Implementation │ │ ├── BenchmarkCounters.h │ │ └── BenchmarkStats.h │ ├── Test │ │ ├── ArgumentsTest.cpp │ │ ├── BenchmarkStatsTest.cpp │ │ ├── BundledFilesTest.cpp │ │ ├── BundledFilesTestFiles │ │ │ ├── .gitattributes │ │ │ ├── a.txt │ │ │ ├── b.txt │ │ │ ├── c.txt │ │ │ └── d.txt │ │ ├── CMakeLists.txt │ │ ├── ComparatorTest.cpp │ │ ├── FailingTest.cpp │ │ ├── TestCaseDescriptionSourceLocationTest.cpp │ │ ├── TestCaseDescriptionSourceLocationTestFiles │ │ │ ├── noSupport.txt │ │ │ └── test.txt │ │ ├── TesterTest.cpp │ │ ├── TesterTestFiles │ │ │ ├── .gitattributes │ │ │ ├── abortOnFail.txt │ │ │ ├── abortOnFailSkip.txt │ │ │ ├── benchmarkCpuClock.txt │ │ │ ├── benchmarkCpuCycles.txt │ │ │ ├── benchmarkCpuScalingWarning.txt │ │ │ ├── benchmarkCpuScalingWarningVerbose.txt │ │ │ ├── benchmarkCpuScalingWarningVerboseAndroid.txt │ │ │ ├── benchmarkDebugBuildNote.txt │ │ │ ├── benchmarkDiscardAll.txt │ │ │ ├── benchmarkWallClock.txt │ │ │ ├── compareMessageFailed.txt │ │ │ ├── compareMessageVerboseDisabled.txt │ │ │ ├── compareMessageVerboseEnabled.txt │ │ │ ├── compareMessageXfail.txt │ │ │ ├── cpu-governor-performance.txt │ │ │ ├── cpu-governor-powersave.txt │ │ │ ├── noCatch.txt │ │ │ ├── noXfail.txt │ │ │ ├── repeatAll.txt │ │ │ ├── repeatEvery.txt │ │ │ ├── saveDiagnosticAbortOnFail.txt │ │ │ ├── saveDiagnosticFailedDisabled.txt │ │ │ ├── saveDiagnosticFailedEnabled.txt │ │ │ ├── saveDiagnosticSucceededDisabled.txt │ │ │ ├── saveDiagnosticSucceededEnabled.txt │ │ │ ├── saveDiagnosticVerboseDisabled.txt │ │ │ ├── saveDiagnosticVerboseEnabled.txt │ │ │ ├── saveDiagnosticXfail.txt │ │ │ ├── saveDiagnosticXpassDisabled.txt │ │ │ ├── saveDiagnosticXpassEnabled.txt │ │ │ ├── shuffleOne.txt │ │ │ ├── skipBenchmarks.txt │ │ │ ├── skipOnly.txt │ │ │ ├── skipTests.txt │ │ │ ├── test.txt │ │ │ └── testName.txt │ │ └── configure.h.cmake │ ├── TestSuite.h │ ├── Tester.cpp │ ├── Tester.h │ ├── XCTestRunner.mm.in │ └── visibility.h ├── Utility │ ├── AbstractHash.h │ ├── Algorithms.cpp │ ├── Algorithms.h │ ├── AndroidLogStreamBuffer.cpp │ ├── AndroidLogStreamBuffer.h │ ├── Arguments.cpp │ ├── Arguments.h │ ├── Assert.h │ ├── BitAlgorithms.cpp │ ├── BitAlgorithms.h │ ├── CMakeLists.txt │ ├── Configuration.cpp │ ├── Configuration.h │ ├── ConfigurationGroup.cpp │ ├── ConfigurationGroup.h │ ├── ConfigurationValue.cpp │ ├── ConfigurationValue.h │ ├── Debug.cpp │ ├── Debug.h │ ├── DebugAssert.h │ ├── DebugStl.h │ ├── DebugStlStringView.h │ ├── Directory.cpp │ ├── Directory.h │ ├── Endianness.h │ ├── EndiannessBatch.h │ ├── FileWatcher.cpp │ ├── FileWatcher.h │ ├── Format.cpp │ ├── Format.h │ ├── FormatStl.h │ ├── FormatStlStringView.h │ ├── Implementation │ │ ├── ErrorString.cpp │ │ ├── ErrorString.h │ │ ├── Resource.h │ │ ├── ResourceCompile.h │ │ ├── WindowsWeakSymbol.cpp │ │ ├── WindowsWeakSymbol.h │ │ ├── configure.h.cmake │ │ ├── cpu.h │ │ └── tweakable.h │ ├── IntrinsicsAvx.h │ ├── IntrinsicsSse2.h │ ├── IntrinsicsSse3.h │ ├── IntrinsicsSse4.h │ ├── IntrinsicsSsse3.h │ ├── Json.cpp │ ├── Json.h │ ├── JsonWriter.cpp │ ├── JsonWriter.h │ ├── Macros.h │ ├── Math.h │ ├── Memory.h │ ├── Move.h │ ├── MurmurHash2.cpp │ ├── MurmurHash2.h │ ├── Path.cpp │ ├── Path.h │ ├── Resource.cpp │ ├── Resource.h │ ├── Sha1.cpp │ ├── Sha1.h │ ├── StlForwardArray.h │ ├── StlForwardString.h │ ├── StlForwardTuple.h │ ├── StlForwardTupleSizeElement.h │ ├── StlForwardVector.h │ ├── StlMath.h │ ├── String.cpp │ ├── String.h │ ├── System.cpp │ ├── System.h │ ├── Test │ │ ├── .gitattributes │ │ ├── AlgorithmsTest.cpp │ │ ├── ArgumentsTest.cpp │ │ ├── AssertDisabledTest.cpp │ │ ├── AssertGracefulTest.cpp │ │ ├── AssertTest.cpp │ │ ├── AssertTestOverrides.h │ │ ├── BitAlgorithmsTest.cpp │ │ ├── CMakeLists.txt │ │ ├── ConfigurationTest.cpp │ │ ├── ConfigurationTestFiles │ │ │ ├── .gitattributes │ │ │ ├── bom.conf │ │ │ ├── comments-saved.conf │ │ │ ├── comments.conf │ │ │ ├── eol-mixed.conf │ │ │ ├── eol-unix.conf │ │ │ ├── eol-windows.conf │ │ │ ├── hierarchic-empty-group.conf │ │ │ ├── hierarchic-empty-subgroup.conf │ │ │ ├── hierarchic-missing-bracket.conf │ │ │ ├── hierarchic-modified.conf │ │ │ ├── hierarchic-shortcuts-modified.conf │ │ │ ├── hierarchic-shortcuts.conf │ │ │ ├── hierarchic.conf │ │ │ ├── hýždě.conf │ │ │ ├── iterate-modified.conf │ │ │ ├── iterate.conf │ │ │ ├── missing-equals.conf │ │ │ ├── missing-multiline-quote.conf │ │ │ ├── missing-quote.conf │ │ │ ├── multiLine-crlf-saved.conf │ │ │ ├── multiLine-crlf.conf │ │ │ ├── multiLine-saved.conf │ │ │ ├── multiLine.conf │ │ │ ├── parse-modified.conf │ │ │ ├── parse.conf │ │ │ ├── whitespaces-saved.conf │ │ │ └── whitespaces.conf │ │ ├── ConfigurationValueTest.cpp │ │ ├── DebugStlCpp17Test.cpp │ │ ├── DebugTest.cpp │ │ ├── DirectoryTest.cpp │ │ ├── EndiannessTest.cpp │ │ ├── ErrorStringTest.cpp │ │ ├── FatalTest.cpp │ │ ├── FileWatcherTest.cpp │ │ ├── FormatBenchmark.cpp │ │ ├── FormatStlStringViewTest.cpp │ │ ├── FormatStlTest.cpp │ │ ├── FormatTest.cpp │ │ ├── GlobalStateAcrossLibrariesLibrary.cpp │ │ ├── GlobalStateAcrossLibrariesLibrary.h │ │ ├── GlobalStateAcrossLibrariesTest.cpp │ │ ├── HashDigestTest.cpp │ │ ├── JsonTest.cpp │ │ ├── JsonTestFiles │ │ │ ├── error.json │ │ │ └── parse-error.json │ │ ├── JsonWriterTest.cpp │ │ ├── MacrosCpp14Test.cpp │ │ ├── MacrosCpp17Test.cpp │ │ ├── MacrosCpp20Test.cpp │ │ ├── MacrosTest.cpp │ │ ├── MathTest.cpp │ │ ├── MemoryTest.cpp │ │ ├── MoveTest.cpp │ │ ├── MurmurHash2Test.cpp │ │ ├── PathTest.cpp │ │ ├── PathTestFiles │ │ │ ├── dir │ │ │ │ └── dummy │ │ │ └── file │ │ ├── PathTestFilesSymlink │ │ │ ├── dir-symlink │ │ │ ├── dir │ │ │ │ └── dummy │ │ │ ├── file │ │ │ └── file-symlink │ │ ├── PathTestFilesUtf8 │ │ │ ├── hýždě │ │ │ └── šňůra │ │ │ │ ├── dummy │ │ │ │ └── klíče │ │ ├── ResourceCompileTest.cpp │ │ ├── ResourceStaticTest.cpp │ │ ├── ResourceTest.cpp │ │ ├── ResourceTestFiles │ │ │ ├── .gitattributes │ │ │ ├── 17bytes-33.bin │ │ │ ├── 17bytes-66.bin │ │ │ ├── 55bytes-66.bin │ │ │ ├── 64bytes-33.bin │ │ │ ├── compiled-alignment-larger-than-data-size.cpp │ │ │ ├── compiled-empty.cpp │ │ │ ├── compiled-nothing.cpp │ │ │ ├── compiled-null-terminated-aligned.cpp │ │ │ ├── compiled-null-terminated-last-file.cpp │ │ │ ├── compiled-single-empty.cpp │ │ │ ├── compiled-single.cpp │ │ │ ├── compiled-unicode.cpp │ │ │ ├── compiled.cpp │ │ │ ├── consequence.bin │ │ │ ├── consequence2.txt │ │ │ ├── empty.bin │ │ │ ├── hýždě.bin │ │ │ ├── hýždě.conf │ │ │ ├── name with spaces.txt │ │ │ ├── predisposition.bin │ │ │ ├── predisposition2.txt │ │ │ ├── resources-alignment-larger-than-data-size.conf │ │ │ ├── resources-empty-alias.conf │ │ │ ├── resources-empty-file.conf │ │ │ ├── resources-empty-filename.conf │ │ │ ├── resources-empty-group.conf │ │ │ ├── resources-no-group.conf │ │ │ ├── resources-nonexistent.conf │ │ │ ├── resources-nothing.conf │ │ │ ├── resources-npot-align.conf │ │ │ ├── resources-npot-global-align.conf │ │ │ ├── resources-null-terminated-aligned.conf │ │ │ ├── resources-null-terminated-last-file.conf │ │ │ ├── resources-overridden-different.conf │ │ │ ├── resources-overridden-none.conf │ │ │ ├── resources-overridden-nonexistent-file.conf │ │ │ ├── resources-overridden.conf │ │ │ ├── resources-spaces.conf │ │ │ ├── resources-too-large-align.conf │ │ │ ├── resources-too-large-global-align.conf │ │ │ ├── resources-zero-align.conf │ │ │ ├── resources-zero-global-align.conf │ │ │ └── resources.conf │ │ ├── Sha1Test.cpp │ │ ├── Sha1Test.py │ │ ├── StlForwardArrayTest.cpp │ │ ├── StlForwardStringTest.cpp │ │ ├── StlForwardTupleSizeElementTest.cpp │ │ ├── StlForwardTupleTest.cpp │ │ ├── StlForwardVectorTest.cpp │ │ ├── StlMathTest.cpp │ │ ├── StringBenchmark.cpp │ │ ├── StringTest.cpp │ │ ├── StringTest.h │ │ ├── SystemTest.cpp │ │ ├── TweakableIntegrationTest.cpp │ │ ├── TweakableParserTest.cpp │ │ ├── TweakableTest.cpp │ │ ├── TypeTraitsTest.cpp │ │ ├── UnicodeTest.cpp │ │ ├── configure.h.cmake │ │ ├── cpuVariantHelpers.h │ │ └── nodeJsVersionHelpers.h │ ├── Tweakable.cpp │ ├── Tweakable.h │ ├── TweakableParser.cpp │ ├── TweakableParser.h │ ├── TypeTraits.h │ ├── Unicode.cpp │ ├── Unicode.h │ ├── Utility.h │ ├── Utility.js.in │ ├── VisibilityMacros.h │ ├── rc.cpp │ ├── utilities.h │ └── visibility.h ├── configure.h.cmake └── version.h.cmake ├── acme ├── .coveragerc ├── .gitignore ├── acme.py └── test │ ├── __init__.py │ ├── bom │ └── input.h │ ├── comments │ ├── expected.h │ └── input.h │ ├── includes │ ├── Dir │ │ ├── Absolute.h │ │ ├── Bla.h │ │ └── Relative.h │ ├── Local.h │ ├── Oof.h │ ├── expected.h │ └── input.h │ ├── no_copyright_include_placeholders │ ├── expected.h │ └── input.h │ ├── pragmas │ ├── expected.h │ ├── input.h │ └── some │ │ └── path │ │ └── included.h │ ├── preprocessor │ ├── expected.h │ └── input.h │ ├── revision_stats │ ├── .gitignore │ ├── expected.h │ ├── input.h │ └── output │ │ └── dummy │ └── test.py ├── debuggers ├── CMakeLists.txt ├── gdb │ └── corrade │ │ ├── __init__.py │ │ └── printers.py └── natvis │ └── corrade.natvis ├── dummy.cpp ├── examples ├── CMakeLists.txt ├── interconnect │ ├── CMakeLists.txt │ └── main.cpp ├── json │ ├── CMakeLists.txt │ └── main.cpp ├── pluginmanager │ ├── AbstractAnimal.h │ ├── CMakeLists.txt │ ├── Canary.conf │ ├── Canary.cpp │ ├── Dog.conf │ ├── Dog.cpp │ └── main.cpp ├── resource │ ├── CMakeLists.txt │ ├── icon.png │ ├── licenses │ │ └── en.txt │ ├── main.cpp │ └── resources.conf └── testsuite │ ├── CMakeLists.txt │ └── MyTest.cpp └── singles ├── CorradeArray.h ├── CorradeArrayView.h ├── CorradeCpu.hpp ├── CorradeEnumSet.h ├── CorradeFunction.h ├── CorradeGrowableArray.h ├── CorradeOptional.h ├── CorradePair.h ├── CorradePointer.h ├── CorradeReference.h ├── CorradeScopeGuard.h ├── CorradeStlForwardArray.h ├── CorradeStlForwardString.h ├── CorradeStlForwardTuple.h ├── CorradeStlForwardVector.h ├── CorradeStlMath.h ├── CorradeStridedArrayView.h ├── CorradeString.hpp ├── CorradeTriple.h ├── assert.h ├── base.h └── generate.sh /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | ../package/ci/circleci.yml -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | charset = utf-8 3 | indent_style = space 4 | indent_size = 4 5 | trim_trailing_whitespace = true 6 | insert_final_newline = true 7 | 8 | [*.{css,html,html.in,yml,rb}] 9 | indent_style = space 10 | indent_size = 2 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /build* 2 | /debian 3 | /obj-* 4 | pkg 5 | *.kdev4 6 | *~ 7 | *.kate-swp 8 | *.pkg.tar.zst 9 | CMakeLists.txt.user* 10 | .DS_Store 11 | *.swp 12 | *~ 13 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "toolchains"] 2 | path = toolchains 3 | url = https://github.com/mosra/toolchains.git 4 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Bug reports, feature requests or code contributions are always very welcome. 2 | To make things easier, here are a few tips: 3 | 4 | Reporting bugs, requesting features 5 | ----------------------------------- 6 | 7 | - Best way to report bugs and request new features is to use GitHub 8 | [Issues](https://github.com/mosra/corrade/issues), but you can contact the 9 | team also any other way — see the [README](README.md) for details. 10 | 11 | Code contribution 12 | ----------------- 13 | 14 | - Best way to contribute is using GitHub [Pull Requests](https://github.com/mosra/corrade/pulls) 15 | — fork the repository and make a pull request from a feature branch. You 16 | can also send patches via e-mail or contact the team in any other way — see 17 | the [README](README.md) for details. 18 | - Follow the project coding guidelines. In short — try to match style of the 19 | surrounding code and avoid any trailing whitespace. When in doubt, consult 20 | [Coding Style](https://doc.magnum.graphics/corrade/corrade-coding-style.html) 21 | guidelines. 22 | - There's a [Developers Guide](https://doc.magnum.graphics/corrade/corrade-developers.html) 23 | providing step-by-step checklists for almost every development aspect. It's 24 | not strictly required to follow it to the point, but doing so will save the 25 | maintainers a lot of time during review and merging. 26 | - All your code will be released under the project license (see the 27 | [COPYING](COPYING) file for details), so make sure you and your 28 | collaborators (or employers) have no problems with it. 29 | -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- 1 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 3 | Vladimír Vondruš and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a 6 | copy of this software and associated documentation files (the "Software"), 7 | to deal in the Software without restriction, including without limitation 8 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 | and/or sell copies of the Software, and to permit persons to whom the 10 | Software is furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included 13 | in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 21 | DEALINGS IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /COPYING-examples: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or distribute 4 | this software, either in source code form or as a compiled binary, for any 5 | purpose, commercial or non-commercial, and by any means. 6 | 7 | In jurisdictions that recognize copyright laws, the author or authors of 8 | this software dedicate any and all copyright interest in the software to 9 | the public domain. We make this dedication for the benefit of the public 10 | at large and to the detriment of our heirs and successors. We intend this 11 | dedication to be an overt act of relinquishment in perpetuity of all 12 | present and future rights to this software under copyright law. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17 | THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 18 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 19 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 20 | 21 | For more information, please refer to 22 | -------------------------------------------------------------------------------- /CREDITS.md: -------------------------------------------------------------------------------- 1 | Third-party components 2 | ---------------------- 3 | 4 | Third party components that affect public usage of the project are listed 5 | [in the documentation](https://doc.magnum.graphics/corrade/corrade-credits-third-party.html). 6 | 7 | Contributors to Corrade 8 | ----------------------- 9 | 10 | [Detailed contributor list](https://doc.magnum.graphics/corrade/corrade-credits-contributors.html) 11 | is maintained in the documentation. Big thanks to everyone involved! 12 | -------------------------------------------------------------------------------- /doc/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | -------------------------------------------------------------------------------- /doc/codingstyle/comments.h: -------------------------------------------------------------------------------- 1 | /* One-line comment */ 2 | int b = foo(); 3 | 4 | /* Slightly longer comment about a more complex section of a code that spans 5 | multiple lines */ 6 | int c = b + bar(); 7 | -------------------------------------------------------------------------------- /doc/codingstyle/doxygen-code-block-workaround.h: -------------------------------------------------------------------------------- 1 | /** 2 | Text paragraph before a code block. 3 | 4 | @skipline foo 5 |

6 | 7 | Next text paragraph after a code block. 8 | */ 9 | -------------------------------------------------------------------------------- /doc/codingstyle/doxygen-code-block.h: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | A paragraph of text. 4 | 5 | @code{.cpp} 6 | // C++ code 7 | @endcode 8 | 9 | Another paragraph of text. 10 | 11 | @code{.cmake} 12 | // CMake code 13 | @endcode 14 | 15 | */ 16 | -------------------------------------------------------------------------------- /doc/codingstyle/doxygen-code-inline.h: -------------------------------------------------------------------------------- 1 | /** Returns @cpp Magnum::Vector2 @ce, which is @cb{.glsl} vec2 @ce in GLSL. */ 2 | -------------------------------------------------------------------------------- /doc/codingstyle/doxygen-configurationvalue.h: -------------------------------------------------------------------------------- 1 | /** @configurationvalueref{Hash} */ 2 | class Hash; 3 | 4 | /** @configurationvalue{Hash} */ 5 | namespace Corrade { namespace Utility { 6 | struct ConfigurationValue { 7 | // ... 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /doc/codingstyle/doxygen-debugoperator.h: -------------------------------------------------------------------------------- 1 | /** @debugoperator{Hash} */ 2 | Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug& debug, const Hash& value) { 3 | // ... 4 | } 5 | -------------------------------------------------------------------------------- /doc/codingstyle/doxygen-debugoperatorenum.h: -------------------------------------------------------------------------------- 1 | enum class Flag: std::uint32_t; 2 | 3 | /** @debugoperatorenum{Flag} */ 4 | Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug& debug, Flag value); 5 | 6 | class Foo { 7 | enum class Flag: std::uint32_t; 8 | }; 9 | 10 | /** @debugoperatorclassenum{Foo,Foo::Flag} */ 11 | Corrade::Utility::Debug& operator<<(Corrade::Utility::Debug& debug, Foo::Flag value); 12 | -------------------------------------------------------------------------------- /doc/codingstyle/doxygen-file.h: -------------------------------------------------------------------------------- 1 | /** @file 2 | * @brief Class @ref Corrade::Utility::Unicode 3 | */ 4 | -------------------------------------------------------------------------------- /doc/codingstyle/doxygen-function.h: -------------------------------------------------------------------------------- 1 | class Debugger { 2 | public: 3 | // ... 4 | 5 | /** 6 | * @brief Write frame capture into a file 7 | * @param filename Filename to write the output into. Format is 8 | * autodetected from the extension, supported formats are `*.png` 9 | * and `*.jpg`. 10 | * @param format Pixel format 11 | * @param dataLayoutFlags Data layout flags 12 | * @return File size on success, `0` on failure 13 | * 14 | * Writes a frame capture with currently enabled debug watermark into a 15 | * file. 16 | * 17 | * If the file in given location already exists, the filesystem is not 18 | * writable or the filesystem is full, returns `0`. The @p dataLayoutFlags 19 | * and @p format are expected to be compatible with current framebuffer 20 | * setup, otherwise an assertion is fired. 21 | */ 22 | std::size_t writeFrameCapture(const std::string& filename, PixelFormat format, DataLayoutFlags dataLayoutFlags); 23 | }; 24 | -------------------------------------------------------------------------------- /doc/codingstyle/doxygen-macro.h: -------------------------------------------------------------------------------- 1 | /** @brief Set new value */ 2 | #ifdef DOXYGEN_GENERATING_OUTPUT 3 | template void set(T value); 4 | #else 5 | template type std::enable_if::value, void>::type set(T value); 6 | #endif 7 | -------------------------------------------------------------------------------- /doc/codingstyle/doxygen-overload.h: -------------------------------------------------------------------------------- 1 | /** @brief Data */ 2 | char* data() { return _data; } 3 | 4 | /** @overload */ 5 | const char* data() const { return _data; } 6 | -------------------------------------------------------------------------------- /doc/codingstyle/doxygen-sections.h: -------------------------------------------------------------------------------- 1 | namespace Corrade { namespace Utility { 2 | 3 | /** 4 | ... 5 | @section Utility-ConfigurationValue-basic-usage Basic usage 6 | ... 7 | */ 8 | class ConfigurationValue { 9 | -------------------------------------------------------------------------------- /doc/codingstyle/doxygen-short.h: -------------------------------------------------------------------------------- 1 | enum class Flag: unsigned char { 2 | Active, /**< Foo has active bar */ 3 | Inactive, /**< Foo has no active bars */ 4 | FileNotFound /**< File was not found */ 5 | }; 6 | -------------------------------------------------------------------------------- /doc/codingstyle/doxygen-thirdparty.h: -------------------------------------------------------------------------------- 1 | /** 2 | @m_class{m-block m-success} 3 | 4 | @thirdparty This plugin makes use of the [HarfBuzz](http://harfbuzz.org/) 5 | library, licensed under @m_class{m-label m-success} **MIT** 6 | ([license text](https://raw.githubusercontent.com/behdad/harfbuzz/master/COPYING), 7 | [choosealicense.com](https://choosealicense.com/licenses/mit/)). It 8 | requires attribution for public use. 9 | */ 10 | -------------------------------------------------------------------------------- /doc/codingstyle/doxygen.h: -------------------------------------------------------------------------------- 1 | /** 2 | @brief Some class 3 | 4 | Documentation block that is not indented is without leading asterisks. 5 | */ 6 | class SomeClass { 7 | public: 8 | /** 9 | * @brief A function 10 | * 11 | * Documentation block that is indented has leading asterisks. 12 | */ 13 | void foo(); 14 | }; 15 | -------------------------------------------------------------------------------- /doc/conf-public.py: -------------------------------------------------------------------------------- 1 | # Inherit everything from the local config 2 | import os, sys; sys.path.append(os.path.dirname(os.path.realpath(__file__))) 3 | from conf import * 4 | 5 | DOXYFILE = 'Doxyfile-public' 6 | 7 | assert "Python API" in LINKS_NAVBAR2[2][0] 8 | LINKS_NAVBAR2[2] = ("Python API", []) 9 | 10 | STYLESHEETS = [ 11 | 'https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,600i%7CSource+Code+Pro:400,400i,600&subset=latin-ext', 12 | 'https://static.magnum.graphics/m-dark.compiled.css', 13 | 'https://static.magnum.graphics/m-dark.documentation.compiled.css' 14 | ] 15 | 16 | SEARCH_DOWNLOAD_BINARY = True 17 | SEARCH_BASE_URL = "https://doc.magnum.graphics/corrade/" 18 | SEARCH_EXTERNAL_URL = "https://google.com/search?q=site:doc.magnum.graphics+Corrade+{query}" 19 | 20 | FAVICON = 'https://doc.magnum.graphics/favicon.ico' 21 | -------------------------------------------------------------------------------- /doc/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/doc/favicon.ico -------------------------------------------------------------------------------- /doc/snippets/UtilityDebug-color-grayscale.ansi: -------------------------------------------------------------------------------- 1 | 41 shades of gray missing:   ░░░░▒▒▓▓▓▓████ 2 | -------------------------------------------------------------------------------- /doc/snippets/UtilityDebug-color.ansi: -------------------------------------------------------------------------------- 1 | Success! Everything is fine. 2 | -------------------------------------------------------------------------------- /doc/snippets/acme-driver.h: -------------------------------------------------------------------------------- 1 | /* This file is generated from Corrade {{revision}}. Do not edit directly. */ 2 | 3 | /* 4 | This file is part of Corrade. 5 | 6 | {{copyright}} 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | … … 12 | */ 13 | 14 | // {{includes}} 15 | 16 | /* Remove all comments from the files to make them smaller */ 17 | #pragma ACME comments off 18 | 19 | /* Look for #includes starting with Corrade in the corrade/src directory */ 20 | #pragma ACME local Corrade 21 | #pragma ACME path corrade/src 22 | 23 | /* Look for Corrade/configure.h in the CMake-generated build dir, but don't 24 | use its contents and provide a simplified version instead. */ 25 | #pragma ACME path corrade/build/src 26 | #pragma ACME enable Corrade_configure_h 27 | #ifdef _WIN32 28 | #define CORRADE_TARGET_WINDOWS 29 | #elif defined(__APPLE__) 30 | #define CORRADE_TARGET_APPLE 31 | #elif defined(__unix__) 32 | #define CORRADE_TARGET_UNIX 33 | #endif 34 | 35 | /* Remove things included for backwards compatibility or doxygen docs, use 36 | standard */ 37 | #pragma ACME enable CORRADE_STANDARD_ASSERT 38 | #pragma ACME disable DOXYGEN_GENERATING_OUTPUT 39 | #pragma ACME disable CORRADE_BUILD_DEPRECATED 40 | 41 | #include "Corrade/Containers/Array.h" 42 | #include "Corrade/Containers/StaticArray.h" 43 | -------------------------------------------------------------------------------- /doc/snippets/android.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include 28 | 29 | using namespace Corrade; 30 | 31 | int main() { 32 | 33 | { 34 | /** [AndroidLogStreamBuffer] */ 35 | Utility::AndroidLogStreamBuffer buffer{ 36 | Utility::AndroidLogStreamBuffer::LogPriority::Info, "my-application"}; 37 | 38 | std::ostream out{&buffer}; 39 | 40 | out << "Hello World!" << std::endl; 41 | /** [AndroidLogStreamBuffer] */ 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /doc/snippets/testsuite-basic.ansi: -------------------------------------------------------------------------------- 1 | Starting MyTest with 2 test cases... 2 |  OK [1] addTwo() 3 |  OK [2] subtractThree() 4 | Finished MyTest with 0 errors out of 2 checks. 5 | -------------------------------------------------------------------------------- /doc/snippets/testsuite-basic.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include 28 | 29 | using namespace Corrade; 30 | 31 | /** [0] */ 32 | namespace { 33 | 34 | struct MyTest: TestSuite::Tester { 35 | explicit MyTest(); 36 | 37 | void addTwo(); 38 | void subtractThree(); 39 | }; 40 | 41 | MyTest::MyTest() { 42 | addTests({&MyTest::addTwo, 43 | &MyTest::subtractThree}); 44 | } 45 | 46 | void MyTest::addTwo() { 47 | int a = 3; 48 | CORRADE_COMPARE(a + 2, 5); 49 | } 50 | 51 | void MyTest::subtractThree() { 52 | int b = 5; 53 | CORRADE_COMPARE(b - 3, 2); 54 | } 55 | 56 | } 57 | 58 | CORRADE_TEST_MAIN(MyTest) 59 | /** [0] */ 60 | -------------------------------------------------------------------------------- /doc/snippets/testsuite-benchmark-custom.ansi: -------------------------------------------------------------------------------- 1 | Starting VectorBenchmark with 3 test cases... 2 |  BENCH [1] 227.00  insert(100)@1x1 (copy count) 3 |  BENCH [2] 2.02 k  insert(1k)@1x1 (copy count) 4 |  BENCH [3] 26.38 k  insert(10k)@1x1 (copy count) 5 | Finished VectorBenchmark with 0 errors out of 0 checks. 6 | -------------------------------------------------------------------------------- /doc/snippets/testsuite-benchmark.ansi: -------------------------------------------------------------------------------- 1 | Starting InvSqrtBenchmark with 4 test cases... 2 |  BENCH [1] 8.24 ± 0.19  ns naive()@499x1000000 (wall time) 3 |  BENCH [2] 8.27 ± 0.19  ns naive()@499x1000000 (CPU time) 4 |  BENCH [3] 0.31 ± 0.01  ns fast()@499x1000000 (wall time) 5 |  BENCH [4] 0.31 ± 0.01  ns fast()@499x1000000 (CPU time) 6 | Finished InvSqrtBenchmark with 0 errors out of 0 checks. 7 | -------------------------------------------------------------------------------- /doc/snippets/testsuite-compare-string.ansi: -------------------------------------------------------------------------------- 1 | Starting ChatbotTest with 1 test cases... 2 |  FAIL [1] greeting() at …/testsuite-compare-string.cpp:57 3 | Strings chatbot.greet() and "Hello!\n" "I'm Marvin.\n" "I'm here to answer your questions.\n" "Let's get started." are different. Actual (+) vs expected (-): 4 | Hello! 5 | I'm Marvin. 6 |  -I'm here to answer your questions. 7 |  +I'm here to question your answers. 8 | Let's get started. 9 |  +You're not here to tell me what to do. 10 |  +I am. 11 | Finished ChatbotTest with 1 errors out of 1 checks. 12 | -------------------------------------------------------------------------------- /doc/snippets/testsuite-description-source-location.ansi: -------------------------------------------------------------------------------- 1 | Starting PathTest with 4 test cases... 2 |  OK [1] extension(simple) 3 |  OK [2] extension(no extension) 4 |  FAIL [3] extension(two extensions) at …/PathTest.cpp:68 with data at …/PathTest.cpp:55 5 | Values fileExtension(data.filename) and data.ext are not the same, actual is 6 | .gz 7 | but expected 8 | .tar.gz 9 |  OK [4] extension(directory with a dot) 10 | Finished PathTest with 1 errors out of 4 checks. 11 | -------------------------------------------------------------------------------- /doc/snippets/testsuite-instanced.ansi: -------------------------------------------------------------------------------- 1 | Starting RoundTest with 5 test cases... 2 |  OK [1] test(positive down) 3 |  OK [2] test(positive up) 4 |  OK [3] test(zero) 5 |  OK [4] test(negative down) 6 |  OK [5] test(negative up) 7 | Finished RoundTest with 0 errors out of 5 checks. 8 | -------------------------------------------------------------------------------- /doc/snippets/testsuite-iteration.ansi: -------------------------------------------------------------------------------- 1 | Starting NameTest with 1 test cases... 2 |  FAIL [1] noYellingAllowed() at …/NameTest.cpp:47 (iteration JOHN, 1) 3 | Expression !std::isupper(name[i]) failed. 4 | Finished NameTest with 1 errors out of 4 checks. 5 | -------------------------------------------------------------------------------- /doc/snippets/testsuite-repeated.ansi: -------------------------------------------------------------------------------- 1 | Starting RaceTest with 2 test cases... 2 |  FAIL [1] threadedIncrement()@167 at …/RaceTest.cpp:60 3 | Values x and 1500 are not the same, actual is 4 | 1000 5 | but expected 6 | 1500 7 |  OK [2] threadedIncrement()@10000 8 | Finished RaceTest with 1 errors out of 10167 checks. 9 | -------------------------------------------------------------------------------- /doc/snippets/testsuite-save-diagnostic.ansi: -------------------------------------------------------------------------------- 1 | $ ./MyTest --save-diagnostic some/path 2 | Starting MyTest with 1 test cases... 3 |  FAIL [1] generateFile() at MyTest.cpp:73 4 | Files "a.txt" and "expected.txt" are different, actual ABC but expected abc 5 |  SAVED [1] generateFile() -> some/path/expected.txt 6 | Finished MyTest with 1 errors out of 1 checks. 1 check saved a diagnostic file. 7 | -------------------------------------------------------------------------------- /doc/snippets/testsuite-templated.ansi: -------------------------------------------------------------------------------- 1 | Starting PiTest with 2 test cases... 2 |  OK [1] calculate() 3 |  OK [2] calculate() 4 | Finished PiTest with 0 errors out of 2 checks. 5 | -------------------------------------------------------------------------------- /doc/snippets/testsuite.ansi: -------------------------------------------------------------------------------- 1 | Starting Corrade::Examples::MyTest with 7 test cases... 2 |  FAIL [1] commutativity() at …/MyTest.cpp:62 3 | Expression a/b == b/a failed. 4 |  FAIL [2] associativity() at …/MyTest.cpp:67 5 | Values (2*3) + 4 and 14 are not the same, actual is 6 | 10 7 | but expected 8 | 14 9 |  OK [3] sin() 10 |  XFAIL [4] pi() at …/MyTest.cpp:77 11 | Need better approximation. pi and 3.14159265 failed the comparison. 12 |  OK [4] pi() 13 |  SKIP [5] bigEndian() 14 | Need big-endian machine for this. 15 |  BENCH [6] 220.69 ± 7.38  µs prepend1kItemsVector()@99x100 (wall time) 16 |  BENCH [7] 128.33 ± 5.46  µs prepend1kItemsList()@99x100 (wall time) 17 | Finished Corrade::Examples::MyTest with 2 errors out of 206 checks. 18 | -------------------------------------------------------------------------------- /doc/snippets/testsuite.cmake: -------------------------------------------------------------------------------- 1 | # [0] 2 | if(CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) 3 | set(JPEG_TEST_DIR ".") 4 | else() 5 | set(JPEG_TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}) 6 | endif() 7 | 8 | # Contains just 9 | # #define JPEG_TEST_DIR "${JPEG_TEST_DIR}" 10 | configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake 11 | ${CMAKE_CURRENT_BINARY_DIR}/configure.h) 12 | 13 | corrade_add_test(JpegTest JpegTest.cpp 14 | LIBRARIES ${JPEG_LIBRARIES} 15 | FILES rgb.jpg rgba.jpg grayscale.jpg) 16 | target_include_directories(JpegTest ${CMAKE_CURRENT_BINARY_DIR}) 17 | # [0] 18 | -------------------------------------------------------------------------------- /modules/CorradeConfig.cmake: -------------------------------------------------------------------------------- 1 | # 2 | # This file is part of Corrade. 3 | # 4 | # Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | # 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | # Vladimír Vondruš 7 | # 8 | # Permission is hereby granted, free of charge, to any person obtaining a 9 | # copy of this software and associated documentation files (the "Software"), 10 | # to deal in the Software without restriction, including without limitation 11 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | # and/or sell copies of the Software, and to permit persons to whom the 13 | # Software is furnished to do so, subject to the following conditions: 14 | # 15 | # The above copyright notice and this permission notice shall be included 16 | # in all copies or substantial portions of the Software. 17 | # 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | # DEALINGS IN THE SOFTWARE. 25 | # 26 | 27 | include(${CMAKE_CURRENT_LIST_DIR}/FindCorrade.cmake) 28 | -------------------------------------------------------------------------------- /package/.gitignore: -------------------------------------------------------------------------------- 1 | download-obs 2 | corrade-*.tar.gz 3 | source-arch-*.sql 4 | -------------------------------------------------------------------------------- /package/archlinux/.gitignore: -------------------------------------------------------------------------------- 1 | src 2 | *.src.tar.gz 3 | -------------------------------------------------------------------------------- /package/archlinux/.kateconfig: -------------------------------------------------------------------------------- 1 | kate-wildcard(PKGBUILD*): hl bash; 2 | -------------------------------------------------------------------------------- /package/archlinux/PKGBUILD-android-arm64: -------------------------------------------------------------------------------- 1 | # Author: mosra 2 | pkgname=android-arm64-corrade 3 | pkgver=dev 4 | pkgrel=1 5 | pkgdesc="C++11/C++14 multiplatform utility library (Android ARM64)" 6 | arch=('any') 7 | url="https://magnum.graphics/corrade/" 8 | license=('MIT') 9 | makedepends=('cmake>=3.20' 'ninja' 'android-ndk') 10 | options=(!strip !buildflags staticlibs) 11 | 12 | _rootdir=$startdir/../../ 13 | 14 | build() { 15 | if [ ! -d "$_rootdir/build-android-arm64" ] ; then 16 | mkdir "$_rootdir/build-android-arm64" 17 | cd "$_rootdir/build-android-arm64" 18 | 19 | cmake .. \ 20 | -DCMAKE_SYSTEM_NAME=Android \ 21 | -DCMAKE_SYSTEM_VERSION=24 \ 22 | -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \ 23 | -DCMAKE_ANDROID_STL_TYPE=c++_static \ 24 | -DCMAKE_INSTALL_PREFIX=/opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr \ 25 | -G Ninja 26 | fi 27 | 28 | cd "$_rootdir/build-android-arm64" 29 | 30 | # Colored output is enabled implicitly. If Ninja detects it's outputting to 31 | # a pipe, it strips it away from the output; Clang unfortunately doesn't 32 | # have any env var to temporarily disable colors. The inverse, i.e. 33 | # preserving colors when Ninja outputs to a pipe can be done with 34 | # CLICOLOR_FORCE=1: https://github.com/ninja-build/ninja/issues/2196 35 | cmake .. \ 36 | -DCMAKE_BUILD_TYPE=Release \ 37 | -DCMAKE_COLOR_DIAGNOSTICS=ON \ 38 | -DCORRADE_BUILD_TESTS=ON 39 | ninja 40 | } 41 | 42 | package() { 43 | cd "$_rootdir/build-android-arm64" 44 | DESTDIR="$pkgdir/" ninja install/strip 45 | } 46 | -------------------------------------------------------------------------------- /package/archlinux/PKGBUILD-clang: -------------------------------------------------------------------------------- 1 | # Author: mosra 2 | pkgname=corrade 3 | pkgver=dev.clang 4 | pkgrel=1 5 | pkgdesc="C++11/C++14 multiplatform utility library (built with Clang)" 6 | arch=('i686' 'x86_64') 7 | url="https://magnum.graphics/corrade/" 8 | license=('MIT') 9 | makedepends=('cmake' 'ninja' 'clang') 10 | options=(!strip) 11 | provides=('corrade-git') 12 | 13 | _rootdir=$startdir/../../ 14 | 15 | build() { 16 | if [ ! -d "$_rootdir/build-clang" ] ; then 17 | mkdir "$_rootdir/build-clang" 18 | cd "$_rootdir/build-clang" 19 | 20 | # RelWithDebInfo is enabled but not built -- it's meant for profiling 21 | # from within the build dir 22 | cmake .. \ 23 | -DCMAKE_CONFIGURATION_TYPES="Debug;Release;RelWithDebInfo" \ 24 | -DCMAKE_CROSS_CONFIGS=all \ 25 | -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O2 -g -DNDEBUG -fno-omit-frame-pointer" \ 26 | -DCMAKE_CXX_COMPILER=clang++ \ 27 | -G "Ninja Multi-Config" 28 | fi 29 | 30 | cd "$_rootdir/build-clang" 31 | 32 | cmake .. \ 33 | -DCMAKE_INSTALL_PREFIX=/usr \ 34 | -DCORRADE_BUILD_TESTS=ON 35 | ninja all:Debug all:Release 36 | } 37 | 38 | check() { 39 | cd "$_rootdir/build-clang" 40 | export CORRADE_TEST_COLOR=ON 41 | 42 | for config in Debug Release; do 43 | # The Tester test *needs* benchmarks enabled to pass properly 44 | ctest -C $config --output-on-failure -R TestSuiteTesterTest 45 | CORRADE_TEST_SKIP_BENCHMARKS=ON ctest -C $config --output-on-failure -j9 -E TestSuiteTesterTest 46 | done 47 | } 48 | 49 | package() { 50 | cd "$_rootdir/build-clang" 51 | DESTDIR="$pkgdir/" ninja install:Debug 52 | 53 | # Prevent the Release build from overwriting Debug binaries 54 | for i in $(ls $pkgdir/usr/bin/corrade-*); do 55 | mv ${i}{,d} 56 | done 57 | 58 | DESTDIR="$pkgdir/" ninja install/strip:Release 59 | } 60 | -------------------------------------------------------------------------------- /package/archlinux/PKGBUILD-clang-addresssanitizer: -------------------------------------------------------------------------------- 1 | # Author: mosra 2 | pkgname=corrade 3 | pkgver=dev.clang.addresssanitizer 4 | pkgrel=1 5 | pkgdesc="C++11/C++14 multiplatform utility library (clang-addresssanitizer build)" 6 | arch=('i686' 'x86_64') 7 | url="https://magnum.graphics/corrade/" 8 | license=('MIT') 9 | makedepends=('cmake' 'clang') 10 | options=(!strip) 11 | provides=('corrade-git') 12 | 13 | _rootdir=$startdir/../../ 14 | 15 | build() { 16 | mkdir -p "$_rootdir/build-clang-addresssanitizer" 17 | cd "$_rootdir/build-clang-addresssanitizer" 18 | 19 | cmake .. \ 20 | -DCMAKE_CXX_COMPILER=clang++ \ 21 | -DCMAKE_CXX_FLAGS="-fsanitize=address" \ 22 | -DCMAKE_BUILD_TYPE=Debug \ 23 | -DCMAKE_INSTALL_PREFIX=/usr \ 24 | -DCORRADE_BUILD_TESTS=ON \ 25 | -G Ninja 26 | ninja 27 | } 28 | 29 | check() { 30 | cd "$_rootdir/build-clang-addresssanitizer" 31 | ASAN_OPTIONS="color=always" LSAN_OPTIONS="color=always" CORRADE_TEST_COLOR=ON ctest --output-on-failure -j9 32 | } 33 | 34 | package() { 35 | cd "$_rootdir/build-clang-addresssanitizer" 36 | DESTDIR="$pkgdir/" ninja install 37 | } 38 | -------------------------------------------------------------------------------- /package/archlinux/PKGBUILD-clang-analyzer: -------------------------------------------------------------------------------- 1 | # Author: mosra 2 | pkgname=corrade 3 | pkgver=dev.clang.analyzer 4 | pkgrel=1 5 | pkgdesc="C++11/C++14 multiplatform utility library (clang-analyzer build)" 6 | arch=('i686' 'x86_64') 7 | url="https://magnum.graphics/corrade/" 8 | license=('MIT') 9 | makedepends=('cmake' 'clang-analyzer' 'ninja') 10 | options=(!strip) 11 | provides=('corrade-git') 12 | 13 | _rootdir=$startdir/../../ 14 | 15 | build() { 16 | mkdir -p "$_rootdir/build-clang-analyzer" 17 | cd "$_rootdir/build-clang-analyzer" 18 | 19 | scan-build --use-c++=$(which clang++) cmake .. \ 20 | -DCMAKE_BUILD_TYPE=Debug \ 21 | -DCMAKE_INSTALL_PREFIX=/usr \ 22 | -DCORRADE_BUILD_TESTS=ON \ 23 | -G Ninja 24 | scan-build --use-c++=$(which clang++) --view ninja 25 | } 26 | 27 | package() { 28 | error "Clang Analyzer builds are not meant to be installed." 29 | exit 1 30 | } 31 | -------------------------------------------------------------------------------- /package/archlinux/PKGBUILD-clang-threadsanitizer: -------------------------------------------------------------------------------- 1 | # Author: mosra 2 | pkgname=corrade 3 | pkgver=dev.clang.threadsanitizer 4 | pkgrel=1 5 | pkgdesc="C++11/C++14 multiplatform utility library (clang-threadsanitizer build)" 6 | arch=('i686' 'x86_64') 7 | url="https://magnum.graphics/corrade/" 8 | license=('MIT') 9 | makedepends=('cmake' 'clang') 10 | options=(!strip) 11 | provides=('corrade-git') 12 | 13 | _rootdir=$startdir/../../ 14 | 15 | build() { 16 | mkdir -p "$_rootdir/build-clang-threadsanitizer" 17 | cd "$_rootdir/build-clang-threadsanitizer" 18 | 19 | cmake .. \ 20 | -DCMAKE_CXX_COMPILER=clang++ \ 21 | -DCMAKE_CXX_FLAGS="-fsanitize=thread" \ 22 | -DCMAKE_BUILD_TYPE=Debug \ 23 | -DCMAKE_INSTALL_PREFIX=/usr \ 24 | -DCORRADE_BUILD_TESTS=ON \ 25 | -G Ninja 26 | ninja 27 | } 28 | 29 | check() { 30 | cd "$_rootdir/build-clang-threadsanitizer" 31 | TSAN_OPTIONS="color=always" CORRADE_TEST_COLOR=ON ctest --output-on-failure 32 | } 33 | 34 | package() { 35 | cd "$_rootdir/build-clang-threadsanitizer" 36 | DESTDIR="$pkgdir/" ninja install 37 | } 38 | -------------------------------------------------------------------------------- /package/archlinux/PKGBUILD-emscripten-wasm: -------------------------------------------------------------------------------- 1 | # Author: mosra 2 | pkgname=emscripten-corrade 3 | pkgver=dev.wasm 4 | pkgrel=1 5 | pkgdesc="C++11/C++14 multiplatform utility library (Emscripten, wasm)" 6 | arch=('any') 7 | url="https://magnum.graphics/corrade/" 8 | license=('MIT') 9 | makedepends=('cmake' 'emscripten' 'ninja') 10 | options=(!strip !buildflags) 11 | 12 | _rootdir=$startdir/../../ 13 | 14 | build() { 15 | if [ ! -d "$_rootdir/build-emscripten-wasm" ] ; then 16 | mkdir "$_rootdir/build-emscripten-wasm" 17 | cd "$_rootdir/build-emscripten-wasm" 18 | 19 | cmake .. \ 20 | -DCMAKE_TOOLCHAIN_FILE="$_rootdir/toolchains/generic/Emscripten-wasm.cmake" \ 21 | -G Ninja 22 | fi 23 | 24 | cd "$_rootdir/build-emscripten-wasm" 25 | 26 | # Put tests into a separate target as they take ages to build. They're 27 | # built only inside check() so `makepkg --nocheck` will skip building them. 28 | # 29 | # Colored output is enabled implicitly. If Ninja detects it's outputting to 30 | # a pipe, it strips it away from the output; Clang unfortunately doesn't 31 | # have any env var to temporarily disable colors. The inverse, i.e. 32 | # preserving colors when Ninja outputs to a pipe can be done with 33 | # CLICOLOR_FORCE=1: https://github.com/ninja-build/ninja/issues/2196 34 | cmake .. \ 35 | -DCMAKE_BUILD_TYPE=Release \ 36 | -DCMAKE_INSTALL_PREFIX=/usr/lib/emscripten/system \ 37 | -DCMAKE_COLOR_DIAGNOSTICS=ON \ 38 | -DCORRADE_BUILD_TESTS=ON \ 39 | -DCORRADE_TESTSUITE_TEST_TARGET=build-tests 40 | ninja 41 | } 42 | 43 | check() { 44 | cd "$_rootdir/build-emscripten-wasm" 45 | 46 | ninja build-tests 47 | 48 | CORRADE_TEST_COLOR=ON ctest --output-on-failure 49 | } 50 | 51 | package() { 52 | cd "$_rootdir/build-emscripten-wasm" 53 | DESTDIR="$pkgdir/" ninja install 54 | } 55 | -------------------------------------------------------------------------------- /package/archlinux/PKGBUILD-gcc48: -------------------------------------------------------------------------------- 1 | # Author: mosra 2 | pkgname=corrade 3 | pkgver=dev.gcc48 4 | pkgrel=1 5 | pkgdesc="C++11/C++14 multiplatform utility library (built with GCC 4.8)" 6 | arch=('i686' 'x86_64') 7 | url="https://magnum.graphics/corrade/" 8 | license=('MIT') 9 | makedepends=('cmake' 'ninja' 'gcc48') 10 | options=(!strip !buildflags) 11 | provides=('corrade-git') 12 | 13 | _rootdir=$startdir/../../ 14 | 15 | build() { 16 | # Disable flags unknown to GCC 4.8 17 | newcxxflags=$(echo $CXXFLAGS | sed s/-fstack-protector-strong.//g | sed s/.-fno-plt//g | sed s/.-fstack-clash-protection//g | sed s/.-fcf-protection//g | sed "s#.-ffile-prefix-map=${srcdir}=/usr/src/debug/${pkgname}##g") 18 | export CXXFLAGS="$newcxxflags" 19 | 20 | if [ ! -d "$_rootdir/build-gcc48" ] ; then 21 | mkdir "$_rootdir/build-gcc48" 22 | cd "$_rootdir/build-gcc48" 23 | 24 | cmake .. \ 25 | -DCMAKE_CXX_COMPILER=g++-4.8 \ 26 | -G Ninja 27 | fi 28 | 29 | cd "$_rootdir/build-gcc48" 30 | 31 | cmake .. \ 32 | -DCMAKE_BUILD_TYPE=Debug \ 33 | -DCMAKE_INSTALL_PREFIX=/usr \ 34 | -DCORRADE_BUILD_TESTS=ON 35 | ninja 36 | } 37 | 38 | check() { 39 | cd "$_rootdir/build-gcc48" 40 | CORRADE_TEST_COLOR=ON ctest --output-on-failure -j9 41 | } 42 | 43 | package() { 44 | cd "$_rootdir/build-gcc48" 45 | DESTDIR="$pkgdir/" ninja install 46 | } 47 | -------------------------------------------------------------------------------- /package/archlinux/PKGBUILD-gcc5: -------------------------------------------------------------------------------- 1 | # Author: mosra 2 | pkgname=corrade 3 | pkgver=dev.gcc5 4 | pkgrel=1 5 | pkgdesc="C++11/C++14 multiplatform utility library (built with GCC 5)" 6 | arch=('i686' 'x86_64') 7 | url="https://magnum.graphics/corrade/" 8 | license=('MIT') 9 | makedepends=('cmake' 'ninja' 'gcc5') 10 | options=(!strip !buildflags) 11 | provides=('corrade-git') 12 | 13 | _rootdir=$startdir/../../ 14 | 15 | build() { 16 | if [ ! -d "$_rootdir/build-gcc5" ] ; then 17 | mkdir "$_rootdir/build-gcc5" 18 | cd "$_rootdir/build-gcc5" 19 | 20 | cmake .. \ 21 | -DCMAKE_CXX_COMPILER=g++-5 \ 22 | -G Ninja 23 | fi 24 | 25 | cd "$_rootdir/build-gcc5" 26 | 27 | cmake .. \ 28 | -DCMAKE_BUILD_TYPE=Debug \ 29 | -DCMAKE_INSTALL_PREFIX=/usr \ 30 | -DCORRADE_BUILD_TESTS=ON 31 | ninja 32 | } 33 | 34 | check() { 35 | cd "$_rootdir/build-gcc5" 36 | CORRADE_TEST_COLOR=ON ctest --output-on-failure 37 | } 38 | 39 | package() { 40 | cd "$_rootdir/build-gcc5" 41 | DESTDIR="$pkgdir/" ninja install 42 | } 43 | -------------------------------------------------------------------------------- /package/archlinux/PKGBUILD-mingw-w64: -------------------------------------------------------------------------------- 1 | # Author: mosra 2 | pkgname=mingw-w64-corrade 3 | pkgver=dev 4 | pkgrel=1 5 | pkgdesc="C++11/C++14 multiplatform utility library (mingw-w64)" 6 | arch=('any') 7 | url="https://magnum.graphics/corrade/" 8 | license=('MIT') 9 | depends=('mingw-w64-crt') 10 | makedepends=('mingw-w64-gcc' 'cmake' 'ninja' 'corrade') 11 | options=(!buildflags !strip) 12 | 13 | _rootdir=$startdir/../../ 14 | 15 | build() { 16 | mkdir -p "$_rootdir/build-mingw-w64-32" 17 | cd "$_rootdir/build-mingw-w64-32" 18 | 19 | cmake .. \ 20 | -DCMAKE_TOOLCHAIN_FILE=../toolchains/archlinux/basic-mingw-w64-32.cmake \ 21 | -DCMAKE_BUILD_TYPE=Release \ 22 | -DCMAKE_INSTALL_PREFIX=/usr/i686-w64-mingw32 \ 23 | -DCORRADE_BUILD_TESTS=ON \ 24 | -G Ninja 25 | ninja 26 | 27 | mkdir -p "$_rootdir/build-mingw-w64-64" 28 | cd "$_rootdir/build-mingw-w64-64" 29 | 30 | cmake .. \ 31 | -DCMAKE_TOOLCHAIN_FILE=../toolchains/archlinux/basic-mingw-w64-64.cmake \ 32 | -DCMAKE_BUILD_TYPE=Release \ 33 | -DCMAKE_INSTALL_PREFIX=/usr/x86_64-w64-mingw32 \ 34 | -DCORRADE_BUILD_TESTS=ON \ 35 | -G Ninja 36 | ninja 37 | } 38 | 39 | package() { 40 | cd "$_rootdir/build-mingw-w64-32" 41 | DESTDIR="$pkgdir/" ninja install/strip 42 | 43 | cd "$_rootdir/build-mingw-w64-64" 44 | DESTDIR="$pkgdir/" ninja install/strip 45 | } 46 | -------------------------------------------------------------------------------- /package/archlinux/corrade-git/.gitignore: -------------------------------------------------------------------------------- 1 | corrade 2 | -------------------------------------------------------------------------------- /package/archlinux/corrade-git/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Author: mosra 2 | pkgname=corrade-git 3 | pkgver=2020.06.r894.gcbcadb57 4 | pkgrel=1 5 | pkgdesc="C++11/C++14 multiplatform utility library (Git version)" 6 | arch=('i686' 'x86_64') 7 | url="https://magnum.graphics/corrade/" 8 | license=('MIT') 9 | makedepends=('cmake' 'git' 'ninja') 10 | provides=('corrade') 11 | conflicts=('corrade') 12 | source=("git+https://github.com/mosra/corrade.git") 13 | sha1sums=('SKIP') 14 | 15 | pkgver() { 16 | cd "$srcdir/${pkgname%-git}" 17 | git describe --long | sed -r 's/([^-]*-g)/r\1/;s/-/./g;s/v//g' 18 | } 19 | 20 | build() { 21 | mkdir -p "$srcdir/build" 22 | cd "$srcdir/build" 23 | 24 | cmake "$srcdir/${pkgname%-git}" \ 25 | -DCMAKE_BUILD_TYPE=Release \ 26 | -DCMAKE_INSTALL_PREFIX=/usr \ 27 | -G Ninja 28 | ninja 29 | } 30 | 31 | package() { 32 | cd "$srcdir/build" 33 | DESTDIR="$pkgdir/" ninja install 34 | } 35 | -------------------------------------------------------------------------------- /package/archlinux/corrade/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Alexander F. Rødseth 2 | # Contributor: Mosra 3 | 4 | # An up-to-date version of this PKGBUILD is maintained at 5 | # https://github.com/mosra/corrade/blob/master/package/archlinux/corrade/PKGBUILD 6 | 7 | pkgname=corrade 8 | pkgver=2020.06 9 | pkgrel=1 10 | pkgdesc='C++11/C++14 multiplatform utility library' 11 | arch=(x86_64) 12 | url='https://magnum.graphics/corrade/' 13 | license=(MIT) 14 | makedepends=(cmake git ninja) 15 | source=("git+https://github.com/mosra/corrade#tag=v$pkgver") 16 | sha256sums=('SKIP') 17 | 18 | build() { 19 | mkdir -p build 20 | cd build 21 | cmake "$srcdir/corrade" \ 22 | -D CMAKE_BUILD_TYPE=Release \ 23 | -D CMAKE_INSTALL_PREFIX=/usr \ 24 | -G Ninja 25 | ninja 26 | } 27 | 28 | package() { 29 | DESTDIR="$pkgdir" ninja -C build install 30 | install -Dm644 corrade/COPYING \ 31 | "$pkgdir/usr/share/licenses/$pkgname/COPYING" 32 | } 33 | 34 | # getver: github.com/mosra/corrade/releases/latest 35 | # vim: ts=2 sw=2 et: 36 | -------------------------------------------------------------------------------- /package/ci/android-x86.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ev 3 | 4 | # Build native corrade-rc 5 | mkdir build && cd build 6 | cmake .. \ 7 | -DCMAKE_INSTALL_PREFIX=$HOME/deps-native \ 8 | -DCMAKE_BUILD_TYPE=Release \ 9 | -DCORRADE_WITH_INTERCONNECT=OFF \ 10 | -DCORRADE_WITH_PLUGINMANAGER=OFF \ 11 | -DCORRADE_WITH_TESTSUITE=OFF \ 12 | -DCORRADE_WITH_UTILITY=OFF \ 13 | -G Ninja 14 | ninja install 15 | cd .. 16 | 17 | # Crosscompile 18 | mkdir build-android-x86 && cd build-android-x86 19 | cmake .. \ 20 | -DCMAKE_SYSTEM_NAME=Android \ 21 | -DCMAKE_SYSTEM_VERSION=29 \ 22 | -DCMAKE_ANDROID_ARCH_ABI=x86 \ 23 | -DCMAKE_ANDROID_NDK_TOOLCHAIN_VERSION=clang \ 24 | -DCMAKE_ANDROID_STL_TYPE=c++_static \ 25 | -DCMAKE_INSTALL_PREFIX=$HOME/deps \ 26 | -DCMAKE_BUILD_TYPE=Release \ 27 | -DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \ 28 | -DCORRADE_BUILD_TESTS=ON \ 29 | -G Ninja 30 | ninja 31 | 32 | # Wait for emulator to start (done in parallel to build) and run tests 33 | circle-android wait-for-boot 34 | # `adb push` uploads timeout quite often, and then CircleCI waits 10 minutes 35 | # until it aborts the job due to no output. CTest can do timeouts on its own, 36 | # but somehow the default is 10M seconds, which is quite a lot honestly. 37 | # Instead set the timeout to 15 seconds which should be enough even for very 38 | # heavy future benchmarks, and try two more times if it gets stuck. 39 | CORRADE_TEST_COLOR=ON ctest -V --timeout 15 --repeat after-timeout:3 40 | 41 | # Test install, after running the tests as for them it shouldn't be needed 42 | ninja install 43 | -------------------------------------------------------------------------------- /package/ci/appveyor-cache-reset.txt: -------------------------------------------------------------------------------- 1 | # Increase this number every time you want to reset AppVeyor cache. 2 | # http://help.appveyor.com/discussions/questions/1310-delete-cache 3 | 0 4 | -------------------------------------------------------------------------------- /package/ci/appveyor-rt.bat: -------------------------------------------------------------------------------- 1 | if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2017" call "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build/vcvarsall.bat" x64 || exit /b 2 | if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2015" call "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat" x64 || exit /b 3 | if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2017" set GENERATOR=Visual Studio 15 2017 4 | rem This is what should make the *native* corrade-rc getting found. Corrade 5 | rem should not cross-compile it on this platform, because then it'd get found 6 | rem instead of the native version with no way to distinguish the two, and all 7 | rem hell breaks loose. Thus also not passing CORRADE_RC_EXECUTABLE anywhere 8 | rem below to ensure this doesn't regress. 9 | set PATH=%APPVEYOR_BUILD_FOLDER%\deps-native\bin;%PATH% 10 | 11 | rem Build native corrade-rc 12 | mkdir build && cd build || exit /b 13 | cmake .. ^ 14 | -DCMAKE_BUILD_TYPE=Release ^ 15 | -DCMAKE_INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%/deps-native ^ 16 | -DCORRADE_WITH_INTERCONNECT=OFF ^ 17 | -DCORRADE_WITH_PLUGINMANAGER=OFF ^ 18 | -DCORRADE_WITH_TESTSUITE=OFF ^ 19 | -DCORRADE_WITH_UTILITY=OFF ^ 20 | -G Ninja || exit /b 21 | cmake --build . --target install || exit /b 22 | cd .. || exit /b 23 | 24 | rem Crosscompile. No tests because they take ages to build, each executable is 25 | rem a msix file, and they can't be reasonably run either. F this platform. 26 | mkdir build-rt && cd build-rt || exit /b 27 | cmake .. ^ 28 | -DCMAKE_BUILD_TYPE=Release ^ 29 | -DCMAKE_SYSTEM_NAME=WindowsStore ^ 30 | -DCMAKE_SYSTEM_VERSION=10.0 ^ 31 | -DCORRADE_BUILD_STATIC=ON ^ 32 | -G "%GENERATOR%" || exit /b 33 | cmake --build . --config Release -- /m /v:m || exit /b 34 | 35 | rem Test install 36 | cmake --build . --config Release --target install || exit /b 37 | -------------------------------------------------------------------------------- /package/ci/emscripten.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ev 3 | 4 | git submodule update --init 5 | 6 | # Crosscompile 7 | mkdir build-emscripten && cd build-emscripten 8 | cmake .. \ 9 | -DCMAKE_TOOLCHAIN_FILE="../toolchains/generic/Emscripten-wasm.cmake" \ 10 | -DCMAKE_BUILD_TYPE=Debug \ 11 | -DCMAKE_INSTALL_PREFIX=$HOME/deps \ 12 | -DCORRADE_BUILD_TESTS=ON \ 13 | $EXTRA_OPTS \ 14 | -G Ninja 15 | ninja $NINJA_JOBS 16 | 17 | # Test 18 | CORRADE_TEST_COLOR=ON ctest -V 19 | 20 | # Test install, after running the tests as for them it shouldn't be needed 21 | ninja install 22 | 23 | cd .. 24 | 25 | # Examples. This is, among other things, verifying sanity of FindCorrade.cmake 26 | # especially when it comes to finding the right corrade-rc. 27 | mkdir build-examples && cd build-examples 28 | cmake ../src/examples \ 29 | -DCMAKE_TOOLCHAIN_FILE="../toolchains/generic/Emscripten-wasm.cmake" \ 30 | -DCMAKE_BUILD_TYPE=Debug \ 31 | -DCMAKE_FIND_ROOT_PATH=$HOME/deps \ 32 | $EXTRA_OPTS \ 33 | -G Ninja 34 | ninja $NINJA_JOBS 35 | -------------------------------------------------------------------------------- /package/ci/ios-simulator.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ev 3 | 4 | git submodule update --init 5 | 6 | # Build native corrade-rc 7 | mkdir build && cd build 8 | cmake .. \ 9 | -DCMAKE_INSTALL_PREFIX=$HOME/deps-native \ 10 | -DCORRADE_WITH_INTERCONNECT=OFF \ 11 | -DCORRADE_WITH_PLUGINMANAGER=OFF \ 12 | -DCORRADE_WITH_TESTSUITE=OFF \ 13 | -DCORRADE_WITH_UTILITY=OFF \ 14 | -DCMAKE_BUILD_TYPE=Release \ 15 | -G Ninja 16 | ninja install 17 | cd .. 18 | 19 | # Crosscompile 20 | mkdir build-ios && cd build-ios 21 | cmake .. \ 22 | -DCMAKE_TOOLCHAIN_FILE=../toolchains/generic/iOS.cmake \ 23 | -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk \ 24 | -DCMAKE_OSX_ARCHITECTURES="x86_64" \ 25 | -DCORRADE_RC_EXECUTABLE=$HOME/deps-native/bin/corrade-rc \ 26 | -DCMAKE_INSTALL_PREFIX=$HOME/deps \ 27 | -DCORRADE_BUILD_STATIC=ON \ 28 | -DCORRADE_BUILD_TESTS=ON \ 29 | -DCORRADE_TESTSUITE_TARGET_XCTEST=ON \ 30 | -G Xcode 31 | set -o pipefail && cmake --build . --config Release -j$XCODE_JOBS | xcbeautify 32 | 33 | # TODO enable again once https://github.com/mosra/corrade/pull/176 is resolved 34 | #CORRADE_TEST_COLOR=ON ctest -V -C Release 35 | 36 | # Test install, after running the tests as for them it shouldn't be needed 37 | set -o pipefail && cmake --build . --config Release --target install -j$XCODE_JOBS | xcbeautify 38 | -------------------------------------------------------------------------------- /package/ci/unix-desktop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ev 3 | 4 | mkdir build && cd build 5 | # Not using CXXFLAGS in order to avoid affecting dependencies 6 | cmake .. \ 7 | -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \ 8 | -DCMAKE_INSTALL_PREFIX=$HOME/deps \ 9 | -DCMAKE_INSTALL_RPATH=$HOME/deps/lib \ 10 | -DCORRADE_BUILD_TESTS=ON \ 11 | -DCORRADE_BUILD_DEPRECATED=$BUILD_DEPRECATED \ 12 | -DCORRADE_BUILD_STATIC=$BUILD_STATIC \ 13 | -DCMAKE_BUILD_TYPE=$CONFIGURATION \ 14 | -G Ninja 15 | ninja $NINJA_JOBS 16 | ASAN_OPTIONS="color=always" LSAN_OPTIONS="color=always" TSAN_OPTIONS="color=always" CORRADE_TEST_COLOR=ON ctest -V 17 | 18 | # Test install, after running the tests as for them it shouldn't be needed 19 | ninja install 20 | 21 | cd .. 22 | 23 | # Examples 24 | mkdir build-examples && cd build-examples 25 | cmake ../src/examples \ 26 | -DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \ 27 | -DCMAKE_BUILD_TYPE=$CONFIGURATION \ 28 | -DCMAKE_PREFIX_PATH=$HOME/deps \ 29 | -G Ninja 30 | ninja 31 | -------------------------------------------------------------------------------- /package/conan/.gitignore: -------------------------------------------------------------------------------- 1 | test_package/build/* 2 | -------------------------------------------------------------------------------- /package/conan/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.5) 2 | project(cmake_wrapper) 3 | 4 | include(conanbuildinfo.cmake) 5 | conan_basic_setup() 6 | 7 | include(${CMAKE_SOURCE_DIR}/CMakeListsOriginal.txt) 8 | -------------------------------------------------------------------------------- /package/conan/test_package/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.5) 2 | project(test_package) 3 | 4 | set(CMAKE_VERBOSE_MAKEFILE TRUE) 5 | 6 | include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) 7 | conan_basic_setup() 8 | 9 | add_executable(${PROJECT_NAME} test_package.cpp) 10 | target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS}) 11 | 12 | set_target_properties(${PROJECT_NAME} 13 | PROPERTIES 14 | CXX_STANDARD 11 15 | CXX_STANDARD_REQUIRED ON 16 | CXX_EXTENSIONS OFF 17 | ) 18 | -------------------------------------------------------------------------------- /package/conan/test_package/conanfile.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from conans import ConanFile, CMake 5 | import os 6 | 7 | 8 | class TestPackageConan(ConanFile): 9 | settings = "os", "compiler", "build_type", "arch" 10 | generators = "cmake" 11 | 12 | def build(self): 13 | cmake = CMake(self) 14 | cmake.configure() 15 | cmake.build() 16 | 17 | def test(self): 18 | bin_path = os.path.join("bin", "test_package") 19 | self.run(bin_path, run_environment=True) 20 | -------------------------------------------------------------------------------- /package/conan/test_package/test_package.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() { 4 | Corrade::Utility::Debug{} << "Success"; 5 | } 6 | -------------------------------------------------------------------------------- /package/debian/.gitignore: -------------------------------------------------------------------------------- 1 | corrade-dev.debhelper.log 2 | corrade-dev.substvars 3 | corrade-dev/ 4 | corrade.debhelper.log 5 | corrade.postinst.debhelper 6 | corrade.postrm.debhelper 7 | corrade.substvars 8 | corrade/ 9 | files 10 | tmp/ 11 | -------------------------------------------------------------------------------- /package/debian/changelog: -------------------------------------------------------------------------------- 1 | corrade (2020.06) unstable; urgency=low 2 | 3 | * Version 2020.06 4 | 5 | -- Vladimír Vondruš Fri, 26 Jun 2020 20:54:25 +0200 6 | 7 | corrade (2019.10) unstable; urgency=low 8 | 9 | * Version 2019.10 10 | 11 | -- Vladimír Vondruš Thu, 24 Oct 2019 13:13:50 +0200 12 | 13 | corrade (2019.01) unstable; urgency=low 14 | 15 | * Version 2019.01 16 | 17 | -- Vladimír Vondruš Mon, 04 Feb 2019 17:18:34 +0100 18 | 19 | corrade (2018.10) unstable; urgency=low 20 | 21 | * Version 2018.10 22 | 23 | -- Vladimír Vondruš Wed, 24 Oct 2018 15:49:30 +0200 24 | 25 | corrade (2018.04) unstable; urgency=low 26 | 27 | * Version 2018.04 28 | 29 | -- Vladimír Vondruš Tue, 01 May 2018 23:45:00 +0200 30 | 31 | corrade (2018.02) unstable; urgency=low 32 | 33 | * Version 2018.02 34 | 35 | -- Vladimír Vondruš Fri, 16 Feb 2018 00:21:35 +0100 36 | 37 | corrade (2015.05) unstable; urgency=low 38 | 39 | * Version 2015.05 40 | 41 | -- Vladimír Vondruš Sat, 09 May 2015 10:57:44 +0200 42 | 43 | corrade (2014.06) unstable; urgency=low 44 | 45 | * Version 2014.06 46 | 47 | -- Vladimír Vondruš Mon, 30 Jun 2014 00:10:06 +0200 48 | 49 | corrade (2014.01) unstable; urgency=low 50 | 51 | * Version 2014.01 52 | 53 | -- Vladimír Vondruš Tue, 21 Jan 2014 16:14:33 +0100 54 | 55 | corrade (2013.10) unstable; urgency=low 56 | 57 | * Version 2013.10 58 | 59 | -- Vladimír Vondruš Wed, 30 Oct 2013 18:24:06 +0100 60 | 61 | corrade (2013.08) unstable; urgency=low 62 | 63 | * Version 2013.08 64 | 65 | -- Vladimír Vondruš Wed, 30 Oct 2013 08:40:36 +0100 66 | 67 | corrade (2012.02) unstable; urgency=low 68 | 69 | * Version 2012.02 70 | 71 | -- Vladimír Vondruš Wed, 08 Feb 2012 01:28:01 +0100 72 | -------------------------------------------------------------------------------- /package/debian/compat: -------------------------------------------------------------------------------- 1 | 9 2 | -------------------------------------------------------------------------------- /package/debian/control: -------------------------------------------------------------------------------- 1 | Source: corrade 2 | Priority: optional 3 | Maintainer: Vladimír Vondruš 4 | Build-Depends: debhelper (>= 9), cmake (>= 3.4) 5 | Standards-Version: 3.9.2 6 | Section: libs 7 | Homepage: https://magnum.graphics/corrade/ 8 | Vcs-Git: https://github.com/mosra/corrade.git 9 | Vcs-Browser: https://github.com/mosra/corrade 10 | 11 | Package: corrade-dev 12 | Section: libdevel 13 | Architecture: any 14 | Depends: corrade (= ${binary:Version}) 15 | Description: C++11/C++14 multiplatform utility library 16 | 17 | Package: corrade 18 | Section: libs 19 | Architecture: any 20 | Depends: ${shlibs:Depends}, ${misc:Depends} 21 | Description: C++11/C++14 multiplatform utility library 22 | -------------------------------------------------------------------------------- /package/debian/copyright: -------------------------------------------------------------------------------- 1 | Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | Upstream-Name: Corrade 3 | Upstream-Contact: Vladimír Vondruš 4 | Source: https://github.com/mosra/corrade 5 | 6 | Files: * 7 | Copyright: 2007-2025 Vladimír Vondruš 8 | License: Expat 9 | Permission is hereby granted, free of charge, to any person obtaining a 10 | copy of this software and associated documentation files (the "Software"), 11 | to deal in the Software without restriction, including without limitation 12 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 13 | and/or sell copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following conditions: 15 | . 16 | The above copyright notice and this permission notice shall be included 17 | in all copies or substantial portions of the Software. 18 | . 19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 22 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 24 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | DEALINGS IN THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /package/debian/corrade-dev.install: -------------------------------------------------------------------------------- 1 | usr/bin/* 2 | usr/include/Corrade/* 3 | usr/lib*/lib*.so 4 | usr/share/cmake* 5 | -------------------------------------------------------------------------------- /package/debian/corrade.install: -------------------------------------------------------------------------------- 1 | usr/lib*/lib*.so.* 2 | -------------------------------------------------------------------------------- /package/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | # For some crappy reason Ubuntu includes this flag by default when building deb 4 | # packages. This breaks signal/slot connections across *.sos in the 5 | # Interconnect library and as said on the links below, it has some noticeable 6 | # unintended/dangerous effects as well, so I'm just disabling it globally. See: 7 | # http://stackoverflow.com/questions/7216973/is-there-a-downside-to-using-bsymbolic-functions 8 | # https://software.intel.com/en-us/articles/performance-tools-for-software-developers-bsymbolic-can-cause-dangerous-side-effects 9 | export DEB_LDFLAGS_MAINT_STRIP = -Wl,-Bsymbolic-functions 10 | 11 | %: 12 | dh $@ --parallel 13 | 14 | override_dh_auto_configure: 15 | dh_auto_configure -- \ 16 | -DCMAKE_BUILD_TYPE=Release 17 | -------------------------------------------------------------------------------- /package/debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (native) 2 | -------------------------------------------------------------------------------- /package/gentoo/dev-libs/corrade/Manifest: -------------------------------------------------------------------------------- 1 | EBUILD corrade-9999.ebuild 621 SHA256 cb3bd59a8c8a42ada26fb9d04cd0283f136395e7570a31731f71b326700d4ba1 SHA512 075339cf021185b05dbe715c94750b362ec508ec45d0c4c0d163d377d6e159f0b2c74e282b6b1f3872a55137182fb5eb87e34fef4d9c19af1b005b2ac4bcbd8a WHIRLPOOL 75eef84d4336895d5638a3b822e8975ec6a68ffe8a2686542368aa06e7b7a1df595d61323e3c9d804b43e0dd79329a4058682d9e9125dd47adb5ff4638445c4c 2 | -------------------------------------------------------------------------------- /package/gentoo/dev-libs/corrade/corrade-9999.ebuild: -------------------------------------------------------------------------------- 1 | EAPI=5 2 | 3 | EGIT_REPO_URI="https://github.com/mosra/corrade.git" 4 | 5 | inherit cmake-utils git-r3 6 | 7 | DESCRIPTION="C++11 Multiplatform plugin management and utility library" 8 | HOMEPAGE="https://magnum.graphics/corrade/" 9 | 10 | LICENSE="MIT" 11 | SLOT="0" 12 | KEYWORDS="~amd64 ~x86" 13 | IUSE="" 14 | 15 | RDEPEND=" 16 | dev-util/cmake 17 | " 18 | DEPEND="${RDEPEND}" 19 | 20 | src_configure() { 21 | local mycmakeargs=( 22 | -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr" 23 | -DCMAKE_BUILD_TYPE=Release 24 | ) 25 | cmake-utils_src_configure 26 | } 27 | 28 | # kate: replace-tabs off; 29 | -------------------------------------------------------------------------------- /package/git/README.md: -------------------------------------------------------------------------------- 1 | This dir is used by `src/*/CMakeLists.txt` to run `git describe --match "v*"`. 2 | Because, if it would be run in that directory, on Windows the `--match "v*"` 3 | would get expanded to the `version.h.cmake` file there, causing Git to 4 | obviously not find any such tag. The reason is probably that on Windows the 5 | wildcard expansion is done on the application side and not by the shell, thus 6 | being performed even though CMake docs say `execute_process()` doesn't involve 7 | a shell. This directory is thus dedicated for that operation, *guaranteed* to 8 | never contain any file starting with `v` (or `V` for that matter because, 9 | again, HELLO WINDOWS). 10 | 11 | No matter what you do, DON'T put any files starting with `v` or `V` here, or 12 | hell breaks loose again. 13 | -------------------------------------------------------------------------------- /package/homebrew/corrade.rb: -------------------------------------------------------------------------------- 1 | class Corrade < Formula 2 | desc "C++11/C++14 multiplatform utility library" 3 | homepage "https://magnum.graphics/corrade/" 4 | url "https://github.com/mosra/corrade/archive/v2020.06.tar.gz" 5 | # wget https://github.com/mosra/corrade/archive/v2020.06.tar.gz -O - | sha256sum 6 | sha256 "2a62492ccc717422b72f2596a3e1a6a105b9574aa9467917f12d19ef3aab1341" 7 | head "https://github.com/mosra/corrade.git" 8 | 9 | depends_on "cmake" => :build 10 | 11 | def install 12 | # 2020.06 has CMake 3.5 as minimum required for backwards compatibility 13 | # purposes, but it works with any newer. CMake 4.0 removed compatibility 14 | # with it and suggests this as an override. 15 | # TODO remove once a new release is finally made 16 | extra_cmake_args = build.head? ? [] : ['-DCMAKE_POLICY_VERSION_MINIMUM=3.5'] 17 | 18 | system "mkdir build" 19 | cd "build" do 20 | system "cmake", 21 | *(std_cmake_args + extra_cmake_args), 22 | # Without this, ARM builds will try to look for dependencies in 23 | # /usr/local/lib and /usr/lib (which are the default locations) instead 24 | # of /opt/homebrew/lib which is dedicated for ARM binaries. Please 25 | # complain to Homebrew about this insane non-obvious filesystem layout. 26 | "-DCMAKE_INSTALL_NAME_DIR:STRING=#{lib}", 27 | ".." 28 | system "cmake", "--build", "." 29 | system "cmake", "--build", ".", "--target", "install" 30 | end 31 | end 32 | end 33 | -------------------------------------------------------------------------------- /package/msys/.gitattributes: -------------------------------------------------------------------------------- 1 | corrade/PKGBUILD text eol=lf 2 | PKGBUILD text eol=lf 3 | -------------------------------------------------------------------------------- /package/msys/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Author: williamjcm 2 | # Contributor: mosra 3 | # Based on the packages/archlinux/PKGBUILD file by mosra and the MSYS2/MinGW PKGBUILD templates 4 | 5 | _realname=corrade 6 | pkgbase=mingw-w64-${_realname} 7 | pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" 8 | pkgver=dev 9 | pkgrel=1 10 | pkgdesc="C++11/C++14 multiplatform utility library" 11 | arch=('any') 12 | url="https://magnum.graphics/corrade/" 13 | license=('MIT') 14 | makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja") 15 | options=(!strip) 16 | 17 | _rootdir=$startdir/../../ 18 | 19 | build() { 20 | mkdir -p "$_rootdir/build-${CARCH}" 21 | cd "$_rootdir/build-${CARCH}" 22 | 23 | MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ 24 | ${MINGW_PREFIX}/bin/cmake .. \ 25 | -G'Ninja' \ 26 | -DCMAKE_BUILD_TYPE=Debug \ 27 | -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} 28 | ninja 29 | } 30 | package() { 31 | cd "$_rootdir/build-${CARCH}" 32 | DESTDIR="${pkgdir}" ninja install 33 | } 34 | -------------------------------------------------------------------------------- /package/msys/corrade/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Author: williamjcm 2 | # Contributor: mosra 3 | # Based on the Corrade Arch Linux PKGBUILD maintained by xyproto and the MSYS2/MinGW PKGBUILD templates 4 | 5 | _realname=corrade 6 | pkgbase=mingw-w64-${_realname} 7 | pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" 8 | pkgver=2019.10 9 | pkgrel=1 10 | pkgdesc='C++11/C++14 multiplatform utility library' 11 | arch=('any') 12 | url='https://magnum.graphics/corrade/' 13 | license=('MIT') 14 | makedepends=("${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja" 'git') 15 | # The .tar.gz / .zip download contains symlinks, making tar and unzip on 16 | # Windows grumpy because dangling symlinks are created. Could be fixed by 17 | # manually extracting everything except symlinks, but that's hard to maintain. 18 | # Downloading a Git tag works. 19 | source=("${_realname}-${pkgver}"::"git+https://github.com/mosra/corrade.git#tag=v$pkgver") 20 | sha1sums=('SKIP') 21 | 22 | build() { 23 | mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH} 24 | 25 | declare -a extra_config 26 | if check_option "debug" "n"; then 27 | extra_config+=("-DCMAKE_BUILD_TYPE=Release") 28 | else 29 | extra_config+=("-DCMAKE_BUILD_TYPE=Debug") 30 | fi 31 | 32 | MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ 33 | ${MINGW_PREFIX}/bin/cmake \ 34 | -G'Ninja' \ 35 | -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ 36 | "${extra_config[@]}" \ 37 | ../${_realname}-${pkgver} 38 | ninja 39 | } 40 | 41 | package() { 42 | cd "${srcdir}"/build-${CARCH} 43 | DESTDIR="${pkgdir}" ninja install 44 | 45 | install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \ 46 | "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" 47 | } 48 | -------------------------------------------------------------------------------- /package/rpm/corrade.spec: -------------------------------------------------------------------------------- 1 | Name: corrade 2 | URL: https://magnum.graphics/corrade/ 3 | Version: 2020.06.1745.g8d23e7fc 4 | Release: 1 5 | Summary: C++11 multiplatform utility library 6 | License: MIT 7 | Source0: %{name}-%{version}.tar.gz 8 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot 9 | BuildRequires: cmake, git, gcc-c++ 10 | 11 | %description 12 | Provides debugging, portability, configuration, resource management and 13 | filesystem utilites and plugin management with dependency handling. 14 | 15 | %package devel 16 | Summary: Corrade development files 17 | Requires: %{name} = %{version} 18 | 19 | %description devel 20 | Headers and tools needed for developing with Corrade. 21 | 22 | %prep 23 | %setup -c -n %{name}-%{version} 24 | 25 | %build 26 | mkdir build && cd build 27 | cmake ../%{name}-%{version} \ 28 | -DCMAKE_BUILD_TYPE=Release \ 29 | -DCMAKE_INSTALL_PREFIX=%{_prefix} 30 | 31 | make %{?_smp_mflags} 32 | 33 | %install 34 | rm -rf $RPM_BUILD_ROOT 35 | cd build 36 | make DESTDIR=$RPM_BUILD_ROOT install 37 | strip $RPM_BUILD_ROOT/%{_libdir}/*.so* 38 | strip $RPM_BUILD_ROOT/%{_bindir}/* 39 | 40 | %post -p /sbin/ldconfig 41 | 42 | %postun -p /sbin/ldconfig 43 | 44 | %clean 45 | rm -rf $RPM_BUILD_ROOT 46 | 47 | %files 48 | %defattr(-,root,root,-) 49 | %{_libdir}/*.so* 50 | 51 | %doc %{name}-%{version}/COPYING 52 | 53 | %files devel 54 | %defattr(-,root,root,-) 55 | %{_bindir}/corrade-rc 56 | %{_includedir}/Corrade 57 | %{_datadir}/cmake/Corrade 58 | %{_datadir}/gdb/python/corrade/ 59 | 60 | %changelog 61 | - Initial release. 62 | -------------------------------------------------------------------------------- /src/Corrade/Containers/StringStl.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | /** @todo when StringStl.h stops getting included for backwards compatibility 28 | purposes, drop this file altogether and leave the definitons inline in the 29 | header */ 30 | 31 | #include "Corrade/configure.h" 32 | #ifndef CORRADE_BUILD_DEPRECATED 33 | #error This file is meant to be built only when CORRADE_BUILD_DEPRECATED is enabled 34 | #endif 35 | 36 | /* Make the definitions non-inline to compile them as part of the library */ 37 | #define CORRADE_STRING_STL_INLINE 38 | 39 | #include "StringStl.h" 40 | -------------------------------------------------------------------------------- /src/Corrade/Containers/Test/configure.h.cmake: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #define CONTAINERS_TEST_DIR "${CONTAINERS_TEST_DIR}" 28 | 29 | // kate: hl c++ 30 | -------------------------------------------------------------------------------- /src/Corrade/Containers/iterableHelpers.h: -------------------------------------------------------------------------------- 1 | #ifndef Corrade_Containers_iterableHelpers_h 2 | #define Corrade_Containers_iterableHelpers_h 3 | /* 4 | This file is part of Corrade. 5 | 6 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 7 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 8 | Vladimír Vondruš 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a 11 | copy of this software and associated documentation files (the "Software"), 12 | to deal in the Software without restriction, including without limitation 13 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 14 | and/or sell copies of the Software, and to permit persons to whom the 15 | Software is furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included 18 | in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 23 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 26 | DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | namespace Corrade { namespace Containers { namespace Implementation { 30 | 31 | #ifndef DOXYGEN_GENERATING_OUTPUT 32 | /* Used internally to make ArrayView overloads picked over 33 | StridedArrayView. I hoped I wouldn't need this messy hack anywhere else 34 | than in the Cpu library but here we go. */ 35 | template struct IterableOverloadPriority: IterableOverloadPriority {}; 36 | template<> struct IterableOverloadPriority<0> {}; 37 | #endif 38 | 39 | }}} 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /src/Corrade/Interconnect/Interconnect.h: -------------------------------------------------------------------------------- 1 | #ifndef Corrade_Interconnect_Interconnect_h 2 | #define Corrade_Interconnect_Interconnect_h 3 | /* 4 | This file is part of Corrade. 5 | 6 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 7 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 8 | Vladimír Vondruš 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a 11 | copy of this software and associated documentation files (the "Software"), 12 | to deal in the Software without restriction, including without limitation 13 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 14 | and/or sell copies of the Software, and to permit persons to whom the 15 | Software is furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included 18 | in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 23 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 26 | DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | /** @file 30 | * @brief Forward declarations for the @ref Corrade::Interconnect namespace 31 | */ 32 | 33 | #include 34 | 35 | #include "Corrade/configure.h" 36 | 37 | #ifndef DOXYGEN_GENERATING_OUTPUT 38 | namespace Corrade { namespace Interconnect { 39 | 40 | class Connection; 41 | class Emitter; 42 | class Receiver; 43 | 44 | namespace Implementation { 45 | struct ConnectionData; 46 | class SignalData; 47 | } 48 | 49 | template class StateMachine; 50 | 51 | }} 52 | #endif 53 | 54 | #endif 55 | -------------------------------------------------------------------------------- /src/Corrade/Interconnect/Test/EmitterLibrary.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "EmitterLibrary.h" 28 | 29 | namespace Corrade { namespace Interconnect { namespace Test { 30 | 31 | void EmitterLibrary::fireInlineThroughAFunction() { 32 | fireInline(); 33 | } 34 | 35 | void EmitterLibrary::fireNonInlineThroughAFunction() { 36 | fireNonInline(); 37 | } 38 | 39 | auto EmitterLibrary::fireNonInline() -> Signal { 40 | return emit(&EmitterLibrary::fireNonInline); 41 | } 42 | 43 | }}} 44 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Implementation/configure.h.cmake: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | /* A StringView literal, so it expects the Literals namespace to be used at the 28 | point of use */ 29 | #define PLUGIN_FILENAME_SUFFIX "${CMAKE_SHARED_MODULE_SUFFIX}"_s 30 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/PluginManager.h: -------------------------------------------------------------------------------- 1 | #ifndef Corrade_PluginManager_PluginManager_h 2 | #define Corrade_PluginManager_PluginManager_h 3 | /* 4 | This file is part of Corrade. 5 | 6 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 7 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 8 | Vladimír Vondruš 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a 11 | copy of this software and associated documentation files (the "Software"), 12 | to deal in the Software without restriction, including without limitation 13 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 14 | and/or sell copies of the Software, and to permit persons to whom the 15 | Software is furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included 18 | in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 23 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 26 | DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | /** @file 30 | * @brief Forward declarations for the @ref Corrade::PluginManager namespace 31 | */ 32 | 33 | #include "Corrade/configure.h" 34 | 35 | #ifndef DOXYGEN_GENERATING_OUTPUT 36 | namespace Corrade { namespace PluginManager { 37 | 38 | enum class LoadState: unsigned short; 39 | /* LoadStates won't be used without LoadState definition */ 40 | 41 | class AbstractManager; 42 | template class AbstractManagingPlugin; 43 | class AbstractPlugin; 44 | template class Manager; 45 | class PluginMetadata; 46 | 47 | }} 48 | #endif 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/animals/Bulldog.conf: -------------------------------------------------------------------------------- 1 | depends=JustSomeMammal 2 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/animals/Canary.conf: -------------------------------------------------------------------------------- 1 | provides=JustSomeBird 2 | 3 | [data] 4 | description=I'm allergic to canaries! 5 | 6 | [configuration] 7 | name=Achoo 8 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/animals/Canary.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "../AbstractAnimal.h" 28 | 29 | namespace Corrade { namespace PluginManager { namespace Test { 30 | 31 | class Canary: public AbstractAnimal { 32 | public: 33 | explicit Canary(); 34 | explicit Canary(AbstractManager& manager, const Containers::StringView& plugin); 35 | 36 | Containers::String name() override; 37 | int legCount() override; 38 | bool hasTail() override; 39 | }; 40 | 41 | }}} 42 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/animals/Dird.conf: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/animals/Dog.conf: -------------------------------------------------------------------------------- 1 | # This is shared with PitBull to support the Test::setPreferredPlugins() case 2 | provides=JustSomeMammal 3 | 4 | # This is unique so we have unique mapping for 5 | # Test::dynamicPluginFilePathConflictsWithLoadedPlugin() 6 | provides=AGoodBoy 7 | 8 | [data] 9 | description=A simple dog plugin. 10 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/animals/Dog.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Dog.h" 28 | 29 | #include "Corrade/Containers/String.h" 30 | #include "Corrade/PluginManager/AbstractManager.h" 31 | #include "Corrade/Utility/Debug.h" 32 | 33 | namespace Corrade { namespace PluginManager { namespace Test { 34 | 35 | Containers::String Dog::name() { return "Doug"; } 36 | bool Dog::hasTail() { return true; } 37 | int Dog::legCount() { return 4; } 38 | 39 | }}} 40 | 41 | CORRADE_PLUGIN_REGISTER(Dog, Corrade::PluginManager::Test::Dog, 42 | "cz.mosra.corrade.PluginManager.Test.AbstractAnimal/1.0") 43 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/animals/PitBull.conf: -------------------------------------------------------------------------------- 1 | depends=Dog 2 | 3 | # This is shared with Dog to support the Test::setPreferredPlugins() case 4 | provides=JustSomeMammal 5 | 6 | # This is needed for Test::setPreferredPluginsOverridePrimaryPlugin() 7 | provides=Dog 8 | 9 | [data] 10 | description=I'M ANGRY!! 11 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/animals/PitBull.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Dog.h" 28 | 29 | #include "Corrade/Containers/String.h" 30 | #include "Corrade/PluginManager/AbstractManager.h" 31 | 32 | namespace Corrade { namespace PluginManager { namespace Test { 33 | 34 | class PitBull: public Dog { 35 | public: 36 | explicit PitBull(AbstractManager& manager, const Containers::StringView& plugin): Dog{manager, plugin} {} 37 | 38 | Containers::String name() override { return "Rodriguez"; } 39 | }; 40 | 41 | }}} 42 | 43 | CORRADE_PLUGIN_REGISTER(PitBull, Corrade::PluginManager::Test::PitBull, 44 | "cz.mosra.corrade.PluginManager.Test.AbstractAnimal/1.0") 45 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/animals/Snail.conf: -------------------------------------------------------------------------------- 1 | depends=SomethingThatDoesNotExist 2 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/animals/Snail.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | /* This file is purposely empty to trigger an error on load. */ 28 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/configure.h.cmake: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #cmakedefine PLUGINS_DIR "${PLUGINS_DIR}" 28 | #cmakedefine DOG_PLUGIN_FILENAME "${DOG_PLUGIN_FILENAME}" 29 | #cmakedefine DOGGO_PLUGIN_FILENAME "${DOGGO_PLUGIN_FILENAME}" 30 | #cmakedefine PITBULL_PLUGIN_FILENAME "${PITBULL_PLUGIN_FILENAME}" 31 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/custom-suffix/CustomSuffix.modconf: -------------------------------------------------------------------------------- 1 | [configuration] 2 | greeting=Hiya! 3 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/custom-suffix/CustomSuffixStatic.modconf: -------------------------------------------------------------------------------- 1 | [configuration] 2 | greeting=Hiya but static! 3 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/deletable/Deletable.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/PluginManager/Test/deletable/Deletable.conf -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/deletable/Deletable.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "../AbstractDeletable.h" 28 | 29 | #include "Corrade/PluginManager/AbstractManager.h" 30 | 31 | namespace Corrade { namespace PluginManager { namespace Test { 32 | 33 | class Deletable: public AbstractDeletable { 34 | public: 35 | explicit Deletable(AbstractManager& manager, const Containers::StringView& plugin): AbstractDeletable{manager, plugin} {} 36 | 37 | ~Deletable() { *_var = 0xDEADBEEF; } 38 | }; 39 | 40 | }}} 41 | 42 | CORRADE_PLUGIN_REGISTER(Deletable, Corrade::PluginManager::Test::Deletable, 43 | "cz.mosra.corrade.PluginManager.Test.AbstractDeletable/1.0") 44 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/doggo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # 2 | # This file is part of Corrade. 3 | # 4 | # Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | # 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | # Vladimír Vondruš 7 | # 8 | # Permission is hereby granted, free of charge, to any person obtaining a 9 | # copy of this software and associated documentation files (the "Software"), 10 | # to deal in the Software without restriction, including without limitation 11 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | # and/or sell copies of the Software, and to permit persons to whom the 13 | # Software is furnished to do so, subject to the following conditions: 14 | # 15 | # The above copyright notice and this permission notice shall be included 16 | # in all copies or substantial portions of the Software. 17 | # 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | # DEALINGS IN THE SOFTWARE. 25 | # 26 | 27 | corrade_add_plugin(Doggo ${CMAKE_CURRENT_BINARY_DIR} "" Doggo.conf Doggo.cpp) 28 | set_target_properties(Doggo Doggo-metadata PROPERTIES 29 | RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/doggo 30 | LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/doggo 31 | ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/doggo) 32 | 33 | # DLLs don't allow unresolved symbols; on static builds there's no dynamic 34 | # plugin manager library to refer to so it has to be linked as well 35 | if(CORRADE_BUILD_STATIC OR CORRADE_TARGET_WINDOWS) 36 | target_link_libraries(Doggo PRIVATE CorradePluginManagerTestLib) 37 | endif() 38 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/doggo/Doggo.conf: -------------------------------------------------------------------------------- 1 | provides=Dog 2 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/food/HotDog.conf: -------------------------------------------------------------------------------- 1 | depends=Dog 2 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/food/HotDogWithSnail.conf: -------------------------------------------------------------------------------- 1 | depends=Dog 2 | depends=Snail 3 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/food/OldBread.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/PluginManager/Test/food/OldBread.conf -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/food/RottenTomato.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/PluginManager/Test/food/RottenTomato.conf -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/food/RottenTomato.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "../AbstractFood.h" 28 | 29 | #include "Corrade/PluginManager/AbstractManager.h" 30 | 31 | namespace Corrade { namespace PluginManager { namespace Test { 32 | 33 | class RottenTomato: public AbstractFood { 34 | public: 35 | explicit RottenTomato(AbstractManager& manager, const Containers::StringView& plugin): AbstractFood{manager, plugin} {} 36 | 37 | bool isTasty() { return false; } 38 | int weight() { return 150; } 39 | }; 40 | 41 | }}} 42 | 43 | /* Wrong plugin interface */ 44 | CORRADE_PLUGIN_REGISTER(RottenTomato, Corrade::PluginManager::Test::RottenTomato, 45 | "cz.mosra.corrade.PluginManager.Test.AbstractFood/0.1") 46 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/generated-metadata/GeneratedMetadataDynamic.conf: -------------------------------------------------------------------------------- 1 | [configuration] 2 | generated="${GeneratedMetadataDynamicValue}" 3 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/generated-metadata/GeneratedMetadataDynamic.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "../AbstractGeneratedMetadata.h" 28 | 29 | #include "Corrade/PluginManager/AbstractManager.h" 30 | 31 | namespace Corrade { namespace PluginManager { namespace Test { 32 | 33 | struct GeneratedMetadataDynamic: AbstractGeneratedMetadata { 34 | explicit GeneratedMetadataDynamic(AbstractManager& manager, const Containers::StringView& plugin): AbstractGeneratedMetadata{manager, plugin} {} 35 | }; 36 | 37 | }}} 38 | 39 | CORRADE_PLUGIN_REGISTER(GeneratedMetadataDynamic, Corrade::PluginManager::Test::GeneratedMetadataDynamic, "cz.mosra.corrade.PluginManager.Test.AbstractGeneratedMetadata/1.0") 40 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/generated-metadata/GeneratedMetadataStatic.conf: -------------------------------------------------------------------------------- 1 | [configuration] 2 | generated="${GeneratedMetadataStaticValue}" 3 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/generated-metadata/GeneratedMetadataStatic.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "../AbstractGeneratedMetadata.h" 28 | 29 | #include "Corrade/PluginManager/AbstractManager.h" 30 | 31 | namespace Corrade { namespace PluginManager { namespace Test { 32 | 33 | struct GeneratedMetadataStatic: AbstractGeneratedMetadata { 34 | explicit GeneratedMetadataStatic(AbstractManager& manager, const Containers::StringView& plugin): AbstractGeneratedMetadata{manager, plugin} {} 35 | }; 36 | 37 | }}} 38 | 39 | CORRADE_PLUGIN_REGISTER(GeneratedMetadataStatic, Corrade::PluginManager::Test::GeneratedMetadataStatic, "cz.mosra.corrade.PluginManager.Test.AbstractGeneratedMetadata/1.0") 40 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/init-fini/InitFiniDynamic.conf: -------------------------------------------------------------------------------- 1 | depends=InitFiniStatic 2 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/init-fini/InitFiniStatic.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/PluginManager/Test/init-fini/InitFiniStatic.conf -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/init-fini/InitFiniStatic.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "InitFiniStatic.h" 28 | 29 | #include "Corrade/PluginManager/AbstractManager.h" 30 | #include "Corrade/Utility/Debug.h" 31 | 32 | namespace Corrade { namespace PluginManager { namespace Test { 33 | 34 | void InitFiniStatic::initialize() { Utility::Debug{} << "Static plugin initialized"; } 35 | void InitFiniStatic::finalize() { Utility::Debug{} << "Static plugin finalized"; } 36 | 37 | }}} 38 | 39 | CORRADE_PLUGIN_REGISTER(InitFiniStatic, Corrade::PluginManager::Test::InitFiniStatic, "") 40 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/init-fini/InitFiniStatic.h: -------------------------------------------------------------------------------- 1 | #ifndef Corrade_PluginManager_Test_InitFiniStatic_h 2 | #define Corrade_PluginManager_Test_InitFiniStatic_h 3 | /* 4 | This file is part of Corrade. 5 | 6 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 7 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 8 | Vladimír Vondruš 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a 11 | copy of this software and associated documentation files (the "Software"), 12 | to deal in the Software without restriction, including without limitation 13 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 14 | and/or sell copies of the Software, and to permit persons to whom the 15 | Software is furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included 18 | in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 23 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 26 | DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | #include "InitFini.h" 30 | 31 | namespace Corrade { namespace PluginManager { namespace Test { 32 | 33 | struct InitFiniStatic: InitFini { 34 | static void initialize(); 35 | static void finalize(); 36 | 37 | explicit InitFiniStatic(AbstractManager& manager, const Containers::StringView& plugin): InitFini{manager, plugin} {} 38 | }; 39 | 40 | }}} 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/wrong-metadata/WrongMetadata.conf: -------------------------------------------------------------------------------- 1 | Hglllmmh. 2 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/wrong-metadata/WrongMetadata.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "WrongMetadata.h" 28 | 29 | #include "Corrade/PluginManager/AbstractManager.h" 30 | 31 | CORRADE_PLUGIN_REGISTER(WrongMetadata, Corrade::PluginManager::Test::WrongMetadata, "") 32 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/wrong/MissingLibraryDependencyLibrary.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Corrade/Utility/VisibilityMacros.h" 28 | 29 | CORRADE_VISIBILITY_EXPORT const char* greetFromALibrary(); 30 | CORRADE_VISIBILITY_EXPORT const char* greetFromALibrary() { 31 | return "Hello!"; 32 | } 33 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/wrong/NoPluginFinalizer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Corrade/PluginManager/AbstractManager.h" 28 | 29 | extern "C" CORRADE_PLUGIN_EXPORT int pluginVersion(); 30 | extern "C" CORRADE_PLUGIN_EXPORT int pluginVersion() { return CORRADE_PLUGIN_VERSION; } 31 | 32 | extern "C" CORRADE_PLUGIN_EXPORT const char* pluginInterface(); 33 | extern "C" CORRADE_PLUGIN_EXPORT const char* pluginInterface() { return ""; } 34 | 35 | extern "C" CORRADE_PLUGIN_EXPORT void pluginInitializer(); 36 | extern "C" CORRADE_PLUGIN_EXPORT void pluginInitializer() {} 37 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/wrong/NoPluginInitializer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Corrade/PluginManager/AbstractManager.h" 28 | 29 | extern "C" CORRADE_PLUGIN_EXPORT int pluginVersion(); 30 | extern "C" CORRADE_PLUGIN_EXPORT int pluginVersion() { return CORRADE_PLUGIN_VERSION; } 31 | 32 | extern "C" CORRADE_PLUGIN_EXPORT const char* pluginInterface(); 33 | extern "C" CORRADE_PLUGIN_EXPORT const char* pluginInterface() { return ""; } 34 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/wrong/NoPluginInstancer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Corrade/PluginManager/AbstractManager.h" 28 | 29 | extern "C" CORRADE_PLUGIN_EXPORT int pluginVersion(); 30 | extern "C" CORRADE_PLUGIN_EXPORT int pluginVersion() { return CORRADE_PLUGIN_VERSION; } 31 | 32 | extern "C" CORRADE_PLUGIN_EXPORT const char* pluginInterface(); 33 | extern "C" CORRADE_PLUGIN_EXPORT const char* pluginInterface() { return ""; } 34 | 35 | extern "C" CORRADE_PLUGIN_EXPORT void pluginInitializer(); 36 | extern "C" CORRADE_PLUGIN_EXPORT void pluginInitializer() {} 37 | 38 | extern "C" CORRADE_PLUGIN_EXPORT void pluginFinalizer(); 39 | extern "C" CORRADE_PLUGIN_EXPORT void pluginFinalizer() {} 40 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/wrong/NoPluginInterface.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Corrade/PluginManager/AbstractManager.h" 28 | 29 | extern "C" CORRADE_PLUGIN_EXPORT int pluginVersion(); 30 | extern "C" CORRADE_PLUGIN_EXPORT int pluginVersion() { return CORRADE_PLUGIN_VERSION; } 31 | -------------------------------------------------------------------------------- /src/Corrade/PluginManager/Test/wrong/NoPluginVersion.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | -------------------------------------------------------------------------------- /src/Corrade/Test/configure.h.cmake: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #if ${CORRADE_TARGET_GCC}0 28 | #define CMAKE_CORRADE_TARGET_GCC 29 | #endif 30 | 31 | #if ${CORRADE_TARGET_CLANG}0 32 | #define CMAKE_CORRADE_TARGET_CLANG 33 | #endif 34 | 35 | #if ${CORRADE_TARGET_CLANG_CL}0 36 | #define CMAKE_CORRADE_TARGET_CLANG_CL 37 | #endif 38 | 39 | #if ${CORRADE_TARGET_APPLE_CLANG}0 40 | #define CMAKE_CORRADE_TARGET_APPLE_CLANG 41 | #endif 42 | 43 | #if ${CORRADE_TARGET_MSVC}0 44 | #define CMAKE_CORRADE_TARGET_MSVC 45 | #endif 46 | 47 | #if ${CORRADE_TARGET_MINGW}0 48 | #define CMAKE_CORRADE_TARGET_MINGW 49 | #endif 50 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Compare/Test/FileTestFiles/.kateconfig: -------------------------------------------------------------------------------- 1 | kate: newline-at-eof off; 2 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Compare/Test/FileTestFiles/base.txt: -------------------------------------------------------------------------------- 1 | Hello World! -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Compare/Test/FileTestFiles/different.txt: -------------------------------------------------------------------------------- 1 | Hello world? -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Compare/Test/FileTestFiles/empty.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/TestSuite/Compare/Test/FileTestFiles/empty.txt -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Compare/Test/FileTestFiles/hýždě.txt: -------------------------------------------------------------------------------- 1 | Hello World! -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Compare/Test/FileTestFiles/smaller.txt: -------------------------------------------------------------------------------- 1 | Hello W -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Compare/Test/configure.h.cmake: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #define FILETEST_DIR "${FILETEST_DIR}" 28 | #define FILETEST_SAVE_DIR "${FILETEST_SAVE_DIR}" 29 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/BundledFilesTestFiles/.gitattributes: -------------------------------------------------------------------------------- 1 | a.txt text eol=lf 2 | b.txt text eol=lf 3 | c.txt text eol=lf 4 | d.txt text eol=lf 5 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/BundledFilesTestFiles/a.txt: -------------------------------------------------------------------------------- 1 | relative 2 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/BundledFilesTestFiles/b.txt: -------------------------------------------------------------------------------- 1 | dotdot 2 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/BundledFilesTestFiles/c.txt: -------------------------------------------------------------------------------- 1 | absolute 2 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/BundledFilesTestFiles/d.txt: -------------------------------------------------------------------------------- 1 | absolute 2 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/FailingTest.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "Corrade/TestSuite/Tester.h" 28 | 29 | namespace Corrade { namespace TestSuite { namespace Test { namespace { 30 | 31 | struct FailingTest: TestSuite::Tester { 32 | explicit FailingTest(); 33 | 34 | void fail(); 35 | }; 36 | 37 | FailingTest::FailingTest() { 38 | addTests({&FailingTest::fail}); 39 | } 40 | 41 | void FailingTest::fail() { 42 | Debug{} << "This test case is expected to fail. It tests that the error code is properly" 43 | << Debug::newline << "propagated to the console."; 44 | 45 | CORRADE_VERIFY(false); 46 | } 47 | 48 | }}}} 49 | 50 | CORRADE_TEST_MAIN(Corrade::TestSuite::Test::FailingTest) 51 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TestCaseDescriptionSourceLocationTestFiles/noSupport.txt: -------------------------------------------------------------------------------- 1 | Starting TestCaseDescriptionSourceLocationTest::Test with 7 test cases... 2 | OK [1] test(three) 3 | FAIL [2] test(five) at here.cpp:77 4 | This message should have data location info 5 | OK [3] test(seventy) 6 | WARN [4] somethingElse() at here.cpp:81 7 | This message shouldn't have any stale info about data location 8 | INFO [5] resetWithoutLine(three) at here.cpp:89 9 | This message has the data location info 10 | INFO [6] resetWithoutLine(five) at here.cpp:89 11 | This message has the data location info 12 | FAIL [6] resetWithoutLine(five) at here.cpp:95 13 | This message shouldn't have data location info anymore 14 | INFO [7] resetWithoutLine(seventy) at here.cpp:89 15 | This message has the data location info 16 | Finished TestCaseDescriptionSourceLocationTest::Test with 2 errors out of 1 checks. 17 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TestCaseDescriptionSourceLocationTestFiles/test.txt: -------------------------------------------------------------------------------- 1 | Starting TestCaseDescriptionSourceLocationTest::Test with 7 test cases... 2 | OK [1] test(three) 3 | FAIL [2] test(five) at here.cpp:77 with data at here.cpp:59 4 | This message should have data location info 5 | OK [3] test(seventy) 6 | WARN [4] somethingElse() at here.cpp:81 7 | This message shouldn't have any stale info about data location 8 | INFO [5] resetWithoutLine(three) at here.cpp:89 with data at here.cpp:58 9 | This message has the data location info 10 | INFO [6] resetWithoutLine(five) at here.cpp:89 with data at here.cpp:59 11 | This message has the data location info 12 | FAIL [6] resetWithoutLine(five) at here.cpp:95 13 | This message shouldn't have data location info anymore 14 | INFO [7] resetWithoutLine(seventy) at here.cpp:89 with data at here.cpp:60 15 | This message has the data location info 16 | Finished TestCaseDescriptionSourceLocationTest::Test with 2 errors out of 1 checks. 17 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/.gitattributes: -------------------------------------------------------------------------------- 1 | *.txt text eol=lf 2 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/abortOnFail.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 4 test cases... 2 | ? [01] () 3 | OK [02] trueExpression() 4 | FAIL [03] falseExpression() at here.cpp:322 5 | Expression 5 != 5 failed. 6 | Aborted TesterTest::Test after first failure out of 2 checks so far. 1 test cases didn't contain any checks! 7 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/abortOnFailSkip.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 4 test cases... 2 | SKIP [28] skip() 3 | This testcase is skipped. 4 | OK [02] trueExpression() 5 | FAIL [03] falseExpression() at here.cpp:322 6 | Expression 5 != 5 failed. 7 | Aborted TesterTest::Test after first failure out of 2 checks so far. 8 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkCpuClock.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 2 test cases... 2 | BENCH [57] 0.00 ± 0.00 ns benchmarkDefault()@9x4000000000 (CPU time) 3 | BENCH [59] 348.36 kB benchmarkOnce()@1x1 4 | Finished TesterTest::Test with 0 errors out of 0 checks. 5 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkCpuCycles.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 2 test cases... 2 | BENCH [57] 0.00 ± 0.00 C benchmarkDefault()@9x4000000000 (CPU cycles) 3 | BENCH [59] 348.36 kB benchmarkOnce()@1x1 4 | Finished TesterTest::Test with 0 errors out of 0 checks. 5 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkCpuScalingWarning.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 2 test cases... 2 | WARN CPU powersave scaling detected, benchmark measurements may be noisy. 3 | BENCH [57] 0.00 ± 0.00 ns benchmarkDefault()@9x4000000000 (wall time) 4 | BENCH [59] 348.36 kB benchmarkOnce()@1x1 5 | Finished TesterTest::Test with 0 errors out of 0 checks. 6 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkCpuScalingWarningVerbose.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 2 test cases... 2 | WARN CPU powersave scaling detected, benchmark measurements may be noisy. Use 3 | sudo cpupower frequency-set --governor performance 4 | to get more stable results. 5 | BENCH [57] 0.00 ± 0.00 ns benchmarkDefault()@9x4000000000 (wall time) 6 | BENCH [59] 348.36 kB benchmarkOnce()@1x1 7 | Finished TesterTest::Test with 0 errors out of 0 checks. 8 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkCpuScalingWarningVerboseAndroid.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 2 test cases... 2 | WARN CPU powersave scaling detected, benchmark measurements may be noisy. Use 3 | echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor 4 | on a rooted device to get more stable results. 5 | BENCH [57] 0.00 ± 0.00 ns benchmarkDefault()@9x4000000000 (wall time) 6 | BENCH [59] 348.36 kB benchmarkOnce()@1x1 7 | Finished TesterTest::Test with 0 errors out of 0 checks. 8 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkDebugBuildNote.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 2 test cases... 2 | INFO Benchmarking a debug build. 3 | BENCH [57] 0.00 ± 0.00 ns benchmarkDefault()@9x4000000000 (wall time) 4 | BENCH [59] 348.36 kB benchmarkOnce()@1x1 5 | Finished TesterTest::Test with 0 errors out of 0 checks. 6 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkDiscardAll.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 2 test cases... 2 | BENCH [57] 0.00 ns benchmarkDefault()@1x4000000000 (wall time) 3 | BENCH [59] 348.36 kB benchmarkOnce()@1x1 4 | Finished TesterTest::Test with 0 errors out of 0 checks. 5 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/benchmarkWallClock.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 2 test cases... 2 | BENCH [57] 0.00 ± 0.00 ns benchmarkDefault()@9x4000000000 (wall time) 3 | BENCH [59] 348.36 kB benchmarkOnce()@1x1 4 | Finished TesterTest::Test with 0 errors out of 0 checks. 5 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/compareMessageFailed.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | FAIL [17] compareMessage() at here.cpp:402 3 | Files "a.txt" and "b.txt" are not the same, actual ABC but expected abc 4 | Finished TesterTest::Test with 1 errors out of 1 checks. 5 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/compareMessageVerboseDisabled.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | OK [17] compareMessage() 3 | Finished TesterTest::Test with 0 errors out of 1 checks. 4 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/compareMessageVerboseEnabled.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | INFO [17] compareMessage() at here.cpp:402 3 | This is a verbose note when comparing "a.txt" and "b.txt" 4 | Finished TesterTest::Test with 0 errors out of 1 checks. 5 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/compareMessageXfail.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | XFAIL [17] compareMessage() at here.cpp:402 3 | Welp. "a.txt" and "b.txt" failed the comparison. 4 | Finished TesterTest::Test with 0 errors out of 1 checks. 5 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/cpu-governor-performance.txt: -------------------------------------------------------------------------------- 1 | performance 2 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/cpu-governor-powersave.txt: -------------------------------------------------------------------------------- 1 | powersave 2 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/noCatch.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/noXfail.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 2 test cases... 2 | FAIL [06] expectFail() at here.cpp:339 3 | Values 2 + 2 and 5 are not the same, actual is 4 | 4 5 | but expected 6 | 5 7 | FAIL [26] failIfExpected() at here.cpp:460 8 | The value 7 is higher than 5 9 | Finished TesterTest::Test with 2 errors out of 1 checks. 10 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/repeatAll.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 4 test cases... 2 | 0 3 | 1 4 | 2 5 | 3 6 | 4 7 | OK [49] repeatedTest()@5 8 | OK [04] equal() 9 | 0 10 | 1 11 | 2 12 | 3 13 | 4 14 | OK [49] repeatedTest()@5 15 | OK [04] equal() 16 | Finished TesterTest::Test with 0 errors out of 12 checks. 17 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/repeatEvery.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 2 test cases... 2 | 0 3 | 1 4 | 2 5 | 3 6 | 4 7 | 5 8 | 6 9 | 7 10 | 8 11 | 9 12 | OK [49] repeatedTest()@10 13 | OK [04] equal()@2 14 | Finished TesterTest::Test with 0 errors out of 12 checks. 15 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticAbortOnFail.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 3 test cases... 2 | ? [01] () 3 | FAIL [18] compareSaveDiagnostic() at here.cpp:413 4 | Files "a.txt" and "b.txt" are not the same, actual ABC but expected abc 5 | SAVED [18] compareSaveDiagnostic() -> /some/path/b.txt 6 | Aborted TesterTest::Test after first failure out of 1 checks so far. 1 checks saved diagnostic files. 1 test cases didn't contain any checks! 7 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticFailedDisabled.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | FAIL [18] compareSaveDiagnostic() at here.cpp:413 3 | Files "a.txt" and "b.txt" are not the same, actual ABC but expected abc 4 | Finished TesterTest::Test with 1 errors out of 1 checks. 1 failed checks are able to save diagnostic files, enable -S / --save-diagnostic to get them. 5 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticFailedEnabled.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | FAIL [18] compareSaveDiagnostic() at here.cpp:413 3 | Files "a.txt" and "b.txt" are not the same, actual ABC but expected abc 4 | SAVED [18] compareSaveDiagnostic() -> /some/path/b.txt 5 | Finished TesterTest::Test with 1 errors out of 1 checks. 1 checks saved diagnostic files. 6 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticSucceededDisabled.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | OK [18] compareSaveDiagnostic() 3 | Finished TesterTest::Test with 0 errors out of 1 checks. 4 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticSucceededEnabled.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | SAVED [18] compareSaveDiagnostic() -> /some/path/b.txt 3 | Finished TesterTest::Test with 0 errors out of 1 checks. 1 checks saved diagnostic files. 4 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticVerboseDisabled.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | OK [18] compareSaveDiagnostic() 3 | Finished TesterTest::Test with 0 errors out of 1 checks. 4 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticVerboseEnabled.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | SAVED [18] compareSaveDiagnostic() -> /some/path/b.verbose.txt 3 | Finished TesterTest::Test with 0 errors out of 1 checks. 1 checks saved diagnostic files. 4 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticXfail.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | XFAIL [18] compareSaveDiagnostic() at here.cpp:413 3 | Welp. "a.txt" and "b.txt" failed the comparison. 4 | Finished TesterTest::Test with 0 errors out of 1 checks. 5 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticXpassDisabled.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | XPASS [18] compareSaveDiagnostic() at here.cpp:413 3 | "a.txt" and "b.txt" were expected to fail the comparison. 4 | Finished TesterTest::Test with 1 errors out of 1 checks. 1 failed checks are able to save diagnostic files, enable -S / --save-diagnostic to get them. 5 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/saveDiagnosticXpassEnabled.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | XPASS [18] compareSaveDiagnostic() at here.cpp:413 3 | "a.txt" and "b.txt" were expected to fail the comparison. 4 | SAVED [18] compareSaveDiagnostic() -> /some/path/b.txt 5 | Finished TesterTest::Test with 1 errors out of 1 checks. 1 checks saved diagnostic files. 6 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/shuffleOne.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | OK [04] equal() 3 | Finished TesterTest::Test with 0 errors out of 1 checks. 4 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/skipBenchmarks.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 2 test cases... 2 | OK [13] compareWith() 3 | OK [11] compareAs() 4 | Finished TesterTest::Test with 0 errors out of 2 checks. 5 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/skipOnly.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 3 test cases... 2 | OK [11] compareAs() 3 | OK [13] compareWith() 4 | OK [04] equal() 5 | Finished TesterTest::Test with 0 errors out of 3 checks. 6 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/skipTests.txt: -------------------------------------------------------------------------------- 1 | Starting TesterTest::Test with 1 test cases... 2 | BENCH [59] 348.36 kB benchmarkOnce()@1x1 3 | Finished TesterTest::Test with 0 errors out of 0 checks. 4 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/TesterTestFiles/testName.txt: -------------------------------------------------------------------------------- 1 | Starting MyCustomTestName with 1 test cases... 2 | OK [13] compareWith() 3 | Finished MyCustomTestName with 0 errors out of 1 checks. 4 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/Test/configure.h.cmake: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #define RELATIVE_TEST_DIR "${RELATIVE_TEST_DIR}" 28 | #define ABSOLUTE_TEST_DIR "${ABSOLUTE_TEST_DIR}" 29 | #define TEST_DIR "${TEST_DIR}" 30 | -------------------------------------------------------------------------------- /src/Corrade/TestSuite/XCTestRunner.mm.in: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | extern int corradeTestMain(int, char**); 4 | 5 | @interface ${test_name} : XCTestCase 6 | 7 | @end 8 | 9 | @implementation ${test_name} 10 | 11 | - (void)test { 12 | #pragma GCC diagnostic push 13 | #pragma GCC diagnostic ignored "-Wgnu" 14 | XCTAssertEqual(corradeTestMain(0, nullptr), 0); 15 | #pragma GCC diagnostic pop 16 | } 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Implementation/ErrorString.h: -------------------------------------------------------------------------------- 1 | #ifndef Corrade_Utility_Implementation_ErrorString_h 2 | #define Corrade_Utility_Implementation_ErrorString_h 3 | /* 4 | This file is part of Corrade. 5 | 6 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 7 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 8 | Vladimír Vondruš 9 | Copyright © 2020 Jonathan Hale 10 | 11 | Permission is hereby granted, free of charge, to any person obtaining a 12 | copy of this software and associated documentation files (the "Software"), 13 | to deal in the Software without restriction, including without limitation 14 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 15 | and/or sell copies of the Software, and to permit persons to whom the 16 | Software is furnished to do so, subject to the following conditions: 17 | 18 | The above copyright notice and this permission notice shall be included 19 | in all copies or substantial portions of the Software. 20 | 21 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 24 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 27 | DEALINGS IN THE SOFTWARE. 28 | */ 29 | 30 | #include "Corrade/Utility/Utility.h" 31 | #include "Corrade/Utility/visibility.h" 32 | 33 | namespace Corrade { namespace Utility { namespace Implementation { 34 | 35 | /* Exported in order to be available for the test */ 36 | 37 | CORRADE_UTILITY_EXPORT void printErrnoErrorString(Debug& debug, int error); 38 | 39 | #ifdef CORRADE_TARGET_WINDOWS 40 | CORRADE_UTILITY_EXPORT void printWindowsErrorString(Debug& debug, unsigned int errorCode); 41 | #endif 42 | 43 | }}} 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Implementation/WindowsWeakSymbol.h: -------------------------------------------------------------------------------- 1 | #ifndef Corrade_Utility_Implementation_WindowsWeakSymbol_h 2 | #define Corrade_Utility_Implementation_WindowsWeakSymbol_h 3 | /* 4 | This file is part of Corrade. 5 | 6 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 7 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 8 | Vladimír Vondruš 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a 11 | copy of this software and associated documentation files (the "Software"), 12 | to deal in the Software without restriction, including without limitation 13 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 14 | and/or sell copies of the Software, and to permit persons to whom the 15 | Software is furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included 18 | in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 23 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 26 | DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | #include "Corrade/configure.h" 30 | 31 | #if !defined(CORRADE_TARGET_WINDOWS) || !defined(CORRADE_BUILD_STATIC) || defined(CORRADE_TARGET_WINDOWS_RT) 32 | #error this file is only meant to be used in non-RT Windows static builds 33 | #endif 34 | 35 | namespace Corrade { namespace Utility { namespace Implementation { 36 | 37 | void* windowsWeakSymbol(const char* name, void* backup); 38 | 39 | }}} 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Implementation/configure.h.cmake: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | /* Either a nullptr literal or a string literal with the DLL name. Windows 28 | only. */ 29 | #define WINDOWS_WEAK_SYMBOL_DLL_NAME ${WINDOWS_WEAK_SYMBOL_DLL_NAME} 30 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/.gitattributes: -------------------------------------------------------------------------------- 1 | DirectoryTestFiles/file -diff -text 2 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/.gitattributes: -------------------------------------------------------------------------------- 1 | eol-unix.conf -text 2 | eol-windows.conf -text 3 | eol-mixed.conf -text 4 | multiLine-crlf.conf -text 5 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/bom.conf: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/comments-saved.conf: -------------------------------------------------------------------------------- 1 | key=value 2 | [group] 3 | key2=value2 4 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/comments.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; A comment, after that is maaaaaany blank lines 3 | ; 4 | 5 | 6 | 7 | key=value 8 | 9 | 10 | [group] 11 | # comment 12 | key2=value2 13 | 14 | ; 15 | # another comment 16 | ; 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/eol-mixed.conf: -------------------------------------------------------------------------------- 1 | key=value 2 | key=value 3 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/eol-unix.conf: -------------------------------------------------------------------------------- 1 | key=value 2 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/eol-windows.conf: -------------------------------------------------------------------------------- 1 | key=value 2 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/hierarchic-empty-group.conf: -------------------------------------------------------------------------------- 1 | # Empty group name 2 | 3 | [group] 4 | key=value 5 | 6 | [] 7 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/hierarchic-empty-subgroup.conf: -------------------------------------------------------------------------------- 1 | [a] 2 | # Empty subgroup name 3 | [a//b] 4 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/hierarchic-missing-bracket.conf: -------------------------------------------------------------------------------- 1 | # Missing group bracket 2 | 3 | [group] 4 | key=value 5 | 6 | [group 7 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/hierarchic-modified.conf: -------------------------------------------------------------------------------- 1 | # Deeep 2 | [z/x] 3 | [a] 4 | 5 | # First b in first a 6 | [a/b] 7 | key2=val2 8 | 9 | # Second b in first a 10 | [a/b] 11 | key2=val3 12 | 13 | # Second a 14 | [a] 15 | key3=val4 16 | 17 | # First b in second a 18 | [a/b] 19 | key2=val5 20 | [a/b] 21 | key2=val6 22 | [q/w/e/r] 23 | key4=val7 24 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/hierarchic-shortcuts-modified.conf: -------------------------------------------------------------------------------- 1 | # Three groups deep 2 | [c/d/e] 3 | hello=there 4 | 5 | # Five groups deep 6 | [c/d/e/f/g] 7 | hi=again 8 | 9 | # A second g group 10 | [c/d/e/f/g] 11 | hey=hiya 12 | 13 | # First g group of second f group, this has to be preserved 14 | [c/d/e/f] 15 | [c/d/e/f/g] 16 | hola=hallo 17 | 18 | # This gets squashed 19 | [q/w/e/r] 20 | key4=val7 21 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/hierarchic-shortcuts.conf: -------------------------------------------------------------------------------- 1 | # Three groups deep 2 | [c/d/e] 3 | hello=there 4 | 5 | # Five groups deep 6 | [c/d/e/f/g] 7 | hi=again 8 | 9 | # A second g group 10 | [c/d/e/f/g] 11 | hey=hiya 12 | 13 | # First g group of second f group, this has to be preserved 14 | [c/d/e/f] 15 | [c/d/e/f/g] 16 | hola=hallo 17 | 18 | # This gets squashed 19 | [q] 20 | [q/w] 21 | [q/w/e] 22 | [q/w/e/r] 23 | key4=val7 24 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/hierarchic.conf: -------------------------------------------------------------------------------- 1 | # Deeep 2 | [z/x/c/v] 3 | key1=val1 4 | 5 | # First a 6 | [a] 7 | 8 | # First b in first a 9 | [a/b] 10 | key2=val2 11 | 12 | # Second b in first a 13 | [a/b] 14 | key2=val3 15 | 16 | # Second a 17 | [a] 18 | key3=val4 19 | 20 | # First b in second a 21 | [a/b] 22 | key2=val5 23 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/hýždě.conf: -------------------------------------------------------------------------------- 1 | unicode=supported 2 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/iterate-modified.conf: -------------------------------------------------------------------------------- 1 | [commentsOnly] 2 | # The top-level group has just comments ... 3 | 4 | 5 | # and empty lines 6 | 7 | [valuesOnly] 8 | a=42 9 | duplicate=this should be first 10 | duplicate=this second 11 | multiline=""" 12 | ah 13 | well 14 | """ 15 | [groupsOnly/a] 16 | yes=yes 17 | [groupsOnly/b] 18 | yes=no 19 | [mixed] 20 | # A comment 21 | b=value 22 | ; Another, which gets its leading whitespace trimmed 23 | a=also 24 | 25 | # Another comment, and empty line after 26 | 27 | [mixed/first] 28 | psot=frist! 29 | [mixed/subgroup] 30 | why=first duplicated subgroup 31 | [mixed/subgroup] 32 | why=second duplicated subgroup 33 | [mixed/last] 34 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/iterate.conf: -------------------------------------------------------------------------------- 1 | [commentsOnly] 2 | # The top-level group has just comments ... 3 | 4 | 5 | # and empty lines 6 | 7 | [valuesOnly] 8 | a=42 9 | duplicate=this should be first 10 | duplicate=this second 11 | multiline=""" 12 | ah 13 | well 14 | """ 15 | [groupsOnly] 16 | [groupsOnly/a] 17 | yes=yes 18 | [groupsOnly/b] 19 | yes=no 20 | [mixed] 21 | # A comment 22 | b=value 23 | ; Another, which gets its leading whitespace trimmed 24 | a=also 25 | 26 | # Another comment, and empty line after 27 | 28 | [mixed/first] 29 | [mixed/subgroup] 30 | why=first duplicated subgroup 31 | [mixed/subgroup] 32 | why=second duplicated subgroup 33 | [mixed/last] 34 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/missing-equals.conf: -------------------------------------------------------------------------------- 1 | # Missing equals 2 | 3 | [group] 4 | key=value 5 | 6 | invalid 7 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/missing-multiline-quote.conf: -------------------------------------------------------------------------------- 1 | # Missing multiline quote 2 | 3 | [group] 4 | key=value 5 | 6 | key=""" 7 | value 8 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/missing-quote.conf: -------------------------------------------------------------------------------- 1 | # Missing end quote 2 | 3 | [group] 4 | key=value 5 | 6 | key="value 7 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/multiLine-crlf-saved.conf: -------------------------------------------------------------------------------- 1 | value=""" 2 | Hello 3 | people how 4 | are you? 5 | """ 6 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/multiLine-crlf.conf: -------------------------------------------------------------------------------- 1 | value=""" 2 | Hello 3 | people how 4 | are you? 5 | """ 6 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/multiLine-saved.conf: -------------------------------------------------------------------------------- 1 | value=""" 2 | Hello 3 | people how 4 | are you? 5 | """ 6 | empty= 7 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/multiLine.conf: -------------------------------------------------------------------------------- 1 | value=""" 2 | Hello 3 | people how 4 | are you? 5 | """ 6 | empty=""" 7 | """ 8 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/parse-modified.conf: -------------------------------------------------------------------------------- 1 | # Also testing whether group and value order is preserved 2 | 3 | 4 | # First group 5 | new=value 6 | [thirdGroup] 7 | [newGroup] 8 | another=value 9 | [newGroupCopy] 10 | another=value 11 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/parse.conf: -------------------------------------------------------------------------------- 1 | # Also testing whether group and value order is preserved 2 | 3 | key=value 4 | 5 | # First group 6 | [group] 7 | b=value2 8 | a=value3 9 | 10 | ; Second group 11 | [group] 12 | c=value4 13 | c=value5 14 | 15 | [thirdGroup] 16 | key=value 17 | 18 | # Empty group 19 | [emptyGroup] 20 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/whitespaces-saved.conf: -------------------------------------------------------------------------------- 1 | # comment 2 | 3 | key=value with spaces 4 | key=" value with leading/trailing spaces " 5 | 6 | 7 | [group] 8 | key=value 9 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ConfigurationTestFiles/whitespaces.conf: -------------------------------------------------------------------------------- 1 | # comment 2 | 3 | key= value with spaces 4 | key=" value with leading/trailing spaces " 5 | 6 | 7 | [ group ] 8 | key = value 9 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/FatalTest.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #ifndef CORRADE_TESTSUITE_TARGET_XCTEST 4 | int main() 5 | #else 6 | int CORRADE_VISIBILITY_EXPORT corradeTestMain(int, char**); 7 | int corradeTestMain(int, char**) 8 | #endif 9 | { 10 | Corrade::Utility::Fatal{42} 11 | << "Cannot make the definite answer to be" << 75.74f 12 | << Corrade::Utility::Debug::nospace << ". It will always be" << 42 13 | << Corrade::Utility::Debug::nospace << "."; 14 | } 15 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/GlobalStateAcrossLibrariesLibrary.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | Vladimír Vondruš 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a 9 | copy of this software and associated documentation files (the "Software"), 10 | to deal in the Software without restriction, including without limitation 11 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | and/or sell copies of the Software, and to permit persons to whom the 13 | Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included 16 | in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | DEALINGS IN THE SOFTWARE. 25 | */ 26 | 27 | #include "GlobalStateAcrossLibrariesLibrary.h" 28 | 29 | #include "Corrade/Containers/StringView.h" 30 | #include "Corrade/Utility/Debug.h" 31 | #include "Corrade/Utility/Resource.h" 32 | 33 | namespace Corrade { namespace Utility { namespace Test { 34 | 35 | std::ostream* debugOutputFromALibrary() { return Debug::output(); } 36 | 37 | bool libraryHasATestResourceGroup(){ return Resource::hasGroup("test"); } 38 | 39 | }}} 40 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/JsonTestFiles/error.json: -------------------------------------------------------------------------------- 1 | [ 2 | "haha JSON you can't", 3 | ] 4 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/JsonTestFiles/parse-error.json: -------------------------------------------------------------------------------- 1 | [ 2 | -haha 3 | ] 4 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/PathTestFiles/dir/dummy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/Utility/Test/PathTestFiles/dir/dummy -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/PathTestFiles/file: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/Utility/Test/PathTestFiles/file -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/PathTestFilesSymlink/dir-symlink: -------------------------------------------------------------------------------- 1 | dir -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/PathTestFilesSymlink/dir/dummy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/Utility/Test/PathTestFilesSymlink/dir/dummy -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/PathTestFilesSymlink/file: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/Utility/Test/PathTestFilesSymlink/file -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/PathTestFilesSymlink/file-symlink: -------------------------------------------------------------------------------- 1 | file -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/PathTestFilesUtf8/hýždě: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/Utility/Test/PathTestFilesUtf8/hýždě -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/PathTestFilesUtf8/šňůra/dummy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/Utility/Test/PathTestFilesUtf8/šňůra/dummy -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/PathTestFilesUtf8/šňůra/klíče: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/Utility/Test/PathTestFilesUtf8/šňůra/klíče -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/.gitattributes: -------------------------------------------------------------------------------- 1 | compiled.cpp text eol=lf 2 | compiled-empty.cpp text eol=lf 3 | compiled-nothing.cpp text eol=lf 4 | compiled-unicode.cpp text eol=lf 5 | consequence2.txt text eol=lf 6 | predisposition2.txt text eol=lf 7 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/17bytes-33.bin: -------------------------------------------------------------------------------- 1 | 33333333333333333 -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/17bytes-66.bin: -------------------------------------------------------------------------------- 1 | fffffffffffffffff -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/55bytes-66.bin: -------------------------------------------------------------------------------- 1 | fffffffffffffffffffffffffffffffffffffffffffffffffffffff -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/64bytes-33.bin: -------------------------------------------------------------------------------- 1 | 3333333333333333333333333333333333333333333333333333333333333333 -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/compiled-empty.cpp: -------------------------------------------------------------------------------- 1 | /* Compiled resource file. DO NOT EDIT! */ 2 | 3 | #include "Corrade/Corrade.h" 4 | #include "Corrade/Utility/Macros.h" 5 | #include "Corrade/Utility/Resource.h" 6 | 7 | #if CORRADE_RESOURCE_VERSION != 2 8 | #ifdef CORRADE_TARGET_CLANG 9 | #pragma GCC error "resource file compiled in version 2 but version " _CORRADE_HELPER_STR2(CORRADE_RESOURCE_VERSION) " expected, update your corrade-rc binary" 10 | #else 11 | #error resource file compiled in unexpected version 2, update your corrade-rc binary 12 | #if defined(CORRADE_TARGET_GCC) || defined(CORRADE_TARGET_MSVC) 13 | #pragma message("resource file version " _CORRADE_HELPER_STR2(CORRADE_RESOURCE_VERSION) " expected instead") 14 | #endif 15 | #endif 16 | #endif 17 | 18 | namespace { 19 | 20 | /* Pair `i` is offset of filename `i + 1` in the low 24 bits, padding after 21 | data `i` in the upper 8 bits, and a 32bit offset of data `i + 1`. Offset of 22 | the first filename and data is implicitly 0. */ 23 | const unsigned int resourcePositions[] = { 24 | 0x00000009,0x00000000 25 | }; 26 | 27 | const unsigned char resourceFilenames[] = { 28 | /* empty.bin */ 29 | 0x65,0x6d,0x70,0x74,0x79,0x2e,0x62,0x69,0x6e 30 | }; 31 | 32 | // const unsigned char resourceData[] = { 33 | /* empty.bin */ 34 | // }; 35 | 36 | Corrade::Utility::Implementation::ResourceGroup resource; 37 | 38 | } 39 | 40 | int corradeResourceInitializer_ResourceTestData(); 41 | int corradeResourceInitializer_ResourceTestData() { 42 | resource.name = "test"; 43 | resource.count = 1; 44 | resource.positions = resourcePositions; 45 | resource.filenames = resourceFilenames; 46 | resource.data = nullptr; 47 | Corrade::Utility::Resource::registerData(resource); 48 | return 1; 49 | } CORRADE_AUTOMATIC_INITIALIZER(corradeResourceInitializer_ResourceTestData) 50 | 51 | int corradeResourceFinalizer_ResourceTestData(); 52 | int corradeResourceFinalizer_ResourceTestData() { 53 | Corrade::Utility::Resource::unregisterData(resource); 54 | return 1; 55 | } CORRADE_AUTOMATIC_FINALIZER(corradeResourceFinalizer_ResourceTestData) 56 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/compiled-nothing.cpp: -------------------------------------------------------------------------------- 1 | /* Compiled resource file. DO NOT EDIT! */ 2 | 3 | #include "Corrade/Corrade.h" 4 | #include "Corrade/Utility/Macros.h" 5 | #include "Corrade/Utility/Resource.h" 6 | 7 | #if CORRADE_RESOURCE_VERSION != 2 8 | #ifdef CORRADE_TARGET_CLANG 9 | #pragma GCC error "resource file compiled in version 2 but version " _CORRADE_HELPER_STR2(CORRADE_RESOURCE_VERSION) " expected, update your corrade-rc binary" 10 | #else 11 | #error resource file compiled in unexpected version 2, update your corrade-rc binary 12 | #if defined(CORRADE_TARGET_GCC) || defined(CORRADE_TARGET_MSVC) 13 | #pragma message("resource file version " _CORRADE_HELPER_STR2(CORRADE_RESOURCE_VERSION) " expected instead") 14 | #endif 15 | #endif 16 | #endif 17 | 18 | namespace { 19 | 20 | Corrade::Utility::Implementation::ResourceGroup resource; 21 | 22 | } 23 | 24 | int corradeResourceInitializer_ResourceTestNothingData(); 25 | int corradeResourceInitializer_ResourceTestNothingData() { 26 | resource.name = "nothing"; 27 | resource.count = 0; 28 | resource.positions = nullptr; 29 | resource.filenames = nullptr; 30 | resource.data = nullptr; 31 | Corrade::Utility::Resource::registerData(resource); 32 | return 1; 33 | } CORRADE_AUTOMATIC_INITIALIZER(corradeResourceInitializer_ResourceTestNothingData) 34 | 35 | int corradeResourceFinalizer_ResourceTestNothingData(); 36 | int corradeResourceFinalizer_ResourceTestNothingData() { 37 | Corrade::Utility::Resource::unregisterData(resource); 38 | return 1; 39 | } CORRADE_AUTOMATIC_FINALIZER(corradeResourceFinalizer_ResourceTestNothingData) 40 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/compiled-single-empty.cpp: -------------------------------------------------------------------------------- 1 | /* Compiled resource file. DO NOT EDIT! */ 2 | 3 | #include "Corrade/Utility/Macros.h" 4 | #include "Corrade/Utility/Resource.h" 5 | 6 | #if CORRADE_RESOURCE_VERSION != 2 7 | #ifdef CORRADE_TARGET_CLANG 8 | #pragma GCC error "resource file compiled in version 2 but version " _CORRADE_HELPER_STR2(CORRADE_RESOURCE_VERSION) " expected, update your corrade-rc binary" 9 | #else 10 | #error resource file compiled in unexpected version 2, update your corrade-rc binary 11 | #if defined(CORRADE_TARGET_GCC) || defined(CORRADE_TARGET_MSVC) 12 | #pragma message("resource file version " _CORRADE_HELPER_STR2(CORRADE_RESOURCE_VERSION) " expected instead") 13 | #endif 14 | #endif 15 | #endif 16 | 17 | extern const unsigned int corradeResourceSize_ResourceTestData = 0; 18 | extern const unsigned char corradeResourceData_ResourceTestData[] = { 19 | 0x00 20 | }; 21 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/compiled-single.cpp: -------------------------------------------------------------------------------- 1 | /* Compiled resource file. DO NOT EDIT! */ 2 | 3 | #include "Corrade/Utility/Macros.h" 4 | #include "Corrade/Utility/Resource.h" 5 | 6 | #if CORRADE_RESOURCE_VERSION != 2 7 | #ifdef CORRADE_TARGET_CLANG 8 | #pragma GCC error "resource file compiled in version 2 but version " _CORRADE_HELPER_STR2(CORRADE_RESOURCE_VERSION) " expected, update your corrade-rc binary" 9 | #else 10 | #error resource file compiled in unexpected version 2, update your corrade-rc binary 11 | #if defined(CORRADE_TARGET_GCC) || defined(CORRADE_TARGET_MSVC) 12 | #pragma message("resource file version " _CORRADE_HELPER_STR2(CORRADE_RESOURCE_VERSION) " expected instead") 13 | #endif 14 | #endif 15 | #endif 16 | 17 | extern const unsigned int corradeResourceSize_ResourceTestData = 8; 18 | extern const unsigned char corradeResourceData_ResourceTestData[] = { 19 | 0xd1,0x5e,0xa5,0xed,0xea,0xdd,0x00,0x0d 20 | }; 21 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/consequence.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/Utility/Test/ResourceTestFiles/consequence.bin -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/consequence2.txt: -------------------------------------------------------------------------------- 1 | overridden consequence 2 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/empty.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/Utility/Test/ResourceTestFiles/empty.bin -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/hýždě.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/Utility/Test/ResourceTestFiles/hýždě.bin -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/hýždě.conf: -------------------------------------------------------------------------------- 1 | group=unicode 2 | 3 | [file] 4 | filename=hýždě.bin 5 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/name with spaces.txt: -------------------------------------------------------------------------------- 1 | hello 2 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/predisposition.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/Corrade/Utility/Test/ResourceTestFiles/predisposition.bin -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/predisposition2.txt: -------------------------------------------------------------------------------- 1 | overridden predisposition 2 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-alignment-larger-than-data-size.conf: -------------------------------------------------------------------------------- 1 | group=alignmentLargerThanDataSize 2 | 3 | [file] 4 | filename=17bytes-66.bin 5 | alias=0-align128.bin 6 | align=128 7 | 8 | [file] 9 | filename=64bytes-33.bin 10 | alias=1.bin 11 | 12 | # There should be 46 padding bytes after the last (empty) file 13 | [file] 14 | filename=empty.bin 15 | alias=2-align2-empty.bin 16 | align=2 17 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-empty-alias.conf: -------------------------------------------------------------------------------- 1 | group=name 2 | 3 | [file] 4 | filename=file 5 | alias= 6 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-empty-file.conf: -------------------------------------------------------------------------------- 1 | group=empty 2 | 3 | [file] 4 | filename=empty.bin 5 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-empty-filename.conf: -------------------------------------------------------------------------------- 1 | group=name 2 | 3 | [file] 4 | filename= 5 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-empty-group.conf: -------------------------------------------------------------------------------- 1 | group= 2 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-no-group.conf: -------------------------------------------------------------------------------- 1 | # Nothing here, but not completely empty to not hit a bug in the file embedder 2 | # on Emscripten 2.0.26 until 3.1.3 where zero-size files are reported as having 3 | # 3 bytes. See ResourceCompileTest.cpp for details and links. 4 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-nonexistent.conf: -------------------------------------------------------------------------------- 1 | group=name 2 | 3 | [file] 4 | filename=/nonexistent.dat 5 | alias=but-it-exists.dat 6 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-nothing.conf: -------------------------------------------------------------------------------- 1 | group=nothing 2 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-npot-align.conf: -------------------------------------------------------------------------------- 1 | group=broken 2 | 3 | [file] 4 | filename=consequence.bin 5 | 6 | [file] 7 | filename=empty.bin 8 | align=56 9 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-npot-global-align.conf: -------------------------------------------------------------------------------- 1 | group=broken 2 | align=56 3 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-null-terminated-last-file.conf: -------------------------------------------------------------------------------- 1 | group=nullTerminatedLastFile 2 | 3 | # There should be exactly one byte after, and no alignment specifier 4 | [file] 5 | filename=17bytes-66.bin 6 | alias=0-null-terminated.bin 7 | nullTerminated=true 8 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-overridden-different.conf: -------------------------------------------------------------------------------- 1 | group=wat 2 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-overridden-none.conf: -------------------------------------------------------------------------------- 1 | group=test 2 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-overridden-nonexistent-file.conf: -------------------------------------------------------------------------------- 1 | group=test 2 | 3 | [file] 4 | filename=path/to/nonexistent.bin 5 | alias=consequence.bin 6 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-overridden.conf: -------------------------------------------------------------------------------- 1 | group=test 2 | 3 | [file] 4 | filename=../ResourceTestFiles/predisposition2.txt 5 | alias=predisposition.bin 6 | 7 | [file] 8 | filename=consequence2.txt 9 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-spaces.conf: -------------------------------------------------------------------------------- 1 | group=spaces 2 | 3 | [file] 4 | # In this case the spaces should be trimmed from the beginning and the end, but 5 | # not from inside the quotes, DO NOT CLEAN UP THE TRAILING SPACE 6 | # vvv----------------------vvv 7 | filename= "name with spaces.txt" 8 | 9 | [file] 10 | # Here's a leading and trailing space, DO NOT CLEAN UP 11 | # v------------------v 12 | filename= predisposition.bin 13 | 14 | # kate: remove-trailing-spaces false 15 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-too-large-align.conf: -------------------------------------------------------------------------------- 1 | group=broken 2 | 3 | [file] 4 | filename=consequence.bin 5 | 6 | [file] 7 | filename=empty.bin 8 | align=256 9 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-too-large-global-align.conf: -------------------------------------------------------------------------------- 1 | group=broken 2 | align=256 3 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-zero-align.conf: -------------------------------------------------------------------------------- 1 | group=broken 2 | 3 | [file] 4 | filename=empty.bin 5 | align=0 6 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources-zero-global-align.conf: -------------------------------------------------------------------------------- 1 | group=broken 2 | align=0 3 | -------------------------------------------------------------------------------- /src/Corrade/Utility/Test/ResourceTestFiles/resources.conf: -------------------------------------------------------------------------------- 1 | group=test 2 | 3 | [file] 4 | filename=../ResourceTestFiles/predisposition.bin 5 | alias=predisposition.bin 6 | 7 | [file] 8 | filename=consequence.bin 9 | -------------------------------------------------------------------------------- /src/Corrade/version.h.cmake: -------------------------------------------------------------------------------- 1 | #ifndef Corrade_version_h 2 | #define Corrade_version_h 3 | /* 4 | This file is part of Corrade. 5 | 6 | Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 7 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 8 | Vladimír Vondruš 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a 11 | copy of this software and associated documentation files (the "Software"), 12 | to deal in the Software without restriction, including without limitation 13 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 14 | and/or sell copies of the Software, and to permit persons to whom the 15 | Software is furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included 18 | in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 23 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 25 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 26 | DEALINGS IN THE SOFTWARE. 27 | */ 28 | 29 | /* Note: this header is deliberately not included from anywhere except 30 | VersionTest to avoid triggering a full rebuild every time the Git commit 31 | hash changes. */ 32 | 33 | #define CORRADE_VERSION_YEAR ${CORRADE_VERSION_YEAR} 34 | #define CORRADE_VERSION_MONTH ${CORRADE_VERSION_MONTH} 35 | #cmakedefine CORRADE_VERSION_COMMIT${CORRADE_VERSION_COMMIT} 36 | #cmakedefine CORRADE_VERSION_HASH 0x${CORRADE_VERSION_HASH} 37 | #cmakedefine CORRADE_VERSION_STRING "${CORRADE_VERSION_STRING}" 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /src/acme/.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | omit = 3 | */test/* 4 | -------------------------------------------------------------------------------- /src/acme/.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | test/*/actual.h 3 | htmlcov/ 4 | coverage/ 5 | .coverage 6 | -------------------------------------------------------------------------------- /src/acme/test/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # This file is part of Corrade. 3 | # 4 | # Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | # 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | # Vladimír Vondruš 7 | # 8 | # Permission is hereby granted, free of charge, to any person obtaining a 9 | # copy of this software and associated documentation files (the "Software"), 10 | # to deal in the Software without restriction, including without limitation 11 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 12 | # and/or sell copies of the Software, and to permit persons to whom the 13 | # Software is furnished to do so, subject to the following conditions: 14 | # 15 | # The above copyright notice and this permission notice shall be included 16 | # in all copies or substantial portions of the Software. 17 | # 18 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24 | # DEALINGS IN THE SOFTWARE. 25 | # 26 | -------------------------------------------------------------------------------- /src/acme/test/bom/input.h: -------------------------------------------------------------------------------- 1 | #ifndef FOOBAR_BUT_HERE_IS_A_BOM 2 | #define FOOBAR_BUT_HERE_IS_A_BOM 3 | 4 | /* This file would assert on a define stack underflow if the BOM wouldn't be 5 | detected */ 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /src/acme/test/comments/expected.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of a single header. library 3 | 4 | Copyright © 1997, 2006 John Doe 5 | Copyright © 2007, 2008, 2009, 2010, 2011, 6 | 2012, 2013, 2014, 2015, 2016, 7 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 8 | Vladimír Vondruš 9 | Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 10 | Some Long-Time Contributor 11 | Copyright © 2020 Some Guy 12 | 13 | SOME MORE TEXT 14 | */ 15 | 16 | /** @file 17 | * @brief A file comment 18 | */ 19 | 20 | // some comment 21 | void foo(); 22 | 23 | /* a 24 | block 25 | comment */ 26 | 27 | /** @brief a single-line block comment */ 28 | extern int a; 29 | 30 | struct Foo { 31 | /* The following line should be kept */ 32 | /*implicit*/ Foo() = default; 33 | 34 | /* The following line should be kept as well, the comment at the end 35 | removed */ 36 | /*implicit*/ Foo(int); 37 | }; 38 | -------------------------------------------------------------------------------- /src/acme/test/comments/input.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of a single header. library 3 | 4 | {{copyright}} 5 | 6 | SOME MORE TEXT 7 | */ 8 | 9 | /* 10 | Copyright © 1997, 2006 John Doe 11 | 12 | the whole contents of this block will get removed 13 | 14 | Copyright © 2007, 2008, 2009, 2010, 2011, 15 | 2012, 2013, 2014, 2015, 2016, 16 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 17 | Vladimír Vondruš 18 | 19 | THIS IS A LOUD LINE 20 | 21 | Copyright © 2020 Some Guy 22 | 23 | Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 24 | Some Long-Time Contributor 25 | 26 | Copyright is fine, but don't go *too* extreme with that, ok? :> 27 | */ 28 | 29 | /** @file 30 | * @brief A file comment 31 | */ 32 | 33 | // some comment 34 | void foo(); 35 | 36 | /* a 37 | block 38 | comment */ 39 | 40 | /** @brief a single-line block comment */ 41 | extern int a; 42 | 43 | struct Foo { 44 | /* The following line should be kept */ 45 | /*implicit*/ Foo() = default; 46 | 47 | /* The following line should be kept as well, the comment at the end 48 | removed */ 49 | /*implicit*/ Foo(int); /**< @overload */ 50 | }; 51 | -------------------------------------------------------------------------------- /src/acme/test/includes/Dir/Absolute.h: -------------------------------------------------------------------------------- 1 | /* This has to be added *after* Relative.h for correct definition order */ 2 | int function(EnumInRelativePath); 3 | -------------------------------------------------------------------------------- /src/acme/test/includes/Dir/Bla.h: -------------------------------------------------------------------------------- 1 | typedef int Integer; 2 | 3 | #include "Relative.h" 4 | #include "Dir/Absolute.h" 5 | 6 | #include // included twice 7 | 8 | #include "noexpand.h" // local, not found, but explicitly not expanded 9 | -------------------------------------------------------------------------------- /src/acme/test/includes/Dir/Relative.h: -------------------------------------------------------------------------------- 1 | enum EnumInRelativePath {}; 2 | -------------------------------------------------------------------------------- /src/acme/test/includes/Local.h: -------------------------------------------------------------------------------- 1 | #ifndef Local_h 2 | #define Local_h 3 | 4 | #include 5 | 6 | #include "Dir/Bla.h" /* included twice, each time with different quotes */ 7 | 8 | #if 0 9 | #include // this should not get included 10 | #endif 11 | 12 | #if 1 13 | #include // this should, but globally 14 | #include // this should not, as it is already above 15 | #endif 16 | 17 | #ifdef FOOBAR 18 | #include // this should get included locally 19 | #endif 20 | 21 | #ifdef FOOBAR 22 | #include // this should not be repeated, it's above already 23 | #endif 24 | 25 | enum: std::int32_t { SomeValue = 42 }; 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /src/acme/test/includes/Oof.h: -------------------------------------------------------------------------------- 1 | #include /* Already there */ 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | #include "Local.h" /* Already there */ 8 | 9 | std::unique_ptr ugh(std::istream& in, std::function foo); 10 | -------------------------------------------------------------------------------- /src/acme/test/includes/expected.h: -------------------------------------------------------------------------------- 1 | // Some random comment 2 | 3 | /* An {{includes}} that has nothing to add will get ignored */ 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #include "noexpand.h" 10 | 11 | // And after 12 | 13 | enum EnumInRelativePath {}; 14 | /* This has to be added *after* Relative.h for correct definition order */ 15 | int function(EnumInRelativePath); 16 | typedef int Integer; 17 | #ifndef Local_h 18 | #define Local_h 19 | 20 | #ifdef FOOBAR 21 | #include 22 | #endif 23 | 24 | enum: std::int32_t { SomeValue = 42 }; 25 | 26 | #endif 27 | 28 | void stuffAtTheEnd(Integer = SomeValue); 29 | 30 | /* this ifdef stays here even though the file doesn't have an include guard */ 31 | #ifdef _WIN32 32 | #include 33 | #endif 34 | 35 | #ifdef INCLUDE_ALSO_HEAVY_STUFF 36 | #include 37 | #include 38 | #include 39 | #include 40 | 41 | std::unique_ptr ugh(std::istream& in, std::function foo); 42 | #endif 43 | -------------------------------------------------------------------------------- /src/acme/test/includes/input.h: -------------------------------------------------------------------------------- 1 | // Some random comment 2 | 3 | /* An {{includes}} that has nothing to add will get ignored */ 4 | // {{includes}} 5 | 6 | // {{includes}} 7 | 8 | // And after 9 | 10 | #pragma ACME path . 11 | #pragma ACME local Dir 12 | #pragma ACME noexpand noexpand.h 13 | 14 | #include

15 | #include "Local.h" 16 | #include 17 | 18 | void stuffAtTheEnd(Integer = SomeValue); 19 | 20 | /* this ifdef stays here even though the file doesn't have an include guard */ 21 | #ifdef _WIN32 22 | #include 23 | #endif 24 | 25 | #pragma ACME comments off 26 | /* to test the below // {includes} get preserved */ 27 | 28 | #ifdef INCLUDE_ALSO_HEAVY_STUFF 29 | // {{includes}} 30 | 31 | #include "Oof.h" 32 | #endif 33 | -------------------------------------------------------------------------------- /src/acme/test/no_copyright_include_placeholders/expected.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | /* This library has no {{includes}} placeholder, so they will get put 4 | above this comment. */ 5 | -------------------------------------------------------------------------------- /src/acme/test/no_copyright_include_placeholders/input.h: -------------------------------------------------------------------------------- 1 | /* This library has no {{includes}} placeholder, so they will get put 2 | above this comment. */ 3 | 4 | /* 5 | This license block will get ignored and the copyrights lost necause 6 | there's no copyright placeholder. 7 | 8 | Copyright © 1980 The Authors 9 | */ 10 | 11 | #include 12 | #include 13 | -------------------------------------------------------------------------------- /src/acme/test/pragmas/expected.h: -------------------------------------------------------------------------------- 1 | int a; 2 | float b; 3 | 4 | void foobar(); 5 | 6 | // Only this gets to the output, in fact. 7 | /** @brief Docs */ 8 | DebugStuff apiNames(int a = "disambiguate"[0]); 9 | 10 | /* Forced defines also make it possible to get rid of include guards, so this 11 | comment is not wrapped in any */ 12 | 13 | /* Here is included twice */ 14 | #include 15 | #include 16 | /* Putting it again into the same {{includes}} doesn't make sense and so the 17 | below does nothing (with a warning) */ 18 | 19 | /* This should define INCLUDED_ALWAYS, INCLUDED_FIRST with no guard, 20 | INCLUDED_ALWAYS again and then INCLUDED_SECOND with a guard (i.e., it's now 21 | neither always enabled nor always diabled). The included file is also on a 22 | custom path that should be automatically associated with it. */ 23 | #define INCLUDED_ALWAYS always 24 | #define INCLUDED_FIRST first 25 | #define INCLUDED_ALWAYS always 26 | #ifndef INCLUDED_SECOND 27 | #define INCLUDED_SECOND second 28 | #endif 29 | -------------------------------------------------------------------------------- /src/acme/test/pragmas/input.h: -------------------------------------------------------------------------------- 1 | #pragma ACME disable DOXYGEN_GENERATING_OUTPUT 2 | #pragma ACME enable CORRADE_NO_DEBUG 3 | 4 | #pragma ACME comments off 5 | 6 | /* this comment gets removed */ 7 | 8 | /** @brief this one as well */ 9 | 10 | // yep 11 | 12 | /* 13 | and this also 14 | */ 15 | 16 | int a; 17 | /** @brief A comment between two lines should get removed too */ 18 | float b; 19 | 20 | void foobar(); /**< trailing comments nuked as well */ 21 | 22 | #pragma ACME comments on 23 | 24 | #ifdef DOXYGEN_GENERATING_OUTPUT 25 | /** 26 | Some very verbose docs that get hidden 27 | 28 | blah. 29 | */ 30 | AndCrazy apiNames(); 31 | #elif defined(CORRADE_NO_DEBUG) || defined(NDEBUG) 32 | // Only this gets to the output, in fact. 33 | /** @brief Docs */ 34 | DebugStuff apiNames(int a = "disambiguate"[0]); 35 | #else 36 | auto apiNames(int a = 0) -> SomethingNormal; /* hidden as well */ 37 | #endif 38 | 39 | #pragma ACME unknown 40 | 41 | #pragma ACME disable input_h 42 | 43 | #ifndef input_h 44 | #define input_h 45 | /* Forced defines also make it possible to get rid of include guards, so this 46 | comment is not wrapped in any */ 47 | #endif 48 | 49 | /* Here is included twice */ 50 | // {{includes}} 51 | #include 52 | // {{includes}} 53 | #pragma ACME forget 54 | #include 55 | /* Putting it again into the same {{includes}} doesn't make sense and so the 56 | below does nothing (with a warning) */ 57 | #pragma ACME forget 58 | #include 59 | 60 | /* This should define INCLUDED_ALWAYS, INCLUDED_FIRST with no guard, 61 | INCLUDED_ALWAYS again and then INCLUDED_SECOND with a guard (i.e., it's now 62 | neither always enabled nor always diabled). The included file is also on a 63 | custom path that should be automatically associated with it. */ 64 | #pragma ACME path some/ 65 | #pragma ACME disable INCLUDED_FIRST 66 | #pragma ACME enable INCLUDED_SECOND 67 | #include "path/included.h" 68 | #pragma ACME forget INCLUDED_SECOND 69 | #pragma ACME enable INCLUDED_FIRST 70 | #pragma ACME forget "path/included.h" 71 | #include "path/included.h" 72 | -------------------------------------------------------------------------------- /src/acme/test/pragmas/some/path/included.h: -------------------------------------------------------------------------------- 1 | #define INCLUDED_ALWAYS always 2 | #ifndef INCLUDED_FIRST 3 | #define INCLUDED_FIRST first 4 | #endif 5 | #ifndef INCLUDED_SECOND 6 | #define INCLUDED_SECOND second 7 | #endif 8 | -------------------------------------------------------------------------------- /src/acme/test/preprocessor/expected.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | // this gets included 4 | int this_too = 3; 5 | 6 | #ifdef FOOBAR // with a comment 7 | // this gets as well 8 | enum Yep {}; 9 | #else 10 | /* this too */ 11 | using Yay = int; 12 | #endif 13 | 14 | #if defined(__GNUC__) && __GNUC__ > 5 15 | // complex expression stays as-is 16 | constexpr bool eh = std::is_trivially_constructible::value; 17 | #endif 18 | 19 | /* Corner cases for #else */ 20 | Yay yay; 21 | 22 | /* Corner cases for #elif */ 23 | #ifndef BADTOOTH 24 | Yep wow(Yay hah); 25 | #elif !defined(FOOBAR) 26 | wow(Yay{}); 27 | #else 28 | auto this_gets_enabled() -> Yay { return {}; } 29 | #endif 30 | 31 | #ifdef FOOBAR 32 | #define THIS_IS_VISIBLE YAY 33 | #else 34 | #define THIS_TOO(but, unconditionally) 35 | #endif 36 | 37 | /* Nested if/elif should not flip the outer and leak visibility, so nothing 38 | gets out */ 39 | 40 | /* Output only the third branch */ 41 | // this goes to the output 42 | 43 | /* Appends one more endif */ 44 | #ifdef ACME 45 | // this gets to the output 46 | #else 47 | #ifdef FOOBAR 48 | // this again 49 | #endif 50 | #endif 51 | 52 | /* No extraneous endifs */ 53 | // yes 54 | 55 | /* Remove both these, since they're empty */ 56 | 57 | /* Don't remove anything here */ 58 | #ifdef A 59 | #elif defined(B) 60 | #endif 61 | 62 | /* Don't remove anything here either */ 63 | #ifdef A 64 | #else 65 | #endif 66 | 67 | /* Parse this correctly (the slash is there) */ 68 | #if __has_include() /* the __GLIBCXX__ define */ 69 | // yay! 70 | #endif 71 | 72 | /* Unconditionally drop #cmakedefine and #cmakedefine01, but leave unknown 73 | macros untouched */ 74 | #version 460 75 | -------------------------------------------------------------------------------- /src/acme/test/revision_stats/.gitignore: -------------------------------------------------------------------------------- 1 | output/actual.h 2 | -------------------------------------------------------------------------------- /src/acme/test/revision_stats/expected.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file is generated from version v2018.10. 3 | */ 4 | 5 | // This particular file has exactly 384 bytes, 6 | // while there's 1 more processed file with 6 lines. 7 | -------------------------------------------------------------------------------- /src/acme/test/revision_stats/input.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file is generated from version {{revision}}. 3 | */ 4 | 5 | #pragma ACME revision * echo v2018.10 6 | #pragma ACME revision acme/test/revision cat input.h | wc -c 7 | #pragma ACME stats wc wc -l 8 | #pragma ACME stats files ls dummy | wc -l 9 | 10 | // This particular file has exactly {{revision:acme/test/revision}} bytes, 11 | // while there's {{stats:files}} more processed file with {{stats:wc}} lines. 12 | -------------------------------------------------------------------------------- /src/acme/test/revision_stats/output/dummy: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/debuggers/gdb/corrade/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # This file is part of Corrade. 3 | # 4 | # Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 5 | # 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 6 | # Vladimír Vondruš 7 | # Copyright © 2022 Guillaume Jacquemin 8 | # 9 | # Permission is hereby granted, free of charge, to any person obtaining a 10 | # copy of this software and associated documentation files (the "Software"), 11 | # to deal in the Software without restriction, including without limitation 12 | # the rights to use, copy, modify, merge, publish, distribute, sublicense, 13 | # and/or sell copies of the Software, and to permit persons to whom the 14 | # Software is furnished to do so, subject to the following conditions: 15 | # 16 | # The above copyright notice and this permission notice shall be included 17 | # in all copies or substantial portions of the Software. 18 | # 19 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 22 | # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 24 | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | # DEALINGS IN THE SOFTWARE. 26 | # 27 | 28 | import gdb 29 | 30 | def register_corrade_printers(obj: gdb.Objfile | gdb.Progspace): 31 | """Registers the pretty-printers for Corrade types""" 32 | 33 | if obj is None: 34 | obj = gdb 35 | 36 | from .printers import register_corrade_printers 37 | register_corrade_printers(obj) 38 | -------------------------------------------------------------------------------- /src/examples/pluginmanager/Canary.conf: -------------------------------------------------------------------------------- 1 | [data] 2 | name=I'm allergic to canaries! 3 | -------------------------------------------------------------------------------- /src/examples/pluginmanager/Dog.conf: -------------------------------------------------------------------------------- 1 | [data] 2 | name=A simple dog plugin 3 | -------------------------------------------------------------------------------- /src/examples/resource/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mosra/corrade/a959501f16432d5780553ef2111e84031c161333/src/examples/resource/icon.png -------------------------------------------------------------------------------- /src/examples/resource/licenses/en.txt: -------------------------------------------------------------------------------- 1 | This application is copyright © John Doe et al. and the author IS NOT 2 | RESPONSIBLE AT ALL FOR ANY PHYSICAL OR OTHER DAMAGES AND INJURIES WHICH 3 | MAY LEAD TO DEATH OR EVEN APOCALYPSE AND CAN BE CAUSED BY THIS APPLICATION 4 | ... 5 | -------------------------------------------------------------------------------- /src/examples/resource/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Corrade. 3 | 4 | Original authors — credit is appreciated but not required: 5 | 6 | 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 7 | 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 8 | — Vladimír Vondruš 9 | 10 | This is free and unencumbered software released into the public domain. 11 | 12 | Anyone is free to copy, modify, publish, use, compile, sell, or distribute 13 | this software, either in source code form or as a compiled binary, for any 14 | purpose, commercial or non-commercial, and by any means. 15 | 16 | In jurisdictions that recognize copyright laws, the author or authors of 17 | this software dedicate any and all copyright interest in the software to 18 | the public domain. We make this dedication for the benefit of the public 19 | at large and to the detriment of our heirs and successors. We intend this 20 | dedication to be an overt act of relinquishment in perpetuity of all 21 | present and future rights to this software under copyright law. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 26 | THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 27 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 28 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 | */ 30 | 31 | #include 32 | #include 33 | #include 34 | 35 | using namespace Corrade; 36 | 37 | int main() { 38 | /* Initialize resource manager with name of the group we are using */ 39 | Utility::Resource rs{"data"}; 40 | 41 | /* Print out the license */ 42 | Utility::Debug{} << rs.getString("license.txt"); 43 | } 44 | -------------------------------------------------------------------------------- /src/examples/resource/resources.conf: -------------------------------------------------------------------------------- 1 | group=data 2 | 3 | [file] 4 | filename=licenses/en.txt 5 | alias=license.txt 6 | 7 | [file] 8 | filename=icon.png 9 | -------------------------------------------------------------------------------- /src/examples/testsuite/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # 2 | # This file is part of Corrade. 3 | # 4 | # Original authors — credit is appreciated but not required: 5 | # 6 | # 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 7 | # 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 8 | # — Vladimír Vondruš 9 | # 10 | # This is free and unencumbered software released into the public domain. 11 | # 12 | # Anyone is free to copy, modify, publish, use, compile, sell, or distribute 13 | # this software, either in source code form or as a compiled binary, for any 14 | # purpose, commercial or non-commercial, and by any means. 15 | # 16 | # In jurisdictions that recognize copyright laws, the author or authors of 17 | # this software dedicate any and all copyright interest in the software to 18 | # the public domain. We make this dedication for the benefit of the public 19 | # at large and to the detriment of our heirs and successors. We intend this 20 | # dedication to be an overt act of relinquishment in perpetuity of all 21 | # present and future rights to this software under copyright law. 22 | # 23 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 26 | # THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 27 | # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 28 | # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 | # 30 | 31 | cmake_minimum_required(VERSION 3.5...3.10) 32 | 33 | project(CorradeTestExample CXX) 34 | 35 | # Add module path in case this is project root 36 | if(PROJECT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) 37 | set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/../../../modules" ${CMAKE_MODULE_PATH}) 38 | endif() 39 | 40 | find_package(Corrade REQUIRED TestSuite) 41 | set_directory_properties(PROPERTIES CORRADE_USE_PEDANTIC_FLAGS ON) 42 | 43 | enable_testing() 44 | corrade_add_test(MyTest MyTest.cpp) 45 | -------------------------------------------------------------------------------- /src/singles/CorradeScopeGuard.h: -------------------------------------------------------------------------------- 1 | /* 2 | Corrade::Containers::ScopeGuard 3 | — a lightweight alternative to std::unique_ptr with a custom deleter 4 | 5 | https://doc.magnum.graphics/corrade/classCorrade_1_1Containers_1_1ScopeGuard.html 6 | 7 | This is a single-header library generated from the Corrade project. With 8 | the goal being easy integration, it's deliberately free of all comments 9 | to keep the file size small. More info, detailed changelogs and docs here: 10 | 11 | - Project homepage — https://magnum.graphics/corrade/ 12 | - Documentation — https://doc.magnum.graphics/corrade/ 13 | - GitHub project page — https://github.com/mosra/corrade 14 | - GitHub Singles repository — https://github.com/mosra/magnum-singles 15 | 16 | v2020.06-1687-g6b5f (2024-06-29) 17 | - Suppressing a "conversion from T to void * of greater size" warning 18 | that could happen with certain type sizes on MSVC 19 | v2020.06-1502-g147e (2023-09-11) 20 | - Fixes to the Utility::swap() helper to avoid ambiguity with std::swap() 21 | v2020.06-1454-gfc3b7 (2023-08-27) 22 | - Ability to construct a NoCreate'd ScopeGuard and then move a complete 23 | instance over it 24 | v2019.01-41-g39c08d7c (2019-02-18) 25 | - Ability to create a handle-less ScopeGuard 26 | v2018.10-232-ge927d7f3 (2019-01-28) 27 | - Initial release 28 | 29 | Generated from Corrade {{revision}}, {{stats:loc}} / {{stats:preprocessed}} LoC 30 | */ 31 | 32 | #include "base.h" 33 | 34 | /* We need just CORRADE_TARGET_MSVC and CORRADE_MSVC2015_COMPATIBILITY from 35 | configure.h. This is equivalent to the version check in UseCorrade.cmake. */ 36 | #pragma ACME enable Corrade_configure_h 37 | #ifdef _MSC_VER 38 | #define CORRADE_TARGET_MSVC 39 | #endif 40 | #if defined(_MSC_VER) && _MSC_VER < 1910 41 | #define CORRADE_MSVC2015_COMPATIBILITY 42 | #endif 43 | 44 | #include "Corrade/Containers/ScopeGuard.h" 45 | -------------------------------------------------------------------------------- /src/singles/assert.h: -------------------------------------------------------------------------------- 1 | /* This file should be included after a correspnding wrapped #include 2 | in the library */ 3 | 4 | /* Exclude all assertions by default. The libraries should then whitelist a 5 | subset using #pragma ACME forget. */ 6 | #pragma ACME enable CORRADE_ASSERT 7 | #pragma ACME enable CORRADE_DEBUG_ASSERT 8 | #pragma ACME enable CORRADE_CONSTEXPR_ASSERT 9 | #pragma ACME enable CORRADE_CONSTEXPR_DEBUG_ASSERT 10 | #pragma ACME enable CORRADE_ASSERT_OUTPUT 11 | #pragma ACME enable CORRADE_DEBUG_ASSERT_OUTPUT 12 | #pragma ACME enable CORRADE_ASSERT_UNREACHABLE 13 | #pragma ACME enable CORRADE_DEBUG_ASSERT_UNREACHABLE 14 | #pragma ACME enable CORRADE_INTERNAL_ASSERT 15 | #pragma ACME enable CORRADE_INTERNAL_DEBUG_ASSERT 16 | #pragma ACME enable CORRADE_INTERNAL_CONSTEXPR_ASSERT 17 | #pragma ACME enable CORRADE_INTERNAL_CONSTEXPR_DEBUG_ASSERT 18 | #pragma ACME enable CORRADE_INTERNAL_ASSERT_OUTPUT 19 | #pragma ACME enable CORRADE_INTERNAL_DEBUG_ASSERT_OUTPUT 20 | #pragma ACME enable CORRADE_INTERNAL_ASSERT_EXPRESSION 21 | #pragma ACME enable CORRADE_INTERNAL_DEBUG_ASSERT_EXPRESSION 22 | #pragma ACME enable CORRADE_INTERNAL_ASSERT_UNREACHABLE 23 | #pragma ACME enable CORRADE_INTERNAL_DEBUG_ASSERT_UNREACHABLE 24 | -------------------------------------------------------------------------------- /src/singles/generate.sh: -------------------------------------------------------------------------------- 1 | set -e 2 | 3 | ../acme/acme.py CorradeArrayView.h --output ../../../magnum-singles 4 | ../acme/acme.py CorradeStridedArrayView.h --output ../../../magnum-singles 5 | ../acme/acme.py CorradeArray.h --output ../../../magnum-singles 6 | ../acme/acme.py CorradeEnumSet.h --output ../../../magnum-singles 7 | ../acme/acme.py CorradeFunction.h --output ../../../magnum-singles 8 | ../acme/acme.py CorradeGrowableArray.h --output ../../../magnum-singles 9 | ../acme/acme.py CorradeOptional.h --output ../../../magnum-singles 10 | ../acme/acme.py CorradePair.h --output ../../../magnum-singles 11 | ../acme/acme.py CorradePointer.h --output ../../../magnum-singles 12 | ../acme/acme.py CorradeReference.h --output ../../../magnum-singles 13 | ../acme/acme.py CorradeScopeGuard.h --output ../../../magnum-singles 14 | ../acme/acme.py CorradeString.hpp --output ../../../magnum-singles 15 | ../acme/acme.py CorradeTriple.h --output ../../../magnum-singles 16 | 17 | ../acme/acme.py CorradeStlForwardArray.h --output ../../../magnum-singles 18 | ../acme/acme.py CorradeStlForwardString.h --output ../../../magnum-singles 19 | ../acme/acme.py CorradeStlForwardTuple.h --output ../../../magnum-singles 20 | ../acme/acme.py CorradeStlForwardVector.h --output ../../../magnum-singles 21 | ../acme/acme.py CorradeStlMath.h --output ../../../magnum-singles 22 | 23 | ../acme/acme.py CorradeCpu.hpp --output ../../../magnum-singles 24 | --------------------------------------------------------------------------------