FEMA is a multi-language software project primarily focused on Dart, with significant components in C++, CMake, Swift, C, and HTML. The project aims to provide a flexible and robust solution for cross-platform application development, leveraging the strengths of each language to deliver high-performance and maintainable code.
- Dart (60.5%)
Main application logic, UI, and cross-platform features. - C++ (19.7%)
Performance-critical modules and native integrations. - CMake (16.1%)
Build system and dependency management for C++/C components. - Swift (1.4%)
iOS-specific functionalities and platform integration. - C (1.2%)
Low-level routines and system interfaces. - HTML (1%)
Web-based UI components or documentation. - Other (0.1%)
Miscellaneous scripts or files.
- Cross-platform support: Designed to run on multiple operating systems including desktop and mobile.
- Modular architecture: Easily extend or modify core functionality.
- Performance optimization: Critical components implemented in C++ and C for speed, with Dart handling high-level logic.
- Modern build system: Uses CMake for efficient compilation and dependency tracking.
- Native integrations: Swift code for seamless iOS support.
- Dart SDK
- CMake
- For native builds:
- Xcode (for Swift/iOS)
- [C++ compiler](https://gcc.gnu.org/ or MSVC)
-
Clone the repository:
git clone https://github.com/ginio15/FEMA.git cd FEMA -
Install dependencies:
- Dart dependencies:
dart pub get
- C++/C dependencies:
Use CMake to configure and build:mkdir build && cd build cmake .. make
- Dart dependencies:
-
Run the application:
- Dart:
dart run
- Native (after building with CMake):
./bin/FEMA
- Dart:
- iOS:
Open the Swift project in Xcode and build/run on a simulator or device. - Web:
Serve the HTML files using your preferred web server.
FEMA/
├── dart/ # Dart source code
├── cpp/ # C++ source code
├── cmake/ # CMake build scripts
├── swift/ # Swift code for iOS
├── c/ # C source files
├── html/ # HTML resources
└── README.md # Project documentation
Contributions are welcome! Please open issues or submit pull requests for any improvements or bug fixes.
- Fork the repository.
- Create your feature branch (
git checkout -b feature/YourFeature). - Commit your changes (
git commit -am 'Add some feature'). - Push to the branch (
git push origin feature/YourFeature). - Open a Pull Request.
This project is licensed under the MIT License. See LICENSE for details.
For questions or support, open an issue or contact ginio15.