add cmake QGIS_MACAPP_FRAMEWORK option

This commit is contained in:
Sam Gillingham 2021-01-14 14:37:37 +10:00 committed by Nyall Dawson
parent 26361a980c
commit 50a98367c5
8 changed files with 24 additions and 12 deletions

View File

@ -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()
@ -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()

View File

@ -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

View File

@ -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

View File

@ -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()

View File

@ -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})
@ -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})

View File

@ -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

View File

@ -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}

View File

@ -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