37 lines
1.3 KiB
CMake
37 lines
1.3 KiB
CMake
cmake_minimum_required(VERSION 3.20)
|
|
|
|
project(qwfassoc_suite LANGUAGES CXX)
|
|
|
|
# Qt 6 requires C++17 at minimum.
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
# Let CMake auto-process Q_OBJECT, .ui files and .qrc resources for every
|
|
# subproject below.
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_AUTOUIC ON)
|
|
set(CMAKE_AUTORCC ON)
|
|
|
|
# Make the bundled Findwfassoc.cmake module visible to find_package().
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
|
|
|
# Qt and LinguistTools are used by both subprojects, so they are looked up at
|
|
# the top level. The same is true for wfassoc: although only the qwfassoc
|
|
# library links against it directly, PUBLIC propagation from the library
|
|
# target makes the dependency available to qwfassoc-standalone as well.
|
|
# toml11 is only needed when the standalone executable is built, so it is
|
|
# looked up conditionally below.
|
|
find_package(Qt6 REQUIRED COMPONENTS Widgets LinguistTools)
|
|
find_package(wfassoc REQUIRED)
|
|
|
|
# The standalone executable is optional: embedders may want only the library.
|
|
option(QWFASSOC_BUILD_STANDALONE "Build the qwfassoc-standalone executable" ON)
|
|
|
|
add_subdirectory(qwfassoc)
|
|
|
|
if(QWFASSOC_BUILD_STANDALONE)
|
|
find_package(toml11 REQUIRED)
|
|
add_subdirectory(qwfassoc-standalone)
|
|
endif()
|