summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMake.rtf324
1 files changed, 167 insertions, 157 deletions
diff --git a/CMake.rtf b/CMake.rtf
index f5a5e14..1c55b26 100644
--- a/CMake.rtf
+++ b/CMake.rtf
@@ -1,12 +1,14 @@
{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f14\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;}{\f28\fswiss\fcharset128\fprq2{\*\panose 020b0604020202020204}Arial Unicode MS;}
-{\f29\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}{\f31\fswiss\fcharset128\fprq2{\*\panose 00000000000000000000}@Arial Unicode MS;}{\f56\froman\fcharset238\fprq2 Times New Roman CE;}{\f57\froman\fcharset204\fprq2 Times New Roman Cyr;}
-{\f59\froman\fcharset161\fprq2 Times New Roman Greek;}{\f60\froman\fcharset162\fprq2 Times New Roman Tur;}{\f61\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f62\froman\fcharset178\fprq2 Times New Roman (Arabic);}
-{\f63\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f72\fmodern\fcharset238\fprq1 Courier New CE;}{\f73\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f75\fmodern\fcharset161\fprq1 Courier New Greek;}{\f76\fmodern\fcharset162\fprq1 Courier New Tur;}
-{\f77\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f78\fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f79\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f288\fswiss\fcharset238\fprq2 Verdana CE;}{\f289\fswiss\fcharset204\fprq2 Verdana Cyr;}
-{\f291\fswiss\fcharset161\fprq2 Verdana Greek;}{\f292\fswiss\fcharset162\fprq2 Verdana Tur;}{\f295\fswiss\fcharset186\fprq2 Verdana Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;
-\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;
-\red192\green192\blue192;}{\stylesheet{\ql \li1170\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin1170\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{
+{\f29\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}{\f30\fswiss\fcharset128\fprq2{\*\panose 00000000000000000000}@Arial Unicode MS;}{\f35\froman\fcharset238\fprq2 Times New Roman CE;}{\f36\froman\fcharset204\fprq2 Times New Roman Cyr;}
+{\f38\froman\fcharset161\fprq2 Times New Roman Greek;}{\f39\froman\fcharset162\fprq2 Times New Roman Tur;}{\f40\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f41\froman\fcharset178\fprq2 Times New Roman (Arabic);}
+{\f42\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f51\fmodern\fcharset238\fprq1 Courier New CE;}{\f52\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f54\fmodern\fcharset161\fprq1 Courier New Greek;}{\f55\fmodern\fcharset162\fprq1 Courier New Tur;}
+{\f56\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f57\fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f58\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f261\fswiss\fcharset0\fprq2 Arial Unicode MS Western;}
+{\f259\fswiss\fcharset238\fprq2 Arial Unicode MS CE;}{\f260\fswiss\fcharset204\fprq2 Arial Unicode MS Cyr;}{\f262\fswiss\fcharset161\fprq2 Arial Unicode MS Greek;}{\f263\fswiss\fcharset162\fprq2 Arial Unicode MS Tur;}
+{\f264\fswiss\fcharset177\fprq2 Arial Unicode MS (Hebrew);}{\f265\fswiss\fcharset178\fprq2 Arial Unicode MS (Arabic);}{\f266\fswiss\fcharset186\fprq2 Arial Unicode MS Baltic;}{\f267\fswiss\fcharset238\fprq2 Verdana CE;}
+{\f268\fswiss\fcharset204\fprq2 Verdana Cyr;}{\f270\fswiss\fcharset161\fprq2 Verdana Greek;}{\f271\fswiss\fcharset162\fprq2 Verdana Tur;}{\f274\fswiss\fcharset186\fprq2 Verdana Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;
+\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;
+\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\ql \li1170\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin1170\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{
\s1\ql \li1170\ri-720\keepn\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin1170\itap0 \b\fs36\ul\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 1;}{
\s2\ql \li1170\ri-720\keepn\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin1170\itap0 \b\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 2;}{
\s3\ql \li0\ri-720\keepn\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 \b\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \sautoupd heading 3;}{
@@ -130,8 +132,8 @@
\listoverridecount0\ls7}{\listoverride\listid199510865\listoverridecount0\ls8}{\listoverride\listid908342481\listoverridecount0\ls9}{\listoverride\listid1336492021\listoverridecount0\ls10}{\listoverride\listid1592200748\listoverridecount0\ls11}
{\listoverride\listid1724867039\listoverridecount0\ls12}{\listoverride\listid2012557743\listoverridecount0\ls13}{\listoverride\listid563219625\listoverridecount0\ls14}{\listoverride\listid1023172156\listoverridecount0\ls15}{\listoverride\listid1652054978
\listoverridecount0\ls16}{\listoverride\listid1431699610\listoverridecount0\ls17}{\listoverride\listid330572609\listoverridecount0\ls18}{\listoverride\listid489949201\listoverridecount0\ls19}{\listoverride\listid1987126501\listoverridecount0\ls20}
-{\listoverride\listid114103099\listoverridecount0\ls21}{\listoverride\listid707224966\listoverridecount0\ls22}}{\info{\title CMake Documentation}{\author Ken Martin}{\operator Bill Hoffman}{\creatim\yr2001\mo6\dy7\hr15\min36}
-{\revtim\yr2001\mo12\dy3\hr9\min41}{\printim\yr2000\mo11\dy2\hr9\min34}{\version16}{\edmins332}{\nofpages17}{\nofwords5225}{\nofchars29788}{\*\company Kitware Inc.}{\nofcharsws36581}{\vern8247}}
+{\listoverride\listid114103099\listoverridecount0\ls21}{\listoverride\listid707224966\listoverridecount0\ls22}}{\info{\title CMake Documentation}{\author Ken Martin}{\operator hoffman}{\creatim\yr2001\mo6\dy7\hr15\min36}
+{\revtim\yr2001\mo12\dy3\hr15\min48}{\printim\yr2000\mo11\dy2\hr9\min34}{\version17}{\edmins347}{\nofpages17}{\nofwords5225}{\nofchars29788}{\*\company Kitware Inc.}{\nofcharsws0}{\vern8269}}
\widowctrl\ftnbj\aendnotes\aftnstart0\hyphhotz0\aftnnar\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\lytprtmet\hyphcaps0\horzdoc\dghspace180\dgvspace180\dghorigin1701\dgvorigin1984\dghshow0\dgvshow0
\jexpand\viewkind1\viewscale75\pgbrdrhead\pgbrdrfoot\bdrrlswsix\nolnhtadjtbl \fet0\sectd \linex0\endnhere\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3
\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}
@@ -4823,10 +4825,10 @@ CMake provides many pre-defined commands, but if you need to, you can add your o
\par }\pard \qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {You can download and install precompiled binaries of CMake for Windows and UNIX from }{\field\flddirty{\*\fldinst { HYPERLINK "http://public.kitware.com/CMake" }{
{\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b02000000170000002000000068007400740070003a002f002f007000750062006c00690063002e006b006900740077006100720065002e0063006f006d002f0043004d0061006b0065000000e0c9ea79f9bace118c8200aa004ba90b4000000068007400740070003a002f002f00
-7000750062006c00690063002e006b006900740077006100720065002e0063006f006d002f0043004d0061006b00650000000000000000000000}}}{\fldrslt {\cs16\ul\cf2 http://public.kitware.com/CMake}}}{
+7000750062006c00690063002e006b006900740077006100720065002e0063006f006d002f0043004d0061006b0065000000000000000000000000}}}{\fldrslt {\cs16\ul\cf2 http://public.kitware.com/CMake}}}{
. If you want to build CMake yourself, you can download the source code using CVS (available at }{\field\flddirty{\*\fldinst { HYPERLINK "http://cvshome.org" }{{\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b02000000170000001300000068007400740070003a002f002f0063007600730068006f006d0065002e006f00720067000000e0c9ea79f9bace118c8200aa004ba90b2800000068007400740070003a002f002f0063007600730068006f006d0065002e006f00720067002f000000
-0000000000000000}}}{\fldrslt {\cs16\ul\cf2 http://cvshome.org}}}{) and typing:
+000000000000000000}}}{\fldrslt {\cs16\ul\cf2 http://cvshome.org}}}{) and typing:
\par }\pard\plain \s23\ql \li0\ri0\sb100\sa100\sbauto1\saauto1\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f29\fs18\cf1\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b cvs -d :pserver:anonymous@public.kitware.com:/CMake/cvsroot login}{
\line (respond with password cmake)
\par Follow this command by checking out the source code:\line }{\b cvs -d :pserver:anonymous@public.kitware.com:/CMake/cvsroot co CMake}{
@@ -4865,8 +4867,9 @@ e created for you. The Build for option, allows you to select which type of bui
\par
\par
\par
-\par }{{\*\shppict{\pict{\*\picprop\shplid1027{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}}\picscalex89\picscaley89\piccropl0\piccropr0\piccropt0\piccropb0
-\picw16960\pich11033\picwgoal9615\pichgoal6255\pngblip\bliptag-53005137{\*\blipuid fcd734af24ceb3893a4065a6dbc38103}89504e470d0a1a0a0000000d4948445200000281000001a108020000009175f944000000017352474200aece1ce9000048ee49444154785eed9d4bb466495690
+\par }{{\*\shppict{\pict{\*\picprop\shplid1025{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}{\sp{\sn fLayoutInCell}{\sv 1}}}
+\picscalex89\picscaley89\piccropl0\piccropr0\piccropt0\piccropb0\picw16960\pich11033\picwgoal9615\pichgoal6255\pngblip\bliptag-53005137{\*\blipuid fcd734af24ceb3893a4065a6dbc38103}
+89504e470d0a1a0a0000000d4948445200000281000001a108020000009175f944000000017352474200aece1ce9000048ee49444154785eed9d4bb466495690
3b1d38106c50b4455d2a60f543aba10a14aa582076a2831ef6a027ce7b3990524a052c17d0b7135a289b87d99a3a70f5c8710d6a5803e5260a58e503aba50afb
05f84045b079b4ca348d7b23efce7de3b9234e9cf7f7afbfb2fe7bfe1d3bf6fe22ced9b123ce7fe2ce5b6fbefef433cfbd83170420000108400002cb12b8e363
f0db9f7e63d97aa90d021080000420707602bfe7ec00f01f021080000420b012815b79f0b77cf89f4d34e3ce1da7e0ea3ff7cfe3ffb98fd79ffca19b8f22a70e
@@ -5158,7 +5161,7 @@ e3c4494cf1e43d470301c5492e17dacd79f3e08e4cab3021137f4597ad76d9398626659d73d45875
7bb2a633ecd0608ac11d7a295225e062f0073ef081aa18028e402e06bff0e24ba7e5938cc1e71c9174f481e420c6e939eda8ce33cc61e9204c11230162b011d4
7831a6d69b9872674a15d79947245538b1403c887132304c62e9c04b11230162b011146210800004200081c104eaf7640dae107510800004200001085c132006
d31120000108400002eb102006afc39d5a21000108400002c460fa00042000010840601d02c4e075b8532b04200001084080184c1f80000420000108ac438018bc0e776a850004200001085cfd3ed83da20c1010800004200001082c4ce0ff039502b24e1722ced60000000049454e44ae426082}}{\nonshppict
-{\pict\picscalex90\picscaley90\piccropl0\piccropr0\piccropt0\piccropb0\picw16960\pich11033\picwgoal9615\pichgoal6255\wmetafile8\bliptag-53005137{\*\blipuid fcd734af24ceb3893a4065a6dbc38103}
+{\pict\picscalex89\picscaley89\piccropl0\piccropr0\piccropt0\piccropb0\picw16960\pich11033\picwgoal9615\pichgoal6255\wmetafile8\bliptag-53005137{\*\blipuid fcd734af24ceb3893a4065a6dbc38103}
010009000003481f06000000241f060000000400000003010800050000000b0200000000050000000c02a101810205000000070104000000241f0600430f2000
cc000000a101810200000000a1018102000000002800000081020000a10100000100180000000000043e0c00c40e0000c40e00000000000000000000c8d0d480
80808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080
@@ -17714,15 +17717,16 @@ e used to build all of the libraries and executables in the package. If you ar
\par
\par }\pard\plain \s22\qc \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
\par }\pard\plain \s3\ql \li0\ri-720\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin-720\lin0\itap0 \b\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Running CMake on Unix
-\par }\pard\plain \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par On most unix platforms, if the curses library is supported, cmake will build
+\par }\pard\plain \ql \li1170\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin1170\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
+\par }\pard \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {On most unix platforms, if the curses library is supported, cmake will build
an executable called ccmake. This interface is a terminal based text application that is very similar to the windows GUI. To run ccmake, change directories into the directory where you want the binaries to be placed. This can be the same directory as t
h
e source code for what we call in-place builds (the binaries are in the same place as the source code) or it can be a new directory you create. Then run ccmake with either no arguments for an in-place-build, or with the path to the source directory on th
e command line. This will start the text interface which looks something like this:
\par
-\par }{{\*\shppict{\pict{\*\picprop\shplid1030{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}}\picscalex89\picscaley89\piccropl0\piccropr0\piccropt0\piccropb0
-\picw16986\pich8043\picwgoal9630\pichgoal4560\pngblip\bliptag874282889{\*\blipuid 341c7f89ac96486e0673a2ab773c4f78}89504e470d0a1a0a0000000d4948445200000282000001300802000000ac7887a1000000017352474200aece1ce90000390b49444154785eed9d4dda3429ae9e
+\par }{{\*\shppict{\pict{\*\picprop\shplid1026{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn fLayoutInCell}{\sv 1}}{\sp{\sn fLayoutInCell}{\sv 1}}}
+\picscalex89\picscaley89\piccropl0\piccropr0\piccropt0\piccropb0\picw16986\pich8043\picwgoal9630\pichgoal4560\pngblip\bliptag874282889{\*\blipuid 341c7f89ac96486e0673a2ab773c4f78}
+89504e470d0a1a0a0000000d4948445200000282000001300802000000ac7887a1000000017352474200aece1ce90000390b49444154785eed9d4dda3429ae9e
bbbd1d0f3cf4b47656b5200f3cf4b096e63887b2aca33f24020222f2a9415fef1729f47323101064f6bffffbfff89fffc27f2000022000022000023b08fcfbcf
3fffdc611736410004400004400004fef51f65f88f3ffe0009100001100001100081e709fc538651899f470f8b20000220000220f0df80000440000440000440
60170194e15de4611704400004400004fe85328c2400011000011000816d045086b7a18761100001100001104019460e80000880000880c0360228c3dbd0c330
@@ -17950,7 +17954,7 @@ eb3effb1ddaad77755ff57e740c99f45fb6611e396bc5acd19fadf42c0fd4d69f3e8694a54ebd6c2
577a7edef1ff0eb7a040f28c5dbad75ce1ff40275293bc3f7a34f127f9ac0846445b6cdd09076d41609880f1f31d22adbd2ca789586c58f5044df9cd9b743d26
bba63fbc79a05f58e4aab89f7acdd186a5673a3962050a6f366913314d0441bc3a523d7d78fd42564413b3bf027ff834ba62f28afb4593f7e4bb7e26f3aaab9f
a762a61fbdbc12a199fd98d11ff46f32cff5d80ce684ea382af1f4d8b6e77a3ee93ae38d97e488eece5a1000810102b20c0f0f9201db68f23a0299f27c42509e
-9f6ff1ff0486f0010440e01902f831cb67387fc7ca5b166a031ba3ef741222010110780f81ff28c3ffeb7fff9ff7380c4f41000440000440e03b04fe2f392b087b721b508d0000000049454e44ae426082}}{\nonshppict{\pict\picscalex90\picscaley90\piccropl0\piccropr0\piccropt0\piccropb0
+9f6ff1ff0486f0010440e01902f831cb67387fc7ca5b166a031ba3ef741222010110780f81ff28c3ffeb7fff9ff7380c4f41000440000440e03b04fe2f392b087b721b508d0000000049454e44ae426082}}{\nonshppict{\pict\picscalex89\picscaley89\piccropl0\piccropr0\piccropt0\piccropb0
\picw16986\pich8043\picwgoal9630\pichgoal4560\wmetafile8\bliptag874282889{\*\blipuid 341c7f89ac96486e0673a2ab773c4f78}010009000003067904000000e278040000000400000003010800050000000b0200000000050000000c023001820205000000070104000000e2780400430f2000
cc00000030018202000000003001820200000000280000008202000030010000010018000000000080f10800c40e0000c40e000000000000000000007f7f7f37
2f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f
@@ -27112,19 +27116,18 @@ bfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbfbf
2f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f
2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b372f2b000005000000070101000000030000000000}}}{
\par
-\par If you hit the \'93C\'94 key, it will configure the project. You should use that as you change values in the cache. To
-change values, use the arrow keys to select cache entries, and the enter key to edit them. Boolean values will toggle with the enter key. Once you have set all the values as you like, you can hit the \lquote G\'94 key to generate the makefiles and exit.
-
+\par If you hit the \'93C\'94 key, it will configure the project. You should use that as you change values in the cache. To change values, use the arrow keys to select cache en
+tries, and the enter key to edit them. Boolean values will toggle with the enter key. Once you have set all the values as you like, you can hit the \lquote G\'94 key to generate the makefiles and exit.
\par
-\par }\pard\plain \s22\qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Two examples of
- CMake usage on the Unix platform follow for a hello world project called Hello. In the first example, and in-place build is performed, i.e., the binaries are placed in the same directory as the source code.
+\par }\pard\plain \s22\qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Two examples of CMake usage on the Unix platform follow for a
+ hello world project called Hello. In the first example, and in-place build is performed, i.e., the binaries are placed in the same directory as the source code.
\par }\pard \s22\ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {
\par }\pard\plain \ql \li720\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin720\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {cd Hello
\par }\pard \ql \fi720\li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {ccmake
\par }\pard\plain \s22\ql \fi720\li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {make
\par }\pard \s22\qj \fi720\li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {
-\par }\pard \s22\qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {
-In the second example, an out-of-place build is performed, i.e., the source code, libraries, and executables are produced in a directory separate from the source code directory(ies).
+\par }\pard \s22\qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {In the second example, an out-of-place build is performed, i.e., the
+source code, libraries, and executables are produced in a directory separate from the source code directory(ies).
\par }\pard\plain \ql \li360\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin360\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
\par }\pard \ql \li720\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin720\itap0 {mkdir Hello-Linux
\par cd Hello-Linux
@@ -27132,58 +27135,63 @@ In the second example, an out-of-place build is performed, i.e., the source code
\par make
\par
\par }\pard \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {
-\par If you have FLTK installed on your machine, a UNIX GUI will be produced for cmake. It is called CMakeSetup and is similar to the Windows GUI described above. The onl
-y difference is that it produces makefiles and not Microsoft project files. If you do not have curses or FLTK, see the instructions for running CMake from the command line.
+\par If you have FLTK installed on your machine, a UNIX GUI will be produced for cmake.
+It is called CMakeSetup and is similar to the Windows GUI described above. The only difference is that it produces makefiles and not Microsoft project files. If you do not have curses or FLTK, see the instructions for running CMake from the command lin
+e.
\par
\par }\pard\plain \s3\ql \li0\ri-720\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin-720\lin0\itap0 \b\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Running CMake from the command line
\par }\pard\plain \s22\ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par }\pard \s22\qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {Using CMake to build a project from the comm
-and line is a simple process if the project does not have many options. For larger projects like VTK, using ccmake or CMakeSetup is recommended. This is because as you change options in the CMakeCache.txt file, cmake will add new entries to that file.
-It can be difficult to know when to stop the run cmake, edit the cache file cycle without the aid of an interface.
+\par From the command line, cmake can be run as an interactive question and answer session or as a non-interactive program. To run in interactive mode, just pass the option \'93-i\'94 to
+cmake. This will cause cmake to ask you to enter a value for each value in the cache file for the project. The process stops when there are no longer any more questions to ask.
\par
-\par To build with just cmake change directory into where you want the binaries to be placed. For an in-place build you then run cmake and it will
- produce a CMakeCache.txt file that contains build options that you can adjust using any text editor. For non in-place builds the process is the same except you run cmake and provide the path to the source code as its argument. Once you have edited the CM
-akeCache.txt file you rerun cmake, repeat this process until you are happy with the cache settings. The type make and your project should compile. Some projects will have install targets as well so you can type make install to install them.
+\par Using CMake to build a project in non-interactive mode is a simple process if the project does not have many options. For larger projects like VTK, using ccmake, cmake \endash i, or CMakeSetup is recommended. This is because as you ch
+ange options in the CMakeCache.txt file, cmake will add new entries to that file. It can be difficult to know when to stop the run cmake, edit the cache file cycle without the aid of an interface.
+\par }\pard \s22\qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {
+\par To build with just cmake change directory into where you
+want the binaries to be placed. For an in-place build you then run cmake and it will produce a CMakeCache.txt file that contains build options that you can adjust using any text editor. For non in-place builds the process is the same except you run cmake
+a
+nd provide the path to the source code as its argument. Once you have edited the CMakeCache.txt file you rerun cmake, repeat this process until you are happy with the cache settings. The type make and your project should compile. Some projects will have i
+nstall targets as well so you can type make install to install them.
\par
-\par When running cmake from the command line, it is possible to specify command line options to cmake that will set values in the cache. This is done with a \endash DVARIABLE:
-TYPE=VALUE syntax on the command line. This is useful for non-interactive nightly test builds.
+\par When running cmake from the command line, it is possible to specify command line options to cmake that will set values in the cache. This is done with a \endash DVARIABLE:TYPE=VALUE syntax on t
+he command line. This is useful for non-interactive nightly test builds.
\par }\pard\plain \ql \li720\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin720\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
\par }\pard\plain \s3\ql \li0\ri-720\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin-720\lin0\itap0 \b\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {What is the CMake cache?
\par }\pard\plain \ql \li1170\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin1170\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\dbch\af28
-\par }\pard \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {The cache is better thought of as a configuration file. Indeed Unix users could consider the cache as equivalent to the set of flags passed to the configure command.
- The first time CMake is run, it produces a CMakeCache.txt file.\~ This file contains things like the existence and location of native JPEG library.\~
+\par }\pard \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {The cache is better thought of as a configuration file. Indeed Unix users could consider the cache as equivalent to the set of flags passed to the configu
+re command. The first time CMake is run, it produces a CMakeCache.txt file.\~ This file contains things like the existence and location of native JPEG library.\~
The entries are added in response to certain CMake commands (e.g. FIND_LIBRARY) as they are processed anywhere in CMakeLists files anywhere in the source tree.
\par
-\par After CMake has been run, and created a CMakeCache.txt file - you may edit it. The CMake GUI, will allow you to edit the options easily, or you can edit the file directly. The main reason for editing th
-e cache would be to give CMake the location of a native library such as JPEG, or to stop it from using a native library and use a version of the library in your source tree.
+\par After CMake has been run, and created a CMakeCache.txt file - you may edit it. The CMake GUI, will allow you to edit the options easily, or you can edit the file directly. The main reason fo
+r editing the cache would be to give CMake the location of a native library such as JPEG, or to stop it from using a native library and use a version of the library in your source tree.
\par }\pard \ql \li1170\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin1170\itap0 {
-\par }\pard \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {CMake will not alter an existing entry in the cache file itself. If your CMakeLis
-ts.txt files change significantly, you will need to remove the relevant entries from the cache file. If you have not already hand-edited the cache file, you could just delete it before re-running CMake.
+\par }\pard \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {CMake will not alter an existing entry in the cache file itself. If y
+our CMakeLists.txt files change significantly, you will need to remove the relevant entries from the cache file. If you have not already hand-edited the cache file, you could just delete it before re-running CMake.
\par
\par }\pard\plain \s3\ql \li0\ri-720\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin-720\lin0\itap0 \b\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Why do I have to edit the cache more than once for some projects?
\par }\pard\plain \qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par Some projects are very complex and setting one value in the cache may cause new options to appear the next time the cache is built. For example, VTK supports the use of MPI for performing distributed computing. This requires the build proc
-ess to determine where the MPI libraries and header files are and to let the user adjust their values. But MPI is only available if another option VTK_USE_PARALLEL is first turned on in VTK. So to avoid confusion for people who don\rquote
-t know what MPI is, we h
-ide those options until VTK_USE_PARALLEL is turned on. So CMake shows the VTK_USE_PARALLEL option in the cache area, if the user turns that on and rebuilds the cache, new options will appear for MPI that they can then set. The rule is to keep building the
- cache until it doesn\rquote t change. For most projects this will be just once. For some complicated ones it will be twice.
+\par Some projects are very complex and setting one value in the cache may cause new options to appear the next time the cache is built. For example, VTK supports the use of MPI for performing distributed computing. This requires th
+e build process to determine where the MPI libraries and header files are and to let the user adjust their values. But MPI is only available if another option VTK_USE_PARALLEL is first turned on in VTK. So to avoid confusion for people who don\rquote
+t know what
+MPI is, we hide those options until VTK_USE_PARALLEL is turned on. So CMake shows the VTK_USE_PARALLEL option in the cache area, if the user turns that on and rebuilds the cache, new options will appear for MPI that they can then set. The rule is to keep
+building the cache until it doesn\rquote t change. For most projects this will be just once. For some complicated ones it will be twice.
\par
\par }\pard\plain \s1\ql \li0\ri-720\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin-720\lin0\itap0 \b\fs36\ul\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
\par Developer's Guide
\par }\pard\plain \qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par This section describes how to use CMake from the software developer\rquote s point of view. That is, if your aim is to use CM
-ake to manage your build process, read this section first. An Extension Guide follows later in this document to explain the internals of CMake, and how to setup the CMake environment. Read that section only if you plan to install, extend, or enhance the f
-eatures of CMake. This section of the User\rquote s Guide begins with a description of the CMake inputs. Examples then follow to clarify these descriptions.
+\par This section describes how to use CMake from the software developer\rquote s point of view. That is, if your aim
+is to use CMake to manage your build process, read this section first. An Extension Guide follows later in this document to explain the internals of CMake, and how to setup the CMake environment. Read that section only if you plan to install, extend, or e
+nhance the features of CMake. This section of the User\rquote s Guide begins with a description of the CMake inputs. Examples then follow to clarify these descriptions.
\par }\pard \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {
\par }\pard\plain \s2\ql \li0\ri-720\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin-720\lin0\itap0 \b\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Input to CMake
\par }\pard\plain \ql \li1170\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin1170\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par }\pard \qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {CMake\rquote s input is the text file CMakeLists.txt in your source directory. This input file sp
-ecifies the things that need to be built in the current directory. The CMakeLists.txt consists of one or more commands. Each command is of the form:
+\par }\pard \qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {CMake\rquote s input is the text file CMakeLists.txt in your source directory. This i
+nput file specifies the things that need to be built in the current directory. The CMakeLists.txt consists of one or more commands. Each command is of the form:
\par }\pard \ql \li720\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin720\itap0 {
\par COMMAND(args\'85)
\par
-\par }\pard \qj \li0\ri-720\nowidctlpar\faauto\rin-720\lin0\itap0 {Where COMMAND is the name of the command, and args is a white-space separated list of arg
-uments to the command. (Arguments with embedded white-space should be quoted.) Typically there will be a CMakeLists.txt file for each directory of the project. Let\rquote
+\par }\pard \qj \li0\ri-720\nowidctlpar\faauto\rin-720\lin0\itap0 {Where COMMAND is the name of the command, and args is a white-space separated
+ list of arguments to the command. (Arguments with embedded white-space should be quoted.) Typically there will be a CMakeLists.txt file for each directory of the project. Let\rquote
s start with a simple example. Consider building hello world. You would have a source tree with the following files:
\par
\par Hello.c CMakeLists.txt
@@ -27193,8 +27201,8 @@ s start with a simple example. Consider building hello world. You would have a s
\par PROJECT (Hello)
\par ADD_EXECUTABLE(Hello Hello.c)
\par
-\par To build the Hello executable you just follow the process described in }{\b Running CMake}{ above to generate the m
-akefiles or Microsoft project files. The PROJECT command indicates what the name of the resulting workspace should be and the ADD_EXECUTABLE command adds an executable target to the build process. That\rquote
+\par To build the Hello executable you just follow the process described in }{\b Running CMake}{ above to ge
+nerate the makefiles or Microsoft project files. The PROJECT command indicates what the name of the resulting workspace should be and the ADD_EXECUTABLE command adds an executable target to the build process. That\rquote
s all there is to it for this simple example. If your project requires a few files it is also quite easy, just modify the ADD_EXECUTABLE line as shown below.
\par
\par ADD_EXECUTABLE(Hello Hello.c File2.c File3.c File4.c)
@@ -27217,13 +27225,13 @@ s all there is to it for this simple example. If your project requires a few fil
\par TARGET_ADD_LIBRARY (Hello TCL_LIBRARY)
\par ENDIF (TCL_LIBRARY)
\par
-\par }\pard \qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {In this example the SOURCE_FILES command is used to group together source files
- into a list. The IF command is used to add either WinSupport.c or UnixSupport.c to this list. And finally the ADD_EXECUTABLE command is used to build the executable with the files listed in the source list HELLO_SRCS. The FIND_LIBRARY command looks for t
-he Tcl library under a few different names and in a few different paths, and if it is found adds it to the link line for the Hello executable target. Note the use of the # character to denote a comment line.
+\par }\pard \qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {In this example the SOURCE_FILES command is used to group together
+source files into a list. The IF command is used to add either WinSupport.c or UnixSupport.c to this list. And finally the ADD_EXECUTABLE command is used to build the executable with the files listed in the source list HELLO_SRCS. The FIND_LIBRARY command
+ looks for the Tcl library under a few different names and in a few different paths, and if it is found adds it to the link line for the Hello executable target. Note the use of the # character to denote a comment line.
\par }\pard \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {
-\par }\pard \qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {CMake always defines some variables for use with
-in CMakeList files. For example, WIN32 is always defined on windows systems and UNIX is always defined for UNIX systems. CMake defines a number of commands. A brief summary of the most commonly used commands follows here. Later in the document an exhausti
-ve list of all pre-defined commands is presented. (You may also add your own commands, see the Extension Guide for more information.)
+\par }\pard \qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {CMake always defines some variables
+for use within CMakeList files. For example, WIN32 is always defined on windows systems and UNIX is always defined for UNIX systems. CMake defines a number of commands. A brief summary of the most commonly used commands follows here. Later in the document
+ an exhaustive list of all pre-defined commands is presented. (You may also add your own commands, see the Extension Guide for more information.)
\par }\pard \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {
\par {\pntext\pard\plain\hich\af0\dbch\af0\loch\f0 A)\tab}}\pard \ql \fi-360\li720\ri-720\widctlpar\jclisttab\tx720{\*\pn \pnlvlbody\ilvl0\ls9\pnrnot0\pnucltr\pnstart1\pnindent360\pnsp120\pnhang{\pntxta )}}
\aspalpha\aspnum\faauto\ls9\adjustright\rin-720\lin720\itap0 {Build Targets:
@@ -27234,13 +27242,13 @@ ve list of all pre-defined commands is presented. (You may also add your own com
\par AUX_SOURCE_DIRECTORY()
\par PROJECT()
\par }\pard \ql \li720\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin720\itap0 {
-\par }\pard \qj \li720\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin720\itap0 {CMake works rec
-ursively, descending from the current directory into any subdirectories listed in the SUBDIRS command. The command SOURCE_FILES is used for grouping source files together for later use. (Note: currently only C and C++ code can be compiled.) ADD_LIBRARY ad
+\par }\pard \qj \li720\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin720\itap0 {CMa
+ke works recursively, descending from the current directory into any subdirectories listed in the SUBDIRS command. The command SOURCE_FILES is used for grouping source files together for later use. (Note: currently only C and C++ code can be compiled.) AD
+D
+_LIBRARY adds a library to the list of targets this makefile will produce. ADD_EXECUTABLE adds an executable to the list of targets this makefile will produce. (Note: source code is compiled first, then libraries are built, and then executables are create
d
-s a library to the list of targets this makefile will produce. ADD_EXECUTABLE adds an executable to the list of targets this makefile will produce. (Note: source code is compiled first, then libraries are built, and then executables are created.) The AUX_
-S
-OURCE_DIRECTORY is a directory where other source code, not in this directory, whose object code is to be inserted into the current LIBRARY. All source files in the AUX_SOURCE_DIRECTORY are compiled (e.g. *.c, *.cxx, *.cpp, etc.). PROJECT (PojectName) is
- a special variable used in the MSVC to create the project for the compiler, it also defines two useful variables for CMAKE: ProjectName_SOURCE_DIR and ProjectName_BINARY_DIR.
+.) The AUX_SOURCE_DIRECTORY is a directory where other source code, not in this directory, whose object code is to be inserted into the current LIBRARY. All source files in the AUX_SOURCE_DIRECTORY are compiled (e.g. *.c, *.cxx, *.cpp, etc.). PROJECT (Po
+jectName) is a special variable used in the MSVC to create the project for the compiler, it also defines two useful variables for CMAKE: ProjectName_SOURCE_DIR and ProjectName_BINARY_DIR.
\par }\pard \ql \fi720\li720\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin720\itap0 {
\par {\pntext\pard\plain\hich\af0\dbch\af0\loch\f0 B)\tab}}\pard \ql \fi-360\li720\ri-720\widctlpar{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0\pnucltr\pnstart2\pnindent360\pnsp120\pnhang{\pntxta )}}\aspalpha\aspnum\faauto\ls6\adjustright\rin-720\lin720\itap0 {
Build flags and options. In addition to the commands listed above, CMakeLists.txt often contain the following commands:
@@ -27250,16 +27258,16 @@ Build flags and options. In addition to the commands listed above, CMakeLists.t
\par LINK_LIBRARIES()
\par TARGET_LINK_LIBRARIES()
\par }\pard \ql \li720\ri-720\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\aspalpha\aspnum\faauto\adjustright\rin-720\lin720\itap0 {
-\par }\pard \qj \li720\ri-720\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\aspalpha\aspnum\faauto\adjustright\rin-720\lin720\itap0 {
-These commands define directories and libraries used to compile source code and build executables. An important feature of the com
-mands listed above is that are inherited by any subdirectories. That is, as CMake descends through a directory hierarchy (defined by SUBDIRS()) these commands are expanded each time a definition for a command is encountered. For example, if in the top-lev
-el CMakeLists file has INCLUDE_DIRECTORIES(/usr/include), with SUBDIRS(./subdir1), and the file ./subdir1/CMakeLists.txt has INCLUDE_DIRECTORIES(/tmp/foobar), then the net result is
+\par }\pard \qj \li720\ri-720\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\aspalpha\aspnum\faauto\adjustright\rin-720\lin720\itap0 {These commands define directories and libraries used to compile source code and build executables. An important featur
+e of the commands listed above is that are inherited by any subdirectories. That is, as CMake descends through a directory hierarchy (defined by SUBDIRS()) these commands are expanded each time a definition for a command is encountered. For example, if in
+ the top-level CMakeLists file has INCLUDE_DIRECTORIES(/usr/include), with SUBDIRS(./subdir1), and the file ./subdir1/CMakeLists.txt has INCLUDE_DIRECTORIES(/tmp/foobar), then the net result is
\par }\pard \ql \li1170\ri-720\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\aspalpha\aspnum\faauto\adjustright\rin-720\lin1170\itap0 {
\par \tab INCLUDE_DIRECTORIES(/usr/include /tmp/foobar)
\par
\par {\pntext\pard\plain\hich\af0\dbch\af0\loch\f0 C)\tab}}\pard \qj \fi-360\li720\ri-720\widctlpar{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0\pnucltr\pnstart2\pnindent360\pnsp120\pnhang{\pntxta )}}\aspalpha\aspnum\faauto\ls6\adjustright\rin-720\lin720\itap0 {
-CMake comes with a number
-of modules that look for commonly used packages such as OpenGL or Java. These modules save you from having to write all the CMake code to find these packages yourself. Modules can be used by including them into your CMakeList file as shown below.
+CMake comes wi
+th a number of modules that look for commonly used packages such as OpenGL or Java. These modules save you from having to write all the CMake code to find these packages yourself. Modules can be used by including them into your CMakeList file as shown bel
+ow.
\par }\pard \ql \li1440\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin1440\itap0 {
\par INCLUDE ($\{CMAKE_ROOT\}/Modules/FindTCL.cmake)
\par
@@ -27272,8 +27280,8 @@ CMAKE_ROOT is always defined in CMake and can be used to point to where CMake wa
\par {\listtext\pard\plain\s22 \hich\af0\dbch\af0\loch\f0 1.\tab}}\pard \s22\ql \fi-360\li720\ri-720\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls16\adjustright\rin-720\lin720\itap0 {Create the new directory somewhere in your source directory hierarchy.
\par }\pard \s22\ql \li360\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin360\itap0 {
-\par {\listtext\pard\plain\s22 \hich\af0\dbch\af0\loch\f0 2.\tab}}\pard \s22\ql \fi-360\li720\ri-720\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls16\adjustright\rin-720\lin720\itap0 {Add the new directory to the SUBDIRS command in the pa
-rent directories CMakeLists.txt
+\par {\listtext\pard\plain\s22 \hich\af0\dbch\af0\loch\f0 2.\tab}}\pard \s22\ql \fi-360\li720\ri-720\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls16\adjustright\rin-720\lin720\itap0 {Add the new directory to the SUBDIRS comma
+nd in the parent directories CMakeLists.txt
\par }\pard \s22\ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {
\par {\listtext\pard\plain\s22 \hich\af0\dbch\af0\loch\f0 3.\tab}}\pard \s22\ql \fi-360\li720\ri-720\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls16\adjustright\rin-720\lin720\itap0 {
Create a CMakeLists.txt in the new directory with the appropriate commands
@@ -27282,8 +27290,8 @@ Create a CMakeLists.txt in the new directory with the appropriate commands
\par }\pard\plain \s2\ql \li0\ri-720\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin-720\lin0\itap0 \b\fs28\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {CMake Commands
\par }\pard\plain \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {The following is an exhaustive list of pre-defined CMake commands, with brief descriptions.
\par
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li720\ri-720\sb100\sa100\sbauto1\saauto1\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls22\adjustright\rin-720\lin720\itap0 {\b ABSTRACT_FILES}{
- - A list of abstract classes, useful for wrappers. \line }{\i Usage:}{ ABSTRACT_FILES(file1 file2 ..)
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li720\ri-720\sb100\sa100\sbauto1\saauto1\widctlpar\jclisttab\tx720\aspalpha\aspnum\faauto\ls22\adjustright\rin-720\lin720\itap0 {\b ABSTRACT_FILES}{ - A list of
+ abstract classes, useful for wrappers. \line }{\i Usage:}{ ABSTRACT_FILES(file1 file2 ..)
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b ADD_CUSTOM_COMMAND}{ - Create new command within CMake. \line }{\i Usage:}{
ADD_CUSTOM_COMMAND(SOURCE source COMMAND command TARGET target [ARGS [args...]] [DEPENDS [depends...]] [OUTPUTS [outputs...]]) Add a custom command.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b ADD_CUSTOM_TARGET}{ - Add an extra target to the build system that does not produce output, so it is run each time the target is built. \line }{\i Usage:}{
@@ -27293,17 +27301,17 @@ Create a CMakeLists.txt in the new directory with the appropriate commands
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b ADD_DEPENDENCIES}{ - Add an dependency to a target \line }{\i Usage:}{
ADD_DEPENDENCIES(target-name depend-target depend-target) Add a dependency to a target. This is only used to add dependencies between one executable and another. Regular build dependencies are handled automatically.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b ADD_EXECUTABLE}{ - Add an executable to the project that uses the specified srclists \line }{\i Usage:}{
- ADD_EXECUTABLE(exename srclist srclist srclist ...) ADD_EXECUTABLE(exename WIN32 srclist srclist srclist ...)This command adds an executable target to the cu
-rrent directory. The executable will be built from the source files / source lists specified. The second argument to this command can be WIN32 which indicates that the executable (when compiled on windows) is a windows app (using WinMain)not a console app
- (using main).
+ ADD_EXECUTABLE(exename srclist srclist srclist ...) ADD_EXECUTABLE(exename WIN32 srclist srclist srclist ...)This command adds an executable targ
+et to the current directory. The executable will be built from the source files / source lists specified. The second argument to this command can be WIN32 which indicates that the executable (when compiled on windows) is a windows app (using WinMain)not a
+ console app (using main).
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b ADD_LIBRARY}{ - Add an library to the project that uses the specified srclists \line }{\i Usage:}{
- ADD_LIBRARY(libname [SHARED | STATIC | MODULE] srclist srclist ...) Adds a library target. SHARED, STATIC or MODULE keywords are used to set the library type
-. If the keywork MODULE appears, the library type is set to MH_BUNDLE on systems which use dyld. Systems without dyld MODULE is treated like SHARED. If no keywords appear as the second argument, the type defaults to the current value of BUILD_SHARED_LIBS.
- If this variable is not set, the type defaults to STATIC.
+ ADD_LIBRARY(libname [SHARED | STATIC | MODULE] srclist srclist ...) Adds a library target. SHARED, STATIC or MODULE keywords are used to set the
+library type. If the keywork MODULE appears, the library type is set to MH_BUNDLE on systems which use dyld. Systems without dyld MODULE is treated like SHARED. If no keywords appear as the second argument, the type defaults to the current value of BUILD_
+SHARED_LIBS. If this variable is not set, the type defaults to STATIC.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b ADD_TEST}{ - Add a test to the project with the specified arguments. \line }{\i Usage:}{
- ADD_TEST(testname exename arg1 arg2 arg3 ...) If the ENABLE_TESTING command has been run, this command adds atest target to
- the current directory. If ENABLE_TESTING has notbeen run, this command does nothing. The tests are run by the testing subsystem by executing exename with the specified arguments. exename can be either an executable built by built by this project or an ar
-bitrary executable on the system (like tclsh).
+ ADD_TEST(testname exename arg1 arg2 arg3 ...) If the ENABLE_TESTING command has been run, this command adds ate
+st target to the current directory. If ENABLE_TESTING has notbeen run, this command does nothing. The tests are run by the testing subsystem by executing exename with the specified arguments. exename can be either an executable built by built by this proj
+ect or an arbitrary executable on the system (like tclsh).
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b AUX_SOURCE_DIRECTORY}{ - Add all the source files found in the specified directory to the build as source list NAME. \line }{\i Usage:}{ AUX_SOURCE_DIRECTORY(dir srcListName)
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b BUILD_COMMAND}{ - Determine the command line that will build this project. \line }{\i Usage:}{
BUILD_COMMAND(NAME) Within CMAKE set NAME to the command that will build this project from the command line.
@@ -27313,64 +27321,65 @@ bitrary executable on the system (like tclsh).
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b CABLE_WRAP_TCL}{ - Wrap a set of classes in Tcl. \line }{\i Usage:}{
CABLE_WRAP_TCL(target class1 class2 ...) Wrap the given set of classes in Tcl using the CABLE tool. The set of source files produced for the given package name will be added to a source list with the given name.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b CONFIGURE_FILE}{ - Create a file from an autoconf style file.in file. \line }{\i Usage:}{
- CONFIGURE_FILE(InputFile OutputFile [COPYONLY] [ESCAPE_QUOTES] [IMMEDIATE] [@ONLY]) The Input and Ouput files have to have full paths. They can also use v
-ariables like CMAKE_BINARY_DIR,CMAKE_SOURCE_DIR. This command replaces any variables in the input file with their values as determined by CMake. If a variables in not defined, it will be replaced with nothing. If COPYONLY is passed in, then then no varibl
+ CONFIGURE_FILE(InputFile OutputFile [COPYONLY] [ESCAPE_QUOTES] [IMMEDIATE] [@ONLY]) The Input and Ouput files have to have full paths. They ca
+n also use variables like CMAKE_BINARY_DIR,CMAKE_SOURCE_DIR. This command replaces any variables in the input file with their values as determined by CMake. If a variables in not defined, it will be replaced with nothing. If COPYONLY is passed in, then th
e
- expansion will take place. If ESCAPE_QUOTES is passed in then any substitued quotes will be C style escaped. If IMMEDIATE is specified, then the file will be configured with the current values of CMake variables instead of waiting until the end of CMakeL
-ists processing. If @ONLY is present, only variables of the form @var@ will be replaces and $\{var\} will be ignored. This is useful for configuring tcl scripts that use $\{var\}.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b CONFIGURE_GCCXML}{ - Configure the flags needed for GCC-XML to run. \line }{\i Usage:}{ CONFIGU
-RE_GCCXML(exe_location flags_def) Configures the flags GCC-XML needs to parse source code just as the current compiler would. This includes using the compiler's standard header files. First argument is input of the full path to the GCC-XML executable. The
- second argument should be the name of a cache entry to set with the flags chosen.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b ELSE}{ - starts the else portion of an if block \line }{\i Usage:}{
- ELSE(args), Note that the args for the ELSE clause must match those of the IF clause. See the IF command for more information.
+n no varible expansion will take place. If ESCAPE_QUOTES is passed in then any substitued quotes will be C style escaped. If IMMEDIATE is specified, then the file will be configured with the current values of CMake variables instead of waiting until the e
+nd of CMakeLists processing. If @ONLY is present, only variables of the form @var@ will be replaces and $\{var\} will be ignored. This is useful for configuring tcl scripts that use $\{var\}.
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b CONFIGURE_GCCXML}{ - Configure the flags needed for GCC-XML to run. \line }{\i Usage:}{
+ CONFIGURE_GCCXML(exe_location flags_def) Configures the flags GCC-XML needs to parse source code just as the current compiler would. This includes using the compiler's standard header files. First argument is input of the full path to the GCC-XML exec
+utable. The second argument should be the name of a cache entry to set with the flags chosen.
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b ELSE}{ - starts the else portion of an if block \line }{\i Usage:}{ ELSE(args), Note that the args for the ELSE clause must match those of the IF clause. See the IF command fo
+r more information.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b ENABLE_TESTING}{ - Enable testing for this directory and below. \line }{\i Usage:}{
ENABLE_TESTING() Enables testing for this directory and below. See also the ADD_TEST command. Note that Dart expects to find this file in the build directory root; therefore, this command should be in the source directory root too.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b ENDFOREACH}{ - ends a foreach block \line }{\i Usage:}{ ENDFOREACH(define)
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b ENDIF}{ - ends an if block \line }{\i Usage:}{ ENDIF(define)
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b EXEC_PROGRAM}{ - Run and executable program during the processing of the CMakeList.txt file. \line }{\i Usage:}{ EXEC_PROGRAM(Executble [Directory to run in])
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b FIND_FILE}{ - Find a file. \line }{\i Usage:}{
- FIND_FILE(NAME file extrapath extrapath ... [DOC docstring])Find a file in the system PATH or in any extra paths specified in the command.A cache entry called NAME is creat
-ed to store the result. NOTFOUND is the value used if the file was not found. If DOC is specified the next argument is the documentation string for the cache entry NAME.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b FIND_LIBRARY}{ - Find a library. \line }{\i Usage:}{ FIND_LIBRARY(DEFINE_PATH libraryName [NAMES] na
-me1 name2 name3 [PATHS path1 path2 path3...] [DOC docstring] ) If the library is found, then DEFINE_PATH is set to the full path where it was found. If DOC is specified the next argument is the documentation string for the cache entry NAME.
+ FIND_FILE(NAME file extrapath extrapath ... [DOC docstring])Find a file in the system PATH or in any extra paths specified in the command.A cache entry called N
+AME is created to store the result. NOTFOUND is the value used if the file was not found. If DOC is specified the next argument is the documentation string for the cache entry NAME.
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b FIND_LIBRARY}{ - Find a library. \line }{\i Usage:}{ FIND_LIBRARY(DEFINE_PATH libraryNam
+e [NAMES] name1 name2 name3 [PATHS path1 path2 path3...] [DOC docstring] ) If the library is found, then DEFINE_PATH is set to the full path where it was found. If DOC is specified the next argument is the documentation string for the cache entry NAME.
+
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b FIND_PATH}{ - Find a path for a file. \line }{\i Usage:}{
FIND_PATH(PATH_DEFINE fileName path1 path2 path3...) If the file is found, then PATH_DEFINE is set to the path where it was found.If DOC is specified the next argument is the documentation string for the cache entry NAME.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b FIND_PROGRAM}{ - Find an executable program. \line }{\i Usage:}{
- FIND_PROGRAM(NAME executable1 extrapath extrapath ... [DOC helpstring]) Find the executable in the system PATH or in any extra paths specified in the command.A cache entry called NAME is created to store the re
-sult. NOTFOUND is the value used if the program was not found. If DOC is specified the next argument is the documentation string for the cache entry NAME.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b FLTK_WRAP_UI}{ - Create FLTK user interfaces Wrappers. \line }{\i Usage:}{ FLTK_WRAP_UI(resultingLibraryName Source
-List) Produce .h and .cxx files for all the .fl and .fld file listed in the SourceList. The .h files will be added to the library using the base name in source list. The .cxx files will be added to the library using the base name in source list.
+ FIND_PROGRAM(NAME executable1 extrapath extrapath ... [DOC helpstring]) Find the executable in the system PATH or in any extra paths specified in the command.A cache entry called NAME is created to
+store the result. NOTFOUND is the value used if the program was not found. If DOC is specified the next argument is the documentation string for the cache entry NAME.
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b FLTK_WRAP_UI}{ - Create FLTK user interfaces Wrappers. \line }{\i Usage:}{ FLTK_WRAP_UI(resultingLibrar
+yName SourceList) Produce .h and .cxx files for all the .fl and .fld file listed in the SourceList. The .h files will be added to the library using the base name in source list. The .cxx files will be added to the library using the base name in source lis
+t.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b FOREACH}{ - start a foreach loop \line }{\i Usage:}{ FOREACH (define arg1 arg2 arg2) Starts a foreach block.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b GET_FILENAME_COMPONENT}{ - Get a specific component of a full filename. \line }{\i Usage:}{
- GET_FILENAME_COMPONENT(VarName FileName PATH|NAME|EXT|NAME_WE [CACHE]) Set VarName to be the
-path (PATH), file name (NAME), file extension (EXT) or file name without extension (NAME_WE) of FileName. Note that the path is converted to Unix slashes format and has no trailing slashes. The longest file extension is always considered. Warning: as a ut
-ility command, the resulting value is not put in the cache but in the definition list, unless you add the optional CACHE parameter.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b IF}{ - start an if block \line }{\i Usage:}{ IF (define) Starts an if block. Optionally it can be invoked using (NOT define) (def AND def2)
- (def OR def2) (def MATCHES def2) MATCHES checks if def matches the regular expression def2
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b INCLUDE}{ - Basically identical to a C #include "somthing" command. \line }{\i Usage:}{ INCLUDE(file1 [OPTIONAL]) If OPTIONAL is present, then do not complain if the file does n
-ot exist.
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b GET_FILENAME_COMPONENT}{ - Get a specific component of a full filename. \line }{\i Usage:}{ GET_FILENAME_COMPONENT(VarName FileName PATH|NAME|EXT|NAME_WE [CACHE]) Set VarNam
+e to be the path (PATH), file name (NAME), file extension (EXT) or file name without extension (NAME_WE) of FileName. Note that the path is converted to Unix slashes format and has no trailing slashes. The longest file extension is always considered. Warn
+ing: as a utility command, the resulting value is not put in the cache but in the definition list, unless you add the optional CACHE parameter.
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b IF}{ - start an if block \line }{\i Usage:}{ IF (define) Starts an if block. Optionally it can be invoked using (NOT define) (d
+ef AND def2) (def OR def2) (def MATCHES def2) MATCHES checks if def matches the regular expression def2
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b INCLUDE}{ - Basically identical to a C #include "somthing" command. \line }{\i Usage:}{ INCLUDE(file1 [OPTIONAL]) If OPTIONAL is present, then do not complain if the
+ file does not exist.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b INCLUDE_DIRECTORIES}{ - Add include directories to the build. \line }{\i Usage:}{ INCLUDE_DIRECTORIES([BEFORE] dir1 dir2 ...)
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b INCLUDE_EXTERNAL_MSPROJECT}{ - Include an external Microsoft project file in a workspace. \line }{\i Usage:}{ INCLUDE_EXTERNAL_MSPROJECT(projectname
- location dep1 dep2 ...) Includes an external Microsoft project in the workspace file. Does nothing on UNIX currently
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b INCLUDE_REGULAR_EXPRESSION}{ - Set the regular expression used for dependency checking. \line }{\i Usage:}{ INCLUDE_REGULAR_EXPRESSION(regex_match [reg
-ex_complain]) Set the regular expressions used in dependency checking. Only files matching regex_match will be traced as dependencies. Only files matching regex_complain will generate warnings if they cannot be found (standard header paths are not searche
-d). The defaults are: regex_match = "^.*$" (match everything) regex_complain = "^$" (match empty string only)
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b INSTALL_FILES}{ - Create install rules for files \line }{\i Usage:}{ INSTALL_FILES(path extension srclist file file srclist ...) INSTALL_FILES(path regexp) Crea
-te rules to install the listed files into the path. Path is relative to the variable CMAKE_INSTALL_PREFIX. There are two forms for this command. In the first the files can be specified explicitly or by referenceing source lists. All files must either have
- the extension specified or exist with the extension appended. A typical extension is .h etc... In the second form any files in the current directory that match the regular expression will be installed.
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b INCLUDE_EXTERNAL_MSPROJECT}{ - Include an external Microsoft project file in a workspace. \line }{\i Usage:}{ INCLUDE_EXTERNAL_MSPROJECT
+(projectname location dep1 dep2 ...) Includes an external Microsoft project in the workspace file. Does nothing on UNIX currently
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b INCLUDE_REGULAR_EXPRESSION}{ - Set the regular expression used for dependency checking. \line }{\i Usage:}{ INCLUDE_REGULAR_EXPRESSION(rege
+x_match [regex_complain]) Set the regular expressions used in dependency checking. Only files matching regex_match will be traced as dependencies. Only files matching regex_complain will generate warnings if they cannot be found (standard header paths are
+ not searched). The defaults are: regex_match = "^.*$" (match everything) regex_complain = "^$" (match empty string only)
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b INSTALL_FILES}{ - Create install rules for files \line }{\i Usage:}{ INSTALL_FILES(path extension srclist file file srclist ...) INSTALL_FILES(path
+regexp) Create rules to install the listed files into the path. Path is relative to the variable CMAKE_INSTALL_PREFIX. There are two forms for this command. In the first the files can be specified explicitly or by referenceing source lists. All files must
+ either have the extension specified or exist with the extension appended. A typical extension is .h etc... In the second form any files in the current directory that match the regular expression will be installed.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b INSTALL_PROGRAMS}{ - Create install rules for programs \line }{\i Usage:}{
- INSTALL_PROGRAMS(path file file ...) INSTALL_PROGRAMS(path regexp) Create rules to install the listed programs into the path. Path is relative to the variable CMAKE_INSTALL_PREFIX. There are two forms for this command. In the first the programs can
-be specified explicitly. In the second form any program in the current directory that match the regular expression will be installed.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b INSTALL_TARGETS}{ - Create install rules for targets \line }{\i Usage:}{ INSTALL_TARGETS(path target target) Create rules to install the
- listed targets into the path. Path is relative to the variable PREFIX
+ INSTALL_PROGRAMS(path file file ...) INSTALL_PROGRAMS(path regexp) Create rules to install the listed programs into the path. Path is relative to the variable CMAKE_INSTALL_PREFIX. There are two forms for this command. In the first the p
+rograms can be specified explicitly. In the second form any program in the current directory that match the regular expression will be installed.
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b INSTALL_TARGETS}{ - Create install rules for targets \line }{\i Usage:}{ INSTALL_TARGETS(path target target) Create rules to
+ install the listed targets into the path. Path is relative to the variable PREFIX
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b LINK_DIRECTORIES}{ - Specify link directories. \line }{\i Usage:}{
LINK_DIRECTORIES(directory1 directory2 ...) Specify the paths to the libraries that will be linked in. The directories can use built in definitions like CMAKE_BINARY_DIR and CMAKE_SOURCE_DIR.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b LINK_LIBRARIES}{ - Specify a list of libraries to be linked into executables or shared objects. \line }{\i Usage:}{
- LINK_LIBRARIES(library1 library2 ...) Specify a list of libraries to be linked into executable
-s or shared objects. This command is passed down to all other commands. The debug and optimized strings may be used to indicate that the next library listed is to be used only for that specific type of build
+ LINK_LIBRARIES(library1 library2 ...) Specify a list of libraries to be linked int
+o executables or shared objects. This command is passed down to all other commands. The debug and optimized strings may be used to indicate that the next library listed is to be used only for that specific type of build
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b LOAD_CACHE}{ - load in the values from another cache. \line }{\i Usage:}{
- LOAD_CACHE(pathToCacheFile [EXCLUDE entry1...] [INCLUDE_INTERNALS entry1...]) Load in the values from another cache. This is useful for a project that depends on another project built in a different tree.EXCLUDE option can be used to provide a
-list of entries to be included.INCLUDE_INTERNALS can be used to provide a list of internal entriesto be included. Normally, no internal entries are brougt in.
+ LOAD_CACHE(pathToCacheFile [EXCLUDE entry1...] [INCLUDE_INTERNALS entry1...]) Load in the values from another cache. This is useful for a project that depends on another project built in a different tree.EXCLUDE option can be used t
+o provide a list of entries to be included.INCLUDE_INTERNALS can be used to provide a list of internal entriesto be included. Normally, no internal entries are brougt in.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b MAKE_DIRECTORY}{ - Create a directory in the build tree if it does not exist. Parent directories will be created if the do not exist.. \line }{\i Usage:}{ MAKE_DIRECTORY(directory)
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b MARK_AS_ADVANCED}{ - Mark a cmake varible as advanced. \line }{\i Usage:}{
@@ -27380,23 +27389,23 @@ list of entries to be included.INCLUDE_INTERNALS can be used to provide a list o
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b OPTION}{ - Provides an option that the user can optionally select \line }{\i Usage:}{
OPTION(USE_MPI "help string decribing the option" [initial value]) Provide an option for the user to select
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b OUTPUT_REQUIRED_FILES}{ - Output a list of required source files for a specified source file. \line }{\i Usage:}{
- OUTPUT_REQUIRED_FILES(srcfile outputfile) Outputs a list of all the source files that are required by the specified srcfile. This list is written into outputfile. This is similar to writing out the depend
-encies for srcfile except that it jumps from .h files into .cxx, .c and .cpp files if possible.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b PROJECT}{ - Set a name for the entire project. One argument. \line }{\i Usage:}{ PROJECT(projectname) Sets the name of the Microsoft workspace .dsw file. Does nothing on UNIX
- currently
+ OUTPUT_REQUIRED_FILES(srcfile outputfile) Outputs a list of all the source files that are required by the specified srcfile. This list is written into outputfile. This is similar to writing ou
+t the dependencies for srcfile except that it jumps from .h files into .cxx, .c and .cpp files if possible.
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b PROJECT}{ - Set a name for the entire project. One argument. \line }{\i Usage:}{ PROJECT(projectname) Sets the name of the Microsoft workspace .dsw file. Does not
+hing on UNIX currently
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b QT_WRAP_CPP}{ - Create QT Wrappers. \line }{\i Usage:}{
QT_WRAP_CPP(resultingLibraryName DestName SourceLists ...) Produce moc files for all the .h file listed in the SourceLists. The moc files will be added to the library using the DestName source list.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b QT_WRAP_UI}{ - Create QT user interfaces Wrappers. \line }{\i Usage:}{
- QT_WRAP_UI(resultingLibraryName HeadersDestName SourcesDestName SourceLists ...) Produce .h and .cxx files for all the .ui file listed in the SourceLists. The .h files will be added to the library using
- the HeadersDestName source list. The .cxx files will be added to the library using the SourcesDestName source list.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b SET}{ - Set a CMAKE variable to a value \line }{\i Usage:}{ SET(VAR [VALUE] [CACHE TYPE DOCSTRING]) Within CMAKE sets VAR to the value VALUE. VALUE is ex
-panded before VAR is set to it. If CACHE is present, then the VAR is put in the cache. TYPE and DOCSTRING are required. If TYPE is INTERNAL, then the VALUE is Always written into the cache, replacing any values existing in the cache. If it is not a CACHE
-VAR, then this always writes into the current makefile.
+ QT_WRAP_UI(resultingLibraryName HeadersDestName SourcesDestName SourceLists ...) Produce .h and .cxx files for all the .ui file listed in the SourceLists. The .h files will be added to the l
+ibrary using the HeadersDestName source list. The .cxx files will be added to the library using the SourcesDestName source list.
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b SET}{ - Set a CMAKE variable to a value \line }{\i Usage:}{ SET(VAR [VALUE] [CACHE TYPE DOCSTRING]) Within CMAKE sets VAR to the value VALUE.
+ VALUE is expanded before VAR is set to it. If CACHE is present, then the VAR is put in the cache. TYPE and DOCSTRING are required. If TYPE is INTERNAL, then the VALUE is Always written into the cache, replacing any values existing in the cache. If it is
+not a CACHE VAR, then this always writes into the current makefile.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b SITE_NAME}{ - Set a CMAKE variable to the name of this computer. \line }{\i Usage:}{ SITE_NAME(NAME) Within CMAKE sets NAME to the host name of the computer.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b SOURCE_FILES}{ - Add a list of source files, associate them with a NAME. \line }{\i Usage:}{ SOURCE_FILES(NAME file1 file2 ...)
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b SOURCE_FILES_REMOVE}{ - Remove a list of source files - associated with NAME. \line }{\i Usage:}{ SOURCE_FILES_REMOVE(NAME file1 file2 ...)
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b SOURCE_GROUP}{ - Define a grouping for sources in the makefile. \line }{\i Usage:}{ SOU
-RCE_GROUP(name regex) Defines a new source group. Any file whose name matches the regular expression will be placed in this group. The LAST regular expression of all defined SOURCE_GROUPs that matches the file will be selected.
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b SOURCE_GROUP}{ - Define a grouping for sources in the makefile. \line }{\i Usage:}{
+ SOURCE_GROUP(name regex) Defines a new source group. Any file whose name matches the regular expression will be placed in this group. The LAST regular expression of all defined SOURCE_GROUPs that matches the file will be selected.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b SUBDIRS}{ - Add a list of subdirectories to the build. \line }{\i Usage:}{
SUBDIRS(dir1 dir2 ...) Add a list of subdirectories to the build. This will cause any CMakeLists.txt files in the sub directories to be processed by CMake.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b SUBDIR_DEPENDS}{ - Add a set of subdirectories on which another subdirectory depends. \line }{\i Usage:}{
@@ -27407,15 +27416,15 @@ RCE_GROUP(name regex) Defines a new source group. Any file whose name matches th
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b USE_MANGLED_MESA}{ - Create copies of mesa headers for use in combination with system gl. \line }{\i Usage:}{
USE_MANGLED_MESA("path to mesa includes, should contain gl_mangle.h" "directory for output" )
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b UTILITY_SOURCE}{ - Specify the source tree of a third-party utility. \line }{\i Usage:}{
- UTILITY_SOURCE(cache_entry executable_name path_to_source [file1 file2 ...]) When a third-party utility's source is included in the distribution, this command specifies its l
-ocation and name. The cache entry will not be set unless the path_to_source and all listed files exist. It is assumed that the source tree of the utility will have been built before it is needed.
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b VARIABLE_REQUIRES}{ - Display an error message . \line }{\i Usage:}{ VARIA
-BLE_REQUIRES(TEST_VARIBLE RESULT_VARIBLE REQUIRED_VARIABLE1 REQUIRED_VARIABLE2 ...) The first argument (TEST_VARIABLE) is the name of the varible to be tested, if that varible is false nothing else is done. If TEST_VARIABLE is true, then the next arguemnt
- (RESULT_VARIABLE) is a vairable that is set to true if all the required variables are set.The rest of the arguments are varibles that must be true or not set to NOTFOUND to avoid an error.
+ UTILITY_SOURCE(cache_entry executable_name path_to_source [file1 file2 ...]) When a third-party utility's source is included in the distribution, this command spe
+cifies its location and name. The cache entry will not be set unless the path_to_source and all listed files exist. It is assumed that the source tree of the utility will have been built before it is needed.
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b VARIABLE_REQUIRES}{ - Display an error message . \line }{\i Usage:}{
+ VARIABLE_REQUIRES(TEST_VARIBLE RESULT_VARIBLE REQUIRED_VARIABLE1 REQUIRED_VARIABLE2 ...) The first argument (TEST_VARIABLE) is the name of the varible to be tested, if that varible is false nothing else is done. If TEST_VARIABLE is true, then the ne
+xt arguemnt (RESULT_VARIABLE) is a vairable that is set to true if all the required variables are set.The rest of the arguments are varibles that must be true or not set to NOTFOUND to avoid an error.
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b VTK_WRAP_JAVA}{ - Create Java Wrappers. \line }{\i Usage:}{ VTK_WRAP_JAVA(resultingLibraryName SourceListName SourceLists ...)
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b VTK_WRAP_PYTHON}{ - Create Python Wrappers. \line }{\i Usage:}{ VTK_WRAP_PYTHON(resultingLibraryName SourceListName SourceLists ...)
-\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b VTK_WRAP_TCL}{ - Create Tcl Wrappers for VTK classes. \line }{\i Usage:}{ VTK_WRAP_TCL(resultingLibraryN
-ame [SOURCES] SourceListName SourceLists ... [COMMANDS CommandName1 CommandName2 ...])
+\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b VTK_WRAP_TCL}{ - Create Tcl Wrappers for VTK classes. \line }{\i Usage:}{ VTK_WRAP_TCL(resul
+tingLibraryName [SOURCES] SourceListName SourceLists ... [COMMANDS CommandName1 CommandName2 ...])
\par {\listtext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\b WRAP_EXCLUDE_FILES}{ - A list of classes, to exclude from wrapping. \line }{\i Usage:}{ WRAP_EXCLUDE_FILES(file1 file2 ..)
\par }\pard \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {
\par
@@ -27425,26 +27434,27 @@ ame [SOURCES] SourceListName SourceLists ... [COMMANDS CommandName1 CommandName2
}{ section.
\par }\pard \ql \li720\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin720\itap0 {
\par }\pard\plain \s3\ql \li0\ri-720\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin-720\lin0\itap0 \b\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Adding a New Command
-\par }\pard\plain \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Commands
-can be added to CMake by deriving new commands from the class cmCommand (defined in CMake/Source/cmCommand.h/.cxx). Typically each command is implemented in a class called cmRuleNameCommand stored in cmRuleNameCommand.h and cmRuleNameCommand.cxx. If you w
-ant to create a rule the best bet is to take a look at some of the existing rules in CMake. They tend to be fairly short.
+\par }\pard\plain \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
+Commands can be added to CMake by deriving new commands from the class cmCommand (defined in CMake/Source/cmCommand.h/.cxx). Typically each command is implemented in a class called cmRuleNameCommand stored in cmRuleNameCommand.h and cmRuleNameCommand.cx
+x. If you want to create a rule the best bet is to take a look at some of the existing rules in CMake. They tend to be fairly short.
\par
\par }\pard\plain \s3\ql \li0\ri-720\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin-720\lin0\itap0 \b\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Adding a New Makefile Generator
\par }\pard\plain \ql \li1170\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin1170\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
-\par }\pard \qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {From a conceptual point, adding a new generator is simple. You derive a class from cmMakefileGenerat
-or, and override GenerateMakefile() and ComputeSystemInfo(). The GenerateMakefile method can become quite complex. Its job is to translate all the intenal values in the cmMakfile class into a build file. The developer must know how to create shared an
-d static libraries, and executables. IF you are interested in adding a new build type to cmake, please feel free to contact the cmake users list, and you most likely will find assistance for cmake developers.
+\par }\pard \qj \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {From a conceptual point, adding a new generator is simple. You derive a class from cmMak
+efileGenerator, and override GenerateMakefile() and ComputeSystemInfo(). The GenerateMakefile method can become quite complex. Its job is to translate all the intenal values in the cmMakfile class into a build file. The developer must know how to crea
+te shared and static libraries, and executables. IF you are interested in adding a new build type to cmake, please feel free to contact the cmake users list, and you most likely will find assistance for cmake developers.
\par }\pard \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 {
\par }\pard\plain \s1\ql \li0\ri-720\keepn\widctlpar\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin-720\lin0\itap0 \b\fs36\ul\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Further Information
\par }\pard\plain \ql \li0\ri-720\widctlpar\aspalpha\aspnum\faauto\adjustright\rin-720\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Much of the development of CMake was performed at Kitware }{\field{\*\fldinst {
- HYPERLINK "http://www.kitware.com/" }{{\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b3000000068007400740070003a002f002f007700770077002e006b006900740077006100720065002e0063006f006d002f0000000000000000000000
-}}}{\fldrslt {\cs16\ul\cf2 http://www.kitware.com/}}}{. The developers can be reached at }{\field{\*\fldinst { HYPERLINK "mailto:kitware@kitware.com" }{{\*\datafield
-00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b360000006d00610069006c0074006f003a006b0069007400770061007200650040006b006900740077006100720065002e0063006f006d0000000000000000000000}}}{\fldrslt {\cs16\ul\cf2
+ HYPERLINK "http://www.kitware.com/" }{{\*\datafield
+00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b3000000068007400740070003a002f002f007700770077002e006b006900740077006100720065002e0063006f006d002f000000000000000000000000}}}{\fldrslt {\cs16\ul\cf2 http://www.kitware.com/}
+}}{. The developers can be reached at }{\field{\*\fldinst { HYPERLINK "mailto:kitware@kitware.com" }{{\*\datafield
+00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b360000006d00610069006c0074006f003a006b0069007400770061007200650040006b006900740077006100720065002e0063006f006d000000000000000000000000}}}{\fldrslt {\cs16\ul\cf2
mailto:kitware@kitware.com}}}{. CMake was initially developed for the NIH/NLM Insight Segmentation and Registration Toolkit, see the Web site at }{\field{\*\fldinst {HYPERLINK "http://public.kitware.com/Insight.html"}{{\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b4e00000068007400740070003a002f002f007000750062006c00690063002e006b006900740077006100720065002e0063006f006d002f0049006e00730069006700680074002e00680074006d006c00000000000000
-00000000}}}{\fldrslt {\cs16\ul\cf2 http://public.kitware.com/Insight.html}}}{. Cmake\rquote s web page can be found at }{\field{\*\fldinst { HYPERLINK "http://public.kitware.com/CMake" }{{\*\datafield
+0000000000}}}{\fldrslt {\cs16\ul\cf2 http://public.kitware.com/Insight.html}}}{. Cmake\rquote s web page can be found at }{\field{\*\fldinst { HYPERLINK "http://public.kitware.com/CMake" }{{\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b02000000170000002000000068007400740070003a002f002f007000750062006c00690063002e006b006900740077006100720065002e0063006f006d002f0043004d0061006b0065000000e0c9ea79f9bace118c8200aa004ba90b4000000068007400740070003a002f002f00
-7000750062006c00690063002e006b006900740077006100720065002e0063006f006d002f0043004d0061006b00650000000000000000}}}{\fldrslt {\cs16\ul\cf2 http://public.kitware.com/CMake}}}{.
+7000750062006c00690063002e006b006900740077006100720065002e0063006f006d002f0043004d0061006b0065000000000000000000}}}{\fldrslt {\cs16\ul\cf2 http://public.kitware.com/CMake}}}{.
\par
\par
\par }} \ No newline at end of file