All Projects → crezefire → Cxp

crezefire / Cxp

Licence: mit
Lightweight & minimal project template using "modern" CMake

Projects that are alternatives of or similar to Cxp

Modern Wasm Starter
🛸 Run C++ code on web and create blazingly fast websites! A starter template to easily create WebAssembly packages using type-safe C++ bindings with automatic TypeScript declarations.
Stars: ✭ 140 (+150%)
Mutual labels:  cmake, modern
Novuscore
A modern take on WoW emulation
Stars: ✭ 88 (+57.14%)
Mutual labels:  cmake, modern
Regrader
VST delay plugin where the repeats degrade in resolution
Stars: ✭ 44 (-21.43%)
Mutual labels:  cmake
Fast ber
A C++11 ASN.1 BER Encoding and Decoding Library
Stars: ✭ 54 (-3.57%)
Mutual labels:  cmake
Run Vcpkg
GitHub Action to automatically cache and run vcpkg to build C++ dependencies for your C++ based applications. Available as Azure DevOps tasks also: https://marketplace.visualstudio.com/items?itemName=lucappa.cmake-ninja-vcpkg-tasks
Stars: ✭ 49 (-12.5%)
Mutual labels:  cmake
Latexcv
👔 A collection of cv and resume templates written in LaTeX. Leave an issue if your language is not supported!
Stars: ✭ 1,027 (+1733.93%)
Mutual labels:  modern
Samples Rmarkdown Metropolis
RMarkdown with Metropolis/Mtheme for Beamer
Stars: ✭ 51 (-8.93%)
Mutual labels:  modern
Ffmpeg Example
FFMPEG 0.11-4.4/LibAV 0.8-11 example application with byte exact reading
Stars: ✭ 44 (-21.43%)
Mutual labels:  cmake
Sdl kitchensink
A Simple SDL2 / FFmpeg library for audio/video playback written in C99
Stars: ✭ 53 (-5.36%)
Mutual labels:  cmake
Legacycss
Legacy CSS - Modern and Lightweight CSS Framework
Stars: ✭ 48 (-14.29%)
Mutual labels:  modern
Sdl vulkan
A library for creating Vulkan surfaces for SDL2 windows.
Stars: ✭ 53 (-5.36%)
Mutual labels:  cmake
Bcm
Boost cmake modules
Stars: ✭ 48 (-14.29%)
Mutual labels:  cmake
Nonstd Lite
Parent of *-lite repositories, a migration path to post-C++11 features for pre-C++11 environments
Stars: ✭ 46 (-17.86%)
Mutual labels:  cmake
Antara Gaming Sdk
Komodo Gaming Software Development Kit
Stars: ✭ 51 (-8.93%)
Mutual labels:  cmake
Cpp starter project
A template CMake project to get you started with C++ and tooling
Stars: ✭ 1,025 (+1730.36%)
Mutual labels:  cmake
Cmake Cookbook
CMake Cookbook recipes.
Stars: ✭ 1,073 (+1816.07%)
Mutual labels:  cmake
Genepi
Automatic generation of N-API wrapper from a C++ library
Stars: ✭ 45 (-19.64%)
Mutual labels:  cmake
Flutter Tasky App
A Flutter Task App
Stars: ✭ 48 (-14.29%)
Mutual labels:  modern
Derrick
🙌 Derrick is a clean minimal and fast theme for a personal blog.
Stars: ✭ 51 (-8.93%)
Mutual labels:  modern
Vector ros
ROS package for Anki Vector home robot
Stars: ✭ 55 (-1.79%)
Mutual labels:  cmake

CXP: C++ Cross Platform

A template project for creating a cross platform C++ CMake project using modern CMake syntax and transitive dependencies.

Checkout the FAQ if you've got questions.

Getting Started

  • Run get_latest_deps.sh to pull down 3rd party dependencies from Github. Use [-s|--ssh] to use ssh.
  • mkdir build && cd build
  • cmake -G "Your Favourite Build Type" ../ Supported options are (OFF by default): -D<OPTION>=ON
    • PROJECT_ENABLE_BENCHMARKING - Creates sample Google Benchmark project
    • PROJECT_ENABLE_TESTING - Creats sample Google Test project
    • PROJECT_USE_LIBCXX - Sets -stdlib=libc++ for Clang only

Customising CXP for Your Project

This section will show you where and what to change to configure CXP to work with your project files, whether you're moving your files to CXP or starting from scratch.

gitignore

Firstly, modify the .gitignore file to your requirements. Currently, it ignores all files, except a few necessary ones but includes directories.

Renaming Params

Next rename some variables to reflect your project name, default configs etc:

Note: Essentially anything with the cxp prefix may require changing to your liking.

Project Structure

libs
  - CMakeLists.txt      // File for controlling libs
  - external            // All external dependencies go here
  - compile-interfaces  // Compile options using INTERFACE libraries
  - engine              // Each lib is modular and can be included
    - include           // as and when required
    - src
  - engine-utils        // INTERFACE header only, depends on engine
    - include
  - engine-ui           // STATIC lib depends on engine-utils
    - include
    - src
src                   // Main folder for executables
  - benchmarks        // Google benchmark executable project
  - tests             // Goolgle test executable project
  - engine-ui-exec    // Depends on engine-ui, everything else
    - include         // included automatically
    - src
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].