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

Final cross-platform additions

Before we wrap up, let’s cover a few small updates we can make to ensure our library is more consistent across different platforms. We can use the now-familiar set_target_properties command to apply these settings only to our library.

The first two related properties are C_VISIBILITY_PRESET and VISIBILITY_INLINES_HIDDEN. We set C_VISIBILITY_PRESET to hidden and VISIBILITY_INLINES_HIDDEN to ON. This ensures that the symbol visibility behavior between the Visual Studio compiler (MSVC) on Windows and the Clang/GCC compilers on macOS/Linux is the same. This will ensure that, by default, unless symbols are explicitly annotated with MC_GOL_EXPORT, they will remain hidden. This helps prevent incompatibilities between platforms.

With these settings enabled, if we generate our export header again on macOS or Linux by running cmake -B build as normal, we’ll see the following:

#    ifdef mc_gol_EXPORTS
   ...

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