solitare/CMakeLists.txt

70 lines
1.7 KiB
CMake
Raw Normal View History

2024-11-30 18:23:45 +00:00
cmake_minimum_required(VERSION 3.16)
project(Solitare VERSION 0.1 LANGUAGES CXX)
2024-12-05 00:28:01 +00:00
set(CMAKE_CXX_STANDARD 17)
2024-11-30 18:23:45 +00:00
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(QT_QML_GENERATE_QMLLS_INI ON)
2024-11-30 18:23:45 +00:00
find_package(Qt6 6.5 REQUIRED COMPONENTS Quick)
2024-11-30 18:23:45 +00:00
qt_standard_project_setup(REQUIRES 6.5)
2024-12-01 00:01:37 +00:00
set(CMAKE_AUTORCC ON)
2024-11-30 18:23:45 +00:00
qt_add_executable(appSolitare
main.cpp
2024-12-01 00:01:37 +00:00
images.qrc
2024-12-05 00:47:24 +00:00
qml.qrc
2024-11-30 18:23:45 +00:00
)
2024-12-05 00:59:15 +00:00
file(GLOB_RECURSE SOURCES
src/*.cpp
src/*.h
)
2024-11-30 18:23:45 +00:00
qt_add_qml_module(appSolitare
URI Solitare
VERSION 1.0
2024-12-05 00:22:18 +00:00
SOURCES
2024-12-05 00:59:15 +00:00
${SOURCES}
2024-11-30 18:23:45 +00:00
)
2024-12-05 00:59:15 +00:00
target_include_directories(appSolitare PRIVATE ${CMAKE_SOURCE_DIR}/src)
2024-11-30 18:23:45 +00:00
# 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}
)
2024-12-05 01:34:42 +00:00
# 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()