CMakeLists.txt 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. # Copyright (c) 2022-2023 the Dviglo project
  2. # Copyright (c) 2008-2023 the Urho3D project
  3. # License: MIT
  4. # В IDE сторонние библиотеки будут помещены в папку third-party libs
  5. set (CMAKE_FOLDER "third-party libs")
  6. foreach (TARGET ETCPACK FreeType LZ4 PugiXml rapidjson SDL StanHull STB)
  7. add_subdirectory (${TARGET})
  8. endforeach ()
  9. if (URHO3D_ANGELSCRIPT)
  10. add_subdirectory (AngelScript)
  11. if (WEB OR (ARM AND URHO3D_64BIT) OR URHO3D_FORCE_AS_MAX_PORTABILITY)
  12. add_subdirectory (boost)
  13. endif ()
  14. endif ()
  15. if (URHO3D_LUA)
  16. add_subdirectory (Lua${JIT})
  17. add_subdirectory (toluapp/src/lib)
  18. endif ()
  19. if (URHO3D_NETWORK)
  20. add_subdirectory (Civetweb)
  21. add_subdirectory (SLikeNet)
  22. endif ()
  23. if (URHO3D_DATABASE_ODBC)
  24. add_subdirectory (nanodbc)
  25. endif ()
  26. if (URHO3D_DATABASE_SQLITE)
  27. add_subdirectory (SQLite)
  28. endif ()
  29. if (URHO3D_IK)
  30. add_subdirectory (ik)
  31. endif ()
  32. if (URHO3D_NAVIGATION)
  33. add_subdirectory (Detour)
  34. add_subdirectory (DetourCrowd)
  35. add_subdirectory (DetourTileCache)
  36. add_subdirectory (Recast)
  37. endif ()
  38. if (URHO3D_URHO2D)
  39. if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/spine)
  40. add_subdirectory (spine)
  41. # Add definition for Spine
  42. add_definitions (-DURHO3D_SPINE)
  43. endif ()
  44. endif ()
  45. if (URHO3D_WEBP)
  46. add_subdirectory (WebP)
  47. endif ()
  48. if (URHO3D_PHYSICS)
  49. add_subdirectory (Bullet)
  50. endif ()
  51. if (URHO3D_PHYSICS2D)
  52. add_subdirectory (Box2D)
  53. endif ()
  54. if (URHO3D_TRACY_PROFILING)
  55. add_subdirectory (Tracy)
  56. endif ()
  57. if (NOT ANDROID AND NOT ARM AND NOT WEB)
  58. if (URHO3D_OPENGL)
  59. add_subdirectory (GLEW)
  60. endif()
  61. if (NOT CMAKE_SYSTEM_NAME STREQUAL Linux)
  62. add_subdirectory (LibCpuId)
  63. endif ()
  64. endif ()
  65. # В CMake нельзя менять переменные, объявленные выше родительской области видимости
  66. # https://levelup.gitconnected.com/cmake-variable-scope-f062833581b7
  67. # Вызовы макроса setup_library() пополняют список статических таргетов STATIC_LIBRARY_TARGETS,
  68. # используя PARENT_SCOPE (т.е. в scope папки ThirdParty).
  69. # Пробрасываем сформированный список ещё на уровень выше, чтобы список был доступен
  70. # в scope папки Source.
  71. # Возможно вместо этого стоит использовать GLOBAL property в качестве глобальной переменной
  72. set (STATIC_LIBRARY_TARGETS ${STATIC_LIBRARY_TARGETS} PARENT_SCOPE)