project (stk) cmake_minimum_required(VERSION 3.1) include (TestBigEndian) test_big_endian (BIGENDIAN) #Header files which form the public interface to the library. #They will be installed by "make install". add_library (stk "") set (PUBLIC_HEADER_FILES ${CMAKE_CURRENT_LIST_DIR}/include/ADSR.h ${CMAKE_CURRENT_LIST_DIR}/include/Asymp.h ${CMAKE_CURRENT_LIST_DIR}/include/BandedWG.h ${CMAKE_CURRENT_LIST_DIR}/include/BeeThree.h ${CMAKE_CURRENT_LIST_DIR}/include/BiQuad.h ${CMAKE_CURRENT_LIST_DIR}/include/Blit.h ${CMAKE_CURRENT_LIST_DIR}/include/BlitSaw.h ${CMAKE_CURRENT_LIST_DIR}/include/BlitSquare.h ${CMAKE_CURRENT_LIST_DIR}/include/BlowBotl.h ${CMAKE_CURRENT_LIST_DIR}/include/BlowHole.h ${CMAKE_CURRENT_LIST_DIR}/include/Bowed.h ${CMAKE_CURRENT_LIST_DIR}/include/BowTable.h ${CMAKE_CURRENT_LIST_DIR}/include/Brass.h ${CMAKE_CURRENT_LIST_DIR}/include/Chorus.h ${CMAKE_CURRENT_LIST_DIR}/include/Clarinet.h ${CMAKE_CURRENT_LIST_DIR}/include/Cubic.h ${CMAKE_CURRENT_LIST_DIR}/include/Delay.h ${CMAKE_CURRENT_LIST_DIR}/include/DelayA.h ${CMAKE_CURRENT_LIST_DIR}/include/DelayL.h ${CMAKE_CURRENT_LIST_DIR}/include/Drummer.h ${CMAKE_CURRENT_LIST_DIR}/include/Echo.h ${CMAKE_CURRENT_LIST_DIR}/include/Effect.h ${CMAKE_CURRENT_LIST_DIR}/include/Envelope.h ${CMAKE_CURRENT_LIST_DIR}/include/FileLoop.h ${CMAKE_CURRENT_LIST_DIR}/include/FileRead.h ${CMAKE_CURRENT_LIST_DIR}/include/FileWrite.h ${CMAKE_CURRENT_LIST_DIR}/include/FileWvIn.h ${CMAKE_CURRENT_LIST_DIR}/include/FileWvOut.h ${CMAKE_CURRENT_LIST_DIR}/include/Filter.h ${CMAKE_CURRENT_LIST_DIR}/include/Fir.h ${CMAKE_CURRENT_LIST_DIR}/include/Flute.h ${CMAKE_CURRENT_LIST_DIR}/include/FM.h ${CMAKE_CURRENT_LIST_DIR}/include/FMVoices.h ${CMAKE_CURRENT_LIST_DIR}/include/FormSwep.h ${CMAKE_CURRENT_LIST_DIR}/include/FreeVerb.h ${CMAKE_CURRENT_LIST_DIR}/include/Function.h ${CMAKE_CURRENT_LIST_DIR}/include/Generator.h ${CMAKE_CURRENT_LIST_DIR}/include/Granulate.h ${CMAKE_CURRENT_LIST_DIR}/include/Guitar.h ${CMAKE_CURRENT_LIST_DIR}/include/HevyMetl.h ${CMAKE_CURRENT_LIST_DIR}/include/Iir.h ${CMAKE_CURRENT_LIST_DIR}/include/InetWvIn.h ${CMAKE_CURRENT_LIST_DIR}/include/InetWvOut.h ${CMAKE_CURRENT_LIST_DIR}/include/Instrmnt.h ${CMAKE_CURRENT_LIST_DIR}/include/JCRev.h ${CMAKE_CURRENT_LIST_DIR}/include/JetTable.h ${CMAKE_CURRENT_LIST_DIR}/include/LentPitShift.h ${CMAKE_CURRENT_LIST_DIR}/include/Mandolin.h ${CMAKE_CURRENT_LIST_DIR}/include/Mesh2D.h ${CMAKE_CURRENT_LIST_DIR}/include/Messager.h ${CMAKE_CURRENT_LIST_DIR}/include/MidiFileIn.h ${CMAKE_CURRENT_LIST_DIR}/include/Modal.h ${CMAKE_CURRENT_LIST_DIR}/include/ModalBar.h ${CMAKE_CURRENT_LIST_DIR}/include/Modulate.h ${CMAKE_CURRENT_LIST_DIR}/include/Moog.h ${CMAKE_CURRENT_LIST_DIR}/include/Mutex.h ${CMAKE_CURRENT_LIST_DIR}/include/Noise.h ${CMAKE_CURRENT_LIST_DIR}/include/NRev.h ${CMAKE_CURRENT_LIST_DIR}/include/OnePole.h ${CMAKE_CURRENT_LIST_DIR}/include/OneZero.h ${CMAKE_CURRENT_LIST_DIR}/include/PercFlut.h ${CMAKE_CURRENT_LIST_DIR}/include/Phonemes.h ${CMAKE_CURRENT_LIST_DIR}/include/PitShift.h ${CMAKE_CURRENT_LIST_DIR}/include/Plucked.h ${CMAKE_CURRENT_LIST_DIR}/include/PoleZero.h ${CMAKE_CURRENT_LIST_DIR}/include/PRCRev.h ${CMAKE_CURRENT_LIST_DIR}/include/ReedTable.h ${CMAKE_CURRENT_LIST_DIR}/include/Resonate.h ${CMAKE_CURRENT_LIST_DIR}/include/Rhodey.h ${CMAKE_CURRENT_LIST_DIR}/include/RtAudio.h ${CMAKE_CURRENT_LIST_DIR}/include/RtMidi.h ${CMAKE_CURRENT_LIST_DIR}/include/RtWvIn.h ${CMAKE_CURRENT_LIST_DIR}/include/RtWvOut.h ${CMAKE_CURRENT_LIST_DIR}/include/Sampler.h ${CMAKE_CURRENT_LIST_DIR}/include/Saxofony.h ${CMAKE_CURRENT_LIST_DIR}/include/Shakers.h ${CMAKE_CURRENT_LIST_DIR}/include/Simple.h ${CMAKE_CURRENT_LIST_DIR}/include/SineWave.h ${CMAKE_CURRENT_LIST_DIR}/include/SingWave.h ${CMAKE_CURRENT_LIST_DIR}/include/Sitar.h ${CMAKE_CURRENT_LIST_DIR}/include/Skini.h ${CMAKE_CURRENT_LIST_DIR}/include/SKINImsg.h ${CMAKE_CURRENT_LIST_DIR}/include/SKINItbl.h ${CMAKE_CURRENT_LIST_DIR}/include/Socket.h ${CMAKE_CURRENT_LIST_DIR}/include/Sphere.h ${CMAKE_CURRENT_LIST_DIR}/include/StifKarp.h ${CMAKE_CURRENT_LIST_DIR}/include/Stk.h ${CMAKE_CURRENT_LIST_DIR}/include/TapDelay.h ${CMAKE_CURRENT_LIST_DIR}/include/TcpClient.h ${CMAKE_CURRENT_LIST_DIR}/include/TcpServer.h ${CMAKE_CURRENT_LIST_DIR}/include/Thread.h ${CMAKE_CURRENT_LIST_DIR}/include/TubeBell.h ${CMAKE_CURRENT_LIST_DIR}/include/Twang.h ${CMAKE_CURRENT_LIST_DIR}/include/TwoPole.h ${CMAKE_CURRENT_LIST_DIR}/include/TwoZero.h ${CMAKE_CURRENT_LIST_DIR}/include/UdpSocket.h ${CMAKE_CURRENT_LIST_DIR}/include/Vector3D.h ${CMAKE_CURRENT_LIST_DIR}/include/Voicer.h ${CMAKE_CURRENT_LIST_DIR}/include/VoicForm.h ${CMAKE_CURRENT_LIST_DIR}/include/Whistle.h ${CMAKE_CURRENT_LIST_DIR}/include/Wurley.h ${CMAKE_CURRENT_LIST_DIR}/include/WvIn.h ${CMAKE_CURRENT_LIST_DIR}/include/WvOut.h ) target_sources (stk PRIVATE ${CMAKE_CURRENT_LIST_DIR}/src/ADSR.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Asymp.cpp ${CMAKE_CURRENT_LIST_DIR}/src/BandedWG.cpp ${CMAKE_CURRENT_LIST_DIR}/src/BeeThree.cpp ${CMAKE_CURRENT_LIST_DIR}/src/BiQuad.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Blit.cpp ${CMAKE_CURRENT_LIST_DIR}/src/BlitSaw.cpp ${CMAKE_CURRENT_LIST_DIR}/src/BlitSquare.cpp ${CMAKE_CURRENT_LIST_DIR}/src/BlowBotl.cpp ${CMAKE_CURRENT_LIST_DIR}/src/BlowHole.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Bowed.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Brass.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Chorus.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Clarinet.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Delay.cpp ${CMAKE_CURRENT_LIST_DIR}/src/DelayA.cpp ${CMAKE_CURRENT_LIST_DIR}/src/DelayL.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Drummer.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Echo.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Envelope.cpp ${CMAKE_CURRENT_LIST_DIR}/src/FileLoop.cpp ${CMAKE_CURRENT_LIST_DIR}/src/FileRead.cpp ${CMAKE_CURRENT_LIST_DIR}/src/FileWrite.cpp ${CMAKE_CURRENT_LIST_DIR}/src/FileWvIn.cpp ${CMAKE_CURRENT_LIST_DIR}/src/FileWvOut.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Fir.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Flute.cpp ${CMAKE_CURRENT_LIST_DIR}/src/FM.cpp ${CMAKE_CURRENT_LIST_DIR}/src/FMVoices.cpp ${CMAKE_CURRENT_LIST_DIR}/src/FormSwep.cpp ${CMAKE_CURRENT_LIST_DIR}/src/FreeVerb.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Granulate.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Guitar.cpp ${CMAKE_CURRENT_LIST_DIR}/src/HevyMetl.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Iir.cpp ${CMAKE_CURRENT_LIST_DIR}/src/InetWvIn.cpp ${CMAKE_CURRENT_LIST_DIR}/src/InetWvOut.cpp ${CMAKE_CURRENT_LIST_DIR}/src/JCRev.cpp ${CMAKE_CURRENT_LIST_DIR}/src/LentPitShift.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Mandolin.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Mesh2D.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Messager.cpp ${CMAKE_CURRENT_LIST_DIR}/src/MidiFileIn.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Modal.cpp ${CMAKE_CURRENT_LIST_DIR}/src/ModalBar.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Modulate.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Moog.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Mutex.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Noise.cpp ${CMAKE_CURRENT_LIST_DIR}/src/NRev.cpp ${CMAKE_CURRENT_LIST_DIR}/src/OnePole.cpp ${CMAKE_CURRENT_LIST_DIR}/src/OneZero.cpp ${CMAKE_CURRENT_LIST_DIR}/src/PercFlut.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Phonemes.cpp ${CMAKE_CURRENT_LIST_DIR}/src/PitShift.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Plucked.cpp ${CMAKE_CURRENT_LIST_DIR}/src/PoleZero.cpp ${CMAKE_CURRENT_LIST_DIR}/src/PRCRev.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Resonate.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Rhodey.cpp ${CMAKE_CURRENT_LIST_DIR}/src/RtAudio.cpp ${CMAKE_CURRENT_LIST_DIR}/src/RtMidi.cpp ${CMAKE_CURRENT_LIST_DIR}/src/RtWvIn.cpp ${CMAKE_CURRENT_LIST_DIR}/src/RtWvOut.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Sampler.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Saxofony.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Shakers.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Simple.cpp ${CMAKE_CURRENT_LIST_DIR}/src/SineWave.cpp ${CMAKE_CURRENT_LIST_DIR}/src/SingWave.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Sitar.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Skini.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Socket.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Sphere.cpp ${CMAKE_CURRENT_LIST_DIR}/src/StifKarp.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Stk.cpp ${CMAKE_CURRENT_LIST_DIR}/src/TapDelay.cpp ${CMAKE_CURRENT_LIST_DIR}/src/TcpClient.cpp ${CMAKE_CURRENT_LIST_DIR}/src/TcpServer.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Thread.cpp ${CMAKE_CURRENT_LIST_DIR}/src/TubeBell.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Twang.cpp ${CMAKE_CURRENT_LIST_DIR}/src/TwoPole.cpp ${CMAKE_CURRENT_LIST_DIR}/src/TwoZero.cpp ${CMAKE_CURRENT_LIST_DIR}/src/UdpSocket.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Voicer.cpp ${CMAKE_CURRENT_LIST_DIR}/src/VoicForm.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Whistle.cpp ${CMAKE_CURRENT_LIST_DIR}/src/Wurley.cpp ${PUBLIC_HEADER_FILES} ) if (BIGENDIAN) message (STATUS "Building STK for big endian CPU") else (BIGENDIAN) message (STATUS "Building STK for little endian CPU") target_compile_definitions (stk PRIVATE -D__LITTLE_ENDIAN__) endif (BIGENDIAN) if(WIN32) target_link_libraries (stk winmm dsound Wsock32 ) target_compile_definitions (stk PRIVATE -D__WINDOWS_DS__ -D__WINDOWS_MM__) endif (WIN32) target_include_directories (stk PUBLIC $ $ ) install (TARGETS stk EXPORT stk-config RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install (EXPORT stk-config DESTINATION cmake) install (FILES ${PUBLIC_HEADER_FILES} DESTINATION include/stk)