Skip to content

C make migration#297

Closed
jolavillette wants to merge 8 commits into
RetroShare:masterfrom
jolavillette:CMakeMigration
Closed

C make migration#297
jolavillette wants to merge 8 commits into
RetroShare:masterfrom
jolavillette:CMakeMigration

Conversation

@jolavillette
Copy link
Copy Markdown
Contributor

@jolavillette jolavillette commented May 16, 2026

Works together with RetroShare pr/3226

Update: whole project now migrated to CMake

This PR works out of the box on Ubuntu

CMake Build System Migration
This branch introduces a comprehensive migration of the RetroShare build system from QMake to CMake. The goal is to provide a more modern, maintainable, and standard build process for the entire project.

Accomplishments:

  • Core Components Support: Implemented full CMake support for libretroshare, retroshare-gui, and retroshare-service.
  • Dynamic Versioning: Restored and improved the automatic versioning system. The build now dynamically extracts version components (Major, Minor, Mini, Extra) from Git tags for the root project and correctly handles the Git hash for the libretroshare submodule.
  • AutoUic Fixes: Resolved complex build issues related to cross-module UI inclusions (notably in GXS components) by implementing robust AUTOUIC_SEARCH_PATHS.
  • Standardized Configuration: Centralized project options and dependencies in the root CMakeLists.txt, making it easier to manage build-time features (GXS, BitDHT, etc.).
  • Cross-Platform Readiness: Structure prepared for improved cross-platform support and faster build times using Ninja and modern CMake practices.

Current Status & Caveats:

  • Plugins: Migration of the plugin system to CMake is not yet implemented. Plugins are currently excluded from this build system.
  • Validation: The build has been fully tested and validated on Ubuntu with default options (no additional flags). Not tested on macOS.

Copy link
Copy Markdown
Contributor

@G10h4ck G10h4ck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A big NO from my side, I have saw a few good lines in the PR. But all the rest is messing up all the work I previously made. Basically destroying build time configuration.

Comment thread src/CMakeLists.txt
services/p3gxsforums.cc )
services/p3gxsforums.cc
friend_server/fsclient.cc
friend_server/fsmanager.cc )
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am a bit surprised this is appended unconditionally, shouldn't this be included only when friendserver is enabled?

Comment thread src/CMakeLists.txt
services/p3statusservice.h
services/rseventsservice.h )
services/rseventsservice.h
friend_server/fsclient.h
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am a bit surprised this is appended unconditionally, shouldn't this be included only when friendserver is enabled?

@jolavillette
Copy link
Copy Markdown
Contributor Author

Closed in favor of a modular cmake implementation
see #298

@jolavillette jolavillette deleted the CMakeMigration branch May 24, 2026 09:14
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.

2 participants