sola.lu
8 天以前 df53287060966d78ffccac78342fb5d0a028f835
src/CMakeLists.txt
@@ -1,7 +1,5 @@
qm_import(Preprocess)
set(QWINDOWKIT_PROJECT_DESCRIPTION "Cross-platform window customization framework")
set(QWINDOWKIT_PROJECT_COPYRIGHT "Copyright 2023 Stdware Collections")
set(QWINDOWKIT_GENERATED_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/../include)
set(QWINDOWKIT_BUILD_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/../etc/include)
@@ -14,7 +12,15 @@
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)
@@ -27,7 +33,7 @@
# ----------------------------------
# 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)
@@ -50,8 +56,8 @@
    if(WIN32 AND NOT FUNC_NO_WIN_RC AND(${_type} STREQUAL "SHARED"))
        qm_add_win_rc(${_target}
            NAME ${QWINDOWKIT_INSTALL_NAME}
            DESCRIPTION ${QWINDOWKIT_PROJECT_DESCRIPTION}
            COPYRIGHT ${QWINDOWKIT_PROJECT_COPYRIGHT}
            DESCRIPTION ${QWINDOWKIT_DESCRIPTION}
            COPYRIGHT ${QACTIONKIT_COPYRIGHT}
        )
    endif()
@@ -69,6 +75,7 @@
    # Add include directories
    target_include_directories(${_target} PRIVATE ${QWINDOWKIT_BUILD_INCLUDE_DIR})
    target_include_directories(${_target} PRIVATE .)
    # Library name
    if(${_target} MATCHES "^QWK(.+)")
@@ -114,16 +121,12 @@
            "$<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)
@@ -157,7 +160,7 @@
    qm_import(Doxygen)
    qm_setup_doxygen(QWindowKit_RunDoxygen
        NAME "QWindowKit"
        DESCRIPTION "${QWINDOWKIT_PROJECT_DESCRIPTION}"
        DESCRIPTION "${QWINDOWKIT_DESCRIPTION}"
        MDFILE ../README.md
        OUTPUT_DIR ${CMAKE_BUILD_SHARE_DIR}/doc/${QWINDOWKIT_INSTALL_NAME}
        INPUT ${QWINDOWKIT_ENABLED_SUBDIRECTORIES}
@@ -174,40 +177,16 @@
# 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()