Skip to content

Commit 18be36e

Browse files
committed
Fix issues with pri file.
1 parent 62b3b02 commit 18be36e

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

CMakeLists.txt

+14-5
Original file line numberDiff line numberDiff line change
@@ -156,14 +156,21 @@ macro(set_compiler_flags targetName)
156156

157157
endmacro()
158158

159+
set(${PROJECT_NAME}_DEPS "widgets")
160+
159161
if(${PROJECT_NAME}_QTQUICK)
160162
find_package(Qt${QT_MAJOR_VERSION}Quick)
161163
find_package(Qt${QT_MAJOR_VERSION}QuickControls2)
162164
add_definitions(-DKDDOCKWIDGETS_QTQUICK)
165+
set(${PROJECT_NAME}_DEPS "${${PROJECT_NAME}_DEPS} quick quickcontrols2")
163166
else()
164167
add_definitions(-DKDDOCKWIDGETS_QTWIDGETS)
165168
endif()
166169

170+
if(NOT WIN32 AND NOT APPLE AND NOT EMSCRIPTEN AND NOT ${PROJECT_NAME}_QT6)
171+
set(${PROJECT_NAME}_DEPS "${${PROJECT_NAME}_DEPS} x11extras")
172+
endif()
173+
167174
if(${PROJECT_NAME}_STATIC)
168175
set(${PROJECT_NAME}_LIBRARY_MODE "STATIC")
169176
else()
@@ -178,23 +185,25 @@ if(USE_DEFAULT_INSTALL_LOCATION)
178185
endif()
179186
endif()
180187

188+
add_subdirectory(src)
189+
if(${PROJECT_NAME}_PYTHON_BINDINGS)
190+
add_subdirectory(python)
191+
endif()
192+
181193
# Generate .pri file for qmake users
182194
include(ECMGeneratePriFile)
183195
set(PROJECT_VERSION_STRING ${${PROJECT_NAME}_VERSION})
184196
ecm_generate_pri_file(BASE_NAME KDDockWidgets
185197
LIB_NAME kddockwidgets
198+
DEPS ${${PROJECT_NAME}_DEPS}
186199
FILENAME_VAR pri_filename
200+
INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}
187201
)
188202
install(FILES ${pri_filename} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
189203

190204
install(FILES LICENSE.txt README.md DESTINATION ${INSTALL_DOC_DIR})
191205
install(DIRECTORY LICENSES DESTINATION ${INSTALL_DOC_DIR})
192206

193-
add_subdirectory(src)
194-
if(${PROJECT_NAME}_PYTHON_BINDINGS)
195-
add_subdirectory(python)
196-
endif()
197-
198207
if(${PROJECT_NAME}_EXAMPLES)
199208
if (${PROJECT_NAME}_QTQUICK)
200209
add_subdirectory(examples/qtquick)

cmake/ECM/modules/ECMGeneratePriFile.cmake

+8-3
Original file line numberDiff line numberDiff line change
@@ -160,14 +160,15 @@ function(ECM_GENERATE_PRI_FILE)
160160
else()
161161
set(PRI_TARGET_LIBS "${BASEPATH}/${EGPF_LIB_INSTALL_DIR}")
162162
endif()
163-
set(PRI_TARGET_DEFINES "")
164163

165164
set(PRI_FILENAME ${CMAKE_CURRENT_BINARY_DIR}/qt_${PRI_TARGET_BASENAME}.pri)
166165
if (EGPF_FILENAME_VAR)
167166
set(${EGPF_FILENAME_VAR} ${PRI_FILENAME} PARENT_SCOPE)
168167
endif()
169168

170169
set(PRI_TARGET_MODULE_CONFIG "")
170+
set(PRI_TARGET_DEFINES "")
171+
set(PRI_TARGET_POSTFIX "")
171172
# backward compat: it was not obvious LIB_NAME needs to be a target name,
172173
# and some projects where the target name was not the actual library output name
173174
# passed the output name for LIB_NAME, so .name & .module prperties are correctly set.
@@ -177,6 +178,10 @@ function(ECM_GENERATE_PRI_FILE)
177178
if (target_type STREQUAL "STATIC_LIBRARY")
178179
set(PRI_TARGET_MODULE_CONFIG "staticlib")
179180
endif()
181+
get_target_property(target_defs ${EGPF_LIB_NAME} INTERFACE_COMPILE_DEFINITIONS)
182+
list(FILTER target_defs EXCLUDE REGEX ^QT_)
183+
string(JOIN " " PRI_TARGET_DEFINES "${target_defs}")
184+
set(PRI_TARGET_POSTFIX "$<TARGET_PROPERTY:${EGPF_LIB_NAME},$<UPPER_CASE:$<CONFIG>$<$<CONFIG:>:Debug>>_POSTFIX>")
180185
endif()
181186

182187
file(GENERATE
@@ -187,8 +192,8 @@ QT.${PRI_TARGET_BASENAME}.MAJOR_VERSION = ${PROJECT_VERSION_MAJOR}
187192
QT.${PRI_TARGET_BASENAME}.MINOR_VERSION = ${PROJECT_VERSION_MINOR}
188193
QT.${PRI_TARGET_BASENAME}.PATCH_VERSION = ${PROJECT_VERSION_PATCH}
189194
QT.${PRI_TARGET_BASENAME}.name = ${PRI_TARGET_LIBNAME}
190-
QT.${PRI_TARGET_BASENAME}.module = ${PRI_TARGET_LIBNAME}
191-
QT.${PRI_TARGET_BASENAME}.defines = ${PRI_TARGET_DEFINES}
195+
QT.${PRI_TARGET_BASENAME}.module = ${PRI_TARGET_LIBNAME}${PRI_TARGET_POSTFIX}
196+
QT.${PRI_TARGET_BASENAME}.DEFINES = ${PRI_TARGET_DEFINES}
192197
QT.${PRI_TARGET_BASENAME}.includes = ${PRI_TARGET_INCLUDES}
193198
QT.${PRI_TARGET_BASENAME}.private_includes =
194199
QT.${PRI_TARGET_BASENAME}.libs = ${PRI_TARGET_LIBS}

0 commit comments

Comments
 (0)