Warning, /frameworks/threadweaver/src/CMakeLists.txt is written in an unsupported language. File is not indexed.

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