# Copyright (C) 2022 The Qt Company Ltd. # SPDX-License-Identifier: BSD-3-Clause ##################################################################### ## qhelpgenerator Tool: ##################################################################### qt_get_tool_target_name(target_name qhelpgenerator) qt_internal_add_tool(${target_name} TARGET_DESCRIPTION "Qt Compressed Help File Generator" TOOLS_TARGET Tools INSTALL_DIR "${INSTALL_LIBEXECDIR}" SOURCES ../shared/collectionconfiguration.cpp ../shared/collectionconfiguration.h collectionconfigreader.cpp collectionconfigreader.h helpgenerator.cpp helpgenerator.h main.cpp qhelpdatainterface.cpp qhelpdatainterface_p.h qhelpprojectdata.cpp qhelpprojectdata_p.h LIBRARIES Qt::Gui Qt::HelpPrivate Qt::Network ) qt_internal_return_unless_building_tools() if(NOT QT_BUILD_SHARED_LIBS) set(needed_plugins QMinimalIntegrationPlugin QSQLiteDriverPlugin ) list(TRANSFORM needed_plugins PREPEND Qt:: OUTPUT_VARIABLE needed_plugin_targets) if(QT_SUPERBUILD) # In a top-level build, qt_import_plugins() is a no-op because # __qt_internal_add_static_plugins_once() is not called. # So we need to initialize and link the plugin manually. set(out_file_path "${CMAKE_CURRENT_BINARY_DIR}/${target_name}_plugin_imports_custom.cpp") # Create a string with the necessary Q_IMPORT_PLUGIN(...) statements. list(TRANSFORM needed_plugins PREPEND "Q_IMPORT_PLUGIN(" OUTPUT_VARIABLE import_plugin_code) list(TRANSFORM import_plugin_code APPEND ")") list(JOIN import_plugin_code "\n" import_plugin_code) file(GENERATE OUTPUT "${out_file_path}" CONTENT "// This file is auto-generated. Do not edit. #include ${import_plugin_code} ") # CMake versions earlier than 3.18.0 can't find the generated file for some reason, # failing at generation phase. # Explicitly marking the file as GENERATED fixes the issue. set_source_files_properties("${out_file_path}" PROPERTIES GENERATED TRUE) target_sources(${target_name} PRIVATE "${out_file_path}") target_link_libraries(${target_name} PRIVATE ${needed_plugin_targets}) else() qt_import_plugins(${target_name} INCLUDE ${needed_plugin_targets} ) endif() endif()