|
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 |
|
@@ -92,7 +92,13 @@ target_link_libraries(${PROJECT_NAME} PUBLIC
|
92 | 92 |
|
93 | 93 | target_compile_definitions(${PROJECT_NAME} PRIVATE PYTHONQT_EXPORTS PYTHONQT_CATCH_ALL_EXCEPTIONS)
|
94 | 94 |
|
95 |
| -target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_LIST_DIR}) |
| 95 | +target_include_directories(${PROJECT_NAME} PUBLIC |
| 96 | + INTERFACE |
| 97 | + # Use headers in the build tree when configuring/running CMake here: |
| 98 | + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src> |
| 99 | + # Use headers in the install tree when someone does `find_package(PythonQt)`: |
| 100 | + $<INSTALL_INTERFACE:include/PythonQt> |
| 101 | +) |
96 | 102 |
|
97 | 103 | if(MSVC)
|
98 | 104 | target_compile_options(${PROJECT_NAME} PRIVATE "/bigobj")
|
@@ -125,9 +131,42 @@ include(GNUInstallDirs)
|
125 | 131 | # Install library (on windows, put the dll in 'bin' and the archive in 'lib')
|
126 | 132 |
|
127 | 133 | 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} |
| 134 | + EXPORT ${PROJECT_NAME}Targets |
| 135 | + BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX} |
| 136 | + LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${PythonQt_INSTALL_LIBRARY_DIR} |
| 137 | + ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/${PythonQt_INSTALL_ARCHIVE_DIR} |
| 138 | + RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/${PythonQt_INSTALL_RUNTIME_DIR} |
| 139 | + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_PREFIX}/${PythonQt_INSTALL_INCLUDE_DIR} |
| 140 | +) |
| 141 | + |
| 142 | + |
| 143 | +#----------------------------------------------------------------------------- |
| 144 | +# Configure so that other builds can find PythonQt with find_package |
| 145 | +include(CMakePackageConfigHelpers) |
| 146 | + |
| 147 | +# Generate PythonQtConfigVersion.cmake |
| 148 | +write_basic_package_version_file( |
| 149 | + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" |
| 150 | + VERSION ${PROJECT_NAME}_VERSION} |
| 151 | + COMPATIBILITY AnyNewerVersion |
| 152 | +) |
| 153 | + |
| 154 | +# Install the export target |
| 155 | +install(EXPORT ${PROJECT_NAME}Targets |
| 156 | + FILE ${PROJECT_NAME}Targets.cmake |
| 157 | + NAMESPACE ${PROJECT_NAME}:: |
| 158 | + DESTINATION lib/cmake/${PROJECT_NAME} |
| 159 | + ) |
| 160 | + |
| 161 | +# Generate and install PythonQtConfig.cmake |
| 162 | +configure_package_config_file( |
| 163 | + "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}Config.cmake.in" |
| 164 | + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" |
| 165 | + INSTALL_DESTINATION lib/cmake/${PROJECT_NAME} |
| 166 | +) |
| 167 | + |
| 168 | +install(FILES |
| 169 | + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" |
| 170 | + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" |
| 171 | + DESTINATION lib/cmake/${PROJECT_NAME} |
133 | 172 | )
|
0 commit comments