{"id":253633,"date":"2015-03-24T01:21:02","date_gmt":"2015-03-23T21:21:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=253633"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=253633","title":{"rendered":"\u0421\u0442\u0440\u0435\u043b\u043e\u0447\u043d\u044b\u0435 \u0447\u0430\u0441\u044b \u043d\u0430 CMake"},"content":{"rendered":"<p> \t\t\t<img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/0f9\/b59\/429\/0f9b59429cb041cca2fe1f101321981c.png\"\/><\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u044f \u0443\u0441\u0442\u0440\u043e\u0438\u043b\u0441\u044f \u043d\u0430 \u043d\u043e\u0432\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u043d\u043e\u043c \u0442\u0435\u043c\u043f\u0435 \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0441\u0442\u0430\u043b\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 <a href=\"http:\/\/www.cmake.org\/\">cmake<\/a>, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043d\u0435 \u0440\u0430\u043d\u044c\u0448\u0435 \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f. <\/p>\n<p>  \u042d\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432. \u042d\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u044f\u0437\u044b\u043a \u043c\u0435\u043d\u044f \u0438 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b. \u0412\u0441\u043a\u043e\u0440\u0435 \u044f \u0432\u044b\u044f\u0441\u043d\u0438\u043b, \u0447\u0442\u043e \u0432 \u043d\u0435\u043c \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0437\u0430\u043f\u0438\u0441\u044c \u0438 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432, \u0437\u0430\u043f\u0443\u0441\u043a \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e \u043d\u0430\u0432\u0435\u043b\u043e \u043c\u0435\u043d\u044f \u043d\u0430 \u043c\u044b\u0441\u043b\u044c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u0438\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u042f\u041f \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u043d\u0435\u043c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043e\u0441\u044f\u0437\u0430\u0435\u043c\u043e\u0435. \u0420\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044f \u043f\u0438\u0441\u0430\u043b \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043d\u044b\u0435 \u0447\u0430\u0441\u044b \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 cmake 2.8. <br \/>  <a name=\"habracut\"><\/a> <br \/>  \u0427\u0435\u0441\u0442\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u043d\u0435 \u0432 \u0433\u043e\u043b\u043e\u0432\u0443 \u043f\u0440\u0438\u0448\u043b\u0430 \u0438\u0434\u0435\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c cmake \u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u0438\u0437 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432. \u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u0436\u0430\u0442\u044b\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438, \u043d\u0443 \u0438\u043b\u0438, \u043d\u0430 \u0445\u0443\u0434\u043e\u0439 \u043a\u043e\u043d\u0435\u0446, \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043c\u044b\u0448\u0438, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443, \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0442\u0435\u0442\u0440\u0438\u0441. \u0421 \u0432\u044b\u0432\u043e\u0434\u043e\u043c \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0432\u0441\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e: <\/p>\n<pre>file(WRITE \/dev\/stdout &quot;blabla&quot;)<\/pre>\n<p> \u0410 \u0432\u043e\u0442 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a cmake \u043d\u0430\u043f\u0440\u043e\u0447\u044c \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0441\u044f, \u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 \u0438\u0432\u0435\u043d\u0442\u043e\u0432 (\/dev\/input\/event4 \u0438\u043b\u0438 \/dev\/input\/mice) \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u0443\u0434\u0430\u0432\u0430\u043b\u043e\u0441\u044c. \u0422\u0430\u043a \u0447\u0442\u043e \u0438\u0434\u0435\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0435\u0442\u0440\u0438\u0441 \u0431\u044b\u043b\u0430 \u043e\u0442\u0431\u0440\u043e\u0448\u0435\u043d\u0430 \u0438 \u044f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0432\u044b\u0432\u043e\u0434\u043e\u043c, \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 stdout \u043c\u0435\u043d\u044f \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u043b\u0430 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 message().<\/p>\n<p>  \u042f \u0440\u0435\u0448\u0438\u043b, \u0440\u0430\u0437 \u0443\u0436 \u043c\u043e\u0433\u0443 \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 stdout, \u0442\u043e \u043d\u0430\u0434\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0443\u0434\u0430 <a href=\"https:\/\/en.wikipedia.org\/wiki\/ANSI_escape_code\">escape-\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/a>. \u042d\u0442\u043e \u0431\u044b \u0434\u0430\u043b\u043e \u0431\u043e\u0433\u0430\u0442\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438: \u0446\u0432\u0435\u0442\u043d\u043e\u0439 \u0432\u044b\u0432\u043e\u0434, \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043a\u0443\u0440\u0441\u043e\u0440\u0430, \u043e\u0447\u0438\u0441\u0442\u043a\u0430 \u044d\u043a\u0440\u0430\u043d\u0430 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0432 cmake \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0432\u043e\u0434\u0430 \u043d\u0435\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u043c\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u2014 \u044d\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f ASCII \u0444\u0443\u043d\u043a\u0446\u0438\u0438 string, \u0442\u0430\u043a \u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u044d\u043a\u0440\u0430\u043d\u0430:  <\/p>\n<pre> string(ASCII 27 ESCAPE) function (clrscr)     file(WRITE \/dev\/stdout &quot;${ESCAPE}[2J&quot;) endfunction(clrscr) <\/pre>\n<p>  \u0420\u0430\u0437 \u0443\u0436 escape-\u043a\u043e\u0434\u044b \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438, \u0442\u043e \u044f \u0440\u0435\u0448\u0438\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u0445:  <\/p>\n<pre> function(textXY X Y MSG)     file(WRITE \/dev\/stdout &quot;${ESCAPE}[${Y};${X}H${MSG}&quot;) endfunction(textXY) <\/pre>\n<p>  \u041d\u0443 \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0433\u043e \u0440\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u043c\u044b\u0441\u043b\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0438. \u0417\u0434\u0435\u0441\u044c \u0443\u0436\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u0441 \u043f\u0435\u0440\u0432\u044b\u043c\u0438 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u044f\u043c\u0438:  <\/p>\n<ol>\n<li>cmake \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0435\u0433\u043e \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0439;<\/li>\n<li>\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 cmake \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435;<\/li>\n<li>\u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u0442\u044c \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0438, \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0438\u0439 \u043e\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0446\u043e\u0432 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430;<\/li>\n<\/ol>\n<p>  \u0420\u0435\u0448\u0430\u0442\u044c \u044d\u0442\u0438 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438 \u044f \u043d\u0430\u0447\u0430\u043b \u0441 \u043a\u043e\u043d\u0446\u0430. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0431\u044b\u043b \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043d \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0438:  <\/p>\n<ol>\n<li> \u041d\u0430\u0439\u0442\u0438 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043a\u043e\u043d\u0446\u043e\u0432 Dx=x2-x1 \u0438 Dy=y2-y1 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043c\u0438\u043d\u0443\u0441\u0430 (\u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f);<\/li>\n<li> \u041d\u0430\u0439\u0442\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e \u0434\u0435\u043b\u044c\u0442\u0443 Dmax = max(abs(Dx), abs(Dy));<\/li>\n<li> \u041f\u0440\u043e\u0431\u0435\u0436\u0430\u0442\u044c \u0446\u0438\u043a\u043b\u043e\u043c i = 0..Dmax, \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0448\u0430\u0433\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c:\n<pre> \tx = x1 + i * Dx \/ Dmax \ty = y1 + i * Dy \/ Dmax<\/pre>\n<\/li>\n<\/ol>\n<p>  \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043d\u0443\u0436\u043d\u044b \u0431\u044b\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u0430 \u0438 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0422\u0430\u043a \u043a\u0430\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 cmake \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442, \u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u0430\u043a\u0440\u043e\u0441\u0430\u043c\u0438. \u0412 \u043c\u0430\u043a\u0440\u043e\u0441\u044b \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0442\u0430\u043a \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432\u0435\u0437\u0434\u0435 \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u0435\u0435, \u043d\u043e \u043c\u0430\u043a\u0440\u043e\u0441 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u00ab\u0432\u043e\u043b\u043e\u0441\u0430\u0442\u044b\u043c\u00bb, \u0442\u0430\u043a \u0447\u0442\u043e \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u044f \u0441\u0442\u0430\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u0432<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre> macro(max a b m) \tif(${a} LESS ${${b}}) \t\tset(${m} ${${b}}) \telse(${a} LESS ${${b}}) \t\tset(${m} ${${a}}) \tendif(${a} LESS ${${b}}) endmacro(max)  macro(abs a res) \tif(${a} LESS 0) \t\tstring(LENGTH ${a} len) \t\tmath(EXPR l1 &quot;${len} - 1&quot;) \t\tstring(SUBSTRING ${a} 1 ${l1} ${res}) \telse(${a} LESS 0) \t\tset(${res} ${a}) \tendif(${a} LESS 0) endmacro(abs) <\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0414\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e cmake \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u043e\u0442\u043a\u0443\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00bb \u043c\u0438\u043d\u0443\u0441, \u0435\u0441\u043b\u0438 \u043e\u043d \u0435\u0441\u0442\u044c.<\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043c\u0430\u043a\u0440\u043e\u0441\u044b \u0431\u044b\u043b\u0438 \u0433\u043e\u0442\u043e\u0432\u044b, \u0442\u043e \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <\/p>\n<pre>math(EXPR &lt;result&gt; &lt;expression&gt;)<\/pre>\n<p> \u043c\u043d\u043e\u044e \u0431\u044b\u043b\u0438 \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u044b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043d\u044e\u0430\u043d\u0441\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e cmake \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 &quot;${a} + ${b}&quot;, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u043a\u043e\u0433\u0434\u0430 b \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u2014 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 (\u0442.\u043a. \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 5 + -6, \u0430 \u0442\u0430\u043a\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u043e). \u042d\u0442\u043e\u0442 \u043d\u044e\u0430\u043d\u0441 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0431\u043e\u0439\u0442\u0438 \u0445\u0438\u0442\u0440\u044b\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u043e\u043c \u2014 \u0432\u0435\u0437\u0434\u0435, \u0433\u0434\u0435 \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c\u0441\u044f \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043a \u043d\u0435\u0439 \u0432\u0435\u0434\u0443\u0449\u0438\u0439 0 \u0438 \u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432 \u0441\u043a\u043e\u0431\u043a\u0438: &quot;${a} + (0${b})&quot;. \u0418\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u0442\u0430\u043a\u043e\u0439: <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 line(x1 y1 x2 y2 chr)<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre> function(line x1 y1 x2 y2 chr) \tmath(EXPR Dx &quot;${x2} - ${x1}&quot;) \tabs(${Dx} aDx) \tmath(EXPR Dy &quot;${y2} - ${y1}&quot;) \tabs(${Dy} aDy) \tmax(aDx aDy Dmax) \tset(i 0) \twhile(i LESS ${Dmax}) \t\tmath(EXPR cx &quot;${x1} + ${i} * (0${Dx}) \/ ${Dmax}&quot;) \t\tmath(EXPR cy &quot;${y1} + ${i} * (0${Dy}) \/ ${Dmax}&quot;) \t\ttextXY(${cx} ${cy} ${chr}) \t\tmath(EXPR i &quot;${i} + 1&quot;) \tendwhile(i LESS ${Dmax}) endfunction(line) <\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0438 \u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0438\u0434\u0435\u044f \u043a\u0443\u0434\u0430-\u0442\u043e \u0435\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00ab\u0437\u0430\u043f\u0438\u043b\u0438\u0442\u044c\u00bb \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043d\u044b\u0435 \u0447\u0430\u0441\u044b). \u0414\u043e \u044d\u0442\u043e\u0433\u043e \u044f \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0437\u043d\u0430\u043b, \u0447\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043e \u0432\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0446\u0438\u0444\u0435\u0440\u0431\u043b\u0430\u0442, \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0443\u0433\u043b\u044b, \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c 3 \u043b\u0438\u043d\u0438\u0438 \u043f\u043e\u0434 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u0443\u0433\u043b\u0430\u043c\u0438 (\u0447\u0430\u0441\u043e\u0432\u0430\u044f, \u043c\u0438\u043d\u0443\u0442\u043d\u0430\u044f \u0438 \u0441\u0435\u043a\u0443\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u0435\u043b\u043a\u0438) \u0438 \u0447\u0430\u0441\u044b \u0431\u0443\u0434\u0443\u0442 \u0433\u043e\u0442\u043e\u0432\u044b. \u041d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u0435\u0449\u0435 2-\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439: \u0441\u0438\u043d\u0443\u0441\u0430 \u0438 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u0430, \u0434\u043b\u044f \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u043d\u0438\u0438 \u043f\u043e\u0434 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0443\u0433\u043b\u043e\u043c. <\/p>\n<p>  \u0414\u0435\u043b\u043e \u043e\u0441\u043b\u043e\u0436\u043d\u0438\u043b\u043e\u0441\u044c \u0442\u0435\u043c, \u0447\u0442\u043e \u0441\u0438\u043d\u0443\u0441 \u0438 \u043a\u043e\u0441\u0438\u043d\u0443\u0441 \u0438\u043c\u0435\u044e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 [0;1], \u0430 cmake \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438, \u0442\u0430\u043a \u0447\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 1000: \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0438\u043d\u0443\u0441 \u0438 \u043a\u043e\u0441\u0438\u043d\u0443\u0441 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 1000, \u0430 \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438, \u0433\u0434\u0435 \u043e\u043d\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u043d\u0430 \u044d\u0442\u043e\u0442 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442. <\/p>\n<p>  \u0414\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0438\u0445 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A0%D1%8F%D0%B4_%D0%A2%D0%B5%D0%B9%D0%BB%D0%BE%D1%80%D0%B0#.D0.A0.D1.8F.D0.B4.D1.8B_.D0.9C.D0.B0.D0.BA.D0.BB.D0.BE.D1.80.D0.B5.D0.BD.D0.B0_.D0.BD.D0.B5.D0.BA.D0.BE.D1.82.D0.BE.D1.80.D1.8B.D1.85_.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D0.B9\">\u0440\u044f\u0434 \u041c\u0430\u043a\u043b\u043e\u0440\u0435\u043d\u0430<\/a>. \u0418 \u0441\u043d\u043e\u0432\u0430 \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438:   <\/p>\n<ol>\n<li> \u041d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0438 \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0430\u043b\u044b \u0432 \u0440\u044f\u0434\u0435 \u041c\u0430\u043a\u043b\u043e\u0440\u0435\u043d\u0430;<\/li>\n<li> \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 2-3 \u043f\u0435\u0440\u0432\u044b\u0445 \u0447\u043b\u0435\u043d\u043e\u0432 \u0440\u044f\u0434\u0430 \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 [-pi\/2; pi\/2].<\/li>\n<\/ol>\n<p>  \u041c\u043d\u0435 \u0436\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0438\u043c\u0435\u0442\u044c \u041e\u0414\u0417 \u0445\u043e\u0442\u044f \u0431\u044b \u0432 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 [-pi; 2*pi], \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u0443\u0433\u043e\u043b \u0432 \u0440\u0430\u0434\u0438\u0430\u043d\u0430\u0445 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u043f\u0440\u0430\u0432\u0443\u044e \u043f\u043e\u043b\u0443\u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c, \u0434\u0435\u043b\u0430\u044f \u043f\u043e\u043f\u0440\u0430\u0432\u043a\u0443 \u043d\u0430 \u0437\u043d\u0430\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u0442\u0443\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A2%D1%80%D0%B8%D0%B3%D0%BE%D0%BD%D0%BE%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8#.D0.93.D0.B5.D0.BE.D0.BC.D0.B5.D1.82.D1.80.D0.B8.D1.87.D0.B5.D1.81.D0.BA.D0.BE.D0.B5_.D0.BE.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5\"> \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043c\u044b\u0441\u043b \u0438 \u0444\u043e\u0440\u043c\u0443\u043b\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f<\/a>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0438\u043b\u044c\u043d\u043e \u043d\u0435 \u00ab\u0440\u0430\u0437\u0436\u0435\u0432\u044b\u0432\u0430\u044e\u00bb. \u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043a\u043e\u0434 \u0442\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u00ab\u0441\u0442\u0440\u0430\u0448\u043d\u0435\u043d\u044c\u043a\u0438\u043c\u00bb:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u0434 \u0441\u0438\u043d\u0443\u0441\u0430 \u0438 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre> set(PI1000 3142) set(PI500 1571) set(_PI500 -1571) set(_2PI1000 6283)  macro(m_rad1000_4sin x res) \tmath(EXPR rad1000 &quot;(0${x}) * ${PI1000} \/ 180&quot;) \tif(rad1000 GREATER ${PI1000}) \t\tmath(EXPR rad1000_ &quot;${PI1000} - ${rad1000}&quot;) \telse(rad1000 GREATER ${PI1000}) \t\tset(rad1000_ ${rad1000}) \tendif(rad1000 GREATER ${PI1000}) \t \tif(rad1000_ GREATER ${PI500}) \t\tmath(EXPR rad1000__ &quot;${PI1000} - ${rad1000_}&quot;) \telse(rad1000_ GREATER ${PI500}) \t\tif(rad1000_ LESS ${_PI500}) \t\t\tabs(${rad1000_} abs_rad1000_) \t\t\tmath(EXPR rad1000__ &quot;${abs_rad1000_} - ${PI1000}&quot;) \t\telse(rad1000_ LESS ${_PI500}) \t\t\tset(rad1000__ ${rad1000_}) \t\tendif(rad1000_ LESS ${_PI500}) \tendif(rad1000_ GREATER ${PI500}) \t \tset(${res} ${rad1000__}) endmacro(m_rad1000_4sin)  macro(m_rad1000_4cos x res) \tmath(EXPR rad1000 &quot;(0${x}) * ${PI1000} \/ 180&quot;) \tif(rad1000 GREATER ${PI1000}) \t\tmath(EXPR rad1000_ &quot;${rad1000} - ${_2PI1000}&quot;) \telse(rad1000 GREATER ${PI1000}) \t\tset(rad1000_ ${rad1000}) \tendif(rad1000 GREATER ${PI1000}) \t \tset(${res} ${rad1000_}) endmacro(m_rad1000_4cos)  macro(sin1000 x res) \tm_rad1000_4sin(${x} r1000) \tmath(EXPR ${res} &quot;0${r1000} - (0${r1000}) * (0${r1000}) \/ 1000 * (0${r1000}) \/ 1000 \/ 6 + (0${r1000}) * (0${r1000}) \/ 1000 * (0${r1000}) \/ 1000 * (0${r1000}) \/ 1000 * (0${r1000}) \/ 1000 \/ 120&quot;) endmacro(sin1000)  macro(cos1000 x res) \tm_rad1000_4cos(${x} r1000) \tunset(sign) \tif(r1000 GREATER ${PI500}) \t\tmath(EXPR r1000_ &quot;${PI1000} - ${r1000}&quot;) \t\tset(r1000 ${r1000_}) \t\tset(sign &quot;0-&quot;) \tendif(r1000 GREATER ${PI500}) \t \tif(r1000 LESS ${_PI500}) \t\tmath(EXPR r1000_ &quot;${PI1000} + (0${r1000})&quot;) \t\tset(r1000 ${r1000_}) \t\tset(sign &quot;0-&quot;) \tendif(r1000 LESS ${_PI500}) \t \tmath(EXPR ${res} &quot;${sign}(1000 - (0${r1000}) * (0${r1000}) \/ 1000 \/ 2 + (0${r1000}) * (0${r1000}) \/ 1000 * (0${r1000}) \/ 1000 * (0${r1000}) \/ 1000 \/ 24 - (0${r1000}) * (0${r1000}) \/ 1000 * (0${r1000}) \/ 1000 * (0${r1000}) \/ 1000 * (0${r1000}) \/ 1000 * (0${r1000}) \/ 1000 \/ 720)&quot;) endmacro(cos1000) <\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u0434\u0435\u043b\u043e\u043c \u0442\u0435\u0445\u043d\u0438\u043a\u0438 \u2014 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c 12 \u0447\u0438\u0441\u0435\u043b \u043f\u043e \u043a\u0440\u0443\u0433\u0443, \u043a\u0440\u0443\u0442\u0438\u0442\u044c\u0441\u044f \u0432 \u0446\u0438\u043a\u043b\u0435 \u0438 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432\u0440\u0435\u043c\u044f; \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c, \u0441\u0442\u0438\u0440\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u0438 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043f\u043e\u0434 \u043d\u0443\u0436\u043d\u044b\u043c\u0438 \u0443\u0433\u043b\u0430\u043c\u0438. \u0412\u0440\u0435\u043c\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u0443\u0441\u043a \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430:<\/p>\n<pre> execute_process(COMMAND &quot;date&quot; &quot;+%H%M%S&quot; OUTPUT_VARIABLE time)<\/pre>\n<p> \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0437 time \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0443\u0433\u043b\u044b \u2014 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0448\u043a\u043e\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438. <\/p>\n<p>  \u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 <a href=\"https:\/\/github.com\/Arjunarus\/CMakeExp\">\u0433\u0438\u0442\u0445\u0430\u0431\u0435<\/a>.<br \/>  \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043d\u0430 cmake version 2.8.12.2, Ubuntu 12.04, 14.04. \t\t\t<\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/253813\/\"> http:\/\/habrahabr.ru\/post\/253813\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p> \t\t\t<img decoding=\"async\" src=\"\/\/habrastorage.org\/files\/0f9\/b59\/429\/0f9b59429cb041cca2fe1f101321981c.png\"\/><\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u044f \u0443\u0441\u0442\u0440\u043e\u0438\u043b\u0441\u044f \u043d\u0430 \u043d\u043e\u0432\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0432 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u043d\u043e\u043c \u0442\u0435\u043c\u043f\u0435 \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0441\u0442\u0430\u043b\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0431\u043e\u0440\u043a\u0438 <a href=\"http:\/\/www.cmake.org\/\">cmake<\/a>, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043d\u0435 \u0440\u0430\u043d\u044c\u0448\u0435 \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f. <\/p>\n<p>  \u042d\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u044b\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432. \u042d\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u044f\u0437\u044b\u043a \u043c\u0435\u043d\u044f \u0438 \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b. \u0412\u0441\u043a\u043e\u0440\u0435 \u044f \u0432\u044b\u044f\u0441\u043d\u0438\u043b, \u0447\u0442\u043e \u0432 \u043d\u0435\u043c \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0437\u0430\u043f\u0438\u0441\u044c \u0438 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432, \u0437\u0430\u043f\u0443\u0441\u043a \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e \u043d\u0430\u0432\u0435\u043b\u043e \u043c\u0435\u043d\u044f \u043d\u0430 \u043c\u044b\u0441\u043b\u044c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u0438\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u042f\u041f \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0430 \u043d\u0435\u043c \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043e\u0441\u044f\u0437\u0430\u0435\u043c\u043e\u0435. \u0420\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044f \u043f\u0438\u0441\u0430\u043b \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043d\u044b\u0435 \u0447\u0430\u0441\u044b \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 cmake 2.8.   <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-253633","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/253633","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=253633"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/253633\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=253633"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=253633"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=253633"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}