Warning, /network/falkon/src/plugins/PyFalkon/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # Enable policy to run automoc on generated files.
0002 if(POLICY CMP0071)
0003   cmake_policy(SET CMP0071 NEW)
0004 endif()
0005 
0006 # Get all relevant Qt include dirs, to pass them on to shiboken.
0007 get_property(QT_CORE_INCLUDE_DIRS TARGET Qt6::Core PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
0008 get_property(QT_GUI_INCLUDE_DIRS TARGET Qt6::Gui PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
0009 get_property(QT_SQL_INCLUDE_DIRS TARGET Qt6::Sql PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
0010 get_property(QT_WIDGETS_INCLUDE_DIRS TARGET Qt6::Widgets PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
0011 get_property(QT_NETWORK_INCLUDE_DIRS TARGET Qt6::Network PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
0012 get_property(QT_WEBENGINECORE_INCLUDE_DIRS TARGET Qt6::WebEngineCore PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
0013 get_property(QT_WEBENGINEWIDGETS_INCLUDE_DIRS TARGET Qt6::WebEngineWidgets PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
0014 set(QT_INCLUDE_DIRS
0015     ${QT_CORE_INCLUDE_DIRS}
0016     ${QT_GUI_INCLUDE_DIRS}
0017     ${QT_SQL_INCLUDE_DIRS}
0018     ${QT_WIDGETS_INCLUDE_DIRS}
0019     ${QT_NETWORK_INCLUDE_DIRS}
0020     ${QT_WEBENGINECORE_INCLUDE_DIRS}
0021     ${QT_WEBENGINEWIDGETS_INCLUDE_DIRS}
0022 )
0023 get_property(QT_PRINTSUPPORT_INCLUDE_DIRS TARGET Qt6::PrintSupport PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
0024 list(APPEND QT_INCLUDE_DIRS ${QT_PRINTSUPPORT_INCLUDE_DIRS})
0025 set(INCLUDES "")
0026 foreach(INCLUDE_DIR ${QT_INCLUDE_DIRS})
0027     list(APPEND INCLUDES "-I${INCLUDE_DIR}")
0028 endforeach()
0029 get_property(FalkonPrivate_INCLUDE_DIRS TARGET FalkonPrivate PROPERTY INCLUDE_DIRECTORIES)
0030 foreach(INCLUDE_DIR ${FalkonPrivate_INCLUDE_DIRS})
0031     list(APPEND INCLUDES "-I${INCLUDE_DIR}")
0032 endforeach()
0033 
0034 # Set up the options to pass to shiboken.
0035 set(GLOBAL_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/pyfalkon_global.h)
0036 set(TYPESYSTEM_FILE ${CMAKE_CURRENT_SOURCE_DIR}/typesystem_pyfalkon.xml)
0037 
0038 set(API_VERSION "${Qt6_VERSION_MAJOR}.${Qt6_VERSION_MINOR}")
0039 
0040 set(SHIBOKEN_OPTIONS --generator-set=shiboken --enable-parent-ctor-heuristic
0041     --enable-pyside-extensions --enable-return-value-heuristic --use-isnull-as-nb_nonzero
0042     --avoid-protected-hack
0043     ${INCLUDES}
0044     -T${PYSIDE_TYPESYSTEMS}
0045     --output-directory=${CMAKE_CURRENT_BINARY_DIR}
0046     --api-version="${API_VERSION}"
0047 )
0048 
0049 # Specify which sources will be generated by shiboken, and their dependencies.
0050 set(GENERATED_SOURCES
0051     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/pyfalkon_module_wrapper.cpp
0052     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/webview_wrapper.cpp
0053     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/tabbedwebview_wrapper.cpp
0054     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/webpage_wrapper.cpp
0055     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/webhittestresult_wrapper.cpp
0056     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/desktopfile_wrapper.cpp
0057     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/plugininterface_wrapper.cpp
0058     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/loadrequest_wrapper.cpp
0059     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/qz_wrapper.cpp
0060     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/desktopnotificationsfactory_wrapper.cpp
0061     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/externaljsobject_wrapper.cpp
0062     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/pluginproxy_wrapper.cpp
0063     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/plugins_wrapper.cpp
0064     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/plugins_plugin_wrapper.cpp
0065     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/pluginspec_wrapper.cpp
0066     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/qtsingleapplication_wrapper.cpp
0067     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/squeezelabelv1_wrapper.cpp
0068     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/squeezelabelv2_wrapper.cpp
0069     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/lineedit_wrapper.cpp
0070     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/sidewidget_wrapper.cpp
0071     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/webtab_wrapper.cpp
0072     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/mainapplication_wrapper.cpp
0073     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/datapaths_wrapper.cpp
0074     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/settings_wrapper.cpp
0075     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/autosaver_wrapper.cpp
0076     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/browserwindow_wrapper.cpp
0077     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/pageformdata_wrapper.cpp
0078     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/passwordentry_wrapper.cpp
0079     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/passwordbackend_wrapper.cpp
0080     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/autofill_wrapper.cpp
0081     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/passwordmanager_wrapper.cpp
0082     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/bookmarkitem_wrapper.cpp
0083     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/bookmarkstools_wrapper.cpp
0084     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/bookmarks_wrapper.cpp
0085     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/bookmarksmodel_wrapper.cpp
0086     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/bookmarksfoldersmenu_wrapper.cpp
0087     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/bookmarksfoldersbutton_wrapper.cpp
0088     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/cookiemanager_wrapper.cpp
0089     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/cookiejar_wrapper.cpp
0090     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/downloaditem_wrapper.cpp
0091     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/downloadmanager_wrapper.cpp
0092     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/downloadmanager_downloadinfo_wrapper.cpp
0093     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/history_wrapper.cpp
0094     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/history_historyentry_wrapper.cpp
0095     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/historyitem_wrapper.cpp
0096     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/historymodel_wrapper.cpp
0097     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/locationbar_wrapper.cpp
0098     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/locationbar_loadaction_wrapper.cpp
0099     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/navigationbar_wrapper.cpp
0100     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/networkmanager_wrapper.cpp
0101     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/searchenginesdialog_wrapper.cpp
0102     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/searchenginesmanager_wrapper.cpp
0103     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/searchenginesmanager_engine_wrapper.cpp
0104     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/sidebarmanager_wrapper.cpp
0105     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/sidebarinterface_wrapper.cpp
0106     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/webinspector_wrapper.cpp
0107     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/combotabbar_wrapper.cpp
0108     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/tabbar_wrapper.cpp
0109     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/tabcontextmenu_wrapper.cpp
0110     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/tabicon_wrapper.cpp
0111     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/tabicon_data_wrapper.cpp
0112     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/tabmodel_wrapper.cpp
0113     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/tabmrumodel_wrapper.cpp
0114     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/tabstackedwidget_wrapper.cpp
0115     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/tabtreemodel_wrapper.cpp
0116     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/tabwidget_wrapper.cpp
0117     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/searchtoolbar_wrapper.cpp
0118     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/checkboxdialog_wrapper.cpp
0119     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/qzsettings_wrapper.cpp
0120     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/statusbar_wrapper.cpp
0121     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/abstractbuttoninterface_wrapper.cpp
0122     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/abstractbuttoninterface_clickcontroller_wrapper.cpp
0123     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/clickablelabel_wrapper.cpp
0124     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/delayedfilewatcher_wrapper.cpp
0125     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/iconprovider_wrapper.cpp
0126     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/qztools_wrapper.cpp
0127     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/sqlqueryjob_wrapper.cpp
0128     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/sqldatabase_wrapper.cpp
0129     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/toolbutton_wrapper.cpp
0130     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/wheelhelper_wrapper.cpp
0131     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/menu_wrapper.cpp
0132     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/action_wrapper.cpp
0133     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/urlinterceptor_wrapper.cpp
0134     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon/extensionschemehandler_wrapper.cpp
0135 )
0136 set(GENERATED_SOURCES_DEPENDENCIES
0137     ${GLOBAL_HEADER}
0138     ${TYPESYSTEM_FILE}
0139 )
0140 
0141 set(PYSIDE_VERSION "6")
0142 
0143 # Add custom target to run shiboken.
0144 add_custom_command(OUTPUT ${GENERATED_SOURCES}
0145                     COMMAND Shiboken${PYSIDE_VERSION}::shiboken${PYSIDE_VERSION}
0146                     ${SHIBOKEN_OPTIONS} ${GLOBAL_HEADER} ${TYPESYSTEM_FILE}
0147                     DEPENDS ${GENERATED_SOURCES_DEPENDENCIES}
0148                     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
0149                     COMMENT "Running generator for ${TYPESYSTEM_FILE}.")
0150 
0151 # We need to include the headers for the module bindings that we use.
0152 set(PYSIDE_ADDITIONAL_INCLUDES "")
0153 get_target_property(PYSIDE_INCLUDE_DIRS PySide${PYSIDE_VERSION}::pyside${PYSIDE_VERSION} INTERFACE_INCLUDE_DIRECTORIES)
0154 foreach(INCLUDE_DIR ${PYSIDE_INCLUDE_DIRS})
0155     list(APPEND PYSIDE_ADDITIONAL_INCLUDES "${INCLUDE_DIR}/QtCore")
0156     list(APPEND PYSIDE_ADDITIONAL_INCLUDES "${INCLUDE_DIR}/QtGui")
0157     list(APPEND PYSIDE_ADDITIONAL_INCLUDES "${INCLUDE_DIR}/QtNetwork")
0158     list(APPEND PYSIDE_ADDITIONAL_INCLUDES "${INCLUDE_DIR}/QtPrintSupport")
0159     list(APPEND PYSIDE_ADDITIONAL_INCLUDES "${INCLUDE_DIR}/QtWidgets")
0160     list(APPEND PYSIDE_ADDITIONAL_INCLUDES "${INCLUDE_DIR}/QtWebChannel")
0161     list(APPEND PYSIDE_ADDITIONAL_INCLUDES "${INCLUDE_DIR}/QtWebEngineCore")
0162     list(APPEND PYSIDE_ADDITIONAL_INCLUDES "${INCLUDE_DIR}/QtWebEngineWidgets")
0163     list(APPEND PYSIDE_ADDITIONAL_INCLUDES "${INCLUDE_DIR}/QtSql")
0164 endforeach()
0165 
0166 set(PyFalkon_SRCS
0167     pythonplugin.cpp
0168     ${GENERATED_SOURCES}
0169 )
0170 
0171 add_library(PyFalkon MODULE ${PyFalkon_SRCS})
0172 install(TARGETS PyFalkon DESTINATION ${FALKON_INSTALL_PLUGINDIR})
0173 
0174 target_include_directories(PyFalkon
0175     PRIVATE
0176     ${PYSIDE_ADDITIONAL_INCLUDES}
0177     ${CMAKE_SOURCE_DIR}
0178     ${CMAKE_CURRENT_BINARY_DIR}/PyFalkon
0179 )
0180 
0181 target_link_libraries(PyFalkon
0182     PRIVATE
0183     FalkonPrivate
0184     Shiboken${PYSIDE_VERSION}::libshiboken
0185     PySide${PYSIDE_VERSION}::pyside${PYSIDE_VERSION}
0186     Python3::Python
0187 )
0188 
0189 # Same as CONFIG += no_keywords to avoid syntax errors in object.h due to the usage of the word Slot
0190 target_compile_definitions(PyFalkon PRIVATE QT_NO_KEYWORDS)
0191 
0192 if(BUILD_TESTING)
0193     add_subdirectory(autotests)
0194 endif()