furnace/CMakeLists.txt

185 lines
5.1 KiB
CMake
Raw Normal View History

cmake_minimum_required(VERSION 3.0)
2021-05-13 04:22:57 -04:00
project(furnace)
2021-12-09 03:37:31 -05:00
set(CMAKE_CXX_STANDARD 14)
2021-12-24 18:12:36 -05:00
set(CMAKE_PROJECT_VERSION_MAJOR 0)
2022-01-16 04:23:23 -05:00
set(CMAKE_PROJECT_VERSION_MINOR 4)
set(CMAKE_PROJECT_VERSION_PATCH 1)
2021-12-24 18:12:36 -05:00
2021-12-11 02:10:09 -05:00
if (ANDROID)
set(BUILD_GUI OFF)
else()
set(BUILD_GUI ON)
endif()
2021-12-11 16:44:02 -05:00
add_subdirectory(extern/fmt)
2021-12-30 17:31:08 -05: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)
2021-12-07 12:21:23 -05:00
add_subdirectory(extern/libsndfile)
2021-12-30 17:31:08 -05:00
add_subdirectory(extern/zlib)
include_directories(extern/zlib ${CMAKE_CURRENT_BINARY_DIR}/extern/zlib)
2021-12-07 12:21:23 -05:00
if (WIN32)
2021-05-28 16:52:27 -04:00
set(SDL_SHARED OFF)
2021-05-28 16:25:55 -04:00
add_subdirectory(extern/SDL)
set(HAVE_SDL2 SDL2-static)
2021-05-28 16:25:55 -04:00
set(HAVE_Z zlibstatic)
2021-12-30 17:31:08 -05:00
include_directories(extern/imgui extern/IconFontCppHeaders extern/imgui/backends extern/igfd extern/fmt/include)
else()
2021-12-11 02:10:09 -05:00
if (BUILD_GUI)
set(SDL_SHARED ON)
add_subdirectory(extern/SDL)
2021-12-21 00:30:55 -05:00
include_directories(extern/SDL/include extern/imgui extern/IconFontCppHeaders extern/imgui/backends extern/igfd extern/fmt/include)
set(HAVE_SDL2 SDL2-static)
2021-12-11 02:10:09 -05:00
else()
find_library(HAVE_SDL2 SDL2)
endif()
2021-05-28 17:06:57 -04:00
if (NOT APPLE)
find_library(HAVE_JACK jack)
endif()
2021-12-07 12:21:23 -05:00
find_library(HAVE_SNDFILE sndfile)
2021-12-30 17:31:08 -05:00
set(HAVE_Z zlibstatic)
endif()
set(AUDIO_SOURCES src/audio/abstract.cpp)
if (HAVE_SDL2)
list(APPEND AUDIO_SOURCES src/audio/sdl.cpp)
endif()
if (HAVE_JACK)
list(APPEND AUDIO_SOURCES src/audio/jack.cpp)
endif()
set(ENGINE_SOURCES
src/log.cpp
2021-05-12 18:19:18 -04:00
extern/Nuked-OPN2/ym3438.c
2021-12-09 01:03:05 -05:00
extern/opm/opm.c
2021-05-14 04:23:40 -04:00
src/engine/platform/sound/sn76496.cpp
src/engine/platform/sound/ay8910.cpp
2022-01-14 16:29:27 -05:00
src/engine/platform/sound/saa1099.cpp
src/engine/platform/sound/gb/apu.c
src/engine/platform/sound/gb/timing.c
src/engine/platform/sound/pce_psg.cpp
2021-12-03 16:04:07 -05:00
src/engine/platform/sound/nes/apu.c
2021-05-12 18:19:18 -04:00
2021-12-04 02:42:22 -05:00
src/engine/platform/sound/c64/sid.cc
src/engine/platform/sound/c64/voice.cc
src/engine/platform/sound/c64/wave.cc
src/engine/platform/sound/c64/envelope.cc
src/engine/platform/sound/c64/filter.cc
src/engine/platform/sound/c64/extfilt.cc
src/engine/platform/sound/c64/pot.cc
src/engine/platform/sound/c64/version.cc
src/engine/platform/sound/c64/wave6581_PS_.cc
src/engine/platform/sound/c64/wave6581_PST.cc
src/engine/platform/sound/c64/wave6581_P_T.cc
src/engine/platform/sound/c64/wave6581__ST.cc
src/engine/platform/sound/c64/wave8580_PS_.cc
src/engine/platform/sound/c64/wave8580_PST.cc
src/engine/platform/sound/c64/wave8580_P_T.cc
src/engine/platform/sound/c64/wave8580__ST.cc
src/engine/platform/sound/tia/TIASnd.cpp
src/engine/platform/sound/ymfm/ymfm_adpcm.cpp
src/engine/platform/sound/ymfm/ymfm_opm.cpp
src/engine/platform/sound/ymfm/ymfm_opn.cpp
src/engine/platform/sound/ymfm/ymfm_ssg.cpp
2021-12-09 03:37:31 -05:00
2021-12-09 13:25:02 -05:00
src/engine/platform/ym2610Interface.cpp
src/engine/blip_buf.c
src/engine/safeReader.cpp
src/engine/safeWriter.cpp
2022-01-08 16:03:32 -05:00
src/engine/dispatchContainer.cpp
src/engine/engine.cpp
src/engine/macroInt.cpp
2021-12-09 01:44:40 -05:00
src/engine/pattern.cpp
src/engine/playback.cpp
src/engine/sample.cpp
src/engine/song.cpp
src/engine/platform/abstract.cpp
2021-05-12 18:19:18 -04:00
src/engine/platform/genesis.cpp
2021-05-16 18:43:10 -04:00
src/engine/platform/genesisext.cpp
src/engine/platform/sms.cpp
2021-05-26 04:17:12 -04:00
src/engine/platform/gb.cpp
src/engine/platform/pce.cpp
2021-12-04 01:19:54 -05:00
src/engine/platform/nes.cpp
2021-12-04 23:55:28 -05:00
src/engine/platform/c64.cpp
2021-12-08 17:40:35 -05:00
src/engine/platform/arcade.cpp
2021-12-09 13:25:02 -05:00
src/engine/platform/ym2610.cpp
2021-12-14 14:31:57 -05:00
src/engine/platform/ym2610ext.cpp
src/engine/platform/ay.cpp
2022-01-14 00:02:10 -05:00
src/engine/platform/ay8930.cpp
src/engine/platform/tia.cpp
2022-01-14 16:29:27 -05:00
src/engine/platform/saa.cpp
2022-01-15 17:28:33 -05:00
src/engine/platform/amiga.cpp
src/engine/platform/dummy.cpp)
2021-12-11 02:10:09 -05:00
set(GUI_SOURCES
extern/imgui/imgui.cpp
extern/imgui/imgui_draw.cpp
extern/imgui/imgui_tables.cpp
extern/imgui/imgui_widgets.cpp
extern/imgui/backends/imgui_impl_sdlrenderer.cpp
extern/imgui/backends/imgui_impl_sdl.cpp
2021-12-11 17:41:32 -05:00
extern/imgui/misc/cpp/imgui_stdlib.cpp
2021-12-11 02:10:09 -05:00
extern/igfd/ImGuiFileDialog.cpp
2022-01-07 03:29:56 -05:00
src/gui/icon.c
2021-12-18 17:54:26 -05:00
src/gui/plot_nolerp.cpp
2021-12-11 03:11:40 -05:00
src/gui/font_main.cpp
2021-12-21 00:30:55 -05:00
src/gui/font_icon.cpp
2021-12-11 03:11:40 -05:00
src/gui/font_pat.cpp
2021-12-11 02:10:09 -05:00
src/gui/gui.cpp)
2021-12-16 15:51:19 -05:00
if (WIN32)
list(APPEND ENGINE_SOURCES src/utfutils.cpp)
2021-12-19 03:16:24 -05:00
list(APPEND ENGINE_SOURCES src/engine/winStuff.cpp)
2022-01-07 17:41:47 -05:00
list(APPEND ENGINE_SOURCES res/furnace.rc)
2021-12-16 15:51:19 -05:00
endif()
2021-12-11 02:10:09 -05:00
if (BUILD_GUI)
add_executable(furnace ${ENGINE_SOURCES} ${AUDIO_SOURCES} ${GUI_SOURCES} src/main.cpp)
2021-12-11 03:11:40 -05:00
target_compile_definitions(furnace PUBLIC HAVE_GUI)
2021-12-11 02:10:09 -05:00
else()
add_executable(furnace ${ENGINE_SOURCES} ${AUDIO_SOURCES} src/main.cpp)
endif()
2021-12-11 16:44:02 -05:00
target_link_libraries(furnace ${HAVE_SDL2} ${HAVE_Z} sndfile fmt)
if (HAVE_JACK)
2021-05-13 04:22:57 -04:00
target_link_libraries(furnace ${HAVE_JACK})
2021-06-09 04:33:03 -04:00
target_compile_definitions(furnace PUBLIC HAVE_JACK)
endif()
if (WIN32)
2021-12-19 03:16:24 -05:00
target_link_libraries(furnace shlwapi -static)
endif()
2021-12-24 18:12:36 -05:00
install(TARGETS furnace RUNTIME DESTINATION bin)
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)
2021-12-29 18:00:14 -05:00
set(CPACK_DMG_SLA_DIR ${CMAKE_SOURCE_DIR}/res/macLicense)
2021-12-29 17:47:17 -05:00
set(CPACK_DMG_SLA_LANGUAGES en)
2021-12-24 18:12:36 -05:00
set(CPACK_BUNDLE_NAME "Furnace")
2022-01-06 18:36:59 -05:00
set(CPACK_DMG_VOLUME_NAME "Furnace")
2021-12-24 18:12:36 -05:00
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()
2021-12-29 17:47:17 -05:00
include(CPack)