solitare/CMakeLists.txt

70 lines
1.7 KiB
CMake

cmake_minimum_required(VERSION 3.16)
project(Solitare VERSION 0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
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
qml.qrc
)
file(GLOB_RECURSE SOURCES
src/*.cpp
src/*.h
)
qt_add_qml_module(appSolitare
URI Solitare
VERSION 1.0
SOURCES
${SOURCES}
)
target_include_directories(appSolitare PRIVATE ${CMAKE_SOURCE_DIR}/src)
# 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}
)
# Enable strict compile flags for warnings
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(appSolitare PRIVATE
# Enable high-level warnings
-Wall -Wextra -pedantic
# Enable warnings as errors
-Werror
)
elseif(MSVC)
# For MSVC, use /W4 for strict warnings and /WX to treat warnings as errors
target_compile_options(appSolitare PRIVATE /W4 /WX)
endif()