tomato/src/CMakeLists.txt
Green Sky 7cb4f67f96
Some checks are pending
ContinuousDelivery / linux-ubuntu (push) Waiting to run
ContinuousDelivery / android (map[ndk_abi:arm64-v8a vcpkg_toolkit:arm64-android]) (push) Waiting to run
ContinuousDelivery / android (map[ndk_abi:x86_64 vcpkg_toolkit:x64-android]) (push) Waiting to run
ContinuousDelivery / windows (push) Waiting to run
ContinuousDelivery / windows-asan (push) Waiting to run
ContinuousDelivery / release (push) Blocked by required conditions
ContinuousIntegration / linux (push) Waiting to run
ContinuousIntegration / android (map[ndk_abi:arm64-v8a vcpkg_toolkit:arm64-android]) (push) Waiting to run
ContinuousIntegration / android (map[ndk_abi:x86_64 vcpkg_toolkit:x64-android]) (push) Waiting to run
ContinuousIntegration / macos (push) Waiting to run
ContinuousIntegration / windows (push) Waiting to run
use sdl yuv to yuv conversion, and better fallbacks
display intended main screen intervals
actually report min interval in debug view and more
2024-10-03 12:33:52 +02:00

190 lines
3.9 KiB
CMake

cmake_minimum_required(VERSION 3.9...3.24 FATAL_ERROR)
########################################
if (TOMATO_MAIN_SO)
add_library(tomato MODULE)
target_compile_definitions(tomato PUBLIC TOMATO_MAIN_SO)
else()
add_executable(tomato)
endif()
target_sources(tomato PUBLIC
./main.cpp
./icon.rc
./sys_check.hpp
./sys_check.cpp
./json_to_config.hpp
./json_to_config.cpp
./screen.hpp
./start_screen.hpp
./start_screen.cpp
./main_screen.hpp
./main_screen.cpp
./tox_client.hpp
./tox_client.cpp
./auto_dirty.hpp
./auto_dirty.cpp
./tox_private_impl.hpp
./theme.hpp
./image_loader.hpp
./image_loader.cpp
./image_loader_sdl_bmp.hpp
./image_loader_sdl_bmp.cpp
./image_loader_stb.hpp
./image_loader_stb.cpp
./image_loader_webp.hpp
./image_loader_webp.cpp
./image_loader_qoi.hpp
./image_loader_qoi.cpp
./image_loader_sdl_image.hpp
./image_loader_sdl_image.cpp
./texture_uploader.hpp
./sdlrenderer_texture_uploader.hpp
./sdlrenderer_texture_uploader.cpp
./texture_cache.hpp
./texture_cache.cpp
./tox_avatar_loader.hpp
./tox_avatar_loader.cpp
./message_image_loader.hpp
./message_image_loader.cpp
./tox_avatar_manager.hpp
./tox_avatar_manager.cpp
./media_meta_info_loader.hpp
./media_meta_info_loader.cpp
./sdl_clipboard_utils.hpp
./sdl_clipboard_utils.cpp
./chat_gui/theme.hpp
./chat_gui/theme.cpp
./chat_gui/icons/direct.hpp
./chat_gui/icons/direct.cpp
./chat_gui/icons/cloud.hpp
./chat_gui/icons/cloud.cpp
./chat_gui/icons/mail.hpp
./chat_gui/icons/mail.cpp
./chat_gui/icons/person.hpp
./chat_gui/icons/person.cpp
./chat_gui/icons/group.hpp
./chat_gui/icons/group.cpp
./chat_gui/contact_list.hpp
./chat_gui/contact_list.cpp
./chat_gui/file_selector.hpp
./chat_gui/file_selector.cpp
./chat_gui/send_image_popup.hpp
./chat_gui/send_image_popup.cpp
./chat_gui/settings_window.hpp
./chat_gui/settings_window.cpp
./imgui_entt_entity_editor.hpp
./object_store_ui.hpp
./object_store_ui.cpp
./tox_ui_utils.hpp
./tox_ui_utils.cpp
./tox_dht_cap_histo.hpp
./tox_dht_cap_histo.cpp
./tox_friend_faux_offline_messaging.hpp
./tox_friend_faux_offline_messaging.cpp
./chat_gui4.hpp
./chat_gui4.cpp
./frame_streams/frame_stream2.hpp
./frame_streams/audio_stream2.hpp
./frame_streams/stream_manager.hpp
./frame_streams/stream_manager.cpp
./frame_streams/locked_frame_stream.hpp
./frame_streams/multi_source.hpp
./frame_streams/voip_model.hpp
./frame_streams/sdl/sdl_audio2_frame_stream2.hpp
./frame_streams/sdl/sdl_audio2_frame_stream2.cpp
./frame_streams/sdl/video.hpp
./frame_streams/sdl/video_push_converter.hpp
./frame_streams/sdl/sdl_video_frame_stream2.hpp
./frame_streams/sdl/sdl_video_frame_stream2.cpp
./stream_manager_ui.hpp
./stream_manager_ui.cpp
./debug_video_tap.hpp
./debug_video_tap.cpp
)
if (TOMATO_TOX_AV)
target_sources(tomato PUBLIC
./tox_av.hpp
./tox_av.cpp
./tox_av_voip_model.hpp
./tox_av_voip_model.cpp
)
target_compile_definitions(tomato PUBLIC TOMATO_TOX_AV)
endif()
target_compile_features(tomato PUBLIC cxx_std_17)
target_link_libraries(tomato PUBLIC
solanaceae_util
solanaceae_contact
solanaceae_message3
solanaceae_message_serializer
solanaceae_plugin
solanaceae_toxcore
solanaceae_tox_contacts
solanaceae_tox_messages
solanaceae_object_store
SDL3::SDL3
imgui
imgui_backend_sdl3
imgui_backend_sdlrenderer3
stb_image
stb_image_write
webpdemux
libwebpmux # the f why (needed for anim encode)
qoi
SDL3_image::SDL3_image
)
# probably not enough
#target_compile_definitions(tomato PUBLIC ENTT_API_EXPORT)
set_target_properties(tomato PROPERTIES POSITION_INDEPENDENT_CODE ON)
########################################
add_executable(test_frame_stream2_pop_reframer EXCLUDE_FROM_ALL
./frame_streams/frame_stream2.hpp
./frame_streams/audio_stream2.hpp
./frame_streams/locked_frame_stream.hpp
./frame_streams/multi_source.hpp
./frame_streams/test_pop_reframer.cpp
)
target_link_libraries(test_frame_stream2_pop_reframer
solanaceae_util
)