/
reds
/
OpenDAW
Обзор
Документация
Войти
/
reds
/
OpenDAW
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
CMakeLists.txt
150 строк
5 KB
OpenDAW Developer
feat(v1.0.0-phase2): Add CLI Interface with track listing
21 фев 2026, 13:39
21 фев 2026, 13:39
73ad560
Код
Авторство
О чём код?
cmake_minimum_required(VERSION 3.18) project(OpenDAW VERSION 0.1.0 DESCRIPTION "Open Source Digital Audio Workstation" LANGUAGES CXX C) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # Options option(BUILD_TESTS "Build tests" OFF) # ============================================================================ # JUCE Framework # ============================================================================ if(EXISTS "${CMAKE_SOURCE_DIR}/deps/JUCE/CMakeLists.txt") add_subdirectory(deps/JUCE) set(JUCE_AVAILABLE TRUE) message(STATUS "JUCE found") # Отключаем webkit для упрощения set(JUCE_WEBKIT 0 CACHE BOOL "Disable WebKit") else() message(FATAL_ERROR "JUCE not found") endif() # ============================================================================ # Core Library # ============================================================================ set(OPENDAW_CORE_SOURCES src/core/AudioEngine.cpp src/core/AudioGraph.cpp src/core/Globals.cpp src/io/AudioDevice.cpp src/audio/AudioBuffer.cpp src/midi/MidiBuffer.cpp src/audio/WavReader.cpp src/dsp/MidiSynthesizer.cpp src/plugin/ClapPlugin.cpp src/plugin/VST3Plugin.cpp src/plugin/PluginHost.cpp src/ui/CLI.cpp ) set(OPENDAW_CORE_HEADERS include/opendaw/core/AudioEngine.h include/opendaw/core/AudioGraph.h include/opendaw/core/Globals.h include/opendaw/io/AudioDevice.h include/opendaw/audio/AudioBuffer.h include/opendaw/midi/MidiBuffer.h include/opendaw/audio/WavReader.h include/opendaw/dsp/MidiSynthesizer.h include/opendaw/plugin/Plugin.h include/opendaw/plugin/ClapPlugin.h include/opendaw/plugin/VST3Plugin.h include/opendaw/plugin/PluginHost.h include/opendaw/ui/CLI.h ) add_library(opendaw_core STATIC ${OPENDAW_CORE_SOURCES} ${OPENDAW_CORE_HEADERS} ) target_include_directories(opendaw_core PUBLIC $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include> ) target_link_libraries(opendaw_core PUBLIC juce::juce_core) # ALSA for Linux if(UNIX AND NOT APPLE) find_package(PkgConfig REQUIRED) pkg_check_modules(ALSA REQUIRED alsa) target_include_directories(opendaw_core PUBLIC ${ALSA_INCLUDE_DIRS}) target_link_libraries(opendaw_core PUBLIC ${ALSA_LIBRARIES}) target_compile_definitions(opendaw_core PUBLIC HAVE_ALSA=1) endif() # ============================================================================ # Main Application # ============================================================================ juce_add_gui_app(OpenDAW VERSION ${PROJECT_VERSION} COMPANY_NAME "OpenDAW" COMPANY_WEBSITE "https://github.com/opendaw" IS_PLUGIN FALSE NEEDS_CURL FALSE NEEDS_WEBVIEW FALSE ) # target_sources(OpenDAW PRIVATE src/main_gui.cpp) # REMOVED - GUI not working target_sources(OpenDAW PRIVATE src/main.cpp) # CLI Version target_link_libraries(OpenDAW PRIVATE opendaw_core juce::juce_core juce::juce_data_structures juce::juce_events juce::juce_graphics juce::juce_gui_basics curl ) target_include_directories(OpenDAW PRIVATE include) # ============================================================================ # Tests # ============================================================================ option(BUILD_TESTS "Build tests" ON) if(BUILD_TESTS) enable_testing() # Find or build GTest if(TARGET GTest::gtest_main) # System GTest elseif(EXISTS "${CMAKE_SOURCE_DIR}/deps/googletest/CMakeLists.txt") add_subdirectory(deps/googletest) endif() if(TARGET GTest::gtest_main OR TARGET gtest_main) set(TEST_SOURCES tests/unit/test_audio_buffer.cpp tests/unit/test_audio_engine.cpp tests/unit/test_audio_graph.cpp ) add_executable(OpenDAW_Tests ${TEST_SOURCES}) target_include_directories(OpenDAW_Tests PRIVATE ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/tests ) target_link_libraries(OpenDAW_Tests PRIVATE opendaw_core GTest::gtest_main ) include(GoogleTest) gtest_discover_tests(OpenDAW_Tests) add_test(NAME OpenDAW_Tests COMMAND OpenDAW_Tests) endif() endif() # ============================================================================ # Build Info # ============================================================================ message(STATUS "") message(STATUS "=== OpenDAW Configuration ===") message(STATUS "Version: ${PROJECT_VERSION}") message(STATUS "Build type: ${CMAKE_BUILD_TYPE}") message(STATUS "JUCE Available: ${JUCE_AVAILABLE}") message(STATUS "")