SineStriker
2023-12-22 a5d13e19dd7f6037e10b649c49805922ae5e0fa6
src/CMakeLists.txt
@@ -1,10 +1,12 @@
qm_import(Filesystem Preprocess)
qm_init_directories()
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)
set(QWINDOWKIT_ENABLED_TARGETS)
set(QWINDOWKIT_ENABLED_SUBDIRECTORIES)
# ----------------------------------
# Configurations
@@ -12,7 +14,7 @@
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_FORCE_QT_WINDOW_CONTEXT CONDITION QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT)
qm_generate_config(${QWINDOWKIT_BUILD_INCLUDE_DIR}/QWKCore/qwkconfig.h)
@@ -25,7 +27,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)
@@ -67,6 +69,7 @@
    # Add include directories
    target_include_directories(${_target} PRIVATE ${QWINDOWKIT_BUILD_INCLUDE_DIR})
    target_include_directories(${_target} PRIVATE .)
    # Library name
    if(${_target} MATCHES "^QWK(.+)")
@@ -106,22 +109,18 @@
    if(NOT FUNC_NO_SYNC_INCLUDE)
        # Generate a standard include directory in build directory
        qm_sync_include(. "${QWINDOWKIT_GENERATED_INCLUDE_DIR}/${_inc_name}" ${_install_options}
            ${FUNC_SYNC_INCLUDE_OPTIONS}
            ${FUNC_SYNC_INCLUDE_OPTIONS} FORCE
        )
        target_include_directories(${_target} PUBLIC
            "$<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)
@@ -145,21 +144,20 @@
        set(_install_options INSTALL_DIR share/doc/${QWINDOWKIT_INSTALL_NAME})
    endif()
    set(_doc_targets)
    qm_collect_targets(_doc_targets SHARED STATIC)
    set(_doc_targets ${QWINDOWKIT_ENABLED_TARGETS})
    set(QWINDOWKIT_DOXYGEN_TAGFILE
        ${CMAKE_BUILD_SHARE_DIR}/doc/${QWINDOWKIT_INSTALL_NAME}/${QWINDOWKIT_INSTALL_NAME}_tagfile.xml
        CACHE FILEPATH "QWINDOWKIT doxygen tag file path" FORCE
        CACHE FILEPATH "QWindowKit doxygen tag file path" FORCE
    )
    qm_import(Doxygen)
    qm_setup_doxygen(QWINDOWKIT_RunDoxygen
        NAME "QWINDOWKIT"
    qm_setup_doxygen(QWindowKit_RunDoxygen
        NAME "QWindowKit"
        DESCRIPTION "${QWINDOWKIT_PROJECT_DESCRIPTION}"
        MDFILE ../README.md
        OUTPUT_DIR ${CMAKE_BUILD_SHARE_DIR}/doc/${QWINDOWKIT_INSTALL_NAME}
        INPUT QWINDOWKIT
        INPUT ${QWINDOWKIT_ENABLED_SUBDIRECTORIES}
        TARGETS ${_doc_targets}
        DEPENDS ${_doc_targets}
        NO_EXPAND_MACROS Q_OBJECT Q_GADGET Q_DECLARE_TR_FUNCTIONS
@@ -206,7 +204,5 @@
    )
    # Install shared files
    install(DIRECTORY ../share/
        DESTINATION share/${QWINDOWKIT_INSTALL_NAME}
    )
    include("../share/install.cmake")
endif()