The cat was drawn in a 100 x 90 box that was exactly the window, so anything reaching past it was cut off: the right whiskers always, and more of them in poses that push the head forward, up to art x 109 while stretching. The window box is now 120 x 106 with the drawing inset at (7, 14). The slack is symmetric on purpose, because facing left mirrors the art about the box centre, so asymmetric slack would clip the other side instead. The mood-name mapper grew the shared aspect ratio and became CatDefs, so every window sizes the cat the same way. Nose and mug offsets follow the new inset. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
67 lines
2.1 KiB
CMake
67 lines
2.1 KiB
CMake
cmake_minimum_required(VERSION 3.21)
|
|
|
|
project(TNCat
|
|
VERSION 0.3.0
|
|
DESCRIPTION "A cute desktop cat that wanders along the bottom of your screen"
|
|
LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
find_package(Qt6 6.5 REQUIRED COMPONENTS Core Gui Quick QuickControls2 Widgets)
|
|
qt_standard_project_setup(REQUIRES 6.5)
|
|
|
|
qt_add_executable(tncat
|
|
src/main.cpp
|
|
src/catcontroller.h src/catcontroller.cpp
|
|
src/traycontroller.h src/traycontroller.cpp
|
|
src/appsettings.h src/appsettings.cpp
|
|
src/platforminfo.h src/platforminfo.cpp
|
|
)
|
|
|
|
target_include_directories(tncat PRIVATE src)
|
|
|
|
# QML files live in qml/ but register at the module root (TNCat.Main etc.)
|
|
set(TNCAT_QML Main Cat Chip Cup CatWindow ChipWindow CupWindow OverlayWindow SettingsWindow CatDefs)
|
|
foreach(qmlfile IN LISTS TNCAT_QML)
|
|
set_source_files_properties(qml/${qmlfile}.qml PROPERTIES QT_RESOURCE_ALIAS ${qmlfile}.qml)
|
|
list(APPEND TNCAT_QML_FILES qml/${qmlfile}.qml)
|
|
endforeach()
|
|
|
|
set_source_files_properties(qml/CatDefs.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
|
|
|
|
qt_add_qml_module(tncat
|
|
URI TNCat
|
|
VERSION 1.0
|
|
QML_FILES ${TNCAT_QML_FILES}
|
|
)
|
|
|
|
target_link_libraries(tncat PRIVATE
|
|
Qt6::Core Qt6::Gui Qt6::Quick Qt6::QuickControls2 Qt6::Widgets)
|
|
|
|
set_target_properties(tncat PROPERTIES
|
|
MACOSX_BUNDLE TRUE
|
|
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/Info.plist.in
|
|
MACOSX_BUNDLE_GUI_IDENTIFIER app.tncat.example
|
|
MACOSX_BUNDLE_BUNDLE_NAME TNCat
|
|
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
|
WIN32_EXECUTABLE TRUE)
|
|
|
|
include(GNUInstallDirs)
|
|
install(TARGETS tncat
|
|
BUNDLE DESTINATION .
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
install(FILES linux/tncat.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
|
|
endif()
|
|
|
|
qt_generate_deploy_qml_app_script(
|
|
TARGET tncat
|
|
OUTPUT_SCRIPT deploy_script
|
|
MACOS_BUNDLE_POST_BUILD
|
|
NO_UNSUPPORTED_PLATFORM_ERROR
|
|
DEPLOY_USER_QML_MODULES_ON_UNSUPPORTED_PLATFORM)
|
|
install(SCRIPT ${deploy_script})
|