Qt build improvements and documentation (#277)
* Qt build improvements and documentation * Update include/mbgl/actor/actor_ref.hpp Co-authored-by: Oliver Wipfli <oliver.wipfli@leichteralsluft.ch>
This commit is contained in:
@@ -4,13 +4,13 @@ message(STATUS "Configuring GL-Native with Qt bindings")
|
||||
file(READ "${PROJECT_SOURCE_DIR}/platform/qt/VERSION" MBGL_QT_VERSION)
|
||||
string(REGEX REPLACE "\n" "" MBGL_QT_VERSION "${MBGL_QT_VERSION}") # get rid of the newline at the end
|
||||
set(MBGL_QT_VERSION_COMPATIBILITY 2.0.0)
|
||||
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
|
||||
message(STATUS "Version ${MBGL_QT_VERSION}")
|
||||
|
||||
option(MBGL_QT_LIBRARY_ONLY "Build only libraries" OFF)
|
||||
option(MBGL_QT_INSIDE_QT_PLUGIN "Build qmapboxgl as OBJECT library, so it can be bundled into separate single plugin lib." OFF)
|
||||
option(MBGL_QT_STATIC "Build Mapbox GL Qt bindings staticly" OFF)
|
||||
option(MBGL_QT_INSIDE_PLUGIN "Build qmapboxgl as OBJECT library, so it can be bundled into separate single plugin lib." OFF)
|
||||
option(MBGL_WITH_QT_HEADLESS "Build Mapbox GL Qt with headless support" ON)
|
||||
option(MBGL_QT_WITH_INTERNAL_SQLITE "Build Mapbox GL Qt bindings with internal sqlite" $<NOT:$<BOOL:${MBGL_QT_STATIC}>>)
|
||||
option(MBGL_QT_WITH_INTERNAL_SQLITE "Build Mapbox GL Qt bindings with internal sqlite" OFF)
|
||||
|
||||
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
|
||||
find_package(Qt${QT_VERSION_MAJOR}
|
||||
@@ -63,10 +63,10 @@ endif()
|
||||
if(ANDROID)
|
||||
message(STATUS "Building for ABI: ${ANDROID_ABI}")
|
||||
set(CMAKE_STATIC_LIBRARY_SUFFIX "_${ANDROID_ABI}.a")
|
||||
elseif(MSVC AND CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CMAKE_STATIC_LIBRARY_SUFFIX "d.lib")
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CMAKE_STATIC_LIBRARY_SUFFIX "d.a")
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL iOS)
|
||||
set(CMAKE_DEBUG_POSTFIX "_debug")
|
||||
elseif(MSVC OR CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
set(CMAKE_DEBUG_POSTFIX "d")
|
||||
endif()
|
||||
|
||||
target_sources(
|
||||
@@ -150,7 +150,7 @@ set_property(TARGET mbgl-core PROPERTY AUTOMOC ON)
|
||||
target_link_libraries(
|
||||
mbgl-core
|
||||
PRIVATE
|
||||
$<$<NOT:$<PLATFORM_ID:Windows,Emscripten>>:z>
|
||||
$<$<NOT:$<OR:$<PLATFORM_ID:Windows>,$<PLATFORM_ID:Emscripten>>>:z>
|
||||
Qt${QT_VERSION_MAJOR}::Core
|
||||
Qt${QT_VERSION_MAJOR}::Gui
|
||||
Qt${QT_VERSION_MAJOR}::Network
|
||||
@@ -166,12 +166,10 @@ set(qmapboxgl_headers
|
||||
${PROJECT_SOURCE_DIR}/platform/qt/include/qmapboxgl.hpp
|
||||
)
|
||||
|
||||
if(MBGL_QT_STATIC)
|
||||
if(MBGL_QT_INSIDE_QT_PLUGIN)
|
||||
add_library(qmapboxgl OBJECT)
|
||||
else()
|
||||
add_library(qmapboxgl STATIC)
|
||||
endif()
|
||||
if (MBGL_QT_INSIDE_PLUGIN)
|
||||
add_library(qmapboxgl OBJECT)
|
||||
elseif(MBGL_QT_STATIC)
|
||||
add_library(qmapboxgl STATIC)
|
||||
else()
|
||||
add_library(qmapboxgl SHARED)
|
||||
endif()
|
||||
@@ -206,7 +204,7 @@ set_target_properties(
|
||||
SOVERSION ${MBGL_QT_VERSION_COMPATIBILITY}
|
||||
PUBLIC_HEADER "${qmapboxgl_headers}"
|
||||
)
|
||||
if (NOT MBGL_QT_STATIC)
|
||||
if (NOT MBGL_QT_STATIC AND NOT MBGL_QT_INSIDE_PLUGIN)
|
||||
set_target_properties(
|
||||
qmapboxgl PROPERTIES
|
||||
FRAMEWORK ON
|
||||
@@ -232,6 +230,8 @@ install(EXPORT QMapboxGLTargets
|
||||
DESTINATION ${CMAKECONFIG_INSTALL_DIR}
|
||||
COMPONENT development)
|
||||
|
||||
export(EXPORT QMapboxGLTargets)
|
||||
|
||||
install(FILES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/QMapboxGLConfig.cmake"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/QMapboxGLConfigVersion.cmake"
|
||||
@@ -305,7 +305,7 @@ if(NOT MBGL_QT_LIBRARY_ONLY)
|
||||
target_compile_definitions(
|
||||
mbgl-qt
|
||||
PRIVATE
|
||||
$<$<BOOL:${MBGL_QT_STATIC}>:QT_MAPBOXGL_STATIC>
|
||||
$<$<OR:$<BOOL:${MBGL_QT_STATIC}>,$<BOOL:${MBGL_QT_INSIDE_PLUGIN}>>:QT_MAPBOXGL_STATIC>
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
@@ -320,7 +320,7 @@ if(NOT MBGL_QT_LIBRARY_ONLY)
|
||||
|
||||
target_include_directories(
|
||||
mbgl-qt
|
||||
PUBLIC ${PROJECT_SOURCE_DIR}/platform/qt/include
|
||||
PRIVATE ${PROJECT_SOURCE_DIR}/platform/qt/include
|
||||
)
|
||||
|
||||
add_executable(
|
||||
@@ -330,7 +330,7 @@ if(NOT MBGL_QT_LIBRARY_ONLY)
|
||||
|
||||
target_include_directories(
|
||||
mbgl-test-runner
|
||||
PUBLIC ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/test/include
|
||||
PRIVATE ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/test/include
|
||||
)
|
||||
|
||||
target_compile_definitions(
|
||||
|
||||
Reference in New Issue
Block a user