forked from ModOrganizer2/modorganizer-plugin_python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
62 lines (53 loc) · 1.91 KB
/
CMakeLists.txt
File metadata and controls
62 lines (53 loc) · 1.91 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
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
${CMAKE_COMMAND} -E env PYTHONPATH=${MO2_PYLIBS_DIR}
${MO2_PYLIBS_DIR}/bin/sip-module.exe
--sip-h PyQt${MO2_QT_VERSION_MAJOR}.sip
--target-dir ${CMAKE_CURRENT_BINARY_DIR}
)
add_dependencies(PyQt6-siph PyQt6)
add_dependencies(pybind11-qt PyQt6-siph)
target_include_directories(pybind11-qt PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
add_library(pybind11::qt ALIAS pybind11-qt)