The 4th edition CMake books have arrived and you can order them from
http://kitware.com/products/cmakebook.html They should show up on Amazon in
the near future as well. A summary table of contents is included below.

Thanks
Ken


CHAPTER 1  WHY CMAKE?   1
1.1     The History of CMake    3
1.2     Why Not Use Autoconf?   3
1.3     Why Not Use JAM, qmake, SCons, or ANT?  4
1.4     Why Not Script It Yourself?     4
1.5     On What Platforms Does CMake Run?       5

CHAPTER 2  GETTING STARTED      7
2.1     Getting and Installing CMake on Your Computer   7
2.2     UNIX and Mac Binary Installations       7
2.3     Windows Binary Installation:    8
2.4     Building CMake Yourself 8
2.5     Basic CMake Usage and Syntax    8
2.6     Hello World for CMake   9
2.7     How to Run CMake?       11
2.8     Editing CMakeLists Files        18
2.9     Setting Initial Values for CMake        19

CHAPTER 3  KEY CONCEPTS 21
3.1     Main Structures 21
3.2     Targets 24
3.3     Source Files    25
3.4     Directories, Generators, Tests, and Properties  26
3.5     Variables and Cache Entries     27
3.6     Build Configurations    30

CHAPTER 4  WRITING CMAKELISTS FILES     33
4.1     CMake Syntax    33
4.2     Basic Commands  34
4.3     Flow Control    34
4.4     Regular Expressions     41
4.5     Checking Versions of CMake      43
4.6     Using Modules   44
4.7     Specifying Optimized or Debug Libraries with a Target   49
4.8     Shared Libraries and Loadable Modules   50
4.9     Shared Library Versioning       55
4.10    Installing Files        56
4.11    Advanced Commands       66

CHAPTER 5  PACKAGING WITH CPACK 69
5.1     CPack Basics    69
5.2     CPack Source Packages   74
5.3     CPack Installer commands        74
5.4     CPack for Windows Installer NSIS        76
5.5     CPack for Cygwin Setup  83
5.6     CPack for Apple OSX PackageMaker        86
5.7     CPack for OSX X11 applications  89
5.8     CPack for Debian packages       91
5.9     CPack for RPM   92
5.10    CPack files     93

CHAPTER 6  CONVERTING EXISTING SYSTEMS TO CMAKE 95
6.1     Source Code Directory Structures        95
6.2     Build Directories       97
6.3     Useful CMake Commands when Converting Projects  99
6.4     Converting UNIX Makefiles       100
6.5     Converting Autoconf Based Projects      101
6.6     Converting Windows Based Workspaces     103

CHAPTER 7  SYSTEM INSPECTION    105
7.1     Using Header Files and Libraries        105
7.2     System Properties       107
7.3     Built-in Find Modules   113
7.4     How to Pass Parameters to a Compilation?        115
7.5     How to Configure a Header File  116
7.6     Creating a <Package>Config.cmake File   118

CHAPTER 8  CUSTOM COMMANDS AND TARGETS  125
8.1     Portable Custom Commands        125
8.2     Using add_custom_command on a Target    127
8.3     Using add_custom_command to Generate a File     129
8.4     Adding a Custom Target  130
8.5     Specifying Dependencies and Outputs     133
8.6     When There Isn't One Rule for One Output        134

CHAPTER 9  CROSS COMPILING WITH CMAKE   137
9.1     Toolchain files 138
9.2     System inspection       142
9.3     Running executables built in the project itself 144
9.4     Cross compiling Hello world     147
9.5     Cross compiling for a microcontroller   152
9.6     Cross compiling an existing project     154
9.7     Cross compiling a complex project - VTK 157
9.8     Some tips and tricks    158

CHAPTER 10  AUTOMATION & TESTING WITH CMAKE     161
10.1    Automating and Testing with CMake and CTest     161
10.2    How does CMake Facilitate Testing?      162
10.3    Testing Using CTest     163
10.4    Additional Test Properties      166
10.5    Using CTest to Drive Complex Tests      167
10.6    Handling a Large Number of Tests        168
10.7    Producing Test Dashboards       169
10.8    Setting up Automated Dashboard Clients  178
10.9    Advanced CTest Scripting        185
10.10   Setting up a Dashboard Server   191

CHAPTER 11  PORTING CMAKE TO NEW PLATFORMS AND LANGUAGES        197
11.1    The Determine System Process    197
11.2    The Enable Language Process     198
11.3    Porting to a New Platform       200
11.4    Adding a New Language   202
11.5    Rule Variable Listing   202
11.6    Compiler and Platform Examples  204
11.7    Extending CMake 206

CHAPTER 12  TUTORIALS   211
12.1    A Basic Starting Point (Step 1) 211
12.2    Adding a Library (Step 2)       213
12.3    Installing and Testing (Step 3) 216
12.4    Adding System Introspection (Step 4)    218
12.5    Adding a Generated File and Generator (Step 5)  218
12.6    Building an Installer (Step 6)  223
12.7    Adding Support for a Dashboard (Step 7) 224

APPENDIX A - VARIABLES  225
Variables That Change Behavior  225
Variables That Describe the System      228
Variables for Languages 230
Variables that Control the Build        233
Variables that Provide Information      235
Variables In CMakeBackwardCompatibilityC.cmake  241
Variables in CMakeBackwardCompatibilityCXX.cmake        243
System Environment Variables That Affect CMake  243

APPENDIX B - CMAKE COMMAND REFERENCE    245
CMake Command-Line Options      245
CMake Generators        250
CTest Command-Line Options      251
CPack Command-Line Options      257
Listfile Commands       258
Extra CTest Listfile Commands   308
Compatibility Listfile Commands 310

APPENDIX C - CMAKE MODULES      317
Standard CMake Modules  317

APPENDIX D - PROPERTIES 367
Global Properties       367
Directory Properties    368
Target Properties       369
Test Properties 374
Sourcefile Properties   375
INDEX           381


Ken Martin PhD 
Kitware Inc.
28 Corporate Drive
Clifton Park NY 12065
518 371 3971 


_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to