blob: 82793cba78efbce2f92c17b82597e0495ff40b4d (
plain)
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
|
cmake_minimum_required(VERSION 3.16)
find_package(Qt6 REQUIRED COMPONENTS Core Widgets)
mo2_find_python_executable(PYTHON_EXE)
add_library(pybind11-qt STATIC)
mo2_configure_target(pybind11-qt
NO_SOURCES
WARNINGS 4
EXTERNAL_WARNINGS 4
AUTOMOC OFF
TRANSLATIONS OFF
)
mo2_default_source_group()
target_sources(pybind11-qt
PRIVATE
./include/pybind11_qt/pybind11_qt_basic.h
./include/pybind11_qt/pybind11_qt_containers.h
./include/pybind11_qt/pybind11_qt_enums.h
./include/pybind11_qt/pybind11_qt_holder.h
./include/pybind11_qt/pybind11_qt_objects.h
./include/pybind11_qt/pybind11_qt_qflags.h
./include/pybind11_qt/pybind11_qt.h
pybind11_qt_basic.cpp
pybind11_qt_sip.cpp
pybind11_qt_utils.cpp
)
mo2_target_sources(pybind11-qt
FOLDER src/details
PRIVATE
./include/pybind11_qt/details/pybind11_qt_enum.h
./include/pybind11_qt/details/pybind11_qt_qlist.h
./include/pybind11_qt/details/pybind11_qt_qmap.h
./include/pybind11_qt/details/pybind11_qt_sip.h
./include/pybind11_qt/details/pybind11_qt_utils.h
)
target_link_libraries(pybind11-qt PUBLIC pybind11::pybind11 PRIVATE Qt6::Core Qt6::Widgets)
target_include_directories(pybind11-qt PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
# this is kind of broken but it only works with this...
target_compile_definitions(pybind11-qt PUBLIC QT_NO_KEYWORDS)
# we need sip.h for pybind11-qt
add_custom_target(PyQt6-siph DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/sip.h")
set_target_properties(PyQt6-siph PROPERTIES FOLDER autogen)
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/sip.h"
COMMAND ${Python_EXECUTABLE} -m sipbuild.tools.module
--sip-h
--target-dir ${CMAKE_CURRENT_BINARY_DIR}
PyQt${MO2_QT_VERSION_MAJOR}.sip
)
add_dependencies(pybind11-qt PyQt6-siph)
target_include_directories(pybind11-qt PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
if(NOT MSVC)
target_compile_options(pybind11-qt PRIVATE -Wno-attributes)
endif()
add_library(pybind11::qt ALIAS pybind11-qt)
|