Skip to content

Commit 595eef0

Browse files
committed
fix for #3999 until something better can be done
1 parent 9a395e6 commit 595eef0

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/plugins/grass/CMakeLists.txt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,10 +154,20 @@ INCLUDE_DIRECTORIES(
154154
TARGET_LINK_LIBRARIES(grassplugin
155155
qgisgrass
156156
qgis_gui
157-
grassprovider
158157
${OPENPTY_LIBRARY}
159158
)
160159

160+
# provider must be built as module on OS X so it gets loaded,
161+
# lookup symbols dynamically instead of linking at compile time
162+
IF (APPLE)
163+
SET_TARGET_PROPERTIES(grassplugin PROPERTIES
164+
LINK_FLAGS "-undefined dynamic_lookup")
165+
ELSE (APPLE)
166+
TARGET_LINK_LIBRARIES(grassplugin
167+
grassprovider
168+
)
169+
ENDIF (APPLE)
170+
161171
# override default path where built files are put to allow running qgis without installing
162172
# the binary goes under libexec subdir
163173
SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${QGIS_OUTPUT_DIRECTORY}/${QGIS_LIBEXEC_SUBDIR}/grass/bin)

src/providers/grass/CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,13 @@ ENDIF (APPLE)
4747
#
4848

4949
QT4_WRAP_CPP(GRASS_PROVIDER_MOC_SRCS qgsgrassprovider.h)
50-
ADD_LIBRARY(grassprovider SHARED qgsgrassprovider.cpp ${GRASS_PROVIDER_MOC_SRCS})
50+
# provider must be built as module on OS X so it gets loaded,
51+
# other modules that need provider symbols must dynamically lookup them
52+
IF (APPLE)
53+
ADD_LIBRARY(grassprovider MODULE qgsgrassprovider.cpp ${GRASS_PROVIDER_MOC_SRCS})
54+
ELSE (APPLE)
55+
ADD_LIBRARY(grassprovider SHARED qgsgrassprovider.cpp ${GRASS_PROVIDER_MOC_SRCS})
56+
ENDIF (APPLE)
5157
SET_TARGET_PROPERTIES(grassprovider PROPERTIES COMPILE_FLAGS "\"-DGRASS_EXPORT=${DLLEXPORT}\" \"-DGRASS_LIB_EXPORT=${DLLIMPORT}\"" )
5258
TARGET_LINK_LIBRARIES(grassprovider qgisgrass)
5359

0 commit comments

Comments
 (0)