рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Cmake рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдкрд░рд┐рдЪрдп рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реЗрдореАрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдЖрдк рддреБрд░рдВрдд рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВред

рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐


рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╕рдордп рдХреА рдмрд░реНрдмрд╛рджреА рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз рд╣реИ рдФрд░ рдЬреЛ рд▓реЛрдЧ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╡реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдпрдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣реИ рдирд╛? рдЕрдХреНрд╕рд░ рдФрд░ рдкреБрд░рд╛рдиреЗ рддрд░реАрдХреЗ рд╕реЗ рд╡реЗ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП * рдирд┐рдХреНрд╕ рдпрд╛ рдХреБрдЫ рдПрдирдПрдордХреЗ рдХреЗ рд▓рд┐рдП рдореЗрдХрдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВ рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдореЗрдХрдлрд╛рдЗрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд░рд▓ рдСрдЯреЛ-рдПрд╕реЗрдореНрдмрд▓рд░реНрд╕ рдмрдирд╛рдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рднреВрд▓рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕ рдЪрддреБрд░ рдпреЛрдЬрдирд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реАрдЦрдирд╛ рд╣реЛрдЧрд╛ред рдореВрд▓ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдХрд┐рд╕реА рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ, рдЪрд╛рд╣реЗ рд╡рд╣ рд▓рд┐рдирдХреНрд╕ рдпрд╛ рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рд╣реЛрдВ, рдФрд░ рдЕрдХреНрд╕рд░ рдЖрдкрд╕ рдореЗрдВ рдХреНрд░реЙрд╕-рд╕рдВрдХрд▓рд┐рдд рди рд╣реЛрдВред рдореЗрдХрдлрд┐рд▓ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдП, рдСрдЯреЛрдореЗрдЯреЗрдХ рдФрд░ рдСрдЯреЛрдЬреЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рднреА рдЕрдзрд┐рдХ рднреНрд░рд╛рдордХ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдкрд╕рдВрдж рдЖрджрд░реНрд╢ рд╣реИ, рд▓реЗрдХрд┐рди рдЦреБрдж рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реАрдореЗрдХ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдм рдХреБрдЫ рдЙрдкрд▓рдмреНрдз рд╣реИред рдпрд╣ рдореБрдЭреЗ рдЕрдзрд┐рдХ рдорд╛рдирд╡-рдкрдардиреАрдп рд▓рдЧрд╛ред рдореИрдВ рдореВрд▓ рдмрд╛рддреЗрдВ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред рдЖрдк рдирд┐рдпрдореЛрдВ рдХреЛ рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЙрдирд╕реЗ рдПрдХ рдореЗрдХрдлрд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рдирдХ рддрд░реАрдХреЗ рд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо

рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рддрд╛рдХрд┐ рдЬрдм рджреВрд╕рд░реА рдорд╢реАрди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд╛рд╕реНрддреЛрдВ рдХреЗ рд╕рд╛рде, рдЖрдк рдореЗрдХрдлрд╛рдЗрд▓ рдореЗрдВ рдХреБрдЫ рднреА рдареАрдХ рдХрд┐рдП рдмрд┐рдирд╛ рджреЛ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рдЧрд╛рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реИ? рдпрд╣ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреА рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдСрдЯреЛрдХреЙрдиреНрдлрд╝ / рдСрдЯреЛрдЬреЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдХреЗрд╡рд▓ рд▓рд╛рдн? рдСрдЯреЛ-рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдореЗрдХрдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рди рдХрд░рдирд╛ рдкреБрд░рд╛рдиреА рдкрджреНрдзрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, KDE-4 рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рд▓реАрдЬрд╝ рдЯреВрд▓ рд╣реИ ред

рд╢реБрд░реБрдЖрдд рд╣реЛ рд░рд╣реА рд╣реИ


рд╡рд░реНрддрдорд╛рди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рдореИрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ C ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕реЗ рд▓рд┐рдирдХреНрд╕ рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЛрдИ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдкрд░ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рдПрдЧреА, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд╕реМрдВрдкрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛, рдЖрджрд┐ред рдпрд╣ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рдвреЗрд░ рд╢реБрд░реБрдЖрддреА рдХреЛ рдмрд╣реБрдд рднреНрд░рдорд┐рдд рдХрд░реЗрдЧрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, cmake рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЧреБрдкреНрдд рд░реВрдк рд╕реЗ рд╕реНрд╡реАрдХреГрдд рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдЖрдорддреМрд░ рдкрд░, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЬрдбрд╝ src рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ (рдмрдВрдж рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП), рд╢рд╛рдорд┐рд▓ (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реЗрдбрд░ рдХреЗ рд▓рд┐рдП), рд▓рд┐рдм (рдкреНрд▓рдЧ-рдЗрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╡реЗ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╣реАрдВ рд╣реИрдВ), рдПрдХ рдЦрд╛рд▓реА рдмрд┐рд▓реНрдб рдлрд╝реЛрд▓реНрдбрд░ (рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЗрд╕реЗ рдмрдирд╛рдПрдВ), рдореИрдВ рдирд╣реАрдВ рдмрдирд╛рдКрдВрдЧрд╛ рдмрд┐рди (рдпрд╛ рдмрд╛рд╣рд░, рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП) рдЬреЛрдбрд╝реЗрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рд░реВрдЯ рдореЗрдВ AUTHOTS, COPYING, INSTALL, NEWS, README, ChangeLo g рдлрд╛рдЗрд▓реЛрдВ рдХреА рдореМрдЬреВрджрдЧреА рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╡реЗ рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ config.h.in рдлрд╝рд╛рдЗрд▓ (рдЙрд╕ рдкрд░ рдмрд╛рдж рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ) рд╣реЛ рд╕рдХрддреА рд╣реИред Cmake рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓реЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ CMakeLists.txt рдирд╛рдордХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИрдВред рдпрд╣ рдирд╛рдо cmake рджреНрд╡рд╛рд░рд╛ рдЧрдврд╝рд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред
рдкреНрд░рд▓реЗрдЦрди рдХреЛ рд╢реБрд░реВ рдореЗрдВ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреВрд░реНрдгред рдпрд╣ рдПрдХ рдФрд░ рдорд╛рдЗрдирд╕ рд╣реИред рд▓реЗрдХрд┐рди рдСрдЯреЛрдЯреВрд▓рд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ ...
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ cmake рдХреА рд╕реВрдЪреА рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
рдмреЛрд░рд▓реИрдВрдб рдореЗрдХрдлрд╛рдЗрд▓реНрд╕
Msys рдореЗрдХрдлрд╛рдЗрд▓реНрд╕
рдорд┐рдирдЧрд╡ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕
рдПрдирдПрдордХреЗ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕
NMake рдореЗрдХрдлрд╛рдЗрд▓реНрд╕ JOM
рдирд┐рдВрдЬрд╛
рдпреВрдирд┐рдХреНрд╕ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕
рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ 10
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 10 IA64
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 10 рд╡рд┐рди 64
рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ 11
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 11 рдПрдЖрд░рдПрдо
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 11 рд╡рд┐рди 64
рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ 6
рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ 7
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 7 .NET 2003
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 8 2005
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 8 2005 рд╡рд┐рди 64
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 9 2008
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 9 2008 IA64
рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 9 2008 рд╡рд┐рди 64
рд╡рд╛рдЯрдХреЙрдо WMake
Xcode
рдХреЛрдбрдмреНрд▓реЙрдХ - рдорд┐рдирдЧрд╡ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕
рдХреЛрдбрдмреНрд▓реЙрдХ - рдПрдирдПрдордХреЗ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕
рдХреЛрдбрдмреНрд▓реЙрдХ - рдирд┐рдВрдЬрд╛
рдХреЛрдбрдмреНрд▓реЙрдХ - рдпреВрдирд┐рдХреНрд╕ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕
рдЧреНрд░рд╣рдг CDT4 - рдорд┐рдирдЧрд╡ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕
рдЧреНрд░рд╣рдг рд╕реАрдбреАрдЯреА 4 - рдПрдирдПрдордХреЗ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕
рдЧреНрд░рд╣рдг CDT4 - рдирд┐рдВрдЬрд╛
рдЧреНрд░рд╣рдг CDT4 - рдпреВрдирд┐рдХреНрд╕ рдореЗрдХрдлрд╛рдЗрд▓реНрд╕


рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ source.cpp рд╣реИрдВ рдЬрд┐рдирд╕реЗ рд╣рдо рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ - рдЗрд╕реЗ src рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓реЗрдВред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдлрд╛рдЗрд▓реЗрдВ core.cpp, core.hpp, common.hpp, types.hpp рд╣реИрдВ , рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ src рдореЗрдВ рднреА рд░рдЦрд╛ рд╣реИ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╣рдордиреЗ рд╕реНрд░реЛрдд рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВ рдФрд░ рдСрдЯреЛ-рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣ рд╕рдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдореЗрдВ CMakeLists.txt рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред Cmake рдирд┐рдпрдо рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ php рдХреЗ рдмреАрдЪ рдПрдХ рдХреНрд░реЙрд╕ рд╣реИред рдХреЗрд╡рд▓ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдЗрд╕рдореЗрдВ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ, рдлрд╝рдВрдХреНрд╢рди, рдЪрд░, рд╕реНрдерд┐рд░рд╛рдВрдХ, рдкреНрд▓рдЧ-рдЗрди рд╣реИрдВред

рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП CMakeLists.txt рдлрд╛рдЗрд▓ рдХреЛ рдХрдИ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рддреЛрдбрд╝реВрдВрдЧрд╛ред рднрд╛рдЧ 1:
#     cmake_minimum_required (VERSION 2.6) cmake_policy(SET CMP0011 NEW) cmake_policy(SET CMP0003 OLD) OPTION(WITH_DEBUG_MODE "Build with debug mode" ON) if ( NOT UNIX ) message (FATAL_ERROR "Not Unix!") endif () 

рдпрд╣рд╛рдБ cmake_minimum_required рд╕рдВрд╕реНрдХрд░рдг рдЪреЗрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИред
рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ () рдЙрджреНрдШрд╛рдЯрди рдФрд░ рдПрдВрдбрд┐рдл () рд╕рдорд╛рдкрдиред рдлрд╝реЙрд░рдЪреИрдЯ () рдФрд░ рдПрдВрдбрдлрд╝реЙрд░рдЪ () рдХреЗ рд╕рдорд╛рдиред
рд╕рдВрджреЗрд╢ рдлрд╝рдВрдХреНрд╢рди рд╣рдорд╛рд░реЗ рд╕рдВрджреЗрд╢ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рд╕рдВрджреЗрд╢ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП FATAL_ERROR рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЛрдИ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо (;) рдХрдорд╛рдВрдб рдХреЗ рдЕрдВрдд рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИ - рдПрдХ рдЖрджреЗрд╢ред рдХреЛрд╖реНрдардХреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд░реЛрдВ рд╕реЗ рджреВрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ рдЯреАрдо рдХреЗ рдкрд╛рд╕ рдЖрдорддреМрд░ рдкрд░ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдиреБрдЕрд▓ рдХреЛ рджреЗрдЦреЗ рдмрд┐рдирд╛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдПрдХ рддреНрд╡рд░рд┐рдд рдкрд░рд┐рдЪрдп рдФрд░ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИрдВред

рднрд╛рдЧ 2:
 message ("Starting cmake") #    ,     ,      include (myproj.cmake) #    set (PROJECT myproj) #         set (LIBRARIES) #          foreach (LIBRARY ${LIBRARIES}) find_library("${LIBRARY}_FOUND" ${LIBRARY}) message(STATUS "Check the ${LIBRARY} is installed: " ${${LIBRARY}_FOUND}) if ( "${${LIBRARY}_FOUND}" STREQUAL "${LIBRARY}_FOUND-NOTFOUND" ) message(STATUS "Adding library sources") add_subdirectory (../${LIBRARY} lib/${LIBRARY}) endif () endforeach () #     set (TARGETS "") set (HEADERS "") message ( STATUS "SOURCES: ${SOURCES}") add_subdirectory (src) 

рд╕реЗрдЯ () рдлрд╝рдВрдХреНрд╢рди рд╡реИрд░рд┐рдПрдмрд▓ рдмрдирд╛рддрд╛ рдпрд╛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдЪрд░ рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣рд╛рдБ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдЪрд░реЛрдВ рдХрд╛ рдирд╛рдо рдЗрд╕ рдЕрд░реНрде рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдкреАрдврд╝реА рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВред
рд╢рд╛рдорд┐рд▓ () рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИред рдХреЛрдИ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдирд╣реАрдВ рд╣реИред
рдФрд░ add_subdirectory (src) рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдореЗрдХрдлрд╛рдЗрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛рдВред

рдпрджрд┐ рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо рдпрд╣рд╛рдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдереЗ, рддреЛ CMakeLists.txt рдореЗрдВ src рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рдЕрдВрджрд░, рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рдЕрднреА рддрдХ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ cmake_policy ()ред рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЕрдм рдореБрдЭреЗ рдЗрд╕рдХреА рд╕рдордЭ рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдпрд╣рд╛рдВ рд▓рдЯрдХрд╛ рджреЗрдВ ┬й рдпрд╣ рд╕рд┐рд░реНрдл рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред
рдлрд╝реЙрд░рдЪ () рд▓реВрдк рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╡рд░реНрдгрди рдмрд╛рдж рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрднреА рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрдВред

рддреЛ рдПрдХ рдЕрд▓рдЧ cmake рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рдерд╛? рдЖрдЗрдП рджреЗрдЦреЗрдВ:

 set ("${PROJECT}_BINARY_DIR" bin) set ("${PROJECT}_SOURCE_DIR" src:include) set ("${PROJECT}_LIB_DIR" lib) set (CMAKE_INCLUDE_PATH ${${PROJECT}_SOURCE_DIR}) set (CMAKE_LIBRARY_PATH ${${PROJECT}_LIB_DIR}) set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/${${PROJECT}_BINARY_DIR}) set (CMAKE_VERBOSE_MAKEFILE ON) set (CMAKE_BUILD_TYPE Debug) set (ERR_NO_UNIX "Cannot build on non Unix systems") if ( WITH_DEBUG_MODE ) ADD_DEFINITIONS( -DMY_DEBUG_MODE=1) endif() if ( CMAKE_COMPILER_IS_GNUCXX ) set(MY_CXX_FLAGS "-Wall -std=c++0x -fmessage-length=0 -v -L/usr/local/lib -L/usr/lib") set(CMAKE_CXX_FLAGS "-O0 ${MY_CXX_FLAGS}") #         .    . #set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -fno-reorder-blocks -fno-schedule-insns -fno-inline") #set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG") else () message (FATAL_ERROR ${ERR_NO_UNIX}) endif () 

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕реЗрдЯ () $ {рдирд╛рдо} рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЕрдЬреАрдм (рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд) рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдЙрд╕реА рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЪрд░ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рджреЗрддрд╛ рд╣реИ () рдпрд╛ рдЦреБрдж рдХреЛ рд╕реЗрдореА рдХрд░реЗрдВ (рд╕рднреА cmake рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЪрд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рд╣реИрдВ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, $ {PROJECT} рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░реЙрдЬреЗрдХреНрдЯ рдЪрд░ рд╕реЗ myproj рдХрд╛ рдорд╛рди рдбрд╛рд▓реЗрдЧрд╛ред
Src: рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдкрдереЛрдВ рдХреА рдЧрдгрдирд╛ рд╣реИ (рд╡реЗ рдПрдХ рдмреГрд╣рджрд╛рдиреНрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдирд╣реАрдВ)ред
рдкрд╣рд▓реА рддреАрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЪрд░ рд╣реИрдВред рдФрд░ рдпрд╣рд╛рдБ cmake рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╡рд╢реНрдпрдХ рдЪрд░ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЙрдиреНрдЪ рдХреЗ рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЖрдк рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдХрд╣рд╛рдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдЕрдиреНрдп рдЪрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЪрд░ рдирд╛рдо рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ: $ {$ {PROJECT} _SOURCE_DIR}ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, PROJECT рдХреЛ $ {myproj_SOURCE_DIR} рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпреБрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред рдирддреАрдЬрддрди, рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рд╣реЛрдЧрд╛ред рдпреЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рд╣реИрдВ, рддрд╛рдХрд┐ рдпрджрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо myproj рд╕реЗ рд╕реБрдкрд░рдкреЙрдкрд░ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдП, рддреЛ рдЖрдкрдХреЛ рдЪрд░ рдХреЗ рдирд╛рдо рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЛ рдмрджрд▓рддреЗ рд╣реБрдП рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рдЪрдврд╝рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред

рдпрджрд┐ рдмреНрд▓реЙрдХ (CMAKE_COMPILER_IS_GNUCXX) рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдЭрдВрдбреЗ рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдЕрднреА рддрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдЦрд╛рдУрдВ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдмрдирд╛рдП рдЧрдП рд╡рд┐рднрд┐рдиреНрди рдЪрд░-рдЭрдВрдбреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрд╢реНрд░рд┐рдд рдмрд┐рд▓реНрдб рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЪрд░ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдЪрд░ рдЦрдВрдб рдореЗрдВ рд╣реИ, рдФрд░ рдпрд╣ рдЦрдВрдб рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдмреНрд▓реЙрдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рд╡реНрдпрд╛рдкрдХ рд╕реАрдореЗрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЧрд╣ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред

if (with_DEBUG_MODE) - рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрд░ рд╣реИ рдЬреЛ with_ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рд╡реЗ рд╡рд┐рдХрд▓реНрдк () рдлрд╝рдВрдХреНрд╢рди, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреЛрдб рдореЗрдВ рдерд╛)ред рдпреЗ рдЪрд░ рдХреЗрд╡рд▓ рджреЛ рдЪрд╛рд▓реВ рдпрд╛ рдмрдВрдж рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмреВрд▓рд┐рдпрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ ADD_DEFINITION (-DMY_DEBUG_MODE = 1) рдбреАрдмрдЧ рдореЛрдб рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ -DMY_DEBUG_MODE рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдЧрд╛ред C ++ рдХрдВрдкрд╛рдЗрд▓рд░ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЬреЛрдбрд╝рдирд╛ред

рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛


рддреЛ рд╣рдо src рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЖрдПред рдЗрд╕рдореЗрдВ CMakeLists.txt рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд╣рдо рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
 set ("${PROJECT}_VERSION_MAJ" 0) set ("${PROJECT}_VERSION_MIN" 1) set ("${PROJECT}_VERSION_A" 1) set ("${PROJECT}_VERSION_B" 1) set ("${PROJECT}_VERSION" ${${PROJECT}_VERSION_MAJ}0${${PROJECT}_VERSION_MIN}0${${PROJECT}_VERSION_A}0${${PROJECT}_VERSION_B}) message(STATUS ${${PROJECT}_VERSION}) #    set (MAIN_SOURCES source.cpp ) #    set (PRIVATE_CLASSES core ) #   ,    - SET (HEADERS_ONLY types common ) #   set (PUBLIC_CLASSES) #     set (ADDITIONAL_LIBRARIES stdc++ pthread ) set (PUBLIC_HEADERS) set (SOURCES) foreach (class ${PRIVATE_CLASSES}) LIST (APPEND SOURCES ${class}.cpp) LIST (APPEND HEADERS ${class}.hpp) endforeach () foreach (class ${HEADERS_ONLY}) LIST (APPEND HEADERS ${class}.hpp) endforeach () foreach (class ${PUBLIC_CLASSES}) LIST (APPEND SOURCES ${class}.cpp) LIST (APPEND HEADERS ../include/${PROJECT}/${class}.hpp) LIST (APPEND PUBLIC_HEADERS ../include/${PROJECT}/${class}.hpp) endforeach () add_executable (${PROJECT} ${MAIN_SOURCES} ${SOURCES}) target_link_libraries (${PROJECT} ${ADDITIONAL_LIBRARIES}) set_target_properties(${PROJECT} PROPERTIES VERSION "${${PROJECT}_VERSION}" SOVERSION "0") INSTALL ( TARGETS ${PROJECT} DESTINATION lib${LIB_SUFFIX} ) INSTALL ( FILES ${PUBLIC_HEADERS} DESTINATION include/${PROJECT} ) 

рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рдЙрдирдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдпрд╣рд╛рдВ рджрд░реНрдЬ рдХреА рдЧрдИ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ред рдЕрдЧрд▓рд╛, рд╣рдо рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рдореВрд╣реЛрдВ (рдпрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ, рд╕реВрдЪреА рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╕рднреА рдирд╛рдо рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред MAIN_SOURCES - рдПрдХ рдореБрдЦреНрдп рд╕реНрд░реЛрдд, PRIVATE_CLASSES - рд╕реНрд░реЛрдд рдпреБрдЧреНрдореЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА (source.cpp-header.hpp рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рдХреЗ рд╕рд╛рде), PUBLIC_CLASSES - рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд░рд┐рдХреНрдд, HEADERS_ONLY - рдХреЗрд╡рд▓ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА, ADDITIONAL_LIBRARIES - рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ C ++ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреБрдбрд╝реЗред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрдХреНрд░ рд╣реЗрдбрд░ рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ (рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдкрд┐рдЫрд▓реЗ рд╡рд┐рднрд╛рдЬрди рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд╕рд╢рд░реНрдд рдерд╛)ред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдирд┐рдпрдо "рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реИ" add_executable ()ред рдмрд╛рдЗрдирд░реА рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ target_link_lbooks () рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдВрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рдпрдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВред
рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрдВрд╕реНрдЯреЙрд▓ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди-рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирд┐рдпрдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдмрд┐рд▓реНрдб рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдЯ рдкрд░ рд╣реИ, рдФрд░ рд░рди рдХрд░рддрд╛ рд╣реИ
cmake редред
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗред рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛ (рдФрд░ рдЗрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП), рддреЛ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ
- рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
- рдХрд┐рдпрд╛ рд╣реБрдЖ
- рдмрд┐рд▓реНрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ: / рдШрд░ / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо / tmp / fooproj / build

рдФрд░ рд╕рд╛рдЗрдб рдореЗрдХрдлрд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛
рдлрд┐рд░ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ
рдореЗрдХрдЕрдк

рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп


рдореБрдЭреЗ рдпрд╣ рд╡рд┐рдзрд┐ рд╕рд░рд▓ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧреАред рдпрджрд┐ рдЖрдк рдЕрдЪрд╛рдирдХ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдХреНрдпреЛрдВрдХрд┐ рдХреНрдпреЛрдВ?
рдпрджрд┐ рдЖрдкрдиреЗ рдХреБрдЫ рдмрджрд▓рд╛ рд╣реИ рдФрд░ cmake рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреЗрддрд╛ рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рдкреВрд░реА рдлрд╝рд╛рдЗрд▓ рдХреИрд╢ рдХреЛ рдмрд┐рд▓реНрдб рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА (рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдмреЛрд▓ рд░рд╣рд╛ рд╣реИ) рдпрд╛ рдХрдо рд╕реЗ рдХрдо CMakeCache.txt рдХреЛ рдЙрд╕реА рдмрд┐рд▓реНрдб рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╕реЗ рд╣рдЯрд╛ рджреЗрдВред

рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
1) рдХреНрдпреВрдЯреА рдпрд╛ рдмреВрд╕реНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛
2) рд╕реНрдерд╛рдкрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ
3) рдмрд╣реБ рдордВрдЪ
4) рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк

рдкреНрд░рд▓реЗрдЦрди:

1) рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдореБрдЦреНрдп рдкреГрд╖реНрда
2) рд╕рдВрд╕реНрдХрд░рдг 2.8.9 рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди
3) рдЗрд╕ рдЕрдкрдорд╛рди рдХрд╛ рд╕реНрд░реЛрдд рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ ред

Source: https://habr.com/ru/post/In155397/


All Articles