forked from MeVisLab/pythonqt
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
94 lines (76 loc) · 2.99 KB
/
CMakeLists.txt
File metadata and controls
94 lines (76 loc) · 2.99 KB
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
project(QtAll LANGUAGES CXX)
set(CMAKE_AUTOMOC ON)
file(GLOB SOURCES *.h *.cpp)
if(BUILD_SHARED_LIBS)
add_library(${PROJECT_NAME} SHARED)
target_compile_definitions(${PROJECT_NAME} PRIVATE PYTHONQT_QTALL_EXPORTS)
else()
add_library(${PROJECT_NAME} STATIC)
target_compile_definitions(${PROJECT_NAME} PUBLIC PYTHONQT_QTALL_STATIC)
endif()
target_sources(${PROJECT_NAME} PRIVATE ${SOURCES})
target_link_libraries(${PROJECT_NAME} PUBLIC Core)
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_LIST_DIR})
list(APPEND QTMODULES Core Gui Svg Sql Network OpenGL Xml Multimedia Qml Quick UiTools WebEngineWidgets)
if(${QT_VERSION_MAJOR} EQUAL 5) #QT5
list(APPEND QTMODULES XmlPatterns WebKit)
endif()
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS ${QTMODULES})
foreach(QtModule IN LISTS QTMODULES)
if(NOT TARGET "Qt${QT_VERSION_MAJOR}::${QtModule}")
continue()
endif()
string(TOUPPER ${QtModule} QTMODULE)
target_sources(${PROJECT_NAME} PRIVATE ${PYTHONQT_WRAPPER_${QTMODULE}_SOURCES})
target_link_libraries(${PROJECT_NAME} PUBLIC Qt${QT_VERSION_MAJOR}::${QtModule})
target_compile_definitions(${PROJECT_NAME} PRIVATE PYTHONQT_WITH_${QTMODULE})
endforeach()
if(TARGET "Qt${QT_VERSION_MAJOR}::Gui")
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets PrintSupport REQUIRED)
target_link_libraries(${PROJECT_NAME} PUBLIC
Qt${QT_VERSION_MAJOR}::Widgets
Qt${QT_VERSION_MAJOR}::PrintSupport
)
endif()
if(TARGET "Qt${QT_VERSION_MAJOR}::Svg" AND QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS SvgWidgets REQUIRED)
target_link_libraries(${PROJECT_NAME} PUBLIC
Qt${QT_VERSION_MAJOR}::SvgWidgets
)
endif()
if(TARGET "Qt${QT_VERSION_MAJOR}::Multimedia")
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS MultimediaWidgets REQUIRED)
target_link_libraries(${PROJECT_NAME} PUBLIC
Qt${QT_VERSION_MAJOR}::MultimediaWidgets
)
endif()
if(TARGET "Qt${QT_VERSION_MAJOR}::Quick")
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS QuickWidgets REQUIRED)
target_link_libraries(${PROJECT_NAME} PUBLIC
Qt${QT_VERSION_MAJOR}::QuickWidgets
)
endif()
if(TARGET "Qt${QT_VERSION_MAJOR}::WebKit")
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS WebKitWidgets REQUIRED)
target_link_libraries(${PROJECT_NAME} PUBLIC
Qt${QT_VERSION_MAJOR}::WebKitWidgets
)
endif()
file(GLOB PUBLIC_HEADER *.h)
set_target_properties(${PROJECT_NAME} PROPERTIES
OUTPUT_NAME PythonQt-QtAll-${PYTHONQT_SUFFIX}
PUBLIC_HEADER "${PUBLIC_HEADER}"
)
if(MSVC)
target_compile_options(${PROJECT_NAME} PRIVATE "/bigobj")
elseif(MINGW)
target_compile_options(${PROJECT_NAME} PRIVATE "-Wa,-mbig-obj")
endif()
include(GNUInstallDirs)
install(TARGETS ${PROJECT_NAME}
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)