2021-05-11 20:08:08 +00:00
cmake_minimum_required ( VERSION 3.0 )
2022-01-31 21:33:37 +00:00
if ( APPLE )
set ( MACOSX_DEPLOYMENT_TARGET 10.9 )
endif ( )
2021-05-13 08:22:57 +00:00
project ( furnace )
2021-05-11 20:08:08 +00:00
2022-02-08 07:04:23 +00:00
if ( APPLE )
enable_language ( OBJC )
endif ( )
2021-12-09 08:37:31 +00:00
set ( CMAKE_CXX_STANDARD 14 )
2022-05-06 10:40:33 +00:00
set ( CMAKE_CXX_EXTENSIONS OFF )
2021-05-11 20:08:08 +00:00
2021-12-24 23:12:36 +00:00
set ( CMAKE_PROJECT_VERSION_MAJOR 0 )
2022-04-01 10:24:35 +00:00
set ( CMAKE_PROJECT_VERSION_MINOR 6 )
set ( CMAKE_PROJECT_VERSION_PATCH 0 )
2021-12-24 23:12:36 +00:00
2022-05-08 20:59:42 +00:00
set ( BUILD_GUI_DEFAULT ON )
2022-05-23 00:01:50 +00:00
set ( USE_SDL2_DEFAULT ON )
set ( USE_SNDFILE_DEFAULT ON )
2022-05-08 20:59:42 +00:00
set ( SYSTEM_SDL2_DEFAULT OFF )
2022-07-15 03:15:14 +00:00
include ( CheckIncludeFile )
2022-08-19 05:23:45 +00:00
include ( TestBigEndian )
2022-07-15 03:15:14 +00:00
2021-12-11 07:10:09 +00:00
if ( ANDROID )
2022-02-21 18:47:49 +00:00
set ( USE_RTMIDI_DEFAULT OFF )
2022-05-24 18:06:29 +00:00
set ( USE_BACKWARD_DEFAULT OFF )
2022-05-27 20:51:57 +00:00
find_library ( TERMUX rt )
if ( TERMUX )
message ( STATUS "Termux detected" )
endif ( )
2021-12-11 07:10:09 +00:00
else ( )
2022-02-21 18:47:49 +00:00
set ( USE_RTMIDI_DEFAULT ON )
2022-07-24 03:19:07 +00:00
if ( WIN32 OR APPLE )
2022-07-15 03:15:14 +00:00
set ( USE_BACKWARD_DEFAULT ON )
else ( )
2022-07-24 03:19:07 +00:00
CHECK_INCLUDE_FILE ( execinfo.h EXECINFO_FOUND )
if ( EXECINFO_FOUND )
2022-07-15 03:15:14 +00:00
set ( USE_BACKWARD_DEFAULT ON )
else ( )
set ( USE_BACKWARD_DEFAULT OFF )
endif ( )
endif ( )
2021-12-11 07:10:09 +00:00
endif ( )
2022-02-01 20:50:25 +00:00
find_package ( PkgConfig )
2022-05-08 20:59:42 +00:00
if ( PKG_CONFIG_FOUND AND NOT ANDROID )
2022-02-01 20:50:25 +00:00
pkg_check_modules ( JACK jack )
set ( WITH_JACK_DEFAULT ${ JACK_FOUND } )
else ( )
set ( WITH_JACK_DEFAULT OFF )
endif ( )
2021-12-11 21:44:02 +00:00
2023-06-03 06:41:34 +00:00
set ( WITH_RENDER_SDL_DEFAULT ON )
if ( APPLE )
set ( WITH_RENDER_OPENGL_DEFAULT OFF )
else ( )
set ( WITH_RENDER_OPENGL_DEFAULT ON )
endif ( )
2023-06-12 21:47:54 +00:00
if ( WIN32 )
set ( WITH_RENDER_DX11_DEFAULT ON )
else ( )
set ( WITH_RENDER_DX11_DEFAULT OFF )
endif ( )
2023-06-03 06:41:34 +00:00
2023-06-03 20:05:55 +00:00
if ( ANDROID )
set ( USE_GLES_DEFAULT ON )
else ( )
set ( USE_GLES_DEFAULT OFF )
endif ( )
2022-02-01 20:50:25 +00:00
option ( BUILD_GUI "Build the tracker (disable to build only a headless player)" ${ BUILD_GUI_DEFAULT } )
2022-05-23 00:01:50 +00:00
option ( USE_RTMIDI "Build with MIDI support using RtMidi." ${ USE_RTMIDI_DEFAULT } )
option ( USE_SDL2 "Build with SDL2. Required to build with GUI." ${ USE_SDL2_DEFAULT } )
option ( USE_SNDFILE "Build with libsndfile. Required in order to work with audio files." ${ USE_SNDFILE_DEFAULT } )
2022-05-24 18:06:29 +00:00
option ( USE_BACKWARD "Use backward-cpp to print a backtrace on crash/abort." ${ USE_BACKWARD_DEFAULT } )
2022-02-01 20:50:25 +00:00
option ( WITH_JACK "Whether to build with JACK support. Auto-detects if JACK is available" ${ WITH_JACK_DEFAULT } )
2023-06-03 06:41:34 +00:00
option ( WITH_RENDER_SDL "Whether to build with the SDL_Renderer render backend." ${ WITH_RENDER_SDL_DEFAULT } )
option ( WITH_RENDER_OPENGL "Whether to build with the OpenGL render backend." ${ WITH_RENDER_OPENGL_DEFAULT } )
2023-06-12 21:47:54 +00:00
option ( WITH_RENDER_DX11 "Whether to build with the DirectX 11 render backend." ${ WITH_RENDER_DX11_DEFAULT } )
2023-06-03 20:05:55 +00:00
option ( USE_GLES "Use OpenGL ES for the OpenGL render backend." ${ USE_GLES_DEFAULT } )
2022-05-31 08:24:29 +00:00
option ( SYSTEM_FFTW "Use a system-installed version of FFTW instead of the vendored one" OFF )
2022-02-01 20:50:25 +00:00
option ( SYSTEM_FMT "Use a system-installed version of fmt instead of the vendored one" OFF )
option ( SYSTEM_LIBSNDFILE "Use a system-installed version of libsndfile instead of the vendored one" OFF )
2022-02-13 20:02:43 +00:00
option ( SYSTEM_RTMIDI "Use a system-installed version of RtMidi instead of the vendored one" OFF )
2022-02-01 20:50:25 +00:00
option ( SYSTEM_ZLIB "Use a system-installed version of zlib instead of the vendored one" OFF )
2022-02-01 21:05:01 +00:00
option ( SYSTEM_SDL2 "Use a system-installed version of SDL2 instead of the vendored one" ${ SYSTEM_SDL2_DEFAULT } )
2022-12-31 23:36:33 +00:00
option ( SUPPORT_XP "Build a Windows XP-compatible binary" OFF )
2022-02-01 20:50:25 +00:00
option ( WARNINGS_ARE_ERRORS "Whether warnings in furnace's C++ code should be treated as errors" OFF )
2022-08-04 22:48:10 +00:00
option ( WITH_DEMOS "Install demo songs" ON )
option ( WITH_INSTRUMENTS "Install instruments" ON )
2023-02-19 22:36:14 +00:00
option ( WITH_WAVETABLES "Install wavetables" ON )
2022-02-01 20:50:25 +00:00
set ( DEPENDENCIES_INCLUDE_DIRS "" )
2022-05-11 21:09:23 +00:00
2022-05-27 20:51:57 +00:00
if ( ANDROID AND NOT TERMUX )
2022-08-19 05:23:45 +00:00
set ( DEPENDENCIES_DEFINES "IS_MOBILE" )
2022-05-11 21:09:23 +00:00
else ( )
2022-08-19 05:23:45 +00:00
set ( DEPENDENCIES_DEFINES "" )
endif ( )
TEST_BIG_ENDIAN ( IS_BIG_ENDIAN )
if ( IS_BIG_ENDIAN )
list ( APPEND DEPENDENCIES_DEFINES "TA_BIG_ENDIAN" )
2022-05-11 21:09:23 +00:00
endif ( )
2022-02-01 20:50:25 +00:00
set ( DEPENDENCIES_COMPILE_OPTIONS "" )
set ( DEPENDENCIES_LIBRARIES "" )
set ( DEPENDENCIES_LIBRARY_DIRS "" )
set ( DEPENDENCIES_LINK_OPTIONS "" )
set ( DEPENDENCIES_LEGACY_LDFLAGS "" )
2023-06-03 06:41:34 +00:00
if ( BUILD_GUI AND WITH_RENDER_SDL )
2022-02-01 21:05:01 +00:00
set ( SYSTEM_SDL_MIN_VER 2.0.18 )
else ( )
set ( SYSTEM_SDL_MIN_VER 2.0.0 )
endif ( )
2023-06-10 06:42:19 +00:00
if ( WIN32 )
# support Windows XP
if ( SUPPORT_XP )
add_compile_definitions ( "_WIN32_WINNT=0x0501" )
endif ( )
endif ( )
2022-02-13 22:02:49 +00:00
list ( APPEND DEPENDENCIES_INCLUDE_DIRS "extern/SAASound/include" )
2022-09-16 14:48:06 +00:00
list ( APPEND DEPENDENCIES_INCLUDE_DIRS "extern/vgsound_emu-modified" )
2022-02-13 22:02:49 +00:00
2022-02-01 20:50:25 +00:00
find_package ( Threads REQUIRED )
list ( APPEND DEPENDENCIES_LIBRARIES ${ CMAKE_THREAD_LIBS_INIT } )
2022-05-31 08:24:29 +00:00
if ( SYSTEM_FFTW )
find_package ( PkgConfig REQUIRED )
pkg_check_modules ( FFTW REQUIRED fftw3>=3.3 )
list ( APPEND DEPENDENCIES_INCLUDE_DIRS ${ FFTW_INCLUDE_DIRS } )
list ( APPEND DEPENDENCIES_COMPILE_OPTIONS ${ FFTW_CFLAGS_OTHER } )
list ( APPEND DEPENDENCIES_LIBRARIES ${ FFTW_LIBRARIES } )
list ( APPEND DEPENDENCIES_LIBRARY_DIRS ${ FFTW_LIBRARY_DIRS } )
list ( APPEND DEPENDENCIES_LINK_OPTIONS ${ FFTW_LDFLAGS_OTHER } )
list ( APPEND DEPENDENCIES_LEGACY_LDFLAGS ${ FFTW_LDFLAGS } )
message ( STATUS "Using system-installed FFTW" )
else ( )
2022-05-31 17:42:47 +00:00
if ( WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
set ( WITH_OUR_MALLOC ON CACHE BOOL "aaa" FORCE )
endif ( )
2022-06-25 21:08:41 +00:00
set ( BUILD_TESTS OFF CACHE BOOL "come on" FORCE )
2022-05-31 08:24:29 +00:00
add_subdirectory ( extern/fftw EXCLUDE_FROM_ALL )
list ( APPEND DEPENDENCIES_INCLUDE_DIRS extern/fftw/api )
list ( APPEND DEPENDENCIES_LIBRARIES fftw3 )
message ( STATUS "Using vendored FFTW" )
endif ( )
2022-02-01 20:50:25 +00:00
if ( SYSTEM_FMT )
if ( PKG_CONFIG_FOUND )
2022-04-11 07:05:58 +00:00
pkg_check_modules ( FMT fmt>=7.1.0 )
2022-02-01 20:50:25 +00:00
if ( FMT_FOUND )
list ( APPEND DEPENDENCIES_INCLUDE_DIRS ${ FMT_INCLUDE_DIRS } )
list ( APPEND DEPENDENCIES_COMPILE_OPTIONS ${ FMT_CFLAGS_OTHER } )
list ( APPEND DEPENDENCIES_LIBRARIES ${ FMT_LIBRARIES } )
list ( APPEND DEPENDENCIES_LIBRARY_DIRS ${ FMT_LIBRARY_DIRS } )
list ( APPEND DEPENDENCIES_LINK_OPTIONS ${ FMT_LDFLAGS_OTHER } )
list ( APPEND DEPENDENCIES_LEGACY_LDFLAGS ${ FMT_LDFLAGS } )
endif ( )
endif ( )
if ( NOT FMT_FOUND )
find_package ( fmt REQUIRED )
list ( APPEND DEPENDENCIES_LIBRARIES fmt::fmt )
endif ( )
message ( STATUS "Using system-installed fmt" )
else ( )
2022-01-18 06:00:08 +00:00
add_subdirectory ( extern/fmt EXCLUDE_FROM_ALL )
2022-02-01 20:50:25 +00:00
list ( APPEND DEPENDENCIES_INCLUDE_DIRS extern/fmt/include )
list ( APPEND DEPENDENCIES_LIBRARIES fmt )
message ( STATUS "Using vendored fmt" )
2022-01-18 05:45:17 +00:00
endif ( )
2021-12-30 22:31:08 +00:00
2022-05-23 00:01:50 +00:00
if ( USE_SNDFILE )
list ( APPEND DEPENDENCIES_DEFINES HAVE_SNDFILE )
if ( SYSTEM_LIBSNDFILE )
find_package ( PkgConfig REQUIRED )
pkg_check_modules ( LIBSNDFILE REQUIRED sndfile )
list ( APPEND DEPENDENCIES_INCLUDE_DIRS ${ LIBSNDFILE_INCLUDE_DIRS } )
list ( APPEND DEPENDENCIES_COMPILE_OPTIONS ${ LIBSNDFILE_CFLAGS_OTHER } )
list ( APPEND DEPENDENCIES_LIBRARIES ${ LIBSNDFILE_LIBRARIES } )
list ( APPEND DEPENDENCIES_LIBRARY_DIRS ${ LIBSNDFILE_LIBRARY_DIRS } )
list ( APPEND DEPENDENCIES_LINK_OPTIONS ${ LIBSNDFILE_LDFLAGS_OTHER } )
list ( APPEND DEPENDENCIES_LEGACY_LDFLAGS ${ LIBSNDFILE_LDFLAGS } )
message ( STATUS "Using system-installed libsndfile" )
else ( )
set ( BUILD_TESTING OFF CACHE BOOL "aaaaaa" FORCE )
set ( BUILD_PROGRAMS OFF CACHE BOOL "aaa" FORCE )
set ( BUILD_EXAMPLES OFF CACHE BOOL "a" FORCE )
set ( ENABLE_EXTERNAL_LIBS OFF CACHE BOOL "come on" FORCE )
set ( ENABLE_MPEG OFF CACHE BOOL "come on" FORCE )
add_subdirectory ( extern/libsndfile EXCLUDE_FROM_ALL )
list ( APPEND DEPENDENCIES_LIBRARIES sndfile )
message ( STATUS "Using vendored libsndfile" )
endif ( )
2022-02-01 20:50:25 +00:00
else ( )
2022-05-23 00:01:50 +00:00
message ( STATUS "Not using libsndfile" )
2022-02-01 20:50:25 +00:00
endif ( )
2021-12-07 17:21:23 +00:00
2022-02-21 18:47:49 +00:00
if ( USE_RTMIDI )
if ( SYSTEM_RTMIDI )
find_package ( PkgConfig REQUIRED )
pkg_check_modules ( RTMIDI REQUIRED rtmidi )
list ( APPEND DEPENDENCIES_INCLUDE_DIRS ${ RTMIDI_INCLUDE_DIRS } )
list ( APPEND DEPENDENCIES_COMPILE_OPTIONS ${ RTMIDI_CFLAGS_OTHER } )
list ( APPEND DEPENDENCIES_LIBRARIES ${ RTMIDI_LIBRARIES } )
list ( APPEND DEPENDENCIES_LIBRARY_DIRS ${ RTMIDI_LIBRARY_DIRS } )
list ( APPEND DEPENDENCIES_LINK_OPTIONS ${ RTMIDI_LDFLAGS_OTHER } )
list ( APPEND DEPENDENCIES_LEGACY_LDFLAGS ${ RTMIDI_LDFLAGS } )
message ( STATUS "Using system-installed RtMidi" )
else ( )
add_subdirectory ( extern/rtmidi EXCLUDE_FROM_ALL )
list ( APPEND DEPENDENCIES_LIBRARIES rtmidi )
message ( STATUS "Using vendored RtMidi" )
endif ( )
2022-02-13 20:02:43 +00:00
endif ( )
2022-02-01 20:50:25 +00:00
if ( SYSTEM_ZLIB )
find_package ( PkgConfig REQUIRED )
pkg_check_modules ( ZLIB REQUIRED zlib )
list ( APPEND DEPENDENCIES_INCLUDE_DIRS ${ ZLIB_INCLUDE_DIRS } )
list ( APPEND DEPENDENCIES_COMPILE_OPTIONS ${ ZLIB_CFLAGS_OTHER } )
list ( APPEND DEPENDENCIES_LIBRARIES ${ ZLIB_LIBRARIES } )
list ( APPEND DEPENDENCIES_LIBRARY_DIRS ${ ZLIB_LIBRARY_DIRS } )
list ( APPEND DEPENDENCIES_LINK_OPTIONS ${ ZLIB_LDFLAGS_OTHER } )
list ( APPEND DEPENDENCIES_LEGACY_LDFLAGS ${ ZLIB_LDFLAGS } )
message ( STATUS "Using system-installed zlib" )
2022-01-18 07:56:12 +00:00
else ( )
2022-02-01 20:50:25 +00:00
set ( BUILD_TESTING OFF CACHE BOOL "aaaaaa" FORCE )
set ( BUILD_PROGRAMS OFF CACHE BOOL "aaa" FORCE )
set ( BUILD_EXAMPLES OFF CACHE BOOL "a" FORCE )
set ( ENABLE_EXTERNAL_LIBS OFF CACHE BOOL "come on" FORCE )
set ( ENABLE_MPEG OFF CACHE BOOL "come on" FORCE )
add_subdirectory ( extern/zlib EXCLUDE_FROM_ALL )
list ( APPEND DEPENDENCIES_INCLUDE_DIRS extern/zlib ${ CMAKE_CURRENT_BINARY_DIR } /extern/zlib )
list ( APPEND DEPENDENCIES_LIBRARIES zlibstatic )
message ( STATUS "Using vendored zlib" )
2022-01-18 05:45:17 +00:00
endif ( )
2022-05-23 00:01:50 +00:00
if ( USE_SDL2 )
if ( SYSTEM_SDL2 )
if ( PKG_CONFIG_FOUND )
pkg_check_modules ( SDL2 sdl2>= ${ SYSTEM_SDL_MIN_VER } )
if ( SDL2_FOUND )
list ( APPEND DEPENDENCIES_DEFINES HAVE_SDL2 )
list ( APPEND DEPENDENCIES_INCLUDE_DIRS ${ SDL2_INCLUDE_DIRS } )
list ( APPEND DEPENDENCIES_COMPILE_OPTIONS ${ SDL2_CFLAGS_OTHER } )
list ( APPEND DEPENDENCIES_LIBRARIES ${ SDL2_LIBRARIES } )
list ( APPEND DEPENDENCIES_LIBRARY_DIRS ${ SDL2_LIBRARY_DIRS } )
list ( APPEND DEPENDENCIES_LINK_OPTIONS ${ SDL2_LDFLAGS_OTHER } )
list ( APPEND DEPENDENCIES_LEGACY_LDFLAGS ${ SDL2_LDFLAGS } )
endif ( )
2022-02-01 20:50:25 +00:00
endif ( )
2022-05-23 00:01:50 +00:00
if ( NOT SDL2_FOUND )
find_package ( SDL2 ${ SYSTEM_SDL_MIN_VER } REQUIRED )
list ( APPEND DEPENDENCIES_DEFINES HAVE_SDL2 )
list ( APPEND DEPENDENCIES_INCLUDE_DIRS ${ SDL2_INCLUDE_DIR } )
list ( APPEND DEPENDENCIES_LIBRARIES ${ SDL2_LIBRARY } )
endif ( )
message ( STATUS "Using system-installed SDL2" )
2022-05-08 20:59:42 +00:00
else ( )
2022-05-27 20:51:57 +00:00
if ( ANDROID AND NOT TERMUX )
2022-05-23 00:01:50 +00:00
set ( SDL_SHARED ON CACHE BOOL "Force no dynamically-linked SDL" FORCE )
set ( SDL_STATIC OFF CACHE BOOL "Force statically-linked SDL" FORCE )
else ( )
set ( SDL_SHARED OFF CACHE BOOL "Force no dynamically-linked SDL" FORCE )
set ( SDL_STATIC ON CACHE BOOL "Force statically-linked SDL" FORCE )
endif ( )
2022-07-13 21:47:09 +00:00
# https://github.com/libsdl-org/SDL/issues/5535
# disable PipeWire support due to an unfixable bug:
# Looks like their headers have a C90 violation... I imagine they're probably on C99 so not the craziest bug in the world. Definitely file this at the PipeWire repository as well so they know this is out there.
set ( SDL_PIPEWIRE OFF CACHE BOOL "Use Pipewire audio" FORCE )
2022-05-23 00:01:50 +00:00
# https://github.com/libsdl-org/SDL/issues/1481
# On 2014-06-22 17:15:50 +0000, Sam Lantinga wrote:
# If you link SDL statically, you also need to define HAVE_LIBC so it builds with the C runtime that your application uses.
# This should probably go in a FAQ.
set ( SDL_LIBC ON CACHE BOOL "Tell SDL that we want it to use our C runtime (required for proper static linking)" FORCE )
2023-07-23 09:42:38 +00:00
# https://github.com/tildearrow/furnace/issues/1237
# enabling this will result in SDL finding the Direct3D headers, forcing _WIN32_WINNT to an undesirable value (which makes the Wine headers define GetTickCount64)
if ( SUPPORT_XP )
set ( SDL_RENDER_D3D OFF CACHE BOOL "Enable the Direct3D render driver" FORCE )
endif ( )
2022-05-23 00:01:50 +00:00
add_subdirectory ( extern/SDL EXCLUDE_FROM_ALL )
list ( APPEND DEPENDENCIES_DEFINES HAVE_SDL2 )
list ( APPEND DEPENDENCIES_INCLUDE_DIRS extern/SDL/include )
2022-05-27 20:51:57 +00:00
if ( ANDROID AND NOT TERMUX )
2022-05-23 00:01:50 +00:00
list ( APPEND DEPENDENCIES_LIBRARIES SDL2 )
else ( )
list ( APPEND DEPENDENCIES_LIBRARIES SDL2-static )
endif ( )
# Work around add_subdirectory'd SDL not propagating HAVE_LIBC to MSVC furnace build
if ( MSVC )
list ( APPEND DEPENDENCIES_COMPILE_OPTIONS "/DHAVE_LIBC" )
endif ( )
2023-01-14 19:57:03 +00:00
if ( WIN32 )
list ( APPEND DEPENDENCIES_LIBRARIES SDL2main )
endif ( )
2022-05-23 00:01:50 +00:00
message ( STATUS "Using vendored SDL2" )
2022-05-08 20:59:42 +00:00
endif ( )
2022-05-23 00:01:50 +00:00
else ( )
message ( STATUS "Not using SDL2" )
if ( BUILD_GUI )
message ( FATAL_ERROR "SDL2 is required in order to build with GUI! Disable BUILD_GUI otherwise." )
2022-04-09 12:33:13 +00:00
endif ( )
2021-05-11 20:08:08 +00:00
endif ( )
2023-06-03 06:41:34 +00:00
if ( BUILD_GUI )
2023-06-12 21:47:54 +00:00
if ( NOT WITH_RENDER_SDL AND NOT WITH_RENDER_OPENGL AND NOT WITH_RENDER_DX11 )
2023-06-03 06:41:34 +00:00
message ( FATAL_ERROR "No render backends selected!" )
endif ( )
endif ( )
2022-02-01 20:50:25 +00:00
set ( AUDIO_SOURCES
s r c / a u d i o / a b s t r a c t . c p p
2022-03-28 08:46:50 +00:00
s r c / a u d i o / m i d i . c p p
2022-02-01 20:50:25 +00:00
)
2022-05-23 00:01:50 +00:00
if ( USE_SDL2 )
2022-06-23 21:25:51 +00:00
list ( APPEND AUDIO_SOURCES src/audio/sdlAudio.cpp )
2022-05-23 00:01:50 +00:00
endif ( )
if ( WITH_JACK )
2022-02-01 20:50:25 +00:00
find_package ( PkgConfig REQUIRED )
pkg_check_modules ( JACK REQUIRED jack )
2021-05-11 20:08:08 +00:00
list ( APPEND AUDIO_SOURCES src/audio/jack.cpp )
2022-02-01 20:50:25 +00:00
list ( APPEND DEPENDENCIES_INCLUDE_DIRS ${ JACK_INCLUDE_DIRS } )
list ( APPEND DEPENDENCIES_DEFINES HAVE_JACK )
list ( APPEND DEPENDENCIES_COMPILE_OPTIONS ${ JACK_CFLAGS_OTHER } )
list ( APPEND DEPENDENCIES_LIBRARIES ${ JACK_LIBRARIES } )
list ( APPEND DEPENDENCIES_LIBRARY_DIRS ${ JACK_LIBRARY_DIRS } )
list ( APPEND DEPENDENCIES_LINK_OPTIONS ${ JACK_LDFLAGS_OTHER } )
list ( APPEND DEPENDENCIES_LEGACY_LDFLAGS ${ JACK_LDFLAGS } )
message ( STATUS "Building with JACK support" )
else ( )
message ( STATUS "Building without JACK support" )
2021-05-11 20:08:08 +00:00
endif ( )
2022-02-21 18:47:49 +00:00
if ( USE_RTMIDI )
list ( APPEND AUDIO_SOURCES src/audio/rtmidi.cpp )
message ( STATUS "Building with RtMidi" )
2022-03-28 08:46:50 +00:00
list ( APPEND DEPENDENCIES_DEFINES HAVE_RTMIDI )
2022-02-21 18:47:49 +00:00
else ( )
message ( STATUS "Building without RtMidi" )
endif ( )
2021-05-12 08:58:55 +00:00
set ( ENGINE_SOURCES
s r c / l o g . c p p
2022-11-13 21:25:50 +00:00
s r c / b a s e u t i l s . c p p
2022-01-20 10:04:03 +00:00
s r c / f i l e u t i l s . c p p
2022-01-25 23:46:27 +00:00
s r c / u t f u t i l s . c p p
2021-05-12 22:19:18 +00:00
2022-02-13 22:02:49 +00:00
e x t e r n / S A A S o u n d / s r c / S A A A m p . c p p
e x t e r n / S A A S o u n d / s r c / S A A D e v i c e . c p p
e x t e r n / S A A S o u n d / s r c / S A A E n v . c p p
e x t e r n / S A A S o u n d / s r c / S A A F r e q . c p p
e x t e r n / S A A S o u n d / s r c / S A A I m p l . c p p
e x t e r n / S A A S o u n d / s r c / S A A N o i s e . c p p
e x t e r n / S A A S o u n d / s r c / S A A S n d C . c p p
e x t e r n / S A A S o u n d / s r c / S A A S o u n d . c p p
2022-09-16 14:48:06 +00:00
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / c o r e / v o x / v o x . c p p
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / e s 5 5 0 x / e s 5 5 0 x . c p p
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / e s 5 5 0 x / e s 5 5 0 x _ a l u . c p p
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / e s 5 5 0 x / e s 5 5 0 x _ f i l t e r . c p p
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / e s 5 5 0 x / e s 5 5 0 4 . c p p
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / e s 5 5 0 x / e s 5 5 0 5 . c p p
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / e s 5 5 0 x / e s 5 5 0 6 . c p p
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / k 0 0 5 2 8 9 / k 0 0 5 2 8 9 . c p p
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / k 0 0 7 2 3 2 / k 0 0 7 2 3 2 . c p p
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / k 0 5 3 2 6 0 / k 0 5 3 2 6 0 . c p p
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / m s m 6 2 9 5 / m s m 6 2 9 5 . c p p
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / n 1 6 3 / n 1 6 3 . c p p
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / s c c / s c c . c p p
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / v r c v i / v r c v i . c p p
e x t e r n / v g s o u n d _ e m u - m o d i f i e d / v g s o u n d _ e m u / s r c / x 1 _ 0 1 0 / x 1 _ 0 1 0 . c p p
2022-02-24 08:57:45 +00:00
e x t e r n / a d p c m / b s _ c o d e c . c
e x t e r n / a d p c m / o k i _ c o d e c . c
e x t e r n / a d p c m / y m a _ c o d e c . c
e x t e r n / a d p c m / y m b _ c o d e c . c
e x t e r n / a d p c m / y m z _ c o d e c . c
2022-12-24 07:29:37 +00:00
e x t e r n / o p n / y m 3 4 3 8 . c
2022-05-26 23:46:20 +00:00
e x t e r n / N u k e d - P S G / y m p s g . c
2021-12-09 06:03:05 +00:00
e x t e r n / o p m / o p m . c
2022-02-25 09:26:01 +00:00
e x t e r n / N u k e d - O P L L / o p l l . c
2022-05-04 23:06:32 +00:00
e x t e r n / o p l / o p l 3 . c
2021-05-14 08:23:40 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / s n 7 6 4 9 6 . c p p
2022-01-13 07:52:19 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / a y 8 9 1 0 . c p p
2022-01-14 21:29:27 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / s a a 1 0 9 9 . c p p
2022-05-20 07:43:39 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / n a m c o . c p p
2023-02-10 00:11:27 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / s e g a p c m . c p p
2021-05-23 02:10:25 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / g b / a p u . c
2021-05-27 10:06:43 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / g b / t i m i n g . c
2021-06-06 19:02:38 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / p c e _ p s g . c p p
2021-12-03 21:04:07 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / n e s / a p u . c
2022-04-04 03:37:16 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / n e s / f d s . c
2022-04-06 05:34:12 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / n e s / m m c 5 . c
2022-03-10 20:51:27 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / v e r a _ p s g . c
s r c / e n g i n e / p l a t f o r m / s o u n d / v e r a _ p c m . c
2021-05-12 22:19:18 +00:00
2022-05-02 03:52:22 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / n e s _ n s f p l a y / n e s _ a p u . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / n e s _ n s f p l a y / n e s _ d m c . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / n e s _ n s f p l a y / n e s _ f d s . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / n e s _ n s f p l a y / n e s _ m m c 5 . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / n e s _ n s f p l a y / n e s _ n 1 0 6 . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / n e s _ n s f p l a y / n e s _ v r c 6 . c p p
2021-12-04 07:42:22 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / s i d . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / v o i c e . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / w a v e . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / e n v e l o p e . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / f i l t e r . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / e x t f i l t . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / p o t . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / v e r s i o n . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / w a v e 6 5 8 1 _ P S _ . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / w a v e 6 5 8 1 _ P S T . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / w a v e 6 5 8 1 _ P _ T . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / w a v e 6 5 8 1 _ _ S T . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / w a v e 8 5 8 0 _ P S _ . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / w a v e 8 5 8 0 _ P S T . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / w a v e 8 5 8 0 _ P _ T . c c
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 / w a v e 8 5 8 0 _ _ S T . c c
2023-02-14 06:02:35 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / a r r a y . c p p
2022-08-28 20:10:16 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / D a c . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / E n v e l o p e G e n e r a t o r . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / E x t e r n a l F i l t e r . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / F i l t e r 6 5 8 1 . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / F i l t e r 8 5 8 0 . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / F i l t e r . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / F i l t e r M o d e l C o n f i g 6 5 8 1 . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / F i l t e r M o d e l C o n f i g 8 5 8 0 . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / F i l t e r M o d e l C o n f i g . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / I n t e g r a t o r 6 5 8 1 . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / I n t e g r a t o r 8 5 8 0 . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / O p A m p . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / S I D . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / S p l i n e . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / W a v e f o r m C a l c u l a t o r . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / W a v e f o r m G e n e r a t o r . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ f p / r e s a m p l e / S i n c R e s a m p l e r . c p p
2023-07-05 22:09:02 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / c 6 4 _ d / d s i d . c
2022-09-10 04:21:45 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / t i a / A u d i o C h a n n e l . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / t i a / A u d i o . c p p
2022-01-14 08:37:36 +00:00
2021-12-15 06:23:58 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / y m f m / y m f m _ a d p c m . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / y m f m / y m f m _ o p m . c p p
s r c / e n g i n e / p l a t f o r m / s o u n d / y m f m / y m f m _ o p n . c p p
2022-02-10 04:19:02 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / y m f m / y m f m _ o p z . c p p
2021-12-15 06:23:58 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / y m f m / y m f m _ s s g . c p p
2021-12-09 08:37:31 +00:00
2022-02-20 17:15:15 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / l y n x / M i k e y . c p p
2022-12-19 22:10:45 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / p o k e y / m z p o k e y s n d . c
2022-12-22 21:40:29 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / p o k e y / A l t A S A P . c p p
2022-12-19 22:10:45 +00:00
2022-02-22 09:01:57 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / q s o u n d . c
2022-03-07 12:04:20 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / s w a n . c p p
2022-03-06 16:13:47 +00:00
2022-04-27 09:48:56 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / s u . c p p
2022-03-22 07:48:48 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / v i c 2 0 s o u n d . c
2022-05-18 06:55:33 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / y m z 2 8 0 b . c p p
2022-10-09 00:37:22 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / v s u . c p p
2022-10-09 20:18:52 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / t 6 w 2 8 / T 6 W 2 8 _ A p u . c p p
2022-05-20 18:45:26 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / r f 5 c 6 8 . c p p
2022-10-01 08:15:40 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / o k i / m s m 5 2 3 2 . c p p
2022-05-22 22:49:41 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / o k i / o k i m 6 2 5 8 . c p p
2022-03-21 07:38:12 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / s n e s / S P C _ D S P . c p p
2022-05-22 22:49:41 +00:00
2022-12-15 11:03:54 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / g a 2 0 / i r e m g a 2 0 . c p p
2023-02-11 12:37:11 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / s m 8 5 2 1 . c
2023-03-18 22:15:13 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / d 6 5 m o d i f i e d . c
2023-03-05 05:01:44 +00:00
2023-07-23 09:42:38 +00:00
s r c / e n g i n e / p l a t f o r m / s o u n d / t e d - s o u n d . c
2022-05-13 19:59:36 +00:00
s r c / e n g i n e / p l a t f o r m / o p l A I n t e r f a c e . c p p
2022-05-13 07:52:43 +00:00
s r c / e n g i n e / p l a t f o r m / y m 2 6 0 8 I n t e r f a c e . c p p
2021-12-09 18:25:02 +00:00
s r c / e n g i n e / p l a t f o r m / y m 2 6 1 0 I n t e r f a c e . c p p
2021-05-12 08:58:55 +00:00
s r c / e n g i n e / b l i p _ b u f . c
2022-09-24 09:27:53 +00:00
s r c / e n g i n e / b r r U t i l s . c
2021-05-12 08:58:55 +00:00
s r c / e n g i n e / s a f e R e a d e r . c p p
2021-12-15 19:15:44 +00:00
s r c / e n g i n e / s a f e W r i t e r . c p p
2023-03-26 23:48:16 +00:00
s r c / e n g i n e / c m d S t r e a m . c p p
2022-02-18 18:11:04 +00:00
s r c / e n g i n e / c o n f i g . c p p
2022-09-29 06:24:26 +00:00
s r c / e n g i n e / c o n f i g E n g i n e . c p p
2022-01-08 21:03:32 +00:00
s r c / e n g i n e / d i s p a t c h C o n t a i n e r . c p p
2021-05-12 08:58:55 +00:00
s r c / e n g i n e / e n g i n e . c p p
2023-03-13 19:17:05 +00:00
s r c / e n g i n e / e x p o r t . c p p
2022-02-18 17:39:45 +00:00
s r c / e n g i n e / f i l e O p s . c p p
2022-04-03 07:15:04 +00:00
s r c / e n g i n e / f i l e O p s I n s . c p p
2022-03-20 08:14:00 +00:00
s r c / e n g i n e / f i l t e r . c p p
2022-01-19 08:28:29 +00:00
s r c / e n g i n e / i n s t r u m e n t . c p p
2021-05-15 21:42:48 +00:00
s r c / e n g i n e / m a c r o I n t . c p p
2021-12-09 06:44:40 +00:00
s r c / e n g i n e / p a t t e r n . c p p
2021-05-12 08:58:55 +00:00
s r c / e n g i n e / p l a y b a c k . c p p
2021-12-15 19:15:44 +00:00
s r c / e n g i n e / s a m p l e . c p p
s r c / e n g i n e / s o n g . c p p
2022-02-18 18:04:33 +00:00
s r c / e n g i n e / s y s D e f . c p p
2022-01-19 10:10:06 +00:00
s r c / e n g i n e / w a v e t a b l e . c p p
2022-04-07 20:46:48 +00:00
s r c / e n g i n e / w a v e S y n t h . c p p
2022-02-18 17:58:36 +00:00
s r c / e n g i n e / v g m O p s . c p p
2022-05-26 05:24:21 +00:00
s r c / e n g i n e / z s m O p s . c p p
s r c / e n g i n e / z s m . c p p
2023-03-13 09:20:54 +00:00
2021-05-12 08:58:55 +00:00
s r c / e n g i n e / p l a t f o r m / a b s t r a c t . c p p
2021-05-12 22:19:18 +00:00
s r c / e n g i n e / p l a t f o r m / g e n e s i s . c p p
2021-05-16 22:43:10 +00:00
s r c / e n g i n e / p l a t f o r m / g e n e s i s e x t . c p p
2021-05-15 19:18:16 +00:00
s r c / e n g i n e / p l a t f o r m / s m s . c p p
2022-02-25 09:26:01 +00:00
s r c / e n g i n e / p l a t f o r m / o p l l . c p p
2021-05-26 08:17:12 +00:00
s r c / e n g i n e / p l a t f o r m / g b . c p p
2021-06-06 19:02:38 +00:00
s r c / e n g i n e / p l a t f o r m / p c e . c p p
2022-04-06 05:34:12 +00:00
s r c / e n g i n e / p l a t f o r m / m m c 5 . c p p
2021-12-04 06:19:54 +00:00
s r c / e n g i n e / p l a t f o r m / n e s . c p p
2021-12-05 04:55:28 +00:00
s r c / e n g i n e / p l a t f o r m / c 6 4 . c p p
2021-12-08 22:40:35 +00:00
s r c / e n g i n e / p l a t f o r m / a r c a d e . c p p
2022-04-07 03:56:06 +00:00
s r c / e n g i n e / p l a t f o r m / t x 8 1 z . c p p
2022-05-11 08:29:03 +00:00
s r c / e n g i n e / p l a t f o r m / y m 2 2 0 3 . c p p
2022-05-14 23:19:07 +00:00
s r c / e n g i n e / p l a t f o r m / y m 2 2 0 3 e x t . c p p
2022-05-13 07:52:43 +00:00
s r c / e n g i n e / p l a t f o r m / y m 2 6 0 8 . c p p
2022-05-19 03:49:21 +00:00
s r c / e n g i n e / p l a t f o r m / y m 2 6 0 8 e x t . c p p
2021-12-09 18:25:02 +00:00
s r c / e n g i n e / p l a t f o r m / y m 2 6 1 0 . c p p
2021-12-14 19:31:57 +00:00
s r c / e n g i n e / p l a t f o r m / y m 2 6 1 0 e x t . c p p
2022-02-24 16:02:35 +00:00
s r c / e n g i n e / p l a t f o r m / y m 2 6 1 0 b . c p p
s r c / e n g i n e / p l a t f o r m / y m 2 6 1 0 b e x t . c p p
2022-01-13 07:52:19 +00:00
s r c / e n g i n e / p l a t f o r m / a y . c p p
2022-01-14 05:02:10 +00:00
s r c / e n g i n e / p l a t f o r m / a y 8 9 3 0 . c p p
2022-03-05 23:18:08 +00:00
s r c / e n g i n e / p l a t f o r m / o p l . c p p
2022-04-04 03:37:16 +00:00
s r c / e n g i n e / p l a t f o r m / f d s . c p p
2022-01-14 08:37:36 +00:00
s r c / e n g i n e / p l a t f o r m / t i a . c p p
2022-01-14 21:29:27 +00:00
s r c / e n g i n e / p l a t f o r m / s a a . c p p
2022-01-15 22:28:33 +00:00
s r c / e n g i n e / p l a t f o r m / a m i g a . c p p
2022-10-01 08:15:40 +00:00
s r c / e n g i n e / p l a t f o r m / m s m 5 2 3 2 . c p p
2022-05-24 00:01:10 +00:00
s r c / e n g i n e / p l a t f o r m / m s m 6 2 5 8 . c p p
2022-05-23 06:46:58 +00:00
s r c / e n g i n e / p l a t f o r m / m s m 6 2 9 5 . c p p
2022-03-04 23:18:43 +00:00
s r c / e n g i n e / p l a t f o r m / p c s p k r . c p p
2022-02-23 07:52:30 +00:00
s r c / e n g i n e / p l a t f o r m / s e g a p c m . c p p
2022-02-22 09:01:57 +00:00
s r c / e n g i n e / p l a t f o r m / q s o u n d . c p p
2022-03-06 17:31:03 +00:00
s r c / e n g i n e / p l a t f o r m / x 1 _ 0 1 0 . c p p
2022-12-20 00:45:04 +00:00
s r c / e n g i n e / p l a t f o r m / p o k e y . c p p
2022-02-20 17:15:15 +00:00
s r c / e n g i n e / p l a t f o r m / l y n x . c p p
2022-04-27 09:48:56 +00:00
s r c / e n g i n e / p l a t f o r m / s u . c p p
2022-03-07 12:04:20 +00:00
s r c / e n g i n e / p l a t f o r m / s w a n . c p p
2022-10-12 05:12:56 +00:00
s r c / e n g i n e / p l a t f o r m / t 6 w 2 8 . c p p
2022-10-09 00:37:22 +00:00
s r c / e n g i n e / p l a t f o r m / v b . c p p
2022-03-04 11:13:49 +00:00
s r c / e n g i n e / p l a t f o r m / v e r a . c p p
2022-05-14 05:22:23 +00:00
s r c / e n g i n e / p l a t f o r m / z x b e e p e r . c p p
2023-03-05 17:58:27 +00:00
s r c / e n g i n e / p l a t f o r m / z x b e e p e r q u a d t o n e . c p p
2022-03-17 01:11:48 +00:00
s r c / e n g i n e / p l a t f o r m / b u b s y s w s g . c p p
2022-03-22 16:48:45 +00:00
s r c / e n g i n e / p l a t f o r m / n 1 6 3 . c p p
2022-03-21 14:02:51 +00:00
s r c / e n g i n e / p l a t f o r m / p e t . c p p
2022-12-13 18:32:35 +00:00
s r c / e n g i n e / p l a t f o r m / p o k e m i n i . c p p
2022-10-24 08:19:42 +00:00
s r c / e n g i n e / p l a t f o r m / p o n g . c p p
2022-03-22 07:48:48 +00:00
s r c / e n g i n e / p l a t f o r m / v i c 2 0 . c p p
2022-03-27 16:06:56 +00:00
s r c / e n g i n e / p l a t f o r m / v r c 6 . c p p
2022-04-20 16:52:37 +00:00
s r c / e n g i n e / p l a t f o r m / e s 5 5 0 6 . c p p
2022-05-10 04:18:25 +00:00
s r c / e n g i n e / p l a t f o r m / s c c . c p p
2022-05-18 06:55:33 +00:00
s r c / e n g i n e / p l a t f o r m / y m z 2 8 0 b . c p p
2022-05-20 18:22:35 +00:00
s r c / e n g i n e / p l a t f o r m / n a m c o w s g . c p p
2022-05-20 18:45:26 +00:00
s r c / e n g i n e / p l a t f o r m / r f 5 c 6 8 . c p p
2022-03-21 07:38:12 +00:00
s r c / e n g i n e / p l a t f o r m / s n e s . c p p
2022-12-08 05:18:22 +00:00
s r c / e n g i n e / p l a t f o r m / k 0 0 7 2 3 2 . c p p
2022-12-15 11:03:54 +00:00
s r c / e n g i n e / p l a t f o r m / g a 2 0 . c p p
2023-02-11 12:37:11 +00:00
s r c / e n g i n e / p l a t f o r m / s m 8 5 2 1 . c p p
2023-03-05 19:01:21 +00:00
s r c / e n g i n e / p l a t f o r m / p v 1 0 0 0 . c p p
2023-04-02 05:32:47 +00:00
s r c / e n g i n e / p l a t f o r m / k 0 5 3 2 6 0 . c p p
2023-07-23 09:42:38 +00:00
s r c / e n g i n e / p l a t f o r m / t e d . c p p
2022-07-02 18:42:47 +00:00
s r c / e n g i n e / p l a t f o r m / p c m d a c . c p p
2022-02-01 20:50:25 +00:00
s r c / e n g i n e / p l a t f o r m / d u m m y . c p p
2023-03-13 09:20:54 +00:00
s r c / e n g i n e / e x p o r t / a b s t r a c t . c p p
2023-03-13 19:17:05 +00:00
s r c / e n g i n e / e x p o r t / a m i g a V a l i d a t i o n . c p p
2023-05-21 09:39:36 +00:00
s r c / e n g i n e / e f f e c t / a b s t r a c t . c p p
s r c / e n g i n e / e f f e c t / d u m m y . c p p
2022-02-01 20:50:25 +00:00
)
2022-06-28 07:00:08 +00:00
if ( USE_SNDFILE )
list ( APPEND ENGINE_SOURCES src/engine/sfWrapper.cpp )
endif ( )
2022-02-01 20:50:25 +00:00
if ( WIN32 )
list ( APPEND ENGINE_SOURCES src/utfutils.cpp )
list ( APPEND ENGINE_SOURCES src/engine/winStuff.cpp )
list ( APPEND ENGINE_SOURCES res/furnace.rc )
endif ( )
2021-05-11 20:08:08 +00:00
2022-07-25 22:23:56 +00:00
set ( CLI_SOURCES
s r c / c l i / c l i . c p p
)
2021-12-11 07:10:09 +00:00
set ( GUI_SOURCES
2022-05-18 20:23:10 +00:00
e x t e r n / i m g u i _ p a t c h e d / i m g u i . c p p
e x t e r n / i m g u i _ p a t c h e d / i m g u i _ d r a w . c p p
e x t e r n / i m g u i _ p a t c h e d / i m g u i _ t a b l e s . c p p
e x t e r n / i m g u i _ p a t c h e d / i m g u i _ w i d g e t s . c p p
2023-06-08 06:00:47 +00:00
e x t e r n / i m g u i _ p a t c h e d / b a c k e n d s / i m g u i _ i m p l _ s d l 2 . c p p
2022-05-18 20:23:10 +00:00
e x t e r n / i m g u i _ p a t c h e d / m i s c / c p p / i m g u i _ s t d l i b . c p p
2021-12-11 07:10:09 +00:00
e x t e r n / i g f d / I m G u i F i l e D i a l o g . c p p
2021-12-18 22:54:26 +00:00
s r c / g u i / p l o t _ n o l e r p . c p p
2023-02-15 23:32:31 +00:00
2023-06-03 01:21:37 +00:00
s r c / g u i / r e n d e r . c p p
s r c / g u i / r e n d e r / a b s t r a c t . c p p
2022-01-19 21:58:01 +00:00
s r c / g u i / f o n t _ e x o . c p p
s r c / g u i / f o n t _ l i b e r a t i o n S a n s . c p p
s r c / g u i / f o n t _ m o n o n o k i . c p p
s r c / g u i / f o n t _ p l e x M o n o . c p p
s r c / g u i / f o n t _ p l e x S a n s . c p p
s r c / g u i / f o n t _ p r o g g y C l e a n . c p p
s r c / g u i / f o n t _ p t M o n o . c p p
s r c / g u i / f o n t _ u n i f o n t . c p p
2021-12-21 05:30:55 +00:00
s r c / g u i / f o n t _ i c o n . c p p
2022-01-19 21:58:01 +00:00
s r c / g u i / f o n t s . c p p
2023-02-15 23:32:31 +00:00
s r c / g u i / i m a g e _ i c o n . c p p
2023-02-16 09:13:43 +00:00
s r c / g u i / i m a g e _ t a l o g o . c p p
s r c / g u i / i m a g e _ t a c h i p . c p p
s r c / g u i / i m a g e _ l o g o . c p p
2023-02-17 21:30:24 +00:00
s r c / g u i / i m a g e _ w o r d m a r k . c p p
2023-02-18 00:40:18 +00:00
s r c / g u i / i m a g e _ i n t r o b g . c p p
2023-02-19 00:43:23 +00:00
s r c / g u i / i m a g e _ p a t . c p p
2023-02-15 23:32:31 +00:00
s r c / g u i / i m a g e . c p p
2022-01-27 05:29:16 +00:00
s r c / g u i / d e b u g . c p p
2022-03-13 23:32:35 +00:00
s r c / g u i / f i l e D i a l o g . c p p
2022-02-17 19:04:39 +00:00
2022-02-17 18:08:17 +00:00
s r c / g u i / i n t C o n s t . c p p
s r c / g u i / g u i C o n s t . c p p
2022-02-17 19:04:39 +00:00
2023-02-23 10:56:48 +00:00
s r c / g u i / i n t r o T u n e . c p p
2022-03-21 22:34:43 +00:00
s r c / g u i / a b o u t . c p p
s r c / g u i / c h a n n e l s . c p p
2022-04-30 08:58:30 +00:00
s r c / g u i / c h a n O s c . c p p
2022-11-10 06:26:59 +00:00
s r c / g u i / c l o c k . c p p
2022-03-21 22:34:43 +00:00
s r c / g u i / c o m p a t F l a g s . c p p
s r c / g u i / c u r s o r . c p p
2022-03-21 21:34:19 +00:00
s r c / g u i / d a t a L i s t . c p p
2022-03-21 22:34:43 +00:00
s r c / g u i / d e b u g W i n d o w . c p p
s r c / g u i / d o A c t i o n . c p p
s r c / g u i / e d i t i n g . c p p
s r c / g u i / e d i t C o n t r o l s . c p p
2022-04-19 23:44:05 +00:00
s r c / g u i / e f f e c t L i s t . c p p
2022-06-06 10:03:19 +00:00
s r c / g u i / f i n d R e p l a c e . c p p
2023-03-18 00:12:09 +00:00
s r c / g u i / f m P r e v i e w . c p p
2022-06-21 23:01:53 +00:00
s r c / g u i / g r a d i e n t . c p p
2023-02-05 07:56:39 +00:00
s r c / g u i / g r o o v e s . c p p
2022-02-17 19:04:39 +00:00
s r c / g u i / i n s E d i t . c p p
2023-02-15 21:25:35 +00:00
s r c / g u i / i n t r o . c p p
2022-04-11 03:12:02 +00:00
s r c / g u i / l o g . c p p
2022-03-21 22:34:43 +00:00
s r c / g u i / m i x e r . c p p
2022-03-29 21:09:15 +00:00
s r c / g u i / m i d i M a p . c p p
2022-03-21 22:34:43 +00:00
s r c / g u i / n e w S o n g . c p p
2022-02-18 03:40:23 +00:00
s r c / g u i / o r d e r s . c p p
2022-03-21 22:34:43 +00:00
s r c / g u i / o s c . c p p
2022-08-16 08:42:17 +00:00
s r c / g u i / p a t M a n a g e r . c p p
2022-02-17 19:04:39 +00:00
s r c / g u i / p a t t e r n . c p p
2022-03-21 22:34:43 +00:00
s r c / g u i / p i a n o . c p p
s r c / g u i / p r e s e t s . c p p
s r c / g u i / r e g V i e w . c p p
2022-03-16 23:40:11 +00:00
s r c / g u i / s a m p l e E d i t . c p p
2022-10-20 06:49:33 +00:00
s r c / g u i / s c a l i n g . c p p
2022-02-18 03:59:11 +00:00
s r c / g u i / s e t t i n g s . c p p
2022-03-21 22:34:43 +00:00
s r c / g u i / s o n g I n f o . c p p
s r c / g u i / s o n g N o t e s . c p p
2023-02-04 22:01:32 +00:00
s r c / g u i / s p e e d . c p p
2022-06-20 20:20:02 +00:00
s r c / g u i / s p o i l e r . c p p
2022-03-21 22:34:43 +00:00
s r c / g u i / s t a t s . c p p
2022-05-15 06:42:49 +00:00
s r c / g u i / s u b S o n g s . c p p
2022-03-21 22:34:43 +00:00
s r c / g u i / s y s C o n f . c p p
2022-05-08 07:01:32 +00:00
s r c / g u i / s y s E x . c p p
2022-08-19 09:41:45 +00:00
s r c / g u i / s y s M a n a g e r . c p p
2023-07-16 07:48:36 +00:00
s r c / g u i / s y s P a r t N u m b e r . c p p
2022-08-27 00:30:13 +00:00
s r c / g u i / s y s P i c k e r . c p p
2023-02-19 05:08:37 +00:00
s r c / g u i / t u t o r i a l . c p p
2022-02-18 03:59:11 +00:00
s r c / g u i / u t i l . c p p
2022-03-21 21:34:19 +00:00
s r c / g u i / w a v e E d i t . c p p
2022-03-21 22:34:43 +00:00
s r c / g u i / v o l M e t e r . c p p
2022-02-01 20:50:25 +00:00
s r c / g u i / g u i . c p p
)
2021-12-11 07:10:09 +00:00
2022-12-31 23:36:33 +00:00
if ( WIN32 AND NOT SUPPORT_XP )
2022-06-19 05:11:18 +00:00
list ( APPEND GUI_SOURCES extern/nfd-modified/src/nfd_common.cpp )
2022-06-17 06:28:22 +00:00
list ( APPEND GUI_SOURCES extern/nfd-modified/src/nfd_win.cpp )
endif ( )
2022-02-08 07:04:23 +00:00
if ( APPLE )
2022-12-28 21:07:01 +00:00
list ( APPEND GUI_SOURCES extern/nfd-modified/src/nfd_common.cpp )
2022-02-08 07:04:23 +00:00
list ( APPEND GUI_SOURCES src/gui/macstuff.m )
2022-06-19 05:11:18 +00:00
list ( APPEND GUI_SOURCES extern/nfd-modified/src/nfd_cocoa.mm )
2022-02-08 07:04:23 +00:00
endif ( )
2023-06-03 06:41:34 +00:00
if ( WITH_RENDER_SDL )
list ( APPEND GUI_SOURCES src/gui/render/renderSDL.cpp )
2023-06-08 06:00:47 +00:00
list ( APPEND GUI_SOURCES extern/imgui_patched/backends/imgui_impl_sdlrenderer2.cpp )
2023-06-03 06:41:34 +00:00
list ( APPEND DEPENDENCIES_DEFINES HAVE_RENDER_SDL )
message ( STATUS "UI render backend: SDL_Renderer" )
endif ( )
if ( WITH_RENDER_OPENGL )
list ( APPEND GUI_SOURCES src/gui/render/renderGL.cpp )
list ( APPEND GUI_SOURCES extern/imgui_patched/backends/imgui_impl_opengl3.cpp )
list ( APPEND DEPENDENCIES_DEFINES HAVE_RENDER_GL )
2023-06-03 20:05:55 +00:00
if ( USE_GLES )
list ( APPEND DEPENDENCIES_DEFINES USE_GLES )
list ( APPEND DEPENDENCIES_DEFINES IMGUI_IMPL_OPENGL_ES2 )
endif ( )
2023-06-03 06:41:34 +00:00
if ( WIN32 )
list ( APPEND DEPENDENCIES_LIBRARIES opengl32 )
2023-06-03 20:05:55 +00:00
elseif ( USE_GLES )
list ( APPEND DEPENDENCIES_LIBRARIES GLESv2 )
2023-06-03 06:41:34 +00:00
else ( )
list ( APPEND DEPENDENCIES_LIBRARIES GL )
endif ( )
message ( STATUS "UI render backend: OpenGL" )
endif ( )
2023-06-12 21:47:54 +00:00
if ( WITH_RENDER_DX11 )
if ( WIN32 )
2023-06-13 08:12:12 +00:00
if ( SUPPORT_XP )
message ( FATAL_ERROR "SUPPORT_XP is on. cannot enable DirectX 11 backend." )
else ( )
list ( APPEND GUI_SOURCES src/gui/render/renderDX11.cpp )
list ( APPEND GUI_SOURCES extern/imgui_patched/backends/imgui_impl_dx11.cpp )
list ( APPEND DEPENDENCIES_DEFINES HAVE_RENDER_DX11 )
list ( APPEND DEPENDENCIES_LIBRARIES d3d11 )
message ( STATUS "UI render backend: DirectX 11" )
endif ( )
2023-06-12 21:47:54 +00:00
else ( )
message ( FATAL_ERROR "DirectX 11 render backend only for Windows!" )
endif ( )
endif ( )
2023-02-15 23:32:31 +00:00
if ( NOT WIN32 AND NOT APPLE )
2022-06-23 21:23:46 +00:00
CHECK_INCLUDE_FILE ( sys/io.h SYS_IO_FOUND )
CHECK_INCLUDE_FILE ( linux/input.h LINUX_INPUT_FOUND )
CHECK_INCLUDE_FILE ( linux/kd.h LINUX_KD_FOUND )
if ( SYS_IO_FOUND )
2022-07-15 03:29:04 +00:00
try_compile ( HAVE_INOUTB ${ CMAKE_BINARY_DIR } /check SOURCES ${ CMAKE_SOURCE_DIR } /src/check/check_sysIO.c )
if ( HAVE_INOUTB )
list ( APPEND DEPENDENCIES_DEFINES HAVE_SYS_IO )
message ( STATUS "PC speaker output: outb()" )
else ( )
message ( STATUS "sys/io.h found but inb()/outb() not present" )
endif ( )
2022-06-23 21:23:46 +00:00
endif ( )
if ( LINUX_INPUT_FOUND )
list ( APPEND DEPENDENCIES_DEFINES HAVE_LINUX_INPUT )
message ( STATUS "PC speaker output: evdev" )
endif ( )
if ( LINUX_KD_FOUND )
list ( APPEND DEPENDENCIES_DEFINES HAVE_LINUX_KD )
message ( STATUS "PC speaker output: KIOCSOUND" )
endif ( )
2022-01-20 06:46:03 +00:00
endif ( )
2022-07-24 03:11:30 +00:00
if ( NOT WIN32 )
try_compile ( HAVE_DIRENT_TYPE ${ CMAKE_BINARY_DIR } /check SOURCES ${ CMAKE_SOURCE_DIR } /src/check/check_dirent_type.c )
if ( HAVE_DIRENT_TYPE )
list ( APPEND DEPENDENCIES_DEFINES HAVE_DIRENT_TYPE )
endif ( )
endif ( )
2022-07-25 22:23:56 +00:00
set ( USED_SOURCES ${ ENGINE_SOURCES } ${ AUDIO_SOURCES } ${ CLI_SOURCES } src/main.cpp )
2022-01-20 07:59:14 +00:00
2022-05-24 18:06:29 +00:00
if ( USE_BACKWARD )
2022-05-29 05:44:21 +00:00
list ( APPEND USED_SOURCES src/backtrace.cpp )
2022-05-24 18:17:40 +00:00
if ( WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
2022-05-25 03:15:43 +00:00
list ( APPEND DEPENDENCIES_LIBRARIES dbghelp psapi )
2022-05-24 18:17:40 +00:00
endif ( )
2022-07-15 03:15:14 +00:00
find_library ( EXECINFO_IS_LIBRARY execinfo )
if ( EXECINFO_IS_LIBRARY )
list ( APPEND DEPENDENCIES_LIBRARIES execinfo )
endif ( )
2022-05-29 04:12:22 +00:00
message ( STATUS "Using backward-cpp" )
else ( )
message ( STATUS "Not using backward-cpp" )
2022-05-24 18:06:29 +00:00
endif ( )
2021-12-11 07:10:09 +00:00
if ( BUILD_GUI )
2022-01-20 07:59:14 +00:00
list ( APPEND USED_SOURCES ${ GUI_SOURCES } )
2022-02-01 20:50:25 +00:00
list ( APPEND DEPENDENCIES_INCLUDE_DIRS
2022-05-18 20:23:10 +00:00
e x t e r n / i m g u i _ p a t c h e d
e x t e r n / i m g u i _ p a t c h e d / b a c k e n d s
2022-02-01 20:50:25 +00:00
e x t e r n / I c o n F o n t C p p H e a d e r s
e x t e r n / i g f d
)
2022-06-17 06:28:22 +00:00
if ( WIN32 OR APPLE )
list ( APPEND DEPENDENCIES_INCLUDE_DIRS
e x t e r n / n f d - m o d i f i e d / s r c / i n c l u d e
)
endif ( )
2022-02-01 20:50:25 +00:00
list ( APPEND DEPENDENCIES_DEFINES HAVE_GUI )
message ( STATUS "Building GUI" )
2021-12-11 07:10:09 +00:00
else ( )
2022-02-01 20:50:25 +00:00
message ( STATUS "Building headless" )
2021-12-11 07:10:09 +00:00
endif ( )
2021-05-11 20:08:08 +00:00
2022-02-01 20:50:25 +00:00
if ( WIN32 )
list ( APPEND DEPENDENCIES_LIBRARIES shlwapi )
2022-02-02 06:06:29 +00:00
if ( NOT MSVC )
list ( APPEND DEPENDENCIES_LIBRARIES -static )
endif ( )
2022-11-16 10:07:13 +00:00
elseif ( APPLE )
2022-02-10 11:40:51 +00:00
find_library ( COCOA Cocoa REQUIRED )
list ( APPEND DEPENDENCIES_LIBRARIES ${ COCOA } )
2022-11-16 10:07:13 +00:00
else ( )
list ( APPEND DEPENDENCIES_LIBRARIES dl )
2022-02-10 11:40:51 +00:00
endif ( )
2022-02-01 20:50:25 +00:00
if ( NOT MSVC )
set ( WARNING_FLAGS -Wall -Wextra -Wno-unused-parameter )
2022-03-14 03:21:01 +00:00
if ( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
2022-06-20 09:55:28 +00:00
if ( CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0.0 )
# nothing
else ( )
list ( APPEND WARNING_FLAGS -Wno-cast-function-type )
endif ( )
2022-03-14 03:21:01 +00:00
endif ( )
2022-02-01 20:50:25 +00:00
if ( WARNINGS_ARE_ERRORS )
list ( APPEND WARNING_FLAGS -Werror )
endif ( )
else ( )
2022-03-31 16:50:09 +00:00
add_compile_options ( "/utf-8" )
set ( WARNING_FLAGS /W2 /D_CRT_SECURE_NO_WARNINGS )
2022-04-02 16:35:00 +00:00
list ( APPEND WARNING_FLAGS
/ w d 4 2 4 4 # implicit type conversions
/ w d 4 3 0 5 # truncations
/ w d 4 3 0 9 # truncations of constant values
)
2022-02-01 20:50:25 +00:00
if ( WARNINGS_ARE_ERRORS )
list ( APPEND WARNING_FLAGS /WX )
endif ( )
endif ( )
# Nicer but cannot be narrowed down to just C++
# target_compile_options(furnace PRIVATE ${WARNING_FLAGS})
string ( REPLACE ";" " " WARNING_FLAGS_STRING "${WARNING_FLAGS}" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS_STRING}" )
if ( WARNINGS_ARE_ERRORS )
2023-07-06 00:41:31 +00:00
message ( STATUS
2022-02-01 20:50:25 +00:00
" T r e a t i n g a l l w a r n i n g s i n f u r n a c e ' s C + + c o d e a s e r r o r s ! "
" P l e a s e r e p o r t a n y e r r o r s y o u e n c o u n t e r o n t h e b u g t r a c k e r . "
)
endif ( )
2021-05-11 20:08:08 +00:00
2023-02-14 06:02:35 +00:00
if ( ANDROID AND NOT TERMUX )
2022-05-08 20:59:42 +00:00
add_library ( furnace SHARED ${ USED_SOURCES } )
2023-02-25 08:20:51 +00:00
elseif ( WIN32 )
2023-04-17 05:22:37 +00:00
add_executable ( furnace WIN32 ${ USED_SOURCES } )
2022-02-01 20:50:25 +00:00
else ( )
add_executable ( furnace ${ USED_SOURCES } )
2021-05-11 20:08:08 +00:00
endif ( )
2022-02-01 20:50:25 +00:00
target_include_directories ( furnace SYSTEM PRIVATE ${ DEPENDENCIES_INCLUDE_DIRS } )
2023-07-10 19:26:27 +00:00
target_compile_definitions ( furnace PRIVATE ${ DEPENDENCIES_DEFINES } )
2023-02-25 08:26:27 +00:00
target_compile_options ( furnace PRIVATE ${ DEPENDENCIES_COMPILE_OPTIONS } )
2022-02-01 20:50:25 +00:00
target_link_libraries ( furnace PRIVATE ${ DEPENDENCIES_LIBRARIES } )
2022-02-20 22:58:12 +00:00
if ( PKG_CONFIG_FOUND AND ( SYSTEM_FMT OR SYSTEM_LIBSNDFILE OR SYSTEM_ZLIB OR SYSTEM_SDL2 OR SYSTEM_RTMIDI OR WITH_JACK ) )
2022-02-01 20:50:25 +00:00
if ( "${CMAKE_VERSION}" VERSION_LESS "3.13" )
message ( WARNING
" C M a k e v e r s i o n i s < 3 . 1 3 , u s i n g o l d p k g - c o n f i g L D F L A G S . "
" Y o u m a y e n c o u n t e r l i n k i n g p r o b l e m s w i t h t h e s e ! "
)
target_link_libraries ( furnace PRIVATE ${ DEPENDENCIES_LEGACY_LDFLAGS } )
else ( )
target_link_directories ( furnace PRIVATE ${ DEPENDENCIES_LIBRARY_DIRS } )
target_link_options ( furnace PRIVATE ${ DEPENDENCIES_LINK_OPTIONS } )
2022-01-20 07:59:14 +00:00
endif ( )
2021-05-11 20:08:08 +00:00
endif ( )
2021-12-24 23:12:36 +00:00
2022-05-27 20:51:57 +00:00
if ( NOT ANDROID OR TERMUX )
2022-05-08 20:59:42 +00:00
if ( NOT WIN32 AND NOT APPLE )
include ( GNUInstallDirs )
2022-07-24 03:11:30 +00:00
install ( TARGETS furnace RUNTIME DESTINATION ${ CMAKE_INSTALL_BINDIR } )
2022-05-08 20:59:42 +00:00
install ( FILES res/furnace.desktop DESTINATION ${ CMAKE_INSTALL_DATADIR } /applications )
install ( FILES res/furnace.appdata.xml DESTINATION ${ CMAKE_INSTALL_DATADIR } /metainfo )
2023-06-05 05:08:37 +00:00
install ( DIRECTORY doc DESTINATION ${ CMAKE_INSTALL_DOCDIR } )
install ( DIRECTORY papers DESTINATION ${ CMAKE_INSTALL_DOCDIR } /other )
2022-05-08 20:59:42 +00:00
install ( FILES LICENSE DESTINATION ${ CMAKE_INSTALL_DATADIR } /licenses/furnace )
2022-08-04 22:48:10 +00:00
if ( WITH_DEMOS )
install ( DIRECTORY demos DESTINATION ${ CMAKE_INSTALL_DATADIR } /furnace )
endif ( )
if ( WITH_INSTRUMENTS )
install ( DIRECTORY instruments DESTINATION ${ CMAKE_INSTALL_DATADIR } /furnace )
endif ( )
2023-02-19 22:36:14 +00:00
if ( WITH_WAVETABLES )
install ( DIRECTORY wavetables DESTINATION ${ CMAKE_INSTALL_DATADIR } /furnace )
endif ( )
2022-05-16 17:16:55 +00:00
foreach ( num 16 32 64 128 256 512 )
set ( res ${ num } x ${ num } )
install ( FILES res/icon.iconset/icon_ ${ res } .png RENAME furnace.png DESTINATION ${ CMAKE_INSTALL_DATADIR } /icons/hicolor/ ${ res } /apps )
2022-05-16 17:25:15 +00:00
install ( FILES res/icon.iconset/icon_ ${ res } @2x.png RENAME furnace.png DESTINATION ${ CMAKE_INSTALL_DATADIR } /icons/hicolor/ ${ res } @2/apps )
2022-05-16 17:16:55 +00:00
endforeach ( )
2022-05-08 20:59:42 +00:00
install ( FILES res/logo.png RENAME furnace.png DESTINATION ${ CMAKE_INSTALL_DATADIR } /icons/hicolor/1024x1024/apps )
2022-07-24 03:11:30 +00:00
else ( )
install ( TARGETS furnace RUNTIME DESTINATION bin )
2022-05-08 20:59:42 +00:00
endif ( )
2022-07-24 03:11:30 +00:00
2022-05-08 20:59:42 +00:00
set ( CPACK_PACKAGE_NAME "Furnace" )
set ( CPACK_PACKAGE_VENDOR "tildearrow" )
set ( CPACK_PACKAGE_DESCRIPTION "free and open-source chiptune tracker" )
if ( APPLE )
set ( CPACK_GENERATOR Bundle )
set ( CPACK_DMG_SLA_DIR ${ CMAKE_SOURCE_DIR } /res/macLicense )
set ( CPACK_DMG_SLA_LANGUAGES en )
set ( CPACK_BUNDLE_NAME "Furnace" )
set ( CPACK_DMG_VOLUME_NAME "Furnace" )
set ( CPACK_BUNDLE_PLIST ${ CMAKE_SOURCE_DIR } /res/Info.plist )
set ( CPACK_BUNDLE_ICON ${ CMAKE_SOURCE_DIR } /res/icon.icns )
set ( CPACK_BUNDLE_STARTUP_COMMAND "furnace" )
endif ( )
include ( CPack )
2021-12-24 23:12:36 +00:00
endif ( )