9 Commits

Author SHA1 Message Date
garyscavone
d0345712db Added documentation gifs to doc/html/ directory, and updated configure.ac to remove a couple deprecated functions. 2023-08-14 13:53:11 -04:00
garyscavone
1cb2c81d04 Updated configure.ac 2023-08-10 16:49:35 -04:00
garyscavone
b671638f99 Version updates for 5.0.1 release. 2023-08-10 16:46:47 -04:00
garyscavone
169b005a2d Merge pull request #135 from donarturo11/fix-msvc-flags
Fix msvc flags
2023-08-08 09:00:51 -04:00
garyscavone
73008d02a1 Merge pull request #133 from donarturo11/fix-math
Add using math definitions
2023-08-08 09:00:24 -04:00
garyscavone
e364d81c8f Merge pull request #129 from Segfault1602/alexstonge-fixdemovcxproj
Fix demo project on Windows
2023-08-08 08:59:58 -04:00
donarturo11
f39c1fb06d Add MSVC flags 2023-01-28 21:06:31 +01:00
donarturo11
35ca4abcb9 Add math definitions 2023-01-26 10:30:20 +01:00
Segfault1602
ce765cc391 Fix demo project on Windows
The demo project definition on windows was outdated, causing it to not build properly.

The fix was to add the two missing cpp file to the project definition (Iir.cpp and Recorder.cpp) as well as define `_USE_MATH_DEFINES` to allow the compiler to use `M_SQRT1_2`.
2022-11-20 10:09:26 -08:00
9 changed files with 120 additions and 96 deletions

View File

@@ -11,8 +11,14 @@ endif()
SET_PROPERTY(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Release" "Debug" "RelWithDebInfo" "MinSizeRel")
message("Build type: " ${CMAKE_BUILD_TYPE})
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -D_STK_DEBUG_ -D__RTAUDIO_DEBUG__ -D__RTMIDI_DEBUG__")
if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /clr")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /O2 /DNDEBUG")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Z7 /Ob0 /Od /RTC1 /D_ITERATOR_DEBUG_LEVEL=2 /D_STK_DEBUG_ /D__RTAUDIO_DEBUG__ /D__RTMIDI_DEBUG__")
else()
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -D_STK_DEBUG_ -D__RTAUDIO_DEBUG__ -D__RTMIDI_DEBUG__")
endif()
if(${CMAKE_CXX_COMPILER_ID} STREQUAL GNU)
message("GCC.")
@@ -79,7 +85,6 @@ if(REALTIME)
# Tested under MSYS2 with Mingw64 toolchain
#============== WINDOWS ================#
message("Windows DETECTED!")
link_libraries(winmm ole32 wsock32)
add_definitions(-D__WINDOWS_MM__)
@@ -114,7 +119,7 @@ TEST_BIG_ENDIAN(IS_BIG_ENDIAN)
if(NOT IS_BIG_ENDIAN)
add_definitions(-D__LITTLE_ENDIAN__)
endif()
add_definitions(-D_USE_MATH_DEFINES)
if(INSTALL_HEADERS)
file(GLOB STK_HEADERS "include/*.h")
install(FILES ${STK_HEADERS} DESTINATION include/stk)

View File

@@ -1,5 +1,5 @@
# Process this file with autoconf to produce a configure script.
AC_INIT(STK, 5.0.0, gary.scavone@mcgill.ca, stk)
AC_INIT([STK],[5.0.0],[gary.scavone@mcgill.ca],[stk])
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_SRCDIR(src/Stk.cpp)
AC_CONFIG_FILES(Makefile src/Makefile projects/demo/Makefile projects/effects/Makefile projects/ragamatic/Makefile projects/examples/Makefile projects/examples/libMakefile projects/eguitar/Makefile)
@@ -20,13 +20,15 @@ if [[ $AR = "no" ]] ; then
fi
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_INCLUDES_DEFAULT
AC_PROG_EGREP
AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h termio.h unistd.h)
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_C_BIGENDIAN
AC_EGREP_CPP(yes,
[#ifndef WORDS_BIGENDIAN

View File

@@ -2,6 +2,11 @@ The Synthesis ToolKit in C++ (STK)
By Perry R. Cook and Gary P. Scavone, 1995--2023.
v.5.0.1 (10 August 2023)
- see github site for complete details (github.com/thestk/stk)
- cmake updates
- fix for demo msvc project in Windows
v.5.0.0 (4 August 2023)
- see github site for complete details (github.com/thestk/stk)
- new filter design functionality in BiQuad (thanks to Navin Kumar!)

View File

@@ -1,10 +1,15 @@
/*! \page download Download and Release Notes
\section down Download Version 5.0.0 (4 August 2023):
\section down Download Version 5.0.1 (10 August 2023):
- <A HREF="http://ccrma.stanford.edu/software/stk/release/stk-5.0.0.tar.gz">Source distribution</A>
- <A HREF="http://ccrma.stanford.edu/software/stk/release/stk-5.0.1.tar.gz">Source distribution</A>
\section notes Release Notes:
\subsection v5dot0dot1 Version 5.0.1
- see github site for complete details (github.com/thestk/stk)
- cmake updates
- fix for demo msvc project in Windows
\subsection v5dot0dot0 Version 5.0.0
- see github site for complete details (github.com/thestk/stk)
- new filter design functionality in BiQuad (thanks to Navin Kumar!)

BIN
doc/html/ccrma.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

BIN
doc/html/mcgill.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
doc/html/princeton.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -45,11 +45,13 @@
<OutDir>.\</OutDir>
<IntDir>.\Release\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>stk-demo</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>.\</OutDir>
<IntDir>.\Debug\</IntDir>
<LinkIncremental>true</LinkIncremental>
<TargetName>stk-demo</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
@@ -61,7 +63,7 @@
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level3</WarningLevel>
<AdditionalIncludeDirectories>..\..\include;..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;__LITTLE_ENDIAN__;__WINDOWS_MM__;WIN32;_CONSOLE;__WINDOWS_DS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>NDEBUG;__LITTLE_ENDIAN__;__WINDOWS_MM__;WIN32;_CONSOLE;__WINDOWS_DS__;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AssemblerListingLocation>.\Release\</AssemblerListingLocation>
<PrecompiledHeaderOutputFile>.\Release\demo.pch</PrecompiledHeaderOutputFile>
<ObjectFileName>.\Release\</ObjectFileName>
@@ -97,7 +99,7 @@
<MinimalRebuild>true</MinimalRebuild>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\include;..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;__LITTLE_ENDIAN__;__WINDOWS_MM__;WIN32;_CONSOLE;__WINDOWS_DS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_DEBUG;__LITTLE_ENDIAN__;__WINDOWS_MM__;WIN32;_CONSOLE;__WINDOWS_DS__;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AssemblerListingLocation>.\Debug\</AssemblerListingLocation>
<PrecompiledHeaderOutputFile>.\Debug\demo.pch</PrecompiledHeaderOutputFile>
<ObjectFileName>.\Debug\</ObjectFileName>
@@ -125,6 +127,8 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\Iir.cpp" />
<ClCompile Include="..\..\src\Recorder.cpp" />
<ClCompile Include="demo.cpp" />
<ClCompile Include="utilities.cpp" />
<ClCompile Include="..\..\src\include\asio.cpp" />

View File

@@ -248,257 +248,260 @@
<ClCompile Include="..\..\src\Wurley.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Recorder.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Iir.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="utilities.h" />
<ClInclude Include="..\..\src\include\RtAudio.h">
<ClInclude Include="..\..\include\RtAudio.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\RtMidi.h">
<ClInclude Include="..\..\include\ADSR.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\RtWvIn.h">
<ClInclude Include="..\..\include\Asymp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\RtWvOut.h">
<ClInclude Include="..\..\include\BandedWG.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\ADSR.h">
<ClInclude Include="..\..\include\BeeThree.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Asymp.h">
<ClInclude Include="..\..\include\BiQuad.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\BandedWG.h">
<ClInclude Include="..\..\include\BlowBotl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\BeeThree.h">
<ClInclude Include="..\..\include\BlowHole.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\BiQuad.h">
<ClInclude Include="..\..\include\Bowed.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\BlowBotl.h">
<ClInclude Include="..\..\include\BowTable.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\BlowHole.h">
<ClInclude Include="..\..\include\Brass.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Bowed.h">
<ClInclude Include="..\..\include\Clarinet.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\BowTable.h">
<ClInclude Include="..\..\include\Delay.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Brass.h">
<ClInclude Include="..\..\include\DelayA.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Clarinet.h">
<ClInclude Include="..\..\include\DelayL.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Delay.h">
<ClInclude Include="..\..\include\Drummer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\DelayA.h">
<ClInclude Include="..\..\include\Effect.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\DelayL.h">
<ClInclude Include="..\..\include\Envelope.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Drummer.h">
<ClInclude Include="..\..\include\FileLoop.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Effect.h">
<ClInclude Include="..\..\include\FileRead.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Envelope.h">
<ClInclude Include="..\..\include\FileWrite.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FileLoop.h">
<ClInclude Include="..\..\include\FileWvIn.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FileRead.h">
<ClInclude Include="..\..\include\FileWvOut.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FileWrite.h">
<ClInclude Include="..\..\include\Filter.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FileWvIn.h">
<ClInclude Include="..\..\include\Fir.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FileWvOut.h">
<ClInclude Include="..\..\include\Flute.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Filter.h">
<ClInclude Include="..\..\include\FM.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Fir.h">
<ClInclude Include="..\..\include\FMVoices.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Flute.h">
<ClInclude Include="..\..\include\FormSwep.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FM.h">
<ClInclude Include="..\..\include\Function.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FMVoices.h">
<ClInclude Include="..\..\include\Generator.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FormSwep.h">
<ClInclude Include="..\..\include\HevyMetl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Function.h">
<ClInclude Include="..\..\include\Instrmnt.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Generator.h">
<ClInclude Include="..\..\include\JCRev.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\HevyMetl.h">
<ClInclude Include="..\..\include\JetTable.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Instrmnt.h">
<ClInclude Include="..\..\include\Mandolin.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\JCRev.h">
<ClInclude Include="..\..\include\Mesh2D.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\JetTable.h">
<ClInclude Include="..\..\include\Messager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Mandolin.h">
<ClInclude Include="..\..\include\Modal.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Mesh2D.h">
<ClInclude Include="..\..\include\ModalBar.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Messager.h">
<ClInclude Include="..\..\include\Modulate.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Modal.h">
<ClInclude Include="..\..\include\Moog.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\ModalBar.h">
<ClInclude Include="..\..\include\Mutex.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Modulate.h">
<ClInclude Include="..\..\include\Noise.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Moog.h">
<ClInclude Include="..\..\include\NRev.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Mutex.h">
<ClInclude Include="..\..\include\OnePole.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Noise.h">
<ClInclude Include="..\..\include\OneZero.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\NRev.h">
<ClInclude Include="..\..\include\PercFlut.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\OnePole.h">
<ClInclude Include="..\..\include\Phonemes.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\OneZero.h">
<ClInclude Include="..\..\include\Plucked.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\PercFlut.h">
<ClInclude Include="..\..\include\PoleZero.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Phonemes.h">
<ClInclude Include="..\..\include\PRCRev.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Plucked.h">
<ClInclude Include="..\..\include\ReedTable.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\PoleZero.h">
<ClInclude Include="..\..\include\Resonate.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\PRCRev.h">
<ClInclude Include="..\..\include\Rhodey.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\ReedTable.h">
<ClInclude Include="..\..\include\RtMidi.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Resonate.h">
<ClInclude Include="..\..\include\RtWvIn.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Rhodey.h">
<ClInclude Include="..\..\include\RtWvOut.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Sampler.h">
<ClInclude Include="..\..\include\Sampler.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Saxofony.h">
<ClInclude Include="..\..\include\Saxofony.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Shakers.h">
<ClInclude Include="..\..\include\Shakers.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Simple.h">
<ClInclude Include="..\..\include\Simple.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\SineWave.h">
<ClInclude Include="..\..\include\SineWave.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\SingWave.h">
<ClInclude Include="..\..\include\SingWave.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Sitar.h">
<ClInclude Include="..\..\include\Sitar.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\SKINI.h">
<ClInclude Include="..\..\include\SKINI.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Socket.h">
<ClInclude Include="..\..\include\Socket.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Sphere.h">
<ClInclude Include="..\..\include\Sphere.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\StifKarp.h">
<ClInclude Include="..\..\include\StifKarp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Stk.h">
<ClInclude Include="..\..\include\Stk.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\TcpServer.h">
<ClInclude Include="..\..\include\TcpServer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Thread.h">
<ClInclude Include="..\..\include\Thread.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\TubeBell.h">
<ClInclude Include="..\..\include\TubeBell.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Twang.h">
<ClInclude Include="..\..\include\Twang.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\TwoPole.h">
<ClInclude Include="..\..\include\TwoPole.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\TwoZero.h">
<ClInclude Include="..\..\include\TwoZero.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Vector3D.h">
<ClInclude Include="..\..\include\Vector3D.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Voicer.h">
<ClInclude Include="..\..\include\Voicer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Whistle.h">
<ClInclude Include="..\..\include\Whistle.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Wurley.h">
<ClInclude Include="..\..\include\Wurley.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\WvIn.h">
<ClInclude Include="..\..\include\WvIn.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\WvOut.h">
<ClInclude Include="..\..\include\WvOut.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="notes.txt" />
</ItemGroup>
</Project>