solitare/CMakeLists.txt
ItsDrike 529753b078
Fix qmlls & clang LSP issues
This makes cmake export the qmlls.ini settings for qmlls (lang server),
which makes it aware of the C++ components used in the project. By
default, qmlls wasn't able to find these as they lived in a separate
build dir which it didn't know about.

Additionally, this also enables exporting compile commands to provide
better support for other editors that rely on these. Note that the
compile_commands.json will still only be exported into the build dir
though, so to make use of this, you'll probably want to symlink this
from the build dir.
2024-12-05 01:27:27 +01:00

58 lines
1.4 KiB
CMake

cmake_minimum_required(VERSION 3.16)
project(Solitare VERSION 0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(QT_QML_GENERATE_QMLLS_INI ON)
find_package(Qt6 6.5 REQUIRED COMPONENTS Quick)
qt_standard_project_setup(REQUIRES 6.5)
set(CMAKE_AUTORCC ON)
qt_add_executable(appSolitare
main.cpp
images.qrc
)
qt_add_qml_module(appSolitare
URI Solitare
VERSION 1.0
QML_FILES
qml/Main.qml
qml/CardModel.qml
qml/DrawPile.qml
qml/FoundationPiles.qml
qml/ScoreBar.qml
qml/Tableau.qml
qml/ThrowawayPile.qml
SOURCES
playingcard.h playingcard.cpp
gamestate.h gamestate.cpp
columnslot.h columnslot.cpp
)
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
# If you are developing for iOS or macOS you should consider setting an
# explicit, fixed bundle identifier manually though.
set_target_properties(appSolitare PROPERTIES
# MACOSX_BUNDLE_GUI_IDENTIFIER com.example.appSolitare
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
MACOSX_BUNDLE TRUE
WIN32_EXECUTABLE TRUE
)
target_link_libraries(appSolitare
PRIVATE Qt6::Quick
)
include(GNUInstallDirs)
install(TARGETS appSolitare
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)