CMakeLists.txt 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. cmake_minimum_required(VERSION 3.2.0)
  2. if(REALM_PLATFORM STREQUAL "Android")
  3. # This must be before project()
  4. set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/CMake/android.toolchain.cmake")
  5. set(ANDROID_ABI "x86" CACHE STRING "")
  6. set(ANDROID_NATIVE_API_LEVEL "android-16" CACHE STRING "")
  7. endif()
  8. set(CMAKE_BUILD_TYPE Debug CACHE STRING "")
  9. project(realm-object-store)
  10. list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
  11. include(CodeCoverage)
  12. include(CompilerFlags)
  13. include(Sanitizers)
  14. # Sync is disabled unless -DREALM_ENABLE_SYNC=1 is specified when invoking CMake.
  15. # FIXME: Flip the default once we can build against prebuilt sync binaries.
  16. set(REALM_ENABLE_SYNC OFF CACHE BOOL "")
  17. if(REALM_SYNC_PREFIX AND NOT REALM_CORE_PREFIX)
  18. message(FATAL_ERROR "REALM_CORE_PREFIX must be set when specifying REALM_SYNC_PREFIX.")
  19. endif()
  20. if(REALM_SYNC_PREFIX AND NOT REALM_ENABLE_SYNC)
  21. message(FATAL_ERROR "REALM_ENABLE_SYNC must be set when specifying REALM_SYNC_PREFIX.")
  22. endif()
  23. if(REALM_CORE_PREFIX AND REALM_ENABLE_SYNC AND NOT REALM_SYNC_PREFIX)
  24. message(FATAL_ERROR "REALM_SYNC_PREFIX must be set when specifying REALM_CORE_PREFIX when REALM_ENABLE_SYNC is set.")
  25. endif()
  26. set(REALM_ENABLE_SERVER OFF CACHE BOOL "Enable the server-only functionality.")
  27. if(REALM_ENABLE_SERVER AND NOT REALM_ENABLE_SYNC)
  28. message(FATAL_ERROR "REALM_ENABLE_SERVER requires REALM_ENABLE_SYNC.")
  29. endif()
  30. include(RealmCore)
  31. use_realm_core("${REALM_ENABLE_SYNC}" "${REALM_CORE_PREFIX}" "${REALM_SYNC_PREFIX}")
  32. if(REALM_ENABLE_SYNC)
  33. add_definitions(-DREALM_ENABLE_SYNC)
  34. endif()
  35. set(PEGTL_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/pegtl)
  36. add_subdirectory(src)
  37. add_subdirectory(tests)