Mastering CMake

Mastering CMake PDF Author: Ken Martin
Publisher:
ISBN: 9781930934115
Category : C++ (Computer program language)
Languages : en
Pages : 178

Book Description

Mastering Cmake

Mastering Cmake PDF Author: Stanley Ho Professor of Microelectronics in Electrical and Computer Engineering Ken Martin
Publisher: Kitware, Incorporated
ISBN: 9781930934313
Category :
Languages : en
Pages : 708

Book Description
CMake is an open-source build tool enabling collaboration among software developers working on distinct platforms by using a common build specification to drive their native build tools. Mastering CMake explains how to use the CMake suite of tools, including CTest and CPack, to develop, build, test, and package software for distribution. It covers use of the command-line and GUI tools on Linux (UNIX), Microsoft Windows, and Mac OS X. This book also contains a guide for converting projects to CMake and writing CMake code to specify build rules to compile sources, create static and shared libraries, link executables, run custom commands, run tests, and install artifacts. It also includes a copy of key portions of the official reference documentation.

Mastering CMake

Mastering CMake PDF Author: Ken Martin
Publisher:
ISBN: 9789781930935
Category :
Languages : en
Pages : 641

Book Description

CMake Cookbook

CMake Cookbook PDF Author: Radovan Bast
Publisher: Packt Publishing Ltd
ISBN: 1788472349
Category : Computers
Languages : en
Pages : 600

Book Description
Learn CMake through a series of task-based recipes that provide you with practical, simple, and ready-to-use CMake solutions for your code Key FeaturesLearn to configure, build, test, and package software written in C, C++, and FortranProgress from simple to advanced tasks with examples tested on Linux, macOS, and WindowsManage code complexity and library dependencies with reusable CMake building blocksBook Description CMake is cross-platform, open-source software for managing the build process in a portable fashion. This book features a collection of recipes and building blocks with tips and techniques for working with CMake, CTest, CPack, and CDash. CMake Cookbook includes real-world examples in the form of recipes that cover different ways to structure, configure, build, and test small- to large-scale code projects. You will learn to use CMake's command-line tools and master modern CMake practices for configuring, building, and testing binaries and libraries. With this book, you will be able to work with external libraries and structure your own projects in a modular and reusable way. You will be well-equipped to generate native build scripts for Linux, MacOS, and Windows, simplify and refactor projects using CMake, and port projects to CMake. What you will learnConfigure, build, test, and install code projects using CMakeDetect operating systems, processors, libraries, files, and programs for conditional compilationIncrease the portability of your codeRefactor a large codebase into modules with the help of CMakeBuild multi-language projectsKnow where and how to tweak CMake configuration files written by somebody elsePackage projects for distributionPort projects to CMakeWho this book is for If you are a software developer keen to manage build systems using CMake or would like to understand and modify CMake code written by others, this book is for you. A basic knowledge of C++, C, or Fortran is required to understand the topics covered in this book.

Modern CMake for C++

Modern CMake for C++ PDF Author: Rafal Swidzinski
Publisher: Packt Publishing Ltd
ISBN: 1801071659
Category : Computers
Languages : en
Pages : 460

Book Description
Write comprehensive, professional-standard CMake projects and ensure the quality and simplicity of your solutions Purchase of the print or Kindle book includes a free eBook in the PDF format Key FeaturesUnderstand and automate compilation and linking with CMakeManage internal and external dependencies easilyAdd quality checks and tests as an inherent step for your buildsBook Description Creating top-notch software is an extremely difficult undertaking. Developers researching the subject have difficulty determining which advice is up to date and which approaches have already been replaced by easier, better practices. At the same time, most online resources offer limited explanation, while also lacking the proper context and structure. This book offers a simpler, more comprehensive, experience as it treats the subject of building C++ solutions holistically. Modern CMake for C++ is an end-to-end guide to the automatization of complex tasks, including building, testing, and packaging. You'll not only learn how to use the CMake language in CMake projects, but also discover what makes them maintainable, elegant, and clean. The book also focuses on the structure of source directories, building targets, and packages. As you progress, you'll learn how to compile and link executables and libraries, how those processes work, and how to optimize builds in CMake for the best results. You'll understand how to use external dependencies in your project – third-party libraries, testing frameworks, program analysis tools, and documentation generators. Finally, you'll get to grips with exporting, installing, and packaging for internal and external purposes. By the end of this book, you'll be able to use CMake confidently on a professional level. What you will learnUnderstand best practices for building C++ codeGain practical knowledge of the CMake language by focusing on the most useful aspectsUse cutting-edge tooling to guarantee code quality with the help of tests and static and dynamic analysisDiscover how to manage, discover, download, and link dependencies with CMakeBuild solutions that can be reused and maintained in the long termUnderstand how to optimize build artifacts and the build process itselfWho this book is for The book is for build engineers and software developers with knowledge of C/C++ programming who are looking to learn CMake to automate the process of building small and large software solutions. If you are someone who's just getting started with CMake, a long-time GNU Make user, or simply looking to brush up on the latest best practices, this book is for you.

Mastering C++ Programming

Mastering C++ Programming PDF Author: Jeganathan Swaminathan
Publisher: Packt Publishing Ltd
ISBN: 1786461935
Category : Computers
Languages : en
Pages : 375

Book Description
Take your C++ coding to the next level by leveraging the latest features and advanced techniques to building high performing, reliable applications. About This Book Get acquainted with the latest features in C++ 17 Take advantage of the myriad of features and possibilities that C++ offers to build real-world applications Write clear and expressive code in C++, and get insights into how to keep your code error-free Who This Book Is For This book is for experienced C++ developers. If you are a novice C++ developer, then it's highly recommended that you get a solid understanding of the C++ language before reading this book What You Will Learn Write modular C++ applications in terms of the existing and newly introduced features Identify code-smells, clean up, and refactor legacy C++ applications Leverage the possibilities provided by Cucumber and Google Test/Mock to automate test cases Test frameworks with C++ Get acquainted with the new C++17 features Develop GUI applications in C++ Build portable cross-platform applications using standard C++ features In Detail C++ has come a long way and has now been adopted in several contexts. Its key strengths are its software infrastructure and resource-constrained applications. The C++ 17 release will change the way developers write code, and this book will help you master your developing skills with C++. With real-world, practical examples explaining each concept, the book will begin by introducing you to the latest features in C++ 17. It encourages clean code practices in C++ in general, and demonstrates the GUI app-development options in C++. You'll get tips on avoiding memory leaks using smart-pointers. Next, you'll see how multi-threaded programming can help you achieve concurrency in your applications. Moving on, you'll get an in-depth understanding of the C++ Standard Template Library. We show you the concepts of implementing TDD and BDD in your C++ programs, and explore template-based generic programming, giving you the expertise to build powerful applications. Finally, we'll round up with debugging techniques and best practices.By the end of the book, you'll have an in-depth understanding of the language and its various facets. Style and approach This straightforward guide will help you level up your skills in C++ programming, be it for enterprise software or for low-latency applications like games. Filled with real-world, practical examples, this book will take you gradually up the steep learning curve that is C++.

Modern CMake for C++

Modern CMake for C++ PDF Author: Rafał Świdziński
Publisher: Packt Publishing Ltd
ISBN: 180512336X
Category : Computers
Languages : en
Pages : 503

Book Description
Gain proficiency in CMake and unlock the complete potential of C++ to develop exceptional projects Purchase of the print or Kindle book includes a free eBook in the PDF format Key Features Get to grips with CMake and take your C++ development skills to enterprise standards Use hands-on exercises and self-assessment questions to lock-in your learning Understand how to build in an array of quality checks and tests for robust code Book DescriptionModern CMake for C++ isn't just another reference book, or a repackaging of the documentation, but a blueprint to bridging the gap between learning C++ and being able to use it in a professional setting. It's an end-to-end guide to the automation of complex tasks, including building, testing, and packaging software. This second edition is significantly rewritten, restructured and refreshed with latest additions to CMake, such as support of C++20 Modules. In this book, you'll not only learn how to use the CMake language in CMake projects but also discover how to make those projects maintainable, elegant, and clean. As you progress, you'll dive into the structure of source directories, building targets, and packages, all while learning how to compile and link executables and libraries. You'll also gain a deeper understanding of how those processes work and how to optimize builds in CMake for the best results. You'll discover how to use external dependencies in your project – third-party libraries, testing frameworks, program analysis tools, and documentation generators. Finally, you'll gain profi ciency in exporting, installing, and packaging for internal and external purposes. By the end of this book, you'll be able to use CMake confi dently at a professional level.What you will learn Understand best practices to build ++ code Gain practical knowledge of the CMake language Guarantee code quality with tests and static and dynamic analysis Discover how to manage, discover, download, and link dependencies with CMake Build solutions that can be reused and maintained in the long term Understand how to optimize build artifacts and the build process Program modern CMake and manage your build processes Acquire expertise in complex subjects such as CMake presets Who this book is for The book is for build engineers and software developers with knowledge of C/C++ programming who are looking to learn CMake to automate the process of building small and large software solutions. If you’re just getting started with CMake, a long-time GNU Make user, or simply looking to brush up on the latest best practices, this book is for you.

Mastering the C++17 STL

Mastering the C++17 STL PDF Author: Arthur O'Dwyer
Publisher: Packt Publishing Ltd
ISBN: 1787288234
Category : Computers
Languages : en
Pages : 379

Book Description
This book breaks down the C++ STL, teaching you how to extract its gems and apply them to your programming. About This Book Boost your productivity as a C++ developer with the latest features of C++17 Develop high-quality, fast, and portable applications with the varied features of the STL Migrate from older versions (C++11, C++14) to C++17 Who This Book Is For This book is for developers who would like to master the C++ STL and make full use of its components. Prior C++ knowledge is assumed. What You Will Learn Make your own iterator types, allocators, and thread pools. Master every standard container and every standard algorithm. Improve your code by replacing new/delete with smart pointers. Understand the difference between monomorphic algorithms, polymorphic algorithms, and generic algorithms. Learn the meaning and applications of vocabulary type, product type and sum type. In Detail Modern C++ has come a long way since 2011. The latest update, C++17, has just been ratified and several implementations are on the way. This book is your guide to the C++ standard library, including the very latest C++17 features. The book starts by exploring the C++ Standard Template Library in depth. You will learn the key differences between classical polymorphism and generic programming, the foundation of the STL. You will also learn how to use the various algorithms and containers in the STL to suit your programming needs. The next module delves into the tools of modern C++. Here you will learn about algebraic types such as std::optional, vocabulary types such as std::function, smart pointers, and synchronization primitives such as std::atomic and std::mutex. In the final module, you will learn about C++'s support for regular expressions and file I/O. By the end of the book you will be proficient in using the C++17 standard library to implement real programs, and you'll have gained a solid understanding of the library's own internals. Style and approach This book takes a concise but comprehensive approach to explaining and applying the C++ STL, one feature at a time.

Lecture Slides for Programming in C++ (Version 2019-02-04)

Lecture Slides for Programming in C++ (Version 2019-02-04) PDF Author: Michael D. Adams
Publisher: Michael Adams
ISBN: 1550586416
Category :
Languages : en
Pages : 2538

Book Description
This document, which consists of approximately 2500 lecture slides, offers a wealth of information on many topics relevant to programming in C++, including coverage of the C++ language itself, the C++ standard library and a variety of other libraries, numerous software tools, and an assortment of other programming-related topics. The coverage of the C++ language and standard library is current with the C++17 standard. C++ PROGRAMMING LANGUAGE. Many aspects of the C++ language are covered from introductory to more advanced. This material includes: the preprocessor, language basics (objects, types, values, operators, expressions, control-flow constructs, functions, and namespaces), classes, templates (function, class, variable, and alias templates, variadic templates, template specialization, and SFINAE), lambda expressions, inheritance (run-time polymorphism and CRTP), exceptions (exception safety and RAII), smart pointers, memory management (new and delete operators and expressions, placement new, and allocators), rvalue references (move semantics and perfect forwarding), concurrency (memory models, and happens-before and synchronizes-with relationships), compile-time computation, and various other topics (e.g., copy elision and initialization). C++ STANDARD LIBRARY AND VARIOUS OTHER LIBRARIES. Various aspects of the C++ standard library are covered including: containers, iterators, algorithms, I/O streams, time measurement, and concurrency support (threads, mutexes, condition variables, promises and futures, atomics, and fences). A number of Boost libraries are discussed, including the Intrusive, Iterator, and Container libraries. The OpenGL library and GLSL are discussed at length, along with several related libraries, including: GLFW, GLUT, and GLM. The CGAL library is also discussed in some detail. SOFTWARE TOOLS. A variety of software tools are discussed, including: static analysis tools (e.g., Clang Tidy and Clang Static Analyzer), code sanitizers (e.g., ASan, LSan, MSan, TSan, and UBSan), debugging and testing tools (e.g., Valgrind, LLVM XRay, and Catch2), performance analysis tools (e.g., Perf, PAPI, Gprof, and Valgrind/Callgrind), build tools (e.g., CMake and Make), version control systems (e.g., Git), code coverage analysis tools (e.g., Gcov, LLVM Cov, and Lcov), online C++ compilers (e.g., Compiler Explorer and C++ Insights), and code completion tools (e.g., YouCompleteMe, and LSP clients/servers).

Lecture Slides for Programming in C++ (Version 2018-02-15)

Lecture Slides for Programming in C++ (Version 2018-02-15) PDF Author: Michael D. Adams
Publisher: Michael Adams
ISBN: 1550586254
Category :
Languages : en
Pages : 2142

Book Description
This document, which consists of over 2000 lecture slides, offers a wealth of information on many topics relevant to programming in C++, including coverage of the C++ language itself, the C++ standard library and a variety of other libraries, numerous software tools, and an assortment of other programming-related topics. The coverage of the C++ language and standard library is current with the C++17 standard. C++ PROGRAMMING LANGUAGE. Many aspects of the C++ language are covered from introductory to more advanced. This material includes: the preprocessor, language basics (objects, types, values, operators, expressions, control-flow constructs, functions, and namespaces), classes, templates (function, class, variable, and alias templates, variadic templates, template specialization, and SFINAE), lambda expressions, inheritance (run-time polymorphism and CRTP), exceptions (exception safety and RAII), smart pointers, memory management (new and delete operators and expressions, placement new, and allocators), rvalue references (move semantics and perfect forwarding), concurrency (memory models, and happens-before and synchronizes-with relationships). C++ STANDARD LIBRARY AND VARIOUS OTHER LIBRARIES. Various aspects of the C++ standard library are covered including: containers, iterators, algorithms, I/O streams, time measurement, and concurrency support (threads, mutexes, condition variables, promises and futures, atomics, and fences). A number of Boost libraries are discussed, including the Intrusive, Iterator, and Container libraries. The OpenGL library and GLSL are discussed at length, along with several related libraries, including: GLFW, GLUT, and GLM. The CGAL library is also discussed in some detail. SOFTWARE TOOLS. A variety of software tools are discussed, including: static analysis tools (e.g., Clang Tidy), code sanitizers (e.g., ASan, UBSan, and TSan), debugging and testing tools (e.g., Catch2), performance analysis tools (e.g., Perf, PAPI, Gprof, and Valgrind/Callgrind), build tools (e.g., CMake and Make), and version control systems (e.g., Git). OTHER TOPICS. An assortment of other programming-related topics are also covered, including: data structures, algorithms, computer arithmetic (e.g., floating-point arithmetic and interval arithmetic), cache-efficient algorithms, vectorization, good programming practices, and software documentation.
Proudly powered by WordPress | Theme: Rits Blog by Crimson Themes.