-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathCMakeLists.txt
77 lines (64 loc) · 2.73 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
project(PythonQt_QtAll)
file(GLOB SOURCES *.cpp)
file(GLOB HEADERS *.h)
set(QT Core Gui Network OpenGL Qml Quick QuickWidgets Sql Svg UiTools Xml CACHE INTERNAL "")#for find_package in root CMakeLists
if(PYTHONQT_WITH_WEBKIT)
set(QT ${QT} WebKit)
set(WebKitWidgets WebKitWidgets)
endif()
if(PythonQt_Qt5)
set(QT ${QT} PrintSupport Widgets ${WebKitWidgets} Multimedia MultimediaWidgets XmlPatterns CACHE INTERNAL "")
endif()
string(TOLOWER "${QT}" modules)
#-------------------------------------------------------------------
# Generated stuff
SET(GEN ../../generated_cpp${generated_cpp_suffix})
SET(GEN_HEADERS)
SET(GEN_SOURCES)
foreach(MODULE ${modules})
SET(MODULE_TROLL com_trolltech_qt_${MODULE})
SET(MODULE_BASE ${GEN}/${MODULE_TROLL}/${MODULE_TROLL})
FILE(GLOB HFILES ${MODULE_BASE}*.h)
FILE(GLOB CFILES ${MODULE_BASE}*.cpp)
LIST(APPEND GEN_HEADERS ${HFILES})
LIST(APPEND GEN_SOURCES ${CFILES})
endforeach()
#-------------------------------------------------------------------
# Build
set(PythonQt_QtAll ${PythonQt}_QtAll CACHE INTERNAL "")
if(NOT TARGET ${PythonQt})
find_package(${PythonQt} CONFIG REQUIRED)
endif()
qt_wrap_cpp(GEN_MOC ${GEN_HEADERS})
add_library(${PythonQt_QtAll} ${SOURCES} ${HEADERS} ${GEN_SOURCES})
target_link_libraries(${PythonQt_QtAll} ${PythonQt} ${PYTHON_LIBRARIES})
target_include_directories(${PythonQt_QtAll} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include>
)
target_compile_definitions(${PythonQt_QtAll} PUBLIC $<$<STREQUAL:${PYTHONQT_WITH_WEBKIT},ON>:PYTHONQT_WITH_WEBKIT>)
qt_use_modules(${PythonQt_QtAll} ${QT})
if(BUILD_SHARED_LIBS)
target_compile_definitions(${PythonQt_QtAll} PRIVATE PYTHONQT_QTALL_EXPORTS)
else(BUILD_SHARED_LIBS)
target_compile_definitions(${PythonQt_QtAll} PUBLIC PYTHONQT_QTALL_STATIC)
endif(BUILD_SHARED_LIBS)
set_target_properties(${PythonQt_QtAll} PROPERTIES PUBLIC_HEADER "${HEADERS}")
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
"${PROJECT_BINARY_DIR}/${PythonQt_QtAll}ConfigVersion.cmake"
VERSION ${PythonQt_VERSION}
COMPATIBILITY AnyNewerVersion
)
configure_file(PythonQt_QtAllConfig.cmake.in "${PROJECT_BINARY_DIR}/${PythonQt_QtAll}Config.cmake" @ONLY)
install(TARGETS ${PythonQt_QtAll} EXPORT ${PythonQt_QtAll}Targets COMPONENT QtAll
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
INCLUDES DESTINATION include/${PythonQt}
PUBLIC_HEADER DESTINATION include/${PythonQt}/PythonQt)
set(LIB_CMAKE_PATH "lib/cmake/${PythonQt_QtAll}")
install(EXPORT ${PythonQt_QtAll}Targets DESTINATION ${LIB_CMAKE_PATH} COMPONENT QtAll-dev)
install(FILES ${PROJECT_BINARY_DIR}/${PythonQt_QtAll}Config.cmake
${PROJECT_BINARY_DIR}/${PythonQt_QtAll}ConfigVersion.cmake
DESTINATION ${LIB_CMAKE_PATH} COMPONENT QtAll-dev)