Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request for comm(en|i)ts: Decoupling daemon from unvanquished #677

Closed
wants to merge 14 commits into from
Closed

Request for comm(en|i)ts: Decoupling daemon from unvanquished #677

wants to merge 14 commits into from

Conversation

TimePath
Copy link
Contributor

Summary: CMakeLists changes to reduce coupling between daemon and unvanquished.

  • Symlinks have been used to test the tree structure and avoid moving and copying the rest of the repo.
    • To merge, replace with the file they point to, and make '/unvanquished' the root.
  • Daemon no longer contains unvanquished assets and can be packaged separately.
    • FIXME: Linux packaging scripts are currently duplicated, probably remove the ones in daemon.
    • FIXME: So are the travis-ci scripts
  • Mods can target daemon in a few lines (with the prerequisite variables set):
    ...
    add_subdirectory( daemon daemon_build )
    ...
    include( DaemonGame )
    GAMEMODULE( NAME sgame
      COMPILE_DEF BUILD_VM BUILD_SGAME
      FILES ${SGAMELIST}
    )
  • Testing/compiling unvanquished remains unchanged.
    • Though in this preview, you will have to cd unvanquished first.
  • Daemon can easily be used as a git submodule.
    • Recommend splitting into its own repository at some point; duplicate it and remove daemon from one and unvanquished from the other.

Future improvements:

  • A CMake defined branding instead of hardcoding "unvanquished" in the engine; DAEMON_BRANDING or similar.
  • Stop depending on the dependency bootstrap provided by dl.unvanquished.net.
  • Build daemon dependencies individually from individual repositories.
  • Expose common engine/game code as a library?
    ...

mkdir unvanquished; cd unvanquished; ln -s ../* .; ln -s ../.* .; rm .git; rm unvanquished
mkdir daemon; cd daemon; ln -s ../../* .; ln -s ../../.* .; rm .git; rm unvanquished

Create Unvanquished CMakeLists.txt and `add_subdirectory(daemon)`; Needed changes in the combined CMakeLists:
 * CMAKE_SOURCE_DIR -> CMAKE_CURRENT_SOURCE_DIR
 * CMAKE_BINARY_DIR -> CMAKE_CURRENT_BINARY_DIR
@TimePath TimePath changed the title Request for comments: Decoupling daemon from unvanquished Request for comm(en|i)ts: Decoupling daemon from unvanquished Mar 11, 2015
@TimePath
Copy link
Contributor Author

Gamelogic as the submodule: With gamelogic as the submodule, it would have to be updated every time it changed. With daemon as the submodule, this is also true, but far less frequent.

@TimePath
Copy link
Contributor Author

TimePath commented Apr 4, 2015

Closing, new work here

@TimePath TimePath closed this Apr 4, 2015
illwieckz added a commit that referenced this pull request Feb 16, 2017
Make Daemon a submodule [the real one] fix #954 #677 ref #704 #771

Let's push that big red button, nuclear winter is coming!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant