Warning, /frameworks/threadweaver/src/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 add_library(KF6ThreadWeaver)
0002 add_library(KF6::ThreadWeaver ALIAS KF6ThreadWeaver)
0003
0004 set_target_properties(KF6ThreadWeaver PROPERTIES
0005 VERSION ${THREADWEAVER_VERSION}
0006 SOVERSION ${THREADWEAVER_SOVERSION}
0007 EXPORT_NAME ThreadWeaver
0008 )
0009
0010 target_sources(KF6ThreadWeaver PRIVATE
0011 collection.cpp
0012 collection.h
0013 collection_p.cpp
0014 collection_p.h
0015 debuggingaids.cpp
0016 debuggingaids.h
0017 dependency.cpp
0018 dependency.h
0019 dependencypolicy.cpp
0020 dependencypolicy.h
0021 destructedstate.cpp
0022 destructedstate.h
0023 exception.cpp
0024 exception.h
0025 executewrapper.cpp
0026 executewrapper_p.h
0027 executor.cpp
0028 executor_p.h
0029 iddecorator.cpp
0030 iddecorator.h
0031 inconstructionstate.cpp
0032 inconstructionstate.h
0033 job.cpp
0034 job.h
0035 jobinterface.h
0036 job_p.cpp
0037 job_p.h
0038 jobpointer.h
0039 lambda.h
0040 managedjobpointer.h
0041 qobjectdecorator.cpp
0042 qobjectdecorator.h
0043 queueapi.cpp
0044 queueapi.h
0045 queue.cpp
0046 queue.h
0047 queueing.h
0048 queueinterface.h
0049 queuepolicy.h
0050 queuesignals.cpp
0051 queuesignals.h
0052 queuesignals_p.cpp
0053 queuesignals_p.h
0054 queuestream.cpp
0055 queuestream.h
0056 resourcerestrictionpolicy.cpp
0057 resourcerestrictionpolicy.h
0058 sequence.cpp
0059 sequence.h
0060 sequence_p.cpp
0061 sequence_p.h
0062 shuttingdownstate.cpp
0063 shuttingdownstate.h
0064 state.cpp
0065 state.h
0066 suspendedstate.cpp
0067 suspendedstate.h
0068 suspendingstate.cpp
0069 suspendingstate.h
0070 thread.cpp
0071 thread.h
0072 threadweaver.cpp
0073 threadweaver.h
0074 weaver.cpp
0075 weaver.h
0076 weaverimplstate.cpp
0077 weaverimplstate.h
0078 weaverinterface.h
0079 weaver_p.cpp
0080 weaver_p.h
0081 workinghardstate.cpp
0082 workinghardstate.h
0083
0084 )
0085
0086 ecm_generate_export_header(KF6ThreadWeaver
0087 BASE_NAME ThreadWeaver
0088 GROUP_BASE_NAME KF
0089 VERSION ${KF_VERSION}
0090 USE_VERSION_HEADER
0091 DEPRECATED_BASE_VERSION 0
0092 DEPRECATION_VERSIONS
0093 EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
0094 )
0095
0096 target_link_libraries(KF6ThreadWeaver PUBLIC Qt6::Core)
0097 set(threadweaver_BUILD_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_BINARY_DIR})
0098 target_include_directories(KF6ThreadWeaver PUBLIC "$<BUILD_INTERFACE:${threadweaver_BUILD_INCLUDE_DIRS}>")
0099 target_include_directories(KF6ThreadWeaver INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/ThreadWeaver>")
0100 #FIXME: make this PUBLIC, so that it applies to anything that links against
0101 kde_target_enable_exceptions(KF6ThreadWeaver PRIVATE)
0102
0103 install(TARGETS KF6ThreadWeaver EXPORT KF6ThreadWeaverTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0104
0105 ecm_generate_headers(ThreadWeaver_CamelCase_HEADERS
0106 HEADER_NAMES
0107 ThreadWeaver
0108 Weaver
0109 WeaverInterface
0110 QueueAPI
0111 QueueStream
0112 Queueing
0113 Exception
0114 QueueInterface
0115 Queue
0116 DebuggingAids
0117 Thread
0118 JobInterface
0119 Job
0120 IdDecorator
0121 QObjectDecorator
0122 Lambda
0123 State
0124 WeaverImplState
0125 InConstructionState
0126 WorkingHardState
0127 SuspendingState
0128 SuspendedState
0129 ShuttingDownState
0130 DestructedState
0131 Collection
0132 Sequence
0133 Dependency
0134 DependencyPolicy
0135 ResourceRestrictionPolicy
0136 QueueSignals
0137 QueuePolicy
0138 JobPointer
0139 ManagedJobPointer
0140
0141 PREFIX ThreadWeaver
0142 REQUIRED_HEADERS ThreadWeaver_HEADERS
0143 )
0144 install(FILES ${ThreadWeaver_CamelCase_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/ThreadWeaver/ThreadWeaver COMPONENT Devel)
0145
0146 install(FILES
0147 ${CMAKE_CURRENT_BINARY_DIR}/threadweaver_export.h
0148 ${ThreadWeaver_HEADERS}
0149 DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/ThreadWeaver/threadweaver COMPONENT Devel
0150 )
0151
0152 if(BUILD_QCH)
0153 ecm_add_qch(
0154 KF6ThreadWeaver_QCH
0155 NAME ThreadWeaver
0156 BASE_NAME KF6ThreadWeaver
0157 VERSION ${KF_VERSION}
0158 ORG_DOMAIN org.kde
0159 SOURCES # using only public headers, to cover only public API
0160 ${ThreadWeaver_HEADERS}
0161 "${CMAKE_SOURCE_DIR}/docs/use-cases.md"
0162 "${CMAKE_SOURCE_DIR}/docs/whymultithreading.md"
0163 MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md"
0164 LINK_QCHS
0165 Qt6Core_QCH
0166 INCLUDE_DIRS
0167 ${threadweaver_BUILD_INCLUDE_DIRS}
0168 BLANK_MACROS
0169 THREADWEAVER_EXPORT
0170 THREADWEAVER_DEPRECATED
0171 THREADWEAVER_DEPRECATED_EXPORT
0172 "THREADWEAVER_DEPRECATED_VERSION(x, y, t)"
0173 TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0174 QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0175 COMPONENT Devel
0176 )
0177 endif()
0178