This will make the `next` buildsystem no longer the `next`, but the `actual`. The idea is to simplify the build, removing scripts, to make the platform buildsystem generated by CMake more compatible with IDEs and make development more streamlined. It will also make cross compilation easier.
135 lines
5.2 KiB
CMake
135 lines
5.2 KiB
CMake
find_package(CURL REQUIRED)
|
|
find_package(ICU REQUIRED i18n)
|
|
find_package(ICU REQUIRED uc)
|
|
find_package(JPEG REQUIRED)
|
|
find_package(OpenGL REQUIRED GLX)
|
|
find_package(PNG REQUIRED)
|
|
find_package(PkgConfig REQUIRED)
|
|
find_package(X11 REQUIRED)
|
|
|
|
pkg_search_module(LIBUV libuv REQUIRED)
|
|
|
|
target_sources(
|
|
mbgl-core
|
|
PRIVATE
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_backend.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_frontend.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gl/headless_backend.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/i18n/collator.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/i18n/number_format.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/layermanager/layer_manager.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/asset_file_source.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/database_file_source.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_manager.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_request.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/http_file_source.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_request.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_source.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/main_resource_loader.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_database.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_download.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/online_file_source.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/sqlite3.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/bidi.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/local_glyph_rasterizer.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/async_task.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/compression.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/image.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/jpeg_reader.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/logging_stderr.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/monotonic_timer.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/png_reader.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/png_writer.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/run_loop.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/string_stdlib.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/timer.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/utf.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/linux/src/gl_functions.cpp
|
|
${PROJECT_SOURCE_DIR}/platform/linux/src/headless_backend_glx.cpp
|
|
)
|
|
|
|
# FIXME: Should not be needed, but now needed by node because of the headless frontend.
|
|
target_include_directories(
|
|
mbgl-core
|
|
PUBLIC ${PROJECT_SOURCE_DIR}/platform/default/include
|
|
PRIVATE
|
|
${CURL_INCLUDE_DIRS}
|
|
${JPEG_INCLUDE_DIRS}
|
|
${LIBUV_INCLUDE_DIRS}
|
|
${X11_INCLUDE_DIRS}
|
|
)
|
|
|
|
include(${PROJECT_SOURCE_DIR}/vendor/nunicode.cmake)
|
|
include(${PROJECT_SOURCE_DIR}/vendor/sqlite.cmake)
|
|
|
|
target_link_libraries(
|
|
mbgl-core
|
|
PRIVATE
|
|
${CURL_LIBRARIES}
|
|
${JPEG_LIBRARIES}
|
|
${LIBUV_LIBRARIES}
|
|
${X11_LIBRARIES}
|
|
ICU::i18n
|
|
ICU::uc
|
|
OpenGL::GLX
|
|
PNG::PNG
|
|
mbgl-vendor-nunicode
|
|
mbgl-vendor-sqlite
|
|
)
|
|
|
|
add_subdirectory(${PROJECT_SOURCE_DIR}/bin)
|
|
add_subdirectory(${PROJECT_SOURCE_DIR}/expression-test)
|
|
add_subdirectory(${PROJECT_SOURCE_DIR}/platform/glfw)
|
|
add_subdirectory(${PROJECT_SOURCE_DIR}/platform/node)
|
|
|
|
add_executable(
|
|
mbgl-test-runner
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/test/main.cpp
|
|
)
|
|
|
|
target_compile_definitions(
|
|
mbgl-test-runner
|
|
PRIVATE WORK_DIRECTORY=${PROJECT_SOURCE_DIR}
|
|
)
|
|
|
|
target_link_libraries(
|
|
mbgl-test-runner
|
|
PRIVATE
|
|
mbgl-compiler-options
|
|
-Wl,--whole-archive
|
|
mbgl-test
|
|
-Wl,--no-whole-archive
|
|
)
|
|
|
|
add_executable(
|
|
mbgl-benchmark-runner
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/benchmark/main.cpp
|
|
)
|
|
|
|
target_link_libraries(
|
|
mbgl-benchmark-runner
|
|
PRIVATE
|
|
mbgl-compiler-options
|
|
-Wl,--whole-archive
|
|
mbgl-benchmark
|
|
-Wl,--no-whole-archive
|
|
)
|
|
|
|
add_executable(
|
|
mbgl-render-test-runner
|
|
${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/render-test/main.cpp
|
|
)
|
|
|
|
target_link_libraries(
|
|
mbgl-render-test-runner
|
|
PRIVATE mbgl-compiler-options mbgl-render-test
|
|
)
|
|
|
|
add_test(NAME mbgl-benchmark-runner COMMAND mbgl-benchmark-runner WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
|
|
add_test(NAME mbgl-test-runner COMMAND mbgl-test-runner WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
|
|
|
|
install(TARGETS mbgl-render-test-runner RUNTIME DESTINATION bin)
|