Migrated from Make to CMake.
This commit is contained in:
parent
cda05294f5
commit
b6ba093000
52 changed files with 1276 additions and 1210 deletions
87
cmake/Gui.cmake
Normal file
87
cmake/Gui.cmake
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
if(NOT XTC_BUILD_GUI)
|
||||
return()
|
||||
endif()
|
||||
if(PkgConfig_FOUND)
|
||||
pkg_check_modules(FLTK QUIET IMPORTED_TARGET fltk)
|
||||
endif()
|
||||
if(FLTK_FOUND)
|
||||
set(xtc_fltk PkgConfig::FLTK)
|
||||
else()
|
||||
find_program(XTC_FLTK_CONFIG fltk-config)
|
||||
if(NOT XTC_FLTK_CONFIG)
|
||||
message(STATUS "FLTK unavailable: building core and offline tests only")
|
||||
return()
|
||||
endif()
|
||||
execute_process(COMMAND ${XTC_FLTK_CONFIG} --cxxflags OUTPUT_VARIABLE fltk_flags OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY)
|
||||
execute_process(COMMAND ${XTC_FLTK_CONFIG} --ldflags OUTPUT_VARIABLE fltk_libs OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY)
|
||||
separate_arguments(fltk_flags UNIX_COMMAND "${fltk_flags}")
|
||||
separate_arguments(fltk_libs UNIX_COMMAND "${fltk_libs}")
|
||||
# Distribution flags must not override this project's debug/release settings.
|
||||
list(FILTER fltk_flags INCLUDE REGEX "^(-I|-D|-pthread)")
|
||||
add_library(xtc-fltk INTERFACE)
|
||||
target_compile_options(xtc-fltk INTERFACE ${fltk_flags})
|
||||
target_link_libraries(xtc-fltk INTERFACE ${fltk_libs})
|
||||
set(xtc_fltk xtc-fltk)
|
||||
endif()
|
||||
enable_language(CXX)
|
||||
set(XTC_GUI_AVAILABLE TRUE)
|
||||
add_library(xtc-gui STATIC src/gui/main_window.cpp src/gui/graph_widget.cpp
|
||||
src/gui/sequencer_widget.cpp src/gui/piano_roll.cpp src/gui/mixer_widget.cpp
|
||||
src/gui/plugin_dialog.cpp src/gui/sample_editor.cpp)
|
||||
xtc_warnings(xtc-gui)
|
||||
target_link_libraries(xtc-gui PUBLIC xtc-core ${xtc_fltk})
|
||||
add_executable(xtc src/gui/main.cpp)
|
||||
xtc_warnings(xtc)
|
||||
target_link_libraries(xtc PRIVATE xtc-gui)
|
||||
add_custom_target(gui DEPENDS xtc)
|
||||
find_program(XTC_XVFB_RUN xvfb-run)
|
||||
add_executable(capture_screenshots EXCLUDE_FROM_ALL tools/capture_screenshots.cpp)
|
||||
xtc_warnings(capture_screenshots)
|
||||
target_link_libraries(capture_screenshots PRIVATE xtc-gui)
|
||||
if(XTC_XVFB_RUN AND BUILD_TESTING)
|
||||
if(XTC_LADSPA_AVAILABLE)
|
||||
add_custom_target(screenshots COMMAND ${XTC_XVFB_RUN} -a -s "-screen 0 1440x960x24"
|
||||
$<TARGET_FILE:capture_screenshots> "${PROJECT_SOURCE_DIR}/screenshots"
|
||||
DEPENDS capture_screenshots plugin-fixture clap-synth-fixture vst2-synth-fixture vst3-synth-fixture
|
||||
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" VERBATIM)
|
||||
endif()
|
||||
add_executable(test_gui tests/integration/test_gui.cpp)
|
||||
xtc_warnings(test_gui)
|
||||
target_link_libraries(test_gui PRIVATE xtc-gui)
|
||||
xtc_wrap(test_gui xtc_history_reserve)
|
||||
function(xtc_gui_test name)
|
||||
add_test(NAME ${name} COMMAND ${XTC_XVFB_RUN} -a -s "-screen 0 1440x960x24" $<TARGET_FILE:test_gui>)
|
||||
set_tests_properties(${name} PROPERTIES WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" LABELS gui ENVIRONMENT "${ARGN}")
|
||||
endfunction()
|
||||
xtc_gui_test(gui)
|
||||
if(XTC_LADSPA_AVAILABLE)
|
||||
xtc_gui_test(gui-plugins "XTC_TEST_PLUGIN=$<TARGET_FILE:plugin-fixture>")
|
||||
endif()
|
||||
xtc_gui_test(gui-modern-plugins "XTC_TEST_CLAP=$<TARGET_FILE:clap-fixture>" "XTC_TEST_VST2=$<TARGET_FILE:vst2-fixture>" "XTC_TEST_VST3=$<TARGET_FILE:vst3-fixture>")
|
||||
xtc_gui_test(gui-instruments "XTC_TEST_SYNTH_CLAP=$<TARGET_FILE:clap-synth-fixture>" "XTC_TEST_SYNTH_VST2=$<TARGET_FILE:vst2-synth-fixture>" "XTC_TEST_SYNTH_VST3=$<TARGET_FILE:vst3-synth-fixture>")
|
||||
foreach(pair "modern-editing|MODERN_EDITING" "next-daw|NEXT_DAW" "sample|SAMPLE_EDITOR" "creative|CREATIVE" "midi-workflows|MIDI_WORKFLOWS" "midi-labels|MIDI_LABELS")
|
||||
string(REPLACE "|" ";" pair "${pair}")
|
||||
list(GET pair 0 name)
|
||||
list(GET pair 1 env)
|
||||
xtc_gui_test(gui-${name} "XTC_TEST_${env}_ONLY=1")
|
||||
endforeach()
|
||||
set_property(TEST gui-next-daw APPEND PROPERTY ENVIRONMENT XTC_TEST_MODERN_EDITING_ONLY=1)
|
||||
if(XTC_LADSPA_AVAILABLE)
|
||||
xtc_gui_test(gui-track-fx "XTC_TEST_TRACK_FX_ONLY=1" "XTC_TEST_PLUGIN=$<TARGET_FILE:plugin-fixture>" "XTC_TEST_CLAP=$<TARGET_FILE:clap-fixture>" "XTC_TEST_VST2=$<TARGET_FILE:vst2-fixture>" "XTC_TEST_VST3=$<TARGET_FILE:vst3-fixture>")
|
||||
endif()
|
||||
add_test(NAME configuration-startup COMMAND ${XTC_XVFB_RUN} -a -s "-screen 0 1440x960x24" ${Python3_EXECUTABLE}
|
||||
"${PROJECT_SOURCE_DIR}/tests/integration/test_configuration_startup.py" $<TARGET_FILE:xtc>)
|
||||
set_tests_properties(configuration-startup PROPERTIES LABELS gui)
|
||||
if(JACK_FOUND AND XTC_WITH_JACK)
|
||||
foreach(kind gui_jack workflow)
|
||||
add_executable(test_${kind} tests/integration/test_${kind}.cpp)
|
||||
xtc_warnings(test_${kind})
|
||||
target_link_libraries(test_${kind} PRIVATE xtc-gui)
|
||||
if(XTC_ENABLE_LIVE_TESTS)
|
||||
string(REPLACE "_" "-" name "${kind}")
|
||||
add_test(NAME ${name} COMMAND ${XTC_XVFB_RUN} -a $<TARGET_FILE:test_${kind}>)
|
||||
set_tests_properties(${name} PROPERTIES WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" LABELS live RUN_SERIAL TRUE)
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
endif()
|
||||
Loading…
Add table
Add a link
Reference in a new issue