Scott Craig / Скотт Крейг - Professional CMake: A Practical Guide, 21st Edition / Профессиональный CMake: Практическое руководство, 21-е издание [2025, PDF/EPUB, ENG]

Ответить на тему Главная » Литература » Книги FB2 » Учебно-техническая литература
Статистика раздачи
Размер:  13.54 MB   |    Зарегистрирован:  6 месяца 4 дня   |    Скачано:  550 раза
Работает мультитрекерная раздача

Полного источника не было: Никогда

 
Автор Сообщение

MAGNAT ®

Пол: Мужской

Стаж: 10 месяца 30 дня

Сообщений: 28494

Откуда: RU

Наличие запрета: Нету запретов


Награды: 16 (Подробнее)

Активный сидер 1 (Количество: 1) Активный сидер 4 (Количество: 1) Супер мега сидер (Количество: 1) Активный релизер 4 (Количество: 1) Admin (Количество: 1)
Вне форума [Профиль] [ЛС]

Создавать темы 01-Июн-2025 12:59 | #1 · Автор

[Код]

Professional CMake: A Practical Guide, 21st Edition / Профессиональный CMake: Практическое руководство, 21-е издание
Год издания: 2025
Автор: Scott Craig / Скотт Крейг
Издательство: Crascit Pty Ltd.
ISBN: 978-1-925904-37-6
Язык: Английский
Формат: PDF (Not True)/EPUB
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 1575
Описание: Professional CMake: A Practical Guide is the handbook for every CMake user, from beginner to seasoned veteran. It contains hundreds of pages of real-world advice, best practices, and insights gained from production projects and interaction with the CMake community.
Topics cover the complete software pipeline, from the very initial setup of a project through to testing, packaging, and integration with other projects. Important more advanced topics like improving build performance and code analysis tools are also covered.
"Профессиональный CMake: практическое руководство" - это руководство для каждого пользователя CMake, от новичка до опытного ветерана. Оно содержит сотни страниц с реальными советами, передовыми практиками и идеями, полученными в ходе производственных проектов и взаимодействия с сообществом CMake.
Темы охватывают весь процесс разработки программного обеспечения, начиная с начальной настройки проекта и заканчивая тестированием, упаковкой и интеграцией с другими проектами. Также рассматриваются важные более сложные темы, такие как повышение производительности сборки и инструменты анализа кода.

Примеры страниц (скриншоты)

Оглавление

Professional CMake: A Practical Guide
Preface
Acknowledgments
I: Getting Started
1. Introduction
2. Setting Up A Project
2.1. In-source Builds
2.2. Out-of-source Builds
2.3. Generating Project Files
2.4. Running The Build Tool
2.5. Recommended Practices
3. A Minimal Project
3.1. Managing CMake Versions
3.2. The project() Command
3.3. Building A Basic Executable
3.4. Commenting
3.5. Recommended Practices
4. Building Simple Targets
4.1. Executables
4.2. Defining Libraries
4.3. Linking Targets
4.4. Linking Non-targets
4.5. Old-style CMake
4.6. Recommended Practices
5. Basic Testing And Deployment
5.1. Testing
5.2. Installing
5.3. Packaging
5.4. Recommended Practices
II: Fundamentals
6. Variables
6.1. Variable Basics
6.2. Environment Variables
6.3. Cache Variables
6.4. Scope Blocks
6.5. Printing Variable Values
6.6. String Handling
6.7. Lists
6.8. Math
6.9. Recommended Practices
7. Flow Control
7.1. The if() Command
7.2. Looping
7.3. Recommended Practices
8. Using Subdirectories
8.1. add_subdirectory()
8.2. include()
8.3. Project-relative Variables
8.4. Ending Processing Early
8.5. Recommended Practices
9. Functions And Macros
9.1. The Basics
9.2. Argument Handling Essentials
9.3. Keyword Arguments
9.4. Returning Values
9.5. Overriding Commands
9.6. Special Variables For Functions
9.7. Other Ways Of Invoking CMake Code
9.8. Problems With Argument Handling
9.9. Recommended Practices
10. Properties
10.1. General Property Commands
10.2. Global Properties
10.3. Directory Properties
10.4. Target Properties
10.5. Source Properties
10.6. Cache Variable Properties
10.7. Test Properties
10.8. Installed File Properties
10.9. Recommended Practices
11. Generator Expressions
11.1. Simple Boolean Logic
11.2. Target Details
11.3. General Information
11.4. Path Expressions
11.5. List Expressions
11.6. Utility Expressions
11.7. Recommended Practices
12. Modules
12.1. Checking Existence And Support
12.2. Other Modules
12.3. Recommended Practices
13. Policies
13.1. Policy Control By Version
13.2. Policy Control By Version Range
13.3. Controlling Individual Policies
13.4. Policy Scope
13.5. Overriding Policy Defaults And Warnings
13.6. Policy Removal
13.7. Recommended Practices
14. Debugging And Diagnostics
14.1. Log Messages
14.2. Color Diagnostics
14.3. Print Helpers
14.4. Tracing Variable Access
14.5. Debugging Generator Expressions
14.6. Profiling CMake Calls
14.7. Discarding Previous Results
14.8. Interactive Debugging
14.9. Recommended Practices
15. Build Type
15.1. Build Type Basics
15.2. Common Errors
15.3. Custom Build Types
15.4. Recommended Practices
16. Compiler And Linker Essentials
16.1. Target Properties
16.2. Target Property Commands
16.3. Target Property Contexts
16.4. Directory Properties And Commands
16.5. De-duplicating Options
16.6. Compiler And Linker Variables
16.7. Language-specific Compiler Flags
16.8. Compiler Option Abstractions
16.9. Recommended Practices
III: Builds In Depth
17. Language Requirements
17.1. Setting The Language Standard Directly
17.2. Setting The Language Standard By Feature
Requirements
17.3. Requirements For C++20 Modules
17.4. Recommended Practices
18. Advanced Linking
18.1. Require Targets For Linking
18.2. Customize How Libraries Are Linked
18.3. Propagating Up Direct Link Dependencies
18.4. Recommended Practices
19. Target Types
19.1. Executables
19.2. Libraries
19.3. Promoting Imported Targets
19.4. Recommended Practices
20. Custom Tasks
20.1. Custom Targets
20.2. Adding Build Steps To An Existing Target
20.3. Commands That Generate Files
20.4. Configure Time Tasks
20.5. Platform Independent Commands
20.6. Combining The Different Approaches
20.7. Recommended Practices
21. Working With Files
21.1. Manipulating Paths
21.2. Copying Files
21.3. Reading And Writing Files Directly
21.4. File System Manipulation
21.5. File Globbing
21.6. Downloading And Uploading
21.7. Recommended Practices
22. Specifying Version Details
22.1. Project Version
22.2. Source Code Access To Version Details
22.3. Source Control Commits
22.4. Recommended Practices
23. Libraries
23.1. Build Basics
23.2. Linking Static Libraries
23.3. Shared Library Versioning
23.4. Interface Compatibility
23.5. Symbol Visibility
23.6. Mixing Static And Shared Libraries
23.7. Recommended Practices
24. Toolchains And Cross Compiling
24.1. Toolchain Files
24.2. Defining The Target System
24.3. Tool Selection
24.4. System Roots
24.5. Compiler Checks
24.6. Examples
24.7. Android
24.8. Recommended Practices
25. Apple Features
25.1. CMake Generator Selection
25.2. Application Bundles
25.3. Frameworks
25.4. Loadable Bundles
25.5. Build Settings
25.6. Signing And Capabilities
25.7. Creating And Exporting Archives
25.8. Universal Binaries
25.9. XCFrameworks
25.10. Linking Frameworks
25.11. Embedding Frameworks And Other Things
25.12. Limitations
25.13. Recommended Practices
26. Build Performance
26.1. Unity Builds
26.2. Precompiled Headers
26.3. Build Parallelism
26.4. Optimizing Build Dependencies
26.5. Compiler Caches
26.6. Debug-related Improvements
26.7. Alternative Linkers
26.8. Recommended Practices
IV: Testing And Analysis
27. Testing Fundamentals
27.1. Defining And Executing A Simple Test
27.2. Test Environment
27.3. Pass / Fail Criteria And Other Result Types
27.4. Test Grouping And Selection
27.5. Cross-compiling, Emulators, And Launchers
27.6. JUnit Output
27.7. Recommended Practices
28. Test Resources And Constraints
28.1. Simple Test Dependencies
28.2. Test Fixtures
28.3. Parallel Execution
28.4. Simple Resource Constraints
28.5. Resource Groups
28.6. Recommended Practices
29. Build And Test Mode
29.1. Using Build And Test Mode
29.2. Use Cases
29.3. Alternatives
29.4. Recommended Practices
30. Test Frameworks
30.1. GoogleTest
30.2. Catch2
30.3. doctest
30.4. Recommended Practices
31. CDash Integration
31.1. Key CDash Concepts
31.2. Executing Pipelines And Actions
31.3. CTest Configuration
31.4. Test Measurements And Results
31.5. Output Control
31.6. Recommended Practices
32. Static Code Analysis
32.1. clang-tidy
32.2. cppcheck
32.3. cpplint
32.4. Include What You Use
32.5. Potential Problems With Co-compilation
32.6. File Sets Header Verification
32.7. Disabling Checks For Some Files
32.8. Recommended Practices
33. Dynamic Code Analysis
33.1. Sanitizers
33.2. Code Coverage
33.3. Recommended Practices
V: Deployment And Dependencies
34. Finding Things
34.1. Finding Files And Paths
34.2. Finding Programs
34.3. Finding Libraries
34.4. Finding Packages
34.5. Ignoring Search Paths
34.6. Debugging find_… () Calls
34.7. Recommended Practices
35. Installing
35.1. Directory Layout
35.2. Installing Project Targets
35.3. Installing Exports
35.4. Installing Imported Targets
35.5. Installing Files
35.6. Installing C++20 Modules
35.7. Custom Install Logic
35.8. Installing Dependencies
35.9. Writing A Config Package File
35.10. Executing An Install
35.11. Recommended Practices
36. Packaging
36.1. Packaging Basics
36.2. Components
36.3. Multi Configuration Packages
36.4. Recommended Practices
37. Package Generators
37.1. Simple Archives
37.2. Qt Installer Framework (IFW)
37.3. WIX
37.4. NSIS
37.5. Inno Setup
37.6. DragNDrop
37.7. productbuild
37.8. RPM
37.9. DEB
37.10. FreeBSD
37.11. Cygwin
37.12. NuGet
37.13. External
37.14. Recommended Practices
38. ExternalProject
38.1. High Level Overview
38.2. Directory Layout
38.3. Built-in Steps
38.4. Step Management
38.5. Miscellaneous Features
38.6. Common Issues
38.7. ExternalData
38.8. Recommended Practices
39. FetchContent
39.1. Comparison With ExternalProject
39.2. Basic Usage
39.3. Resolving Dependencies
39.4. Avoiding Sub-builds For Population
39.5. Integration With find_package()
39.6. Developer Overrides
39.7. Other Uses For FetchContent
39.8. Restrictions
39.9. Recommended Practices
40. Making Projects Consumable
40.1. Use Project-specific Names
40.2. Don’t Assume A Top Level Build
40.3. Avoid Hard-coding Developer Choices
40.4. Avoid Package Variables If Possible
40.5. Use Appropriate Methods To Obtain
Dependencies
40.6. Recommended Practices
41. Dependency Providers
41.1. Top Level Setup Injection Point
41.2. Dependency Provider Implementation
41.3. Recommended Practices
VI: Project Organization
42. Presets
42.1. High Level Structure
42.2. Configure Presets
42.3. Build Presets
42.4. Test Presets
42.5. Package Presets
42.6. Workflow Presets
42.7. Recommended Practices
43. Project Structure
43.1. Superbuild Structure
43.2. Non-superbuild Structure
43.3. Common Top Level Subdirectories
43.4. IDE Projects
43.5. Defining Targets
43.6. Cleaning Files
43.7. Re-running CMake On File Changes
43.8. Injecting Files Into Projects
43.9. Recommended Practices
VII: Special Topics
44. Debugging Executables
44.1. Working Directory
44.2. Environment Variables
44.3. Finding Windows DLLs At Runtime
44.4. Command Line Arguments
44.5. PDB Generation
44.6. Recommended Practices
45. Working With Qt
45.1. Making Qt Available To The Project
45.2. Standard Project Setup
45.3. Command And Target Names
45.4. Defining Targets
45.5. Autogen
45.6. Translations
45.7. Deployment
45.8. Recommended Practices
Appendix A: Full Compiler Cache Example
Appendix B: Sanitizers Example
Appendix C: Timer Dependency Provider
Scott Craig / Скотт Крейг - Professional CMake: A Practical Guide, 21st Edition / Профессиональный CMake: Практическое руководство, 21-е издание [2025, PDF/EPUB, ENG] [uztracker.net-24940].torrent  
Торрент: Зарегистрирован [ 2025-06-01 12:59 ]

info_hash: 3D83C5B064F28D72230BE4035BA32D514FED6EB8

Скачать .torrent


18 KB

Статус: проверено · MAGNAT · 6 месяца 4 дня назад
Скачано: 550 раза
Размер: 13.54 MB
Оценка: 
(Голосов: 0)
Поблагодарили: 0  Спасибо
Показать сообщения:    
Ответить на тему Главная » Литература » Книги FB2 » Учебно-техническая литература

Текущее время: 05-Дек 13:47

Часовой пояс: UTC + 5



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы

[  Время выполнения: 0,5783 сек  |  MySQL: 0,5582 сек (97%) · 19 запр.  |  сжатие Gzip: выкл  |  Память: 394.19 KB / 2.69 MB / 1.71 MB  ] |  |  |