| | |
| | | qm_import(Preprocess) |
| | | |
| | | string(TIMESTAMP _current_year "%Y") |
| | | |
| | | set(QWINDOWKIT_PROJECT_DESCRIPTION "Cross-platform window customization framework") |
| | | set(QWINDOWKIT_PROJECT_COPYRIGHT "Copyright 2023 Stdware Collections") |
| | | set(QWINDOWKIT_PROJECT_COPYRIGHT "Copyright 2023-${_current_year} Stdware Collections") |
| | | set(QWINDOWKIT_GENERATED_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/../include) |
| | | set(QWINDOWKIT_BUILD_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/../etc/include) |
| | | |
| | |
| | | set(QMSETUP_DEFINITION_SCOPE DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) |
| | | set(QMSETUP_DEFINITION_NUMERICAL on) |
| | | |
| | | qm_add_definition(QWINDOWKIT_TEST_CONFIG true) |
| | | qm_add_definition(QWINDOWKIT_ENABLE_QT_WINDOW_CONTEXT |
| | | CONDITION QWINDOWKIT_ENABLE_QT_WINDOW_CONTEXT |
| | | ) |
| | | qm_add_definition(QWINDOWKIT_ENABLE_STYLE_AGENT |
| | | CONDITION QWINDOWKIT_ENABLE_STYLE_AGENT |
| | | ) |
| | | qm_add_definition(QWINDOWKIT_ENABLE_WINDOWS_SYSTEM_BORDERS |
| | | CONDITION QWINDOWKIT_ENABLE_WINDOWS_SYSTEM_BORDERS |
| | | ) |
| | | |
| | | qm_generate_config(${QWINDOWKIT_BUILD_INCLUDE_DIR}/QWKCore/qwkconfig.h) |
| | | |
| | |
| | | # ---------------------------------- |
| | | # CMake API |
| | | # ---------------------------------- |
| | | function(qwk_add_library _target) |
| | | macro(qwk_add_library _target) |
| | | set(options AUTOGEN NO_SYNC_INCLUDE NO_WIN_RC) |
| | | set(oneValueArgs SYNC_INCLUDE_PREFIX PREFIX) |
| | | set(multiValueArgs SYNC_INCLUDE_OPTIONS) |
| | |
| | | "$<BUILD_INTERFACE:${QWINDOWKIT_GENERATED_INCLUDE_DIR}>" |
| | | ) |
| | | endif() |
| | | endfunction() |
| | | endmacro() |
| | | |
| | | # ---------------------------------- |
| | | # Main Project |
| | | # ---------------------------------- |
| | | add_subdirectory(core) |
| | | |
| | | if(QWINDOWKIT_BUILD_STYLE_SUPPORT) |
| | | add_subdirectory(stylesupport) |
| | | endif() |
| | | |
| | | if(QWINDOWKIT_BUILD_WIDGETS) |
| | | add_subdirectory(widgets) |
| | |
| | | # Install |
| | | # ---------------------------------- |
| | | if(QWINDOWKIT_INSTALL) |
| | | # Add install target |
| | | set(_install_dir ${CMAKE_INSTALL_LIBDIR}/cmake/${QWINDOWKIT_INSTALL_NAME}) |
| | | |
| | | # Add version file |
| | | write_basic_package_version_file( |
| | | "${CMAKE_CURRENT_BINARY_DIR}/${QWINDOWKIT_INSTALL_NAME}ConfigVersion.cmake" |
| | | VERSION ${PROJECT_VERSION} |
| | | COMPATIBILITY AnyNewerVersion |
| | | ) |
| | | |
| | | # Add configuration file |
| | | configure_package_config_file( |
| | | ${CMAKE_CURRENT_LIST_DIR}/${QWINDOWKIT_INSTALL_NAME}Config.cmake.in |
| | | "${CMAKE_CURRENT_BINARY_DIR}/${QWINDOWKIT_INSTALL_NAME}Config.cmake" |
| | | INSTALL_DESTINATION ${_install_dir} |
| | | NO_CHECK_REQUIRED_COMPONENTS_MACRO |
| | | ) |
| | | |
| | | # Install cmake files |
| | | install(FILES |
| | | "${CMAKE_CURRENT_BINARY_DIR}/${QWINDOWKIT_INSTALL_NAME}Config.cmake" |
| | | "${CMAKE_CURRENT_BINARY_DIR}/${QWINDOWKIT_INSTALL_NAME}ConfigVersion.cmake" |
| | | DESTINATION ${_install_dir} |
| | | ) |
| | | |
| | | # Install cmake targets files |
| | | install(EXPORT ${QWINDOWKIT_INSTALL_NAME}Targets |
| | | FILE "${QWINDOWKIT_INSTALL_NAME}Targets.cmake" |
| | | qm_basic_install( |
| | | NAME ${QWINDOWKIT_INSTALL_NAME} |
| | | VERSION ${QWINDOWKIT_VERSION} |
| | | INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/${QWINDOWKIT_INSTALL_NAME} |
| | | CONFIG_TEMPLATE "${QWINDOWKIT_INSTALL_NAME}Config.cmake.in" |
| | | NAMESPACE ${QWINDOWKIT_INSTALL_NAME}:: |
| | | DESTINATION ${_install_dir} |
| | | EXPORT ${QWINDOWKIT_INSTALL_NAME}Targets |
| | | WRITE_CONFIG_OPTIONS NO_CHECK_REQUIRED_COMPONENTS_MACRO |
| | | ) |
| | | |
| | | # Install shared files |
| | | install(DIRECTORY ../share/ |
| | | DESTINATION share/${QWINDOWKIT_INSTALL_NAME} |
| | | ) |
| | | include("../share/install.cmake") |
| | | endif() |