# This file is to be reused by target platforms that don't # support `mason` (i.e. Yocto). Do not add any `mason` macro. option(WITH_QT_DECODERS "Use builtin Qt image decoders" OFF) option(WITH_QT_I18N "Use builtin Qt i18n support" OFF) option(WITH_QT_4 "Use Qt4 instead of Qt5" OFF) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -D__QT__") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -D__QT__") set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(MBGL_QT_FILES # File source PRIVATE platform/default/asset_file_source.cpp PRIVATE platform/default/default_file_source.cpp PRIVATE platform/default/local_file_source.cpp PRIVATE platform/default/online_file_source.cpp # Offline PRIVATE platform/default/mbgl/storage/offline.cpp PRIVATE platform/default/mbgl/storage/offline_database.cpp PRIVATE platform/default/mbgl/storage/offline_database.hpp PRIVATE platform/default/mbgl/storage/offline_download.cpp PRIVATE platform/default/mbgl/storage/offline_download.hpp PRIVATE platform/default/sqlite3.hpp # Misc PRIVATE platform/default/logging_stderr.cpp # Thread pool PRIVATE platform/default/mbgl/util/shared_thread_pool.cpp PRIVATE platform/default/mbgl/util/shared_thread_pool.hpp PRIVATE platform/default/mbgl/util/default_thread_pool.cpp PRIVATE platform/default/mbgl/util/default_thread_pool.hpp # Thread PRIVATE platform/qt/src/thread_local.cpp # Platform integration PRIVATE platform/qt/src/async_task.cpp PRIVATE platform/qt/src/async_task_impl.hpp PRIVATE platform/qt/src/http_file_source.cpp PRIVATE platform/qt/src/http_file_source.hpp PRIVATE platform/qt/src/http_request.cpp PRIVATE platform/qt/src/http_request.hpp PRIVATE platform/qt/src/qt_image.cpp PRIVATE platform/qt/src/run_loop.cpp PRIVATE platform/qt/src/run_loop_impl.hpp PRIVATE platform/qt/src/sqlite3.cpp PRIVATE platform/qt/src/string_stdlib.cpp PRIVATE platform/qt/src/timer.cpp PRIVATE platform/qt/src/timer_impl.hpp PRIVATE platform/qt/src/utf.cpp ) include_directories( PRIVATE platform/qt/include ) # Shared library add_library(qmapboxgl SHARED platform/qt/include/qmapbox.hpp platform/qt/include/qmapboxgl.hpp platform/qt/src/qmapbox.cpp platform/qt/src/qmapboxgl.cpp platform/qt/src/qmapboxgl_p.hpp platform/qt/src/qmapboxgl_renderer_frontend_p.hpp platform/qt/src/qmapboxgl_renderer_frontend_p.cpp platform/default/mbgl/util/default_styles.hpp ) # C++ app add_executable(mbgl-qt platform/qt/app/main.cpp platform/qt/app/mapwindow.cpp platform/qt/app/mapwindow.hpp platform/qt/resources/common.qrc ) xcode_create_scheme(TARGET mbgl-qt) if(WITH_QT_4) include(platform/qt/qt4.cmake) else() include(platform/qt/qt5.cmake) endif() # OS specific configurations if (MASON_PLATFORM STREQUAL "osx" OR MASON_PLATFORM STREQUAL "ios") list(APPEND MBGL_QT_FILES PRIVATE platform/darwin/src/nsthread.mm ) list(APPEND MBGL_QT_LIBRARIES PRIVATE "-framework Foundation" PRIVATE "-framework OpenGL" ) elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") list(APPEND MBGL_QT_FILES PRIVATE platform/default/thread.cpp ) list(APPEND MBGL_QT_LIBRARIES PRIVATE -lGL ) elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") list(APPEND MBGL_QT_FILES PRIVATE platform/qt/src/thread.cpp ) endif() add_custom_command( TARGET qmapboxgl POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/platform/qt/include ${CMAKE_CURRENT_BINARY_DIR}/platform/qt/include ) xcode_create_scheme(TARGET qmapboxgl)