skyrim-multiplayer / skymp

Multiplayer Mod & TypeScript SDK for Skyrim Special Edition
Other
221 stars 75 forks source link

internal: solve CMakeLists.txt conflicts forever #2204

Closed Pospelove closed 3 weeks ago

Pospelove commented 3 weeks ago

[!IMPORTANT] Introduces dynamic CMake project management using cmakeproj.cmake files to automate project inclusion and prioritize build order.

  • CMake Configuration:
    • Replaces hardcoded add_subdirectory calls in CMakeLists.txt with dynamic project inclusion based on cmakeproj.cmake files.
    • Projects are now added to CMAKEPROJ_PROJECTS_LIST if they contain a cmakeproj.cmake file.
    • Projects are sorted and added based on defined priorities in cmakeproj.cmake files.
  • Project Management:
    • Adds cmakeproj.cmake files for each project directory (e.g., client-deps, libespm, papyrus-vm, etc.) to define project inclusion and priority.
    • Priorities are set for each project to manage build order effectively.
  • Unit Tests:
    • Updates unit/CMakeLists.txt to conditionally include unit tests based on BUILD_UNIT_TESTS and EMSCRIPTEN flags.

This description was created by Ellipsis for 5e3e2929c7602c4b3e4215ef298285915ee26ae2. It will automatically update as commits are pushed.