Commit 37bf29d5 authored by Friedrich W. H. Kossebau's avatar Friedrich W. H. Kossebau
Browse files

Use ecm_setup_qtplugin_macro_names

Avoids all the explicit boilerplate needed, ensures the dependency on
the JSON file ia also set and allows simple export of the setup
in the installed CMake config file, so other projects importing
the config file have the respective CMake macros set as recommended.

Test Plan:
Still builds as before. Touch a plugin metadata JSON file now triggers a moc
rerun. CMake config file contains setup of variables.
parent 1784c1d0
Pipeline #34194 passed with stage
in 52 minutes and 46 seconds
......@@ -43,6 +43,7 @@ include(KDECMakeSettings)
include(ECMAddTests)
include(ECMAddAppIcon)
include(CMakePackageConfigHelpers)
include(ECMSetupQtPluginMacroNames)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
......@@ -65,24 +66,12 @@ if(ANDROID)
find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED COMPONENTS AndroidExtras)
endif()
# Replace with ECMSetupQtPluginMacroNames once depending on ECM >= 5.45
# incl. passing same code generated by var into Okular5Config.cmake.in
if(NOT CMAKE_VERSION VERSION_LESS "3.10.0")
# CMake 3.9+ warns about automoc on files without Q_OBJECT, and doesn't know about other macros.
# 3.10+ lets us provide more macro names that require automoc.
list(APPEND CMAKE_AUTOMOC_MACRO_NAMES "OKULAR_EXPORT_PLUGIN")
endif()
if(NOT CMAKE_VERSION VERSION_LESS "3.9.0")
# CMake's automoc needs help to find names of plugin metadata files in case Q_PLUGIN_METADATA
# is indirectly used via other C++ preprocessor macros
# 3.9+ lets us provide some filter rule pairs (keyword, regexp) to match the names of such files
# in the plain text of the sources. See AUTOMOC_DEPEND_FILTERS docs for details.
list(APPEND CMAKE_AUTOMOC_DEPEND_FILTERS
ecm_setup_qtplugin_macro_names(
JSON_ARG2
"OKULAR_EXPORT_PLUGIN"
"[\n^][ \t]*OKULAR_EXPORT_PLUGIN[ \t\n]*\\([^,]*,[ \t\n]*\"([^\"]+)\""
)
endif()
CONFIG_CODE_VARIABLE
PACKAGE_SETUP_AUTOMOC_VARIABLES
)
set(optionalComponents)
if (ANDROID)
......
......@@ -9,24 +9,6 @@ find_dependency(KF5CoreAddons @KF5_REQUIRED_VERSION@)
find_dependency(KF5Config @KF5_REQUIRED_VERSION@)
find_dependency(KF5XmlGui @KF5_REQUIRED_VERSION@)
####################################################################################
# CMAKE_AUTOMOC
if(NOT CMAKE_VERSION VERSION_LESS "3.10.0")
# CMake 3.9+ warns about automoc on files without Q_OBJECT, and doesn't know about other macros.
# 3.10+ lets us provide more macro names that require automoc.
list(APPEND CMAKE_AUTOMOC_MACRO_NAMES OKULAR_EXPORT_PLUGIN)
endif()
if(NOT CMAKE_VERSION VERSION_LESS "3.9.0")
# CMake's automoc needs help to find names of plugin metadata files in case Q_PLUGIN_METADATA
# is indirectly used via other C++ preprocessor macros
# 3.9+ lets us provide some filter rule pairs (keyword, regexp) to match the names of such files
# in the plain text of the sources. See AUTOMOC_DEPEND_FILTERS docs for details.
list(APPEND CMAKE_AUTOMOC_DEPEND_FILTERS
"OKULAR_EXPORT_PLUGIN"
"[\n^][ \t]*OKULAR_EXPORT_PLUGIN[ \t\n]*\\([^,]*,[ \t\n]*\"([^\"]+)\""
)
endif()
@PACKAGE_SETUP_AUTOMOC_VARIABLES@
include("${CMAKE_CURRENT_LIST_DIR}/Okular5Targets.cmake")
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment