70 lines
1.7 KiB
CMake
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
|
|
qml/images.qrc
|
|
qml/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()
|