1
1
# This is the actual package to be installed
2
2
# PythonQtParent project contains all compontents
3
- project (PythonQt LANGUAGES CXX )
3
+ project (PythonQt LANGUAGES CXX VERSION 3.5.6 )
4
4
5
5
set (CMAKE_AUTOMOC ON )
6
6
@@ -39,12 +39,6 @@ set(Core_SOURCES
39
39
PythonQtStdOut.cpp
40
40
PythonQtThreadSupport.cpp
41
41
)
42
- target_sources (${PROJECT_NAME} PRIVATE
43
- ${Core_SOURCES}
44
- ${PYTHONQT_WRAPPER_CORE_BUILTIN_SOURCES}
45
- ${PYTHONQT_WRAPPER_GUI_BUILTIN_SOURCES}
46
- )
47
- unset (Core_SOURCES )
48
42
49
43
set (Core_PUBLIC_HEADER
50
44
PythonQt.h
@@ -75,11 +69,18 @@ set(Core_PUBLIC_HEADER
75
69
PythonQtBoolResult.h
76
70
PythonQtThreadSupport.h
77
71
)
78
- set_target_properties (${PROJECT_NAME} PROPERTIES
79
- OUTPUT_NAME PythonQt-${PYTHONQT_SUFFIX}
80
- PUBLIC_HEADER ${Core_PUBLIC_HEADER}
81
- )
82
- unset (Core_PUBLIC_HEADER )
72
+ target_sources (${PROJECT_NAME} PRIVATE
73
+ ${Core_SOURCES}
74
+ ${PYTHONQT_WRAPPER_CORE_BUILTIN_SOURCES}
75
+ ${PYTHONQT_WRAPPER_GUI_BUILTIN_SOURCES}
76
+ )
77
+
78
+ foreach ( header ${Core_PUBLIC_HEADER} )
79
+ set_target_properties (${PROJECT_NAME} PROPERTIES
80
+ # OUTPUT_NAME ${PROJECT_NAME}Targets #PythonQt-${PYTHONQT_SUFFIX}
81
+ PUBLIC_HEADER ${header}
82
+ )
83
+ endforeach ()
83
84
84
85
add_dependencies (${PROJECT_NAME} PythonQtWrapper )
85
86
@@ -92,7 +93,13 @@ target_link_libraries(${PROJECT_NAME} PUBLIC
92
93
93
94
target_compile_definitions (${PROJECT_NAME} PRIVATE PYTHONQT_EXPORTS PYTHONQT_CATCH_ALL_EXCEPTIONS )
94
95
95
- target_include_directories (${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_LIST_DIR} )
96
+ target_include_directories (${PROJECT_NAME} PUBLIC
97
+ INTERFACE
98
+ # Use headers in the build tree when configuring/running CMake here:
99
+ $< BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /src>
100
+ # Use headers in the install tree when someone does `find_package(PythonQt)`:
101
+ $< INSTALL_INTERFACE:include/PythonQt>
102
+ )
96
103
97
104
if (MSVC )
98
105
target_compile_options (${PROJECT_NAME} PRIVATE "/bigobj" )
@@ -125,9 +132,47 @@ include(GNUInstallDirs)
125
132
# Install library (on windows, put the dll in 'bin' and the archive in 'lib')
126
133
127
134
install (TARGETS ${PROJECT_NAME}
128
- BUNDLE DESTINATION .
129
- LIBRARY DESTINATION ${PythonQt_INSTALL_LIBRARY_DIR}
130
- ARCHIVE DESTINATION ${PythonQt_INSTALL_ARCHIVE_DIR}
131
- RUNTIME DESTINATION ${PythonQt_INSTALL_RUNTIME_DIR}
132
- PUBLIC_HEADER DESTINATION ${PythonQt_INSTALL_INCLUDE_DIR}
135
+ EXPORT ${PROJECT_NAME} Targets
136
+ BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX}
137
+ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX} /${PythonQt_INSTALL_LIBRARY_DIR}
138
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX} /${PythonQt_INSTALL_ARCHIVE_DIR}
139
+ RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX} /${PythonQt_INSTALL_RUNTIME_DIR}
140
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX} /${PythonQt_INSTALL_INCLUDE_DIR}
141
+ )
142
+
143
+ install (FILES
144
+ ${Core_PUBLIC_HEADER}
145
+ DESTINATION ${CMAKE_INSTALL_PREFIX} /${PythonQt_INSTALL_INCLUDE_DIR}
146
+ )
147
+
148
+
149
+ #-----------------------------------------------------------------------------
150
+ # Configure so that other builds can find PythonQt with find_package
151
+ include (CMakePackageConfigHelpers )
152
+
153
+ # Generate PythonQtConfigVersion.cmake
154
+ write_basic_package_version_file (
155
+ "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
156
+ VERSION ${PROJECT_NAME} _VERSION}
157
+ COMPATIBILITY AnyNewerVersion
158
+ )
159
+
160
+ # Install the export target
161
+ install (EXPORT ${PROJECT_NAME} Targets
162
+ FILE ${PROJECT_NAME} Targets.cmake
163
+ NAMESPACE ${PROJECT_NAME} ::
164
+ DESTINATION lib/cmake/${PROJECT_NAME}
165
+ )
166
+
167
+ # Generate and install PythonQtConfig.cmake
168
+ configure_package_config_file (
169
+ "${CMAKE_CURRENT_SOURCE_DIR} /${PROJECT_NAME} Config.cmake.in"
170
+ "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
171
+ INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}
172
+ )
173
+
174
+ install (FILES
175
+ "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
176
+ "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
177
+ DESTINATION lib/cmake/${PROJECT_NAME}
133
178
)
0 commit comments