Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying Minimal CMake
  • Table Of Contents Toc
  • Feedback & Rating feedback
Minimal CMake

Minimal CMake

By : Tom Hulton-Harrop
5 (1)
close
close
Minimal CMake

Minimal CMake

5 (1)
By: Tom Hulton-Harrop

Overview of this book

Minimal CMake guides you through creating a CMake project one step at a time. The book utilizes the author's unique expertise in game and engine development to craft compelling examples of how CMake can be used to build complex software. The chapters introduce concepts gradually, each one building on the last. Throughout the course of the book, you will progress from a simple console application all the way through to a full windowed app. The book will help you build a strong foundation in CMake that will translate to future projects. You'll learn how to integrate existing software libraries to enhance your app's functionality, how to build reusable libraries to share with others, and how to manage developing for multiple platforms simultaneously, including macOS, Windows, and Linux. You'll also find out how CMake facilitates testing and how to package your application ready for distribution. The book aims to not overwhelm you with everything there is to know about CMake. Instead, it focuses on the most relevant and important parts that will help you become productive quickly. By the end of this book, you will be a confident CMake user and will have gained the skills and experience to build and share your own libraries and applications.
Table of Contents (17 chapters)
close
close
Free Chapter
1
Part 1: Starting Up
6
Part 2: Scaling Up
11
Part 3: Wrapping Up

Moving Game of Life to a library

We started by extracting the array type from our application as it was a simpler piece of functionality to start with. At this point, we’d like to pull out the core Game of Life logic to a separate library. We’re going to make it possible to build it as either a static or shared library, in preparation for potentially integrating it with other languages in the future. This will require us to provide an interface and move the functionality to separate files.

To prepare for our Game of Life code being used as a shared library, we’ll keep the concrete implementation of the Game of Life board hidden and expose functionality through a series of functions. The interface looks as follows:

// forward declare board
typedef struct mc_gol_board_t mc_gol_board_t;
// lifetime
mc_gol_board_t* mc_gol_create_board(int32_t width, int32_t height);
void mc_gol_destroy_board(mc_gol_board_t* board);
// process
void mc_gol_update_board(mc_gol_board_t...

Unlock full access

Continue reading for free

A Packt free trial gives you instant online access to our library of over 7000 practical eBooks and videos, constantly updated with the latest in tech
notes
bookmark Notes and Bookmarks search Search in title playlist Add to playlist download Download options font-size Font size

Change the font size

margin-width Margin width

Change margin width

day-mode Day/Sepia/Night Modes

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY

Submit Your Feedback

Modal Close icon

Create a Note

Modal Close icon
You need to login to use this feature.

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Delete Note

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Edit Note

Modal Close icon
Write a note (max 255 characters)
Cancel
Update Note