Skip to content

Commit f5d0ba1

Browse files
committed
Ensure on macOS generated export header gets copied to frameworks
It *should* get copied with PUBLIC_HEADER property of target, but CMake quirk causes it to be skipped if not part of original sources for the target, which can’t happen because the target needs to exist first to make the export header. This only fixes ‘qgis’ frameworks. [ci skip]
1 parent e32478e commit f5d0ba1

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

src/analysis/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,14 @@ ELSE(NOT APPLE)
205205
PUBLIC_HEADER "${QGIS_ANALYSIS_HDRS}"
206206
LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}"
207207
)
208+
# generated export header does not get copied with PUBLIC_HEADER files
209+
ADD_CUSTOM_COMMAND(TARGET qgis_analysis
210+
POST_BUILD
211+
COMMAND ${CMAKE_COMMAND} -E copy qgis_analysis.h
212+
"${QGIS_OUTPUT_DIRECTORY}/${QGIS_LIB_SUBDIR}/qgis_analysis.framework/Headers"
213+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
214+
DEPENDS qgis_analysis.h
215+
)
208216
ENDIF(NOT APPLE)
209217

210218
#generate unversioned libs for android

src/core/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1008,6 +1008,14 @@ ELSE(NOT APPLE)
10081008
PUBLIC_HEADER "${QGIS_CORE_HDRS};${QGIS_CORE_MOC_HDRS}"
10091009
LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}"
10101010
)
1011+
# generated export header does not get copied with PUBLIC_HEADER files
1012+
ADD_CUSTOM_COMMAND(TARGET qgis_core
1013+
POST_BUILD
1014+
COMMAND ${CMAKE_COMMAND} -E copy qgis_core.h
1015+
"${QGIS_OUTPUT_DIRECTORY}/${QGIS_LIB_SUBDIR}/qgis_core.framework/Headers"
1016+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
1017+
DEPENDS qgis_core.h
1018+
)
10111019
ENDIF(NOT APPLE)
10121020
10131021
#generate unversioned libs for android

src/gui/CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -806,6 +806,14 @@ ELSE(NOT APPLE)
806806
PUBLIC_HEADER "${QGIS_GUI_HDRS};${QGIS_GUI_MOC_HDRS}"
807807
LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}"
808808
)
809+
# generated export header does not get copied with PUBLIC_HEADER files
810+
ADD_CUSTOM_COMMAND(TARGET qgis_gui
811+
POST_BUILD
812+
COMMAND ${CMAKE_COMMAND} -E copy qgis_gui.h
813+
"${QGIS_OUTPUT_DIRECTORY}/${QGIS_LIB_SUBDIR}/qgis_gui.framework/Headers"
814+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
815+
DEPENDS qgis_gui.h
816+
)
809817
ENDIF(NOT APPLE)
810818

811819
#generate unversioned libs for android

0 commit comments

Comments
 (0)