root/OpenSceneGraph/trunk/src/OpenThreads/qt/CMakeLists.txt @ 13482

Revision 13482, 2.1 kB (checked in by robert, 45 minutes ago)

From Mattias Helsing, "Seems I was only half right given what you asked for. CMP0017 only
says that modules that are found and ran from cmake modules dir should
prefer cmake-provided modules. find_package() and include() still look
in CMAKE_MODULE_PATH first.

After some investigating I've come up with a proposal examplified in
the attached FindGDAL.cmake script. It simply calls the cmake provided
FindGDAL.cmake if it exists and returns if it succeeds in finding GDAL
using that, otherwise continue with our local cmake code.
Pro: Wont clutter our root CMakeLists.txt
Con: If we begin to write more advanced Findxxx modules (using
COMPONENTS, REQUIRED etc.) we may have to revise this scheme.
"

  • Property svn:eol-style set to native
Line 
1# This file should only be included when using Qt threads
2
3SET(LIB_NAME OpenThreads)
4SET(LIB_PUBLIC_HEADERS ${OpenThreads_PUBLIC_HEADERS})
5
6SOURCE_GROUP("Header Files" FILES ${LIB_PUBLIC_HEADERS})
7SET_SOURCE_FILES_PROPERTIES(${LIB_PUBLIC_HEADERS} PROPERTIES HEADER_FILE_ONLY ON)
8
9SET(QTCLASS_HEADERS
10    QtThreadPrivateData.h
11    QtMutexPrivateData.h
12    QtConditionPrivateData.h
13    QtBarrierPrivateData.h
14)
15
16# No need to moc headers right now
17#QT4_WRAP_CPP( QTCLASS_MOC ${QTCLASS_HEADERS} OPTIONS "-f" )
18
19ADD_LIBRARY(${LIB_NAME}
20    ${OPENTHREADS_USER_DEFINED_DYNAMIC_OR_STATIC}
21    ${LIB_PUBLIC_HEADERS}
22    ${QTCLASS_HEADERS}
23    QtThread.cpp
24    QtMutex.cpp
25    QtCondition.cpp
26    QtBarrier.cpp
27    ../common/Version.cpp
28    ../common/Atomic.cpp
29    ${QTCLASS_MOC}
30    ${OPENTHREADS_VERSIONINFO_RC}
31)
32
33IF(CMAKE_COMPILER_IS_GNUCXX)
34    # Remove -pedantic flag as it barfs on Qt headers
35   STRING(REGEX REPLACE "-pedantic" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
36ENDIF()
37
38IF(OPENTHREADS_SONAMES)
39  SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES VERSION ${OPENTHREADS_VERSION} SOVERSION ${OPENTHREADS_SOVERSION})
40ENDIF()
41
42if ( QT4_FOUND )
43    TARGET_LINK_LIBRARIES(${LIB_NAME} ${QT_QTCORE_LIBRARY})
44    INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR})
45else( QT4_FOUND )
46IF ( Qt5Widgets_FOUND )
47    qt5_use_modules( ${LIB_NAME} Core )
48ENDIF ( Qt5Widgets_FOUND )
49   
50endif( QT4_FOUND )
51
52# Since we're building different platforms binaries in
53# their respective directories, we need to set the
54# link directory so it can find this location.
55LINK_DIRECTORIES(
56    ${CMAKE_CURRENT_BINARY_DIR}
57)
58
59IF(MSVC AND OSG_MSVC_VERSIONED_DLL)
60    HANDLE_MSVC_DLL(ot ${OPENTHREADS_SOVERSION})
61ENDIF()
62
63INSTALL(
64    TARGETS OpenThreads
65    ARCHIVE DESTINATION lib${LIB_POSTFIX} COMPONENT libopenthreads-dev
66    LIBRARY DESTINATION lib${LIB_POSTFIX} COMPONENT libopenthreads
67    RUNTIME DESTINATION bin COMPONENT libopenthreads
68)
69INSTALL(
70    FILES ${OpenThreads_PUBLIC_HEADERS}
71    DESTINATION include/OpenThreads
72    COMPONENT libopenthreads-dev
73)
74
75#commented out# INCLUDE(ModuleInstall OPTIONAL)
Note: See TracBrowser for help on using the browser.