<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://adm30.ru/index.php?action=history&amp;feed=atom&amp;title=CMake</id>
	<title>CMake - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://adm30.ru/index.php?action=history&amp;feed=atom&amp;title=CMake"/>
	<link rel="alternate" type="text/html" href="https://adm30.ru/index.php?title=CMake&amp;action=history"/>
	<updated>2026-10-20T00:11:48Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.41.5</generator>
	<entry>
		<id>https://adm30.ru/index.php?title=CMake&amp;diff=1334&amp;oldid=prev</id>
		<title>Admin в 12:26, 7 января 2023</title>
		<link rel="alternate" type="text/html" href="https://adm30.ru/index.php?title=CMake&amp;diff=1334&amp;oldid=prev"/>
		<updated>2023-01-07T12:26:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==== переменные ====&lt;br /&gt;
 &amp;lt;font style=&amp;quot;color:#404040;&amp;quot;&amp;gt;//set устанавливает пользовательскую переменную&amp;lt;/font&amp;gt;&lt;br /&gt;
 set(SOURCES main.cpp version.cpp)&lt;br /&gt;
 set(HEADERS version.h)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;font style=&amp;quot;color:#404040;&amp;quot;&amp;gt;//встроенная переменная указания текущего пути (пути сборки)&amp;lt;/font&amp;gt;&lt;br /&gt;
 ${CMAKE_CURRENT_BINARY_DIR}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;font style=&amp;quot;color:#404040;&amp;quot;&amp;gt;//встроенная переменная исходного пути (где лежит обрабатываемый CMakeLists.txt)&amp;lt;/font&amp;gt;&lt;br /&gt;
 ${CMAKE_CURRENT_SOURCE_DIR}&lt;br /&gt;
&lt;br /&gt;
==== цели ====&lt;br /&gt;
 &amp;lt;font style=&amp;quot;color:#404040;&amp;quot;&amp;gt;//цель-бинарник с именем helloWorld, собирающийся из main.cpp&amp;lt;/font&amp;gt;&lt;br /&gt;
 add_executable(helloWorld main.cpp)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;font style=&amp;quot;color:#404040;&amp;quot;&amp;gt;//цель-библиотека с именем libBL, собирающийся из lib.cpp lib.h&amp;lt;/font&amp;gt;&lt;br /&gt;
 add_library(libBL STATIC lib.cpp lib.h)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;font style=&amp;quot;color:#404040;&amp;quot;&amp;gt;//цель-бинарник с именем binary, собирающийся из файлов, согласно переменным&amp;lt;/font&amp;gt;&lt;br /&gt;
 add_executable(binary ${SOURCES} ${HEADERS})&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;font style=&amp;quot;color:#404040;&amp;quot;&amp;gt;//указания свойств к цели&amp;lt;/font&amp;gt;&lt;br /&gt;
 set_target_properties(&lt;br /&gt;
     helloWorld PROPERTIES&lt;br /&gt;
     CXX_STARNDARD 11&lt;br /&gt;
     CXX_STARDARD_REQUIRED ON&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
==== шаблон .h.in ====&lt;br /&gt;
 &amp;lt;font style=&amp;quot;color:#404040;&amp;quot;&amp;gt;//взять шаблон конфигурационного .h.in, заменить значения переменных и сохранить как .h в директории сборки&amp;lt;/font&amp;gt;&lt;br /&gt;
 configure_file(&lt;br /&gt;
     config.h.in&lt;br /&gt;
     ${CMAKE_CURRENT_BINARY_DIR}/config.h&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
==== линковка ====&lt;br /&gt;
 &amp;lt;font style=&amp;quot;color:#404040;&amp;quot;&amp;gt;//аналог &amp;quot;gcc -L ${CMAKE_CURRENT_BINARY_DIR}&amp;quot;&amp;lt;/font&amp;gt;&lt;br /&gt;
 target_include_directories(&lt;br /&gt;
     configure&lt;br /&gt;
     PRIVATE&lt;br /&gt;
     ${CMAKE_CURRENT_BINARY_DIR}&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;font style=&amp;quot;color:#404040;&amp;quot;&amp;gt;//слинковать цель helloWorld с целью libBL&amp;lt;/font&amp;gt;&lt;br /&gt;
 target_link_libraries(helloWorld libBL)&lt;br /&gt;
&lt;br /&gt;
 find_package(sumLib CONFIG REQUIRED)&lt;br /&gt;
 target_link_libraries(mainLib SumLib::sumLib)&lt;br /&gt;
&lt;br /&gt;
==== переход в дочерний CMakeLists.txt ====&lt;br /&gt;
 add_subdirectory(lib)&lt;br /&gt;
 find_package(sumLib CONFIG REQUIRED)&lt;br /&gt;
&lt;br /&gt;
==== install ====&lt;br /&gt;
 &amp;lt;font style=&amp;quot;color:#404040;&amp;quot;&amp;gt;//при обработке цели sumLib создать структуру директорий&amp;lt;/font&amp;gt;&lt;br /&gt;
 install(&lt;br /&gt;
     TARGETS sumLib EXPORT sumLibTargets&lt;br /&gt;
     LIBRARY DESTINATION lib&lt;br /&gt;
     ARCHIVE DESTINATION lib&lt;br /&gt;
     INCLUDES DESTINATION include&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;font style=&amp;quot;color:#404040;&amp;quot;&amp;gt;//скопировать файл(ы) в include&amp;lt;/font&amp;gt;&lt;br /&gt;
 install(FILES sumLib.h DESTINATION include)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;font style=&amp;quot;color:#404040;&amp;quot;&amp;gt;//экспорт namespace и создание конф.файл для родительской директивы find_package&amp;lt;/font&amp;gt;&lt;br /&gt;
 install(&lt;br /&gt;
     EXPORT sumLibTargets&lt;br /&gt;
     FILE sumLibConfig.cmake&lt;br /&gt;
     NAMESPACE SumLib::&lt;br /&gt;
     DESTINATION lib/cmake/SumLib&lt;br /&gt;
 )&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>