<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419175&amp;view=findpost&amp;p=3834977</guid>
        <pubDate>Thu, 23 Jul 2020 09:38:06 +0000</pubDate>
        <title>cmake и внешняя либа</title>
        <link>https://forum.sources.ru/index.php?showtopic=419175&amp;view=findpost&amp;p=3834977</link>
        <description><![CDATA[OpenGL: Не совсем понятно, в чём вопрос. target_include_directories + target_link_libraries тут почему-то не подходят?<br>
Но вообще обычно сторонние библиотеки подключают через find_package - он найдёт cmake скрипт, проставит нужные переменные и сделает прочие действия, специфические для подключаемой библиотеки. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-07-23T13:16:18+03:00">23.07.20, 10:16</time></span></span><br>
Кстати<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=419175&view=findpost&p=3834568'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2020-07-18T18:23:09+00:00">18.07.20, 18:23</time></span><div class='quote '>В CMakeLists.txt (1) написал:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">include_directories(sftp++)</div><div class="code_line">target_link_libraries(TestSFTP sftp++)</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
</div></div><br>
Гораздо удобнее это делать, объявляя target_include_directories(sftp++ INTERFACE include_path) в cmakelists библиотеки. Тогда при подключении sftp++ в первом файле тебе достаточно будет указать target_link_libraries, а include подтянутся уже автоматом.]]></description>
        <author>OpenGL</author>
        <category>C/C++: Прочее</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419175&amp;view=findpost&amp;p=3834568</guid>
        <pubDate>Sat, 18 Jul 2020 18:23:09 +0000</pubDate>
        <title>cmake и внешняя либа</title>
        <link>https://forum.sources.ru/index.php?showtopic=419175&amp;view=findpost&amp;p=3834568</link>
        <description><![CDATA[JoeUser: Всем привет&#33;<br>
<br>
Прошу помощи в конфигурации cmake. Сення первый день вожусь с cmake и сабж не получается&#33; :&#39;( <br>
Делаю тестовый проект, структура его такова:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">C:\Projects\c++\TestSFTP\</div><div class="code_line">&nbsp;├─ main.cpp</div><div class="code_line">&nbsp;├─ CMakeLists.txt (1)</div><div class="code_line">&nbsp;└─ sftp++\</div><div class="code_line">&nbsp;&nbsp; &nbsp; ├─ sftp_auth.cpp</div><div class="code_line">&nbsp;&nbsp; &nbsp; ├─ sftp_tools.cpp</div><div class="code_line">&nbsp;&nbsp; &nbsp; ├─ sftp++.cpp</div><div class="code_line">&nbsp;&nbsp; &nbsp; ├─ sftp_auth.h</div><div class="code_line">&nbsp;&nbsp; &nbsp; ├─ sftp_defs.h</div><div class="code_line">&nbsp;&nbsp; &nbsp; ├─ sftp++.h</div><div class="code_line">&nbsp;&nbsp; &nbsp; └─ CMakeLists.txt (2)</div></ol></div></div></div></div><br>
В <strong class='tag-b'>CMakeLists.txt (1)</strong> написал:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">cmake_minimum_required(VERSION 3.5)</div><div class="code_line">project(TestSFTP LANGUAGES CXX)</div><div class="code_line">&nbsp;</div><div class="code_line">set(CMAKE_CXX_STANDARD 17)</div><div class="code_line">&nbsp;</div><div class="code_line">set(CMAKE_CXX_STANDARD_REQUIRED ON)</div><div class="code_line">&nbsp;</div><div class="code_line">set(SOURCE_EXE main.cpp)</div><div class="code_line">&nbsp;</div><div class="code_line">include_directories(sftp++)</div><div class="code_line">&nbsp;</div><div class="code_line">add_executable(TestSFTP ${SOURCE_EXE})</div><div class="code_line">&nbsp;</div><div class="code_line">add_subdirectory(sftp++)</div><div class="code_line">&nbsp;</div><div class="code_line">target_link_libraries(TestSFTP sftp++)</div></ol></div></div></div></div><br>
A в <strong class='tag-b'>CMakeLists.txt (2)</strong>:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">cmake_minimum_required(VERSION 3.5)</div><div class="code_line">&nbsp;</div><div class="code_line">project(sftp++)</div><div class="code_line">&nbsp;</div><div class="code_line">set(SOURCE_LIB</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;sftp++.cpp</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;sftp_auth.cpp</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;sftp_tools.cpp</div><div class="code_line">)</div><div class="code_line">&nbsp;</div><div class="code_line">set(HEADER_LIB</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;sftp++.h</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;sftp_defs.h</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;sftp_auth.h</div><div class="code_line">)</div><div class="code_line">&nbsp;</div><div class="code_line">if(CMAKE_SIZEOF_VOID_P EQUAL 8)</div><div class="code_line">&nbsp;&nbsp; &nbsp;set(BITS x64)</div><div class="code_line">elseif()</div><div class="code_line">&nbsp;&nbsp; &nbsp;set(BITS x32)</div><div class="code_line">endif()</div><div class="code_line">&nbsp;</div><div class="code_line">message(&quot;Bits ${BITS}&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">add_library (sftp++ STATIC ${SOURCE_LIB} ${HEADER_LIB})</div></ol></div></div></div></div><br>
Пока все линкуется и собирается. Но мне нужно подключить внешнюю либу <strong class='tag-b'>libssh2</strong> к моей собираемой <strong class='tag-b'>sftp++</strong>,<br>
а она у меня находится тут для shared: <br>
<br>
C:/Projects/c++/libssh2/vs-x64-shared/bin<br>
C:/Projects/c++/libssh2/vs-x64-shared/include<br>
C:/Projects/c++/libssh2/vs-x64-shared/lib<br>
<br>
Или тут для static:<br>
<br>
C:/Projects/c++/libssh2/vs-x64-static/include<br>
C:/Projects/c++/libssh2/vs-x64-static/lib<br>
<br>
<strong class='tag-b'>Собственно, вопрос</strong><br>
<br>
Куда и что прописать, чтобы создаваемая мною либа sftp++ могла использовать libssh2 (статически и динамически)? :wall: <br>
<br>
И попутно ... в конфиге я определяю битность, в которую собирается проект.<br>
А можно ли как-то подобным образом определить static/shared и vc/mingw?]]></description>
        <author>JoeUser</author>
        <category>C/C++: Прочее</category>
      </item>
	
      </channel>
      </rss>
	