Skip to content

Commit

Permalink
add cmake QGIS_MACAPP_FRAMEWORK option
Browse files Browse the repository at this point in the history
  • Loading branch information
gillins authored and nyalldawson committed Jan 14, 2021
1 parent 26361a9 commit 50a9836
Show file tree
Hide file tree
Showing 8 changed files with 24 additions and 12 deletions.
15 changes: 13 additions & 2 deletions CMakeLists.txt
Expand Up @@ -729,8 +729,12 @@ if (WITH_CORE)
set (DEFAULT_CGIBIN_SUBDIR .)
endif()
else()

if (APPLE)

if(APPLE)
set(QGIS_MACAPP_FRAMEWORK TRUE CACHE BOOL "Build as a framework on OSX")
endif()

if (APPLE AND QGIS_MACAPP_FRAMEWORK)
if (POLICY CMP0042) # in CMake 3.0.0+
set (CMAKE_MACOSX_RPATH OFF) # otherwise ON by default
endif()
Expand Down Expand Up @@ -803,6 +807,13 @@ if (WITH_CORE)
set (DEFAULT_QML_SUBDIR qml)

set (DEFAULT_SERVER_MODULE_SUBDIR ${DEFAULT_LIBEXEC_SUBDIR}/server)

# QGIS_MACAPP_FRAMEWORK=FALSE
if(APPLE)
set (QGIS_MACAPP_BUNDLE -1)
set (CMAKE_FRAMEWORK FALSE)
set (QGIS_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
endif()
endif()

endif()
Expand Down
2 changes: 1 addition & 1 deletion src/3d/CMakeLists.txt
Expand Up @@ -221,7 +221,7 @@ endif()

set(QGIS_3D_HDRS ${QGIS_3D_HDRS} ${CMAKE_CURRENT_BINARY_DIR}/qgis_3d.h)

if(NOT APPLE)
if(NOT APPLE OR NOT QGIS_MACAPP_FRAMEWORK)
install(FILES ${QGIS_3D_HDRS} DESTINATION ${QGIS_INCLUDE_DIR})
else()
set_target_properties(qgis_3d PROPERTIES
Expand Down
2 changes: 1 addition & 1 deletion src/analysis/CMakeLists.txt
Expand Up @@ -462,7 +462,7 @@ endif()

set(QGIS_ANALYSIS_HDRS ${QGIS_ANALYSIS_HDRS} ${CMAKE_CURRENT_BINARY_DIR}/qgis_analysis.h)

if(NOT APPLE)
if(NOT APPLE OR NOT QGIS_MACAPP_FRAMEWORK)
install(FILES ${QGIS_ANALYSIS_HDRS} DESTINATION ${QGIS_INCLUDE_DIR})
else()
set_target_properties(qgis_analysis PROPERTIES
Expand Down
2 changes: 1 addition & 1 deletion src/core/CMakeLists.txt
Expand Up @@ -1813,7 +1813,7 @@ if(HAVE_OPENCL)
endif()


if(NOT APPLE)
if(NOT APPLE OR NOT QGIS_MACAPP_FRAMEWORK)
install(FILES ${QGIS_CORE_HDRS} DESTINATION ${QGIS_INCLUDE_DIR})
else()

Expand Down
9 changes: 5 additions & 4 deletions src/gui/CMakeLists.txt
Expand Up @@ -1421,11 +1421,12 @@ GENERATE_EXPORT_HEADER(

set(QGIS_GUI_HDRS ${QGIS_GUI_HDRS} ${CMAKE_CURRENT_BINARY_DIR}/qgis_gui.h)

if(NOT APPLE)
if(NOT APPLE OR NOT QGIS_MACAPP_FRAMEWORK)
if (WIN32 )
include_directories(${CMAKE_SOURCE_DIR}/src/native/win)
endif()
if (UNIX)
elseif (APPLE)
include_directories(${CMAKE_SOURCE_DIR}/src/native/mac)
elseif (UNIX)
include_directories(${CMAKE_SOURCE_DIR}/src/native/linux)
endif()
install(FILES ${QGIS_GUI_HDRS} DESTINATION ${QGIS_INCLUDE_DIR})
Expand Down Expand Up @@ -1508,7 +1509,7 @@ install(TARGETS qgis_gui
PUBLIC_HEADER DESTINATION ${QGIS_INCLUDE_DIR})

# ui headers to install, don't exist at target definition time, install manually
if (APPLE)
if (APPLE AND QGIS_MACAPP_FRAMEWORK)
install(FILES ${QGIS_GUI_UI_HDRS} DESTINATION ${QGIS_FW_SUBDIR}/qgis_gui.framework/Headers)
else()
install(FILES ${QGIS_GUI_UI_HDRS} DESTINATION ${QGIS_INCLUDE_DIR})
Expand Down
2 changes: 1 addition & 1 deletion src/native/CMakeLists.txt
Expand Up @@ -107,7 +107,7 @@ GENERATE_EXPORT_HEADER(

set(QGIS_NATIVE_HDRS ${QGIS_NATIVE_HDRS} ${CMAKE_CURRENT_BINARY_DIR}/qgis_native.h)

if(NOT APPLE)
if(NOT APPLE OR NOT QGIS_MACAPP_FRAMEWORK)
install(FILES ${QGIS_NATIVE_HDRS} DESTINATION ${QGIS_INCLUDE_DIR})
else()
set_target_properties(qgis_native PROPERTIES
Expand Down
2 changes: 1 addition & 1 deletion src/providers/grass/CMakeLists.txt
Expand Up @@ -79,7 +79,7 @@ macro(ADD_GRASSLIB GRASS_BUILD_VERSION)

set_target_properties(qgisgrass${GRASS_BUILD_VERSION} PROPERTIES
CLEAN_DIRECT_OUTPUT 1
FRAMEWORK 1
FRAMEWORK QGIS_MACAPP_FRAMEWORK
FRAMEWORK_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}"
MACOSX_FRAMEWORK_INFO_PLIST "${CMAKE_SOURCE_DIR}/mac/framework.info.plist.in"
MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${COMPLETE_VERSION}
Expand Down
2 changes: 1 addition & 1 deletion src/quickgui/CMakeLists.txt
Expand Up @@ -98,7 +98,7 @@ GENERATE_EXPORT_HEADER(
)

# Installation
if(NOT APPLE)
if(NOT APPLE OR NOT QGIS_MACAPP_FRAMEWORK)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qgis_quick.h ${QGIS_QUICK_GUI_HDRS} ${QGIS_QUICK_GUI_MOC_HDRS} DESTINATION ${QGIS_INCLUDE_DIR})
else()
set_target_properties(qgis_quick PROPERTIES
Expand Down

0 comments on commit 50a9836

Please sign in to comment.