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